JPA의 데이터 타입
값 타입은 3가지로 나눌 수 있음
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String name;
//근무기간
@Temporal(TemporalType.DATE) java.util.Date.startDate;
@Temporal(TemporalType.DATE) java.util.Date.endDate;
//집 주소 표현
private String city;
private String street;
private String zipcode;
}
이 코드를 임베디드 타입을 이용하여 객체지향적으로 나타낼 수 있음
@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) {
//.. 값 타입을 위한 메소드를 정의할 수 있음
}
}
@Embeddable
public class Address {
@Column(name="city") //매핑할 컬럼 정의 가능
private String city;
private String street;
private String zipcode;
}
값 타입 공유 참조
불변 객체
참고
자바 ORM 표준 JPA 프로그래밍