dev/spring data JPA

기본 및 설정

dev_0hoon 2024. 3. 4. 23:15
@Entity
@Getter @Setter
public class Member {

    @Id @GeneratedValue
    private Long id;

    private String username;

    public Member(String username) {
        this.username = username;
    }

    protected Member() {
    }
}

 

jpa표준 스펙에 엔티티는 기본생성자가 있어야한다.

생성자는 private가 아닌 protected 정도로 열어둬야 한다고 한다. 왜냐면 JPA 프록시 기술을 쓰는데 JPA가 객체를 프록시로 강제로 객체를 만들기 때문에 열어둬야한다고 스펙에 되어있다.