엔티티 타입 vs 값 타입
엔티티 타입
1. @Entity로 정의하는 객체
2. 식별자를 통해 지속적으로 추적이 가능해 값을 변경해도 식별자를 통해 같은 객체인지 인식 가능
3. 생성, 소멸, 영속 등의 생명 주기가 존재
4. 다른 객체에서 참조가 가능
값 타입
1. int, Integer, String 등 단순히 값으로 사용하는 자바 기본 타입이나 객체
2. 식별자가 없고 값만 존재하기 때문에 추적이 변경시 불가능
3. 생명주기를 엔티티에 의존. 의존하는 엔티티가 제거되면 함께 삭제
4. 공유하지 않는 것이 안전
예시
@Embedded : 값 타입을 사용하는 곳에 작성한다.
@Embeddable : 값 타입을 사용하는 곳에 작성한다.
둘 중 하나만 명시해도 되지만, 둘 다 적는 것이 좋다.
값이 정상적으로 저장되었다.
만약 테이블이 2개이고, 한 쪽이 다른 한 쪽을 참조 할 경우
@AttributeOverrides 와 @AttributeOverride 를 이용하여 속성과 (테이블과 컬럼)의 매핑 정보를 정의한다.
값이 정상적으로 등록되었다.
'JPA' 카테고리의 다른 글
[JPA] countQuery (0) | 2024.11.10 |
---|---|
[JPA] @OneToOne, 일대일 관계 (0) | 2024.02.26 |
[JPA] SQL 쿼리를 활용 (0) | 2024.02.19 |
[JPA] 식별자 생성 (0) | 2024.02.19 |
[JPA] 테이블에 데이터 넣기 테스트 (0) | 2024.02.04 |