String, int처럼 자바가 제공하는 기본 데이터 타입을 말한다.
e.g. 기본값 타입 알아보기
String, int
→ 값 타입id
→ 식별자 & 생명주기를 가짐@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String name;
private int age;
}
JPA에서 사용자가 직접 정의한 값 타입을 말한다.
String, int 처럼 값 타입이다.
e.g. 임베디드 타입 알아보기
(Before) 회원 엔티티에 집 정보까지 데이터를 상세히 갖고 있는다면, 객체지향적이지 않으며 응집력이 떨어진다.
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String name;
// 집 주소 표현
private String city;
private String street;
}
(After) 집 정보를 갖도록 임베디드 타입을 사용할 수 있다.
@Embeddable
: 값 타입을 정의하는 곳에 표시@Embedded
: 값 타입을 사용하는 곳에 표시@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String name;
// 집 주소 표현
@Embedded Address address;
}
@Embeddable
public class Address {
private String city;
private String street;
}