[java] Hibernate에서 일대일(One-to-One) 연관 관계 설정하는 방법은?
Hibernate는 자바를 이용하여 영속성을 관리하기 위한 프레임워크입니다. 일대일(One-to-One) 연관 관계는 데이터베이스의 두 테이블 사이에 일대일로 매칭되는 관계를 의미합니다.
Hibernate에서 일대일 연관 관계를 설정하는 방법은 다음과 같습니다.
- @OneToOne 어노테이션을 사용하여 연관 관계를 정의합니다.
@Entity
@Table(name = "employee")
public class Employee {
//...
@OneToOne(mappedBy = "employee", cascade = CascadeType.ALL)
private Address address;
//...
}
@Entity
@Table(name = "address")
public class Address {
//...
@OneToOne
@JoinColumn(name = "employee_id")
private Employee employee;
//...
}
-
주 테이블에서 외래 키를 가진 엔티티로의 참조를 추가합니다.
-
대상 테이블에서 주 테이블을 가리키는 엔티티로의 참조를 추가합니다.
-
@JoinColumn 어노테이션을 사용하여 주 테이블과 대상 테이블 사이의 외래 키 컬럼을 지정합니다.
@OneToOne
@JoinColumn(name = "employee_id")
private Employee employee;
- cascade 옵션을 사용하여 주 엔티티를 저장할 때 관련된 대상 엔티티도 동시에 저장하도록 설정할 수 있습니다.
@OneToOne(mappedBy = "employee", cascade = CascadeType.ALL)
private Address address;
일대일 연관 관계 설정에는 몇 가지 방법이 있지만, 위의 예시는 일반적으로 사용되는 방법입니다. Hibernate를 사용하여 일대일 연관 관계를 설정할 때는 주의해야 할 사항이 있으므로 관련 문서 및 자세한 예제를 참조하시기 바랍니다.
관련 문서:
- Hibernate 공식 문서: https://hibernate.org/
- Hibernate One-to-One 매핑 문서: https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#associations-one-to-one