JPA
[Spring JPA] 객체지향의 상속관계 매핑은 어떤 전략을 사용할까?
관계형 데이터베이스에는 상속 관계가 없다. 대신 서브타입과 슈퍼타입의 모델링 기법이 존재한다. 공통의 속성을 뽑아 슈퍼타입으로 만들고 나머지 속성은 서브타입으로 설정을 하면 상속 관계와 비슷하게 설계가 된다. 아래 그림을 참조해서 보자. 이러한 테이블 구조를 객체에서 매핑하는 전략을 알아보자. 전략 3가지 조인 전략 단일 테이블 전략 구현 클래스마다 테이블 전략 1. 조인 전략 슈퍼타입과 서브타입의 테이블을 각각 생성 Item @Entity @Getter @NoArgsConstructor @DiscriminatorColumn -> 핵심 @Inheritance(strategy = InheritanceType.JOINED) -> 핵심 public class Item { @Id @GeneratedValue p..
[Spring JPA] 객체의 연관관계는 어떻게 관계를 맺는것이 좋을까?
관계형 데이터베이스의 연관관계는 외래키(FK)를 참조하여 다른 테이블과 맺습니다. 그렇다면 객체는 연관관계를 어떻게 맺으면 좋을까요? 객체는 연관관계를 맺을 다른 객체를 참조(Reference) 하여 연관관계를 맺습니다. 방향성 또한 테이블은 양방향 연관관계를 가지고 객체는 단방향 연관관계를 가지는 것이 큰 차이점입니다. 이 불편한 패러다임 불일치를 해소시켜주는 것이 Spring JPA 입니다. JPA를 사용하여 연관관계를 맺어보겠습니다. 🔴 연관관계 맺어보기 먼저 테이블에서는 외래키(FK)를 참조하여 다른 테이블과 연관관계를 맺는건 알고 계실 겁니다. 테이블처럼 연관관계를 맺어보면 방문기록 객체에 유저 객체의 PK값을 참조하려면 아래 코드처럼 코드를 작성해야합니다. @Entity public class..