[java] Hibernate에서 일대다(One-to-Many) 연관 관계 설정하는 방법은?
  1. 엔티티 클래스 생성
    • 일대다 관계에서 일(One)에 해당하는 클래스와 다(Many)에 해당하는 클래스를 생성합니다.
    • 예를 들어, ‘부서(Department)’ 클래스와 ‘직원(Employee)’ 클래스가 있다고 가정합니다.
  2. 일(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’ 필드가 매핑을 담당합니다.
  3. 다(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’ 컬럼과 매핑합니다.
  4. 관계를 테스트해보세요.
    • 위의 설정이 완료되면, Hibernate는 자동으로 테이블 간의 관계를 생성하고 관리합니다.
    • 애플리케이션 코드에서 해당 객체를 생성하고 저장하면, Hibernate가 관련된 객체들을 자동으로 조작하고 일대다 관계를 유지합니다.

이렇게 하면 Hibernate에서 일대다(One-to-Many) 연관 관계를 설정할 수 있습니다. Hibernate의 기능을 활용하여 애플리케이션에서 효율적으로 데이터를 관리할 수 있습니다.