728x90
728x90
mappedBy는 JPA에서 양방향 연관관계를 설정할 때 사용하는 속성입니다.
mappedBy는 연관관계의 주인이 아닌 쪽에서 지정해야 하며, 연관관계의 주인을 가리키는 필드명을 값으로 줍니다.
예를들어, User엔티티와 CellularPhone 엔티티가 일대일 양방향 연관관계를 가지고 있고,
User 엔티티가 연관관계의 주인이라면, CellularPhone 엔티티에서는
@OneToOne(mappedBy = "cellularPhone)
와 같이 어노테이션을 적용해야 합니다.
이렇게 하면 CellularPhone 엔티티는 User 엔티티의 cellularPhone 필드에 의해 매핑된다는 것을 나타냅니다.
mappedyBy를 사용하는 이유는 양방향 연관관계에서 두 엔티티 모두가 관계를 관리하면 무한 루프에 빠지거나 데이터 불일치가 발생할 수 있기 때문입니다.
따라서 한 쪽은 연관관계의 주인으로서 외래키를 관리하고, 다른 쪽은 mappedBy로 주인을 지정하여 읽기 전용으로 만들어야합니다.
이렇게 하면 성능상의 이점과 데이터 일관성을 보장할 수 있습니다.
728x90
300x250
'Spring' 카테고리의 다른 글
[Spring; 스프링] RequestRejectedException - Spring Security (0) | 2023.10.18 |
---|---|
[Spring; 스프링] Spring Security (0) | 2023.10.05 |
[Spring; 스프링] SpringBoot JPA Entity (0) | 2023.10.04 |
[Spring; 스프링] @Transactional(readOnly=true) (0) | 2023.10.04 |
[Spring; 스프링] STS 3 ( Spring Tool Suite ) 이전 버전 다운로드 (0) | 2022.11.04 |