📝 JPA의 연관관계 Annotation 대하여
Spring Data JPA를 사용하여 프로젝트를 진행하면서 사용하였던 JPA 연관관계 Annotation에 대하여 정리해보려고 한다.
🚩 @JoinColumn
📝 설명
- FK를 가지고 있는 Database Column에 사용
🔨 설정 옵션
■ Name
- JPA에서 사용할 Entity의 이름을 지정한다. 지정하지 않을 경우 Class 이름을 사용
🚩 @ManyToOne
📝 설명
- N:1 관계에 사용하는 Annotation
- FK를 가지고 있는 쪽( 주인 Entity )에서 사용
🔨 설정 옵션
■ targetEntity ( 필수 )
- N:1 관계에서 1인 Entity의 class 명을 지정할때 사용한다.
■ fetch
🚩 @OneToMany
📝 설명
- N:1 관계에 사용하는 Annotation
- FK를 없는 쪽( 자식 Entity )에서 사용
- @OneToMany Annotation의 경우 자식의 입장이므로 Select 기능만 가능하다
🔨 설정 옵션
■ mappedBy
- N:1 관계에서 N인 Entity의 이름을 지정할떄 사용된다.
■ fetch
🚩 @OneToOne
📝 설명
- 1:1 관계에 사용하는 Annotation
- FK를 가지고 있는 쪽( 주인 Entity )에서 사용
- FK는 개발자가 설계한 ERD에 따라서 결정된다.
🔨 설정 옵션
■ targetEntity ( 필수 )
- 1:1 관계에서 자식 Entity의 class 명을 지정할때 사용한다.
■ fetch
🚩 @ManyToMany
📝 설명
- N:N 관계에서 사용하는 Annotation
- RDB에서 N:N 관계는 사용하지 않으므로 사용하지 않는 Annotation
📌 마무리
Spring Data JPA를 사용하여 프로젝트를 진행하면서 연관관계에 사용한 JPA Annotation들을 정리하였다. 정리하면서 느꼈지만 JPA의 연관관계 Annotation들을 너무 한정적으로 사용한거 같고 이해도도 아직 부족한거 같다. 시간날때마다 공부해서 틈틈히 내용을 채워봐야겠다.