[java] Hibernate에서 연관 관계 매핑하는 방법은?
Hibernate는 자바 기반의 ORM (Object-Relational Mapping) 도구로, 객체와 관계형 데이터베이스 간의 연결을 쉽게 맺을 수 있도록 도와줍니다. 연관 관계 매핑은 Hibernate에서 매우 중요한 개념입니다.
Hibernate에서는 세 가지 주요한 연관 관계 매핑 방법을 제공합니다.
- 일대일 관계 (One-to-One):
- @OneToOne 어노테이션을 사용하여 일대일 관계를 매핑합니다.
- 주 테이블과 대상 테이블 간에 관계를 설정할 수 있습니다.
- 주 테이블의 외래 키를 사용하여 대상 테이블과의 관계를 맺습니다.
- 일대다 관계 (One-to-Many):
- @OneToMany 어노테이션을 사용하여 일대다 관계를 매핑합니다.
- 주 테이블과 대상 테이블 간에 일대다 관계를 설정할 수 있습니다.
- 주 테이블의 기본 키를 대상 테이블의 외래 키로 사용합니다.
- 다대다 관계 (Many-to-Many):
- @ManyToMany 어노테이션을 사용하여 다대다 관계를 매핑합니다.
- 주 테이블과 대상 테이블 간에 다대다 관계를 설정할 수 있습니다.
- 연결 테이블을 사용하여 주 테이블과 대상 테이블의 관계를 맺습니다.
아래는 예시입니다:
@Entity
public class University {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToMany(mappedBy = "university")
private List<Student> students;
}
@Entity
public class Student {
@Id
@GeneratedValue
private Long id;
private String name;
@ManyToOne
@JoinColumn(name = "university_id")
private University university;
}
위의 예시에서는 대학(University)과 학생(Student)의 일대다 관계를 매핑하였습니다. 대학 엔티티에서는 @OneToMany
어노테이션을 사용하여 학생 리스트를 선언하고, mappedBy
속성으로 학생 엔티티의 university 필드와의 관계를 설정합니다. 학생 엔티티에서는 @ManyToOne
어노테이션으로 대학과의 다대일 관계를 설정하고, @JoinColumn
어노테이션으로 연결할 외래 키의 이름을 지정합니다.
이렇게 Hibernate에서 연관 관계를 매핑하면 객체 간의 관계를 쉽게 정의하여 데이터베이스와의 상호 작용을 간소화할 수 있습니다.
더 자세한 정보는 Hibernate 공식 문서를 참조하십시오: Hibernate 매핑 가이드