-
오류 org.hibernate.InstantiationException: No default constructor for entity , with 롬복JPA 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 어노테이션과 같이 사용할 수없다.
번거롭지만 클래스안에 빌더패턴을 작성해주면 에러가 발생하지 않는다.
반응형'JPA' 카테고리의 다른 글
JPA JpaRepository 에서 @Query 쿼리작성하여 사용하기(nativeQuery) (0) 2023.11.18 [JPA] 즉시로딩과 지연로딩이란? (FetchType.EAGER, FetchType.LAZY) (0) 2023.11.14 JPA 오류 java.lang.IllegalStateException: Cannot call sendError() after the response has been committed (0) 2023.11.11 [JPA] H2 Database, DB의 GenerationType.IDENTITY null문제 (0) 2023.01.29 오류 modelMapper has a non-private no-argument constructor. (0) 2022.09.03