인프런 - 스프링 부트와 JPA 활용1 by 김영한 을 기반으로 작성된 글입니다.
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
💻 코드
package jpabook.jpashop.domain;
import lombok.Getter;
import javax.persistence.Embeddable;
/*JPA의 내장타입*/
@Embeddable
@Getter
public class Address {
private String city;
private String street;
private String zipcode;
/*설명*/
protected Address() {
}
public Address(String city, String street, String zipcode) {
this.city = city;
this.street = street;
this.zipcode = zipcode;
}
}
👉 설명
주소 값 타입
@Getter
만 제공해 값타입을 변경 불가하게 설계해야함 (@Setter
제거)
생성자에서 값을 모두 초기화 해 변경 불가능한 클래스로 생성
기본 생성자를 만들어야 하는 이유
JPA 구현 라이브러리가 객체 구현 시 리플렉션 같은 기능을 사용할 수 있도록 지원해야함
💡 기본 생성자가 없으면 기능을 사용 못하므로 생성자 생성
public
은 많은 사람들이 호출 할 수 있으므로 더 안전한 protected
사용❗❓ 생성된 쿼리문을 그대로 사용해도 되나요?!