[java] Hibernate에서 일대다(One-to-Many) 연관 관계 설정하는 방법은?
- 엔티티 클래스 생성
- 일대다 관계에서 일(One)에 해당하는 클래스와 다(Many)에 해당하는 클래스를 생성합니다.
- 예를 들어, ‘부서(Department)’ 클래스와 ‘직원(Employee)’ 클래스가 있다고 가정합니다.
- 일(One)에 해당하는 클래스에 일대다(One-to-Many) 관계를 설정합니다.
- ‘부서(Department)’ 클래스에서 ‘직원(Employee)’ 클래스와의 일대다 관계를 설정합니다.
-
다음과 같이 코드를 작성합니다:
@Entity public class Department { // 다른 필드들 @OneToMany(mappedBy = "department") private List<Employee> employees; // Getter, Setter 및 다른 메소드들 }
- 위 코드에서
@OneToMany(mappedBy = "department")
어노테이션은 ‘부서(Department)’ 클래스의 ‘직원(Employee)’ 클래스에 대한 일대다 관계를 매핑합니다. mappedBy
속성은 ‘직원(Employee)’ 클래스에서의 매핑을 담당하는 필드를 지정합니다. 위의 예제에서는 ‘Employee’ 클래스의 ‘department’ 필드가 매핑을 담당합니다.
- 다(Many)에 해당하는 클래스에서 일대다(One-to-Many) 관계를 설정합니다.
- ‘직원(Employee)’ 클래스에서 ‘부서(Department)’ 클래스와의 다대일 관계를 설정합니다.
-
다음과 같이 코드를 작성합니다:
@Entity public class Employee { // 다른 필드들 @ManyToOne @JoinColumn(name = "department_id") private Department department; // Getter, Setter 및 다른 메소드들 }
- 위 코드에서
@ManyToOne
어노테이션은 ‘직원(Employee)’ 클래스의 ‘부서(Department)’ 클래스에 대한 다대일 관계를 매핑합니다. @JoinColumn(name = "department_id")
어노테이션은 ‘직원(Employee)’ 클래스의 ‘department’ 필드를 ‘department_id’ 컬럼과 매핑합니다.
- 관계를 테스트해보세요.
- 위의 설정이 완료되면, Hibernate는 자동으로 테이블 간의 관계를 생성하고 관리합니다.
- 애플리케이션 코드에서 해당 객체를 생성하고 저장하면, Hibernate가 관련된 객체들을 자동으로 조작하고 일대다 관계를 유지합니다.
이렇게 하면 Hibernate에서 일대다(One-to-Many) 연관 관계를 설정할 수 있습니다. Hibernate의 기능을 활용하여 애플리케이션에서 효율적으로 데이터를 관리할 수 있습니다.