반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

간단한 개발관련 내용

9장 값타입 본문

IT 책/JPA (ORM 표준 JPA 프로그래밍)

9장 값타입

vincenzo.dev.82 2024. 11. 19. 13:56
반응형

9.1 기본값 타입

9.2 임베디드 타입(복합 값 타입)

  • @Embeddable : 값 타입을 정의하는 곳에 표시
    • 클래스 선언 위에
  • @Embedded : 값 타입을 사용하는 곳에 표시
    • 멤버변수에
  • 임베디드 타입은 기본 생성자가 필수

<aside> 💡

하이버네이트는 임베디드 타입을 컴포넌트(components)라고 한다.

</aside>

9.2.1 임베디드 타입과 테이블 매핑

9.2.2 임베디드 타입과 연관관계

9.2.3 @AttributeOverride: 속성 재정의

  • 같은 타입의 멤버변수가 @Embedded 될 때, @AttributeOverride를 사용
    • @Embedded Address home, @Embedded Address company

9.2.4 임베디드 타입과 null

  • 임베디드 타입이 null이면 매핑된 모든 값도 null

9.3 값 타입과 불변 객체

9.3.1 값 타입 공유 참조

9.3.2 갑 타입 복사

9.3.3 불변 객체

  • 객체를 불변하게 만들면 값을 수정할 수 없으므로 부작용을 원천 차단할 수 있다. 따라서 값 타입은 될 수 있으면 불변 객체(immutable Object)로 설계해야 한다.

9.4 값 타입의 비교

  • 동일성 비교
    • 인스턴스의 참조 값을 비교 ==
  • 동등성 비교
    • 인스턴의 값을 비교 equals

<aside> 💡

자바에서 equals()를 재정의하면 hashCode()도 재정의하는 것이 안전하다. 그렇지 않으면 해시를 사용하는 컬렉션(HashSet, HashMap)이 정상 동작하지 않는다. 자바 IDE에는 대부분 equals(), hashCode() 메서드를 자동으로 생성해주는 기능이 있다.

</aside>

 

9.5 값 타입 컬렉션

9.5.1 값 타입 컬렉션 사용

9.5.2 값 타입 컬렉션의 제약사항

 

9.6 정리

  • 엔터티 타입
  • 값 타입
    • 값 타입은 정말 값 타입이라 판단될 때만 사용해야 한다.

실전 예제 | 6. 값 타입 매핑

반응형