[스프링] JPA 엔티티 관계 매핑

JPA(Java Persistence API)를 사용하는 경우 엔티티 간의 관계를 매핑하여 데이터베이스 테이블에 매핑합니다. 스프링 프레임워크에서 JPA를 사용할 때 엔티티 관계를 매핑하는 방법에 대해 알아보겠습니다.

1. 일대다 관계 매핑

일대다 관계는 한 엔티티가 여러 개의 다른 엔티티와 관계를 맺는 것을 말합니다.

코드 예시

@Entity
public class Department {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @OneToMany(mappedBy = "department")
    private List<Employee> employees;
}

@Entity
public class Employee {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @ManyToOne
    private Department department;
}

2. 다대일 관계 매핑

다대일 관계는 여러 엔티티가 한 개의 엔티티와 관계를 맺는 것을 말합니다.

코드 예시

@Entity
public class Employee {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @ManyToOne
    private Department department;
}

@Entity
public class Department {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @OneToMany(mappedBy = "department")
    private List<Employee> employees;
}

3. 일대일 관계 매핑

일대일 관계는 한 엔티티가 다른 엔티티와 하나의 관계만을 맺는 것을 말합니다.

코드 예시

@Entity
public class Employee {
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @OneToOne
    private Address address;
}

@Entity
public class Address {
    @Id
    @GeneratedValue
    private Long id;

    private String city;

    @OneToOne(mappedBy = "address")
    private Employee employee;
}

결론

스프링 프레임워크에서 JPA를 사용할 때 엔티티 간의 관계 매핑은 매우 중요합니다. 해당 예시를 참고하여 원하는 관계를 매핑하는 데 도움이 되기를 바랍니다.

자세한 내용은 스프링 프레임워크 공식 문서를 참고하시기 바랍니다.