목차 (클릭시 해당 목차로 이동)
1. 생성자를 통해 주입한다.
package study.datajpa.entity;
import lombok.Getter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Getter
public class Member {
@Id
@GeneratedValue
private Long id;
private String username;
protected Member() {
}
public Member(String username) {
this.username = username;
}
}
1) 빈 생성자를 하나 추가해야한다. (자바 기본)
2) 빈 생성자는 protected로 해야한다.
private으로 하면 JPA의 프록시기능시 접근을 못할 수 있고, 그렇다고 public으로 하면 다른 개발자가 사용해도 되는 줄 착각하고 사용할 수 있기 때문이다.
2. 중간에 변경해야할 경우에는 엔티티에 change 메소드를 추가한다.
package study.datajpa.entity;
import lombok.Getter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Getter
public class Member {
@Id
@GeneratedValue
private Long id;
private String username;
protected Member() {
}
public Member(String username) {
this.username = username;
}
public void changeUsername(String username) {
this.username = username;
}
}
+ protected 빈 생성자는 롬복으로도 가능하다.
package study.datajpa.entity;
import lombok.Getter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member {
@Id
@GeneratedValue
private Long id;
private String username;
public Member(String username) {
this.username = username;
}
}
'Web > 팁' 카테고리의 다른 글
warning: CRLF will be replaced by LF in gradlew.bat. 문제해결방법 (0) | 2021.04.21 |
---|---|
인텔리제이에서 커맨드라인으로 쓰던 git 중간에 연동하기 + merge conflict gui로 해결하기 (0) | 2021.04.21 |
[h2 database] 데이터베이스 생성하기 (0) | 2021.04.12 |
로깅(Logging)을 알아보자 (0) | 2021.03.25 |
자바 다시 제대로 공부하기 (0) | 2021.03.23 |