logo

[JPA] 연관관계 매핑(@ManyToOne, @OneToMany, @OneToOne, @ManyToMany)

language-logoHibernate
language-logoJava

• JPA의 연관관계 매핑에는 주로 @JoinColumn, @ManyToOne, @OneToMany 등의 애노테이션이 사용되며, 이들은 외래 키를 매핑하거나 다대일, 일대다 관계를 매핑하는데 사용된다. @ManyToOne은 반드시 연관관계 주인이 되어야 한다.
• 연관관계 매핑시에는 테이블과 객체의 패러다임 불일치를 해결해야 하는데, 테이블은 외래 키로, 객체는 참조를 이용해 연관된 객체를 탐색한다. 참조용 필드가 한쪽에만 있으면 단방향, 양쪽에 있으면 양방향 관계가 형성되며, 양방향 관계에서는 외래키를 관리하는 곳을 연관관계의 주인으로 설정해야 한다.
• 다대일(N:1) 관계에서는 여러 개체가 하나의 개체에 속할 수 있으며, 이를 표현하기 위해 @ManyToOne 어노테이션을 사용합니다. 이때 외래 키는 다수의 개체가 속하는 쪽에 위치해야 합니다.
• 양방향 관계 설정 시에는 양쪽 모두 참조 값을 넣어야 하며, 이를 위해 연관관계의 주인쪽에 연관관계 편의 메소드를 생성하여 관리합니다. 이때 mappedBy를 사용하여 연관관계의 주인이 아닌 쪽을 명시합니다.

thumbnail
북마크
공유하기
신고하기
21분 분량
조회수 137
profile-image개발하는쿼카
일 년 전
Copyright © 2025. Codenary All Rights Reserved.