게시판 만들기(스프링 부트3, 나도코딩 스터디)/14장. 댓글 엔티티와 리파지터리 만들기
14.1~14.3 댓글 엔티티와 리파지터리 만들기
coding232624
2023. 12. 10. 23:08
일대다 관겨 / 다대일 관계
- 한 엔티티의 하나의 데이터가 다른 엔디디의 여러 대이터와 연관될 때 이를 일대다 관계라함
- 한 엔티티의 여러 데이터가 다른 엔티티의 한 데이터와 연관될 때 다대일 관계라고함
대표키와 외래키
- 엔티티에서 자신을 대표하는 값 => 대표키
- 다른 엔티티를 참조할 수 있도록 다른 엔티티의 대표키를 가리키는 값 => 외래키
다대일 관계 설정
- 두 엔티티를 다대이 관계로 설정하려면 대표키와 외래키를 연결해야함
- 자식 엔티팅에 외래키를 만들어 부모 엔티티의 대표키 값을 갖도록 해야함
@ManyToOne
- 다대일 관계를 나타내는 어노테이션
@JoinColum
- 해당 엔티티에 외래키를 생성하는 어노테이션
- name 속성으로 매핑할 외래키 이름을 지정할 수 잇음
JpaRepository
- ListCrudRepository와 ListPagingAndSortingRepository를 상속받는 인터페이스
- CRUD(생성, 조회, 수정, 삭제) 기능뿐만 아니라 엔티티를 페이지 단위로 조회 및 정렬하는 기능 및 JPA에 특화된 여러 기능을 제공
네이티브 쿼리 메서드
- 리파지터리의 메서드로 쿼리를 작성해 실행함
- 네이티브 쿼리 메서드는 @Query 어노테이션과 orm.xml파일을 이용해 만들 수 있음
@Query
- SQL과 유사한 JPQL이라는 객체 지향 쿼리 언어를 통해 쿼리를 처리할 수 있도록 지원하는 어노테이션
- 기존의 SQL문을 그대로 쿼리 언어로 사용하고 싶을 경우 nativeQuery 속성을 true로 설정
네이티브 쿼리 XML
- 메서드를 수행할 쿼리를 XML로 작성한 것
- 네이티브 쿼리 XML의 기본 경로와 파일 이름은 META-INF > orm.xml으로 설정(필수 / 변경 X)
- 해당 경로와 이름으로 파일을 만들면 XML이 자동으로 인식
orm.xml 코드 작성 방법
- orm.xml 파일이 생성되면 먼저 엔티티 매핑을 위한 XML 기본 코드를 작성한 후 <entity-mappings> 태그 안에 <named-native-query>와 <query> 태그를 이용해 쿼리를 입력
@DataJpaTest
- JPA와 연동한 테스트를 진행하는 어노테이션
- 리파지터리와 엔티티 등의 객체를 테스트코드에 사용 가능하도록 함
@DisplayName
- 테스트 이름을 붙일때 사용
- 기본적으로 테스트 이름은 메서드의 이름을 따르나 메서드의 이름은 그대로 둔 채 테스트 이름을 바꾸고 싶을 경우 사용