본문 바로가기
Spring

[Spring; 스프링] mappedBy 연관관계

by daddydontsleep 2023. 10. 4.
728x90
728x90

mappedBy

mappedBy는 JPA에서 양방향 연관관계를 설정할 때 사용하는 속성입니다.

mappedBy는 연관관계의 주인이 아닌 쪽에서 지정해야 하며, 연관관계의 주인을 가리키는 필드명을 값으로 줍니다.

예를들어, User엔티티와 CellularPhone 엔티티가 일대일 양방향 연관관계를 가지고 있고,

User 엔티티가 연관관계의 주인이라면, CellularPhone 엔티티에서는

@OneToOne(mappedBy = "cellularPhone)

와 같이 어노테이션을 적용해야 합니다.

이렇게 하면 CellularPhone 엔티티는 User 엔티티의 cellularPhone 필드에 의해 매핑된다는 것을 나타냅니다.

 

mappedyBy를 사용하는 이유는 양방향 연관관계에서 두 엔티티 모두가 관계를 관리하면 무한 루프에 빠지거나 데이터 불일치가 발생할 수 있기 때문입니다.

따라서 한 쪽은 연관관계의 주인으로서 외래키를 관리하고, 다른 쪽은 mappedBy로 주인을 지정하여 읽기 전용으로 만들어야합니다.

이렇게 하면 성능상의 이점과 데이터 일관성을 보장할 수 있습니다.

728x90
300x250