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

  • 테스트 이름을 붙일때 사용
  • 기본적으로 테스트 이름은 메서드의 이름을 따르나 메서드의 이름은 그대로 둔 채 테스트 이름을 바꾸고 싶을 경우 사용