-
TIL 188일 - JPA와 DDD공부/Java와 Spring 2022. 7. 5. 21:21
매핑구현
애그리거트 루트는 엔티티이므로 @Entity로 매핑을 설정한다.
엔티티와 밸류 데이터가 같이 있다면
- 밸류는 @Embeddable로 매핑
- 밸류 타입 프로퍼티는 @Embedded로 매핑
JPA
기본적인 매핑 지식
클래스 매핑 시 기본 생성자를 필요로 하고
getter setter를 필요로 한다.
귿네 이중 setter를 메서드 방식으로 구현하게 되면
도메인의 의미가 옅어지기 때문에
@Access(AccessType.FIELD) 어노테이션을 통해서 setter를 구현?해주도록 하자
밸류를 지정할 테이블?
@CollectionTable 어노테이션을 사용하라는데, 아니 밸류인데 테이블이 왜 있지? 그럼 ID를 갖게 되고, 식별자가 있는거 아니야?
라고 생각을 했는데 ID(식별자)가 있다고 무조건 엔티티가 아니라고 한다.
식별자에는 두 가지 종류가 있다고 보는 거 같은데
1. 다른 테이블과 연결하기 위한 id -> 밸류다
2. ㄹㅇ 식별을 하기 위한 Id -> 엔티티
하위 호환성 - 짜잘짜잘
이전 제품을 염두에 두고 만들어진 제품이 새 제품에서 별도의 수정 없이 그대로 쓰일 수 있는 것을 뜻한다. (고한다.)
코드 단에서의 상황으로 보면 A라는 모듈이 (가)라는 모듈을 사용한다고 했을 때, (나)라는 모듈이 나와도 A를 사용할 수 있는 그런 상황을 말하는 게 아닐까? 그럼 A라는 모듈은 하위호환성이 있는 모듈이다. 뭐 이렇게 말할 수 있을 거 같다...
참고글
https://namu.wiki/w/%ED%95%98%EC%9C%84%20%ED%98%B8%ED%99%98
내일은 진짜 간단한 도메인 만들어 가지고 JPA로 구현을 해봐야긌다.
'공부 > Java와 Spring' 카테고리의 다른 글
TIL 193일 - jpa entityManager (0) 2022.07.10 TIL 187일 - Jackson ObjectMapper (0) 2022.07.04 TIL 186일 - java에서 JSON 컬럼 serialize하기(실패!) (0) 2022.07.03 TIL 183일 - application.yml에서 에러나서 application.properties로 했었는데... (0) 2022.07.01 TIL 182일 - spring repository test (0) 2022.07.01