[스프링] 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를 사용할 때 엔티티 간의 관계 매핑은 매우 중요합니다. 해당 예시를 참고하여 원하는 관계를 매핑하는 데 도움이 되기를 바랍니다.
자세한 내용은 스프링 프레임워크 공식 문서를 참고하시기 바랍니다.