빅아이의 기록장

JPA 연관관계 본문

개발

JPA 연관관계

기록하는_새싹개발자 2019. 5. 29. 18:05
연관관계는 2개의 Entity간의 관계를 맺으며

관계의 주인된 Entity와, 관계에 종속된 Entity로 구분지을 수 있다.

관계의 주인 = 외래키를 가진 Entity - Profile
- OneToMany 에서는 Many쪽에 정의하며
- OneToOne에서는 Many로 확장될 수 있는 쪽에 정의한다.
@OneToOne
@JoinColumn(name = "my_user_id)
private MyUser myUser;
* 관계의 주인이 관계 생성, 변경, 삭제에 대한 책임이 있으며, 관계의 주인이 아닌 쪽은 읽기가 가능하다.
* JoinColumn에 name값은 DB에 저장될 Column명칭으로 camelcase가 아닌 _ 을 쓰도록 하자.


관계에 종속된 Entity - MyUser
@OneToOne(mappedBy = "myUser")
private MyProfile myProfile;
* mappedBy는 JAVA Code에서 실제로 사용하는 변수명으로, camelCase로 작성한다.

* 관계에 종속된 MyUser 객체가 삭제되면, MyProfile 객체는 고아객체가 된다. 이 경우, 고아객체도 삭제되게 하려면 orphanRemoval을 설정하면 된다.
@OneToOne(mappedBy="myUser", orphanRemoval = true)
이렇게 하면 MyUserRepository.delete(myUser)로 삭제되어도 관계의 주인객체가 본인이 고아객체가 된 것을 알고 삭제될 수 있다.


'개발' 카테고리의 다른 글

Firebase  (0) 2019.05.26
리액트  (0) 2019.05.05
개발 공부  (0) 2019.05.05