[java] Hibernate에서 다대일(Many-to-One) 연관 관계 설정하는 방법은?

Hibernate를 사용하여 다대일(Many-to-One) 연관 관계를 설정하는 방법은 간단하고 직관적입니다. 다음과 같은 단계를 따라서 설정할 수 있습니다.

  1. 엔티티 클래스 생성하기: 첫 번째 단계는 관계를 설정할 두 개의 엔티티 클래스를 생성하는 것입니다. 예를 들어, 하나의 ‘User’ 클래스와 여러 개의 ‘Order’ 클래스가 있다고 가정해봅시다.

  2. 관계 매핑 어노테이션 추가하기: 각각의 클래스에 Hibernate의 관계 매핑 어노테이션을 추가해야 합니다. ‘User’ 클래스의 경우 ‘Order’ 클래스와의 다대일 관계를 나타내는 ‘ManyToOne’ 어노테이션을 사용합니다. 예를 들어,

@Entity
public class Order {
    // ...
    
    @ManyToOne
    private User user;
    
    // ...
}
  1. 외래 키(Foreign Key) 설정하기: 다대일 관계에서는 외래 키를 사용하여 두 엔티티를 연결합니다. 위의 예제에서 ‘Order’ 클래스의 ‘user’ 필드는 ‘User’ 클래스의 주요 키를 참조합니다. 이는 ‘User’ 클래스에서 설정해주어야 합니다. 예를 들어,
@Entity
public class User {
    // ...
    
    @OneToMany(mappedBy = "user")
    private List<Order> orders;
    
    // ...
}
  1. 세션에서 연관 객체 사용하기: 설정이 완료되면 Hibernate 세션을 사용하여 조회나 저장 등의 작업을 수행할 수 있습니다. 예를 들어, ‘Order’ 클래스에서 해당 주문을 만든 사용자를 가져오는 코드는 다음과 같습니다.
Order order = session.get(Order.class, orderId);
User user = order.getUser();

위의 단계를 따라서 Hibernate에서 다대일(Many-to-One) 연관 관계를 설정할 수 있습니다. 이를 통해 데이터베이스에 효율적으로 관계를 표현하고 작업할 수 있습니다.

더 자세한 내용은 Hibernate 공식 문서(https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html)를 참고하시기 바랍니다.