값 타입
- 기본값 타입
- 자바 기본 타입
- 래퍼 클래스
- string
- 임베디드 타입
- 컬렉션 값 타입
- 임베디드 타입
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String name;
@Embedded Period workPeriod; //근무기간 … 값 타입을 정의하는 곳에 표시
@Embedded Address homeAddress;
…
}
@Embeddable …값 타입을 사용하는곳에 표시
public class Period {
@Temporal(TemporalType.DATE) java.util.Date startDate;
@Temporal(TemporalType.DATE) java.util.Date endDate;
public boolean isWork(Date date) {
…
}
}
@AtrributeOverride: 속성 재정의
임베디드 타입에 정의한 매핑 정보를 재정의
@Embedded
@AttributeOverrides({
@AttributeOverride(name=”city”, column=@Column(name = “COMPANY_CITY”)),
@AttributeOverride(name=”street”, column=@Column(name = “COMPANY_STREET”)),
@AttributeOverride(name=”zipcode”, column=@Column(name = “COMPANY_ZIPCODE”))
})
Address companyAddress;
임베디드 타입이 null이면 매핑한 컬럼 값은 모두 null
member.setAddress(null); //null 입력
em.persist(member);
출처 : 자바 ORM 표준 JPA 프로그래밍 김영한 지음