[java] Hibernate에서 다대다(Many-to-Many) 연관 관계 설정하는 방법은?
Hibernate는 Java 객체와 데이터베이스 사이의 매핑을 쉽게 할 수 있는 ORM(Object-Relational Mapping) 도구입니다. 다대다(Many-to-Many) 관계는 한 객체가 여러 개의 다른 객체와 연결되어 있는 경우에 사용됩니다. Hibernate에서 Many-to-Many 연관 관계를 설정하기 위해 다음 단계를 따를 수 있습니다.
- 주요 객체 클래스(예:
Book
클래스)를 생성합니다.
@Entity
public class Book {
@Id
private Long id;
private String title;
// ...
}
- 다른 객체의 클래스(예:
Author
클래스)를 생성하고 Many-to-Many 관계로 설정합니다. 이를 위해@ManyToMany
어노테이션을 사용하고 중개 테이블(예:book_author
)을 생성하는 연결 테이블을 지정합니다.
@Entity
public class Author {
@Id
private Long id;
private String name;
@ManyToMany
@JoinTable(
name = "book_author",
joinColumns = @JoinColumn(name = "author_id"),
inverseJoinColumns = @JoinColumn(name = "book_id")
)
private Set<Book> books = new HashSet<>();
// ...
}
- Hibernate 설정 파일(예:
hibernate.cfg.xml
)에서 Many-to-Many 관계를 지원하도록 설정합니다.
<hibernate-configuration>
<session-factory>
<!-- ... -->
<mapping class="com.example.Book"/>
<mapping class="com.example.Author"/>
</session-factory>
</hibernate-configuration>
위와 같이 설정하면 Hibernate가 Book
과 Author
사이의 Many-to-Many 관계를 지원합니다.
참고 자료:
- Hibernate 공식 문서: https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html
- Baeldung Hibernate 튜토리얼: https://www.baeldung.com/hibernate-many-to-many