JPA
오류 org.hibernate.InstantiationException: No default constructor for entity , with 롬복
dev.mk
2023. 11. 9. 16:52
반응형
org.hibernate.InstantiationException: No default constructor for entity
Entity를 JpaRepository에서 가져올 때 기본 생성자를 사용하는데, 생성자가 없어서 오류가 발생한다는 내용.
entity 클래스에 파라미터가 없는 기본생성자를 만들어주는 @NoArgsConstructor 어노테이션을 추가한다.
BEFORE
Board.java
@Table(name = "JPA_BOARD")
@Entity
@Data
@Builder
public class Board {
....생략
}
AFTER
@NoArgsConstructor 추가
@Table(name = "JPA_BOARD")
@Entity
@Data
@NoArgsConstructor
public class Board {
@Id
@Column(name="bno")
private int bno; //게시판(PK)
....생략
@Builder
public Board(int bno, ...){
this.bno
....생략
}
}
dto ↔ entity간 데이터를 주고받을때 빌더패턴이 있어야 편리하다.
하지만 @Builder 어노테이션이 클래스위에 선언되어 있으면 @NoArgsConstructor 어노테이션과 같이 사용할 수없다.
번거롭지만 클래스안에 빌더패턴을 작성해주면 에러가 발생하지 않는다.
반응형