Skip to content

[JPA 스터디 2주차 이채은]

chennie_lee edited this page Apr 1, 2024 · 1 revision

Single Table 전략

  • 다 때려박고 d type 으로 객체들 작성 → 일반적으로는 성능이 잘 나옴
  • Inheritance Strategy 를 선택해줘서 어떤 식으로 table 구체화할지 결정

참고자료

[[JPA] 상속 관계 매핑 전략 (조인 전략 / 단일 테이블 전략 / 구현 클래스마다 테이블 전략 / MappedSuperClass)](https://datamoney.tistory.com/328)

### 도메인 설계

Untitled

Untitled

Entity Class 의 개발

  • 일반적으로 Getter 은 열어놓되, Setter 은 닫아놔야함 ( 일방적 수정 방지 )

  • @Embedded , @Embeddable annotation : 어딘가에 적재되어 있으니 나중에 사용하려고 하는 경우

  • class 로 구현하여 같은 fielf 값을 공유하는 객체들을 만들고 싶을 때

    ⇒ abstract class 로 틀을 생성한 후, 객체를 구체화하여 구현

  • @Discremenatior : db 에서 구분을 해줄 때 사용하는 값

정리

💡 다대다 관계는 절대 사용하지 말기 ⇒ 1:N , N:1 관계로 변경해서 사용 양방향 말고 단방향 연관관계를 사용하는 것이 바람직함 💡 연관관계 mapping : 누가 주인인지 알아야 한다. **-** x:x 관계에서, N 에 해당하는 부분에 있는 애가 주로 fk 를 가짐

- 연관관계의 주인쪽이 변경 되야 해당 부분의 값이 변함 ( 주인이 아닌 쪽은 일반적으로 단순 조회를 하는데에만 사용 )

- 1:1 mapping 상황인 경우 fk 가 어디 있는지는 상관 없지만, fk 를 access 더 많이 하는 곳에 배치시킴

- 주인이 아닌쪽의 entity 에 mapped by option 사용해서 일관성 유지

💡 Enum class 를 만들때, 반드시 @Enummerated 을 사용 option 으로는 Enum type 을 작성 ( default: ordinal ) - ordinal ⇒ 1,2, .. int 값이 enum 으로 들어감 → 이후 요구사항이 변경되는 경우, 대응하기 위해 ordinal 대신 String type 을 사용한다

### 과제제출 image

Clone this wiki locally