-
jpa entity 기본 생성자(Default Constructor) 필요할때개발/Spring 2020. 3. 10. 10:43
jpa로 검색해오는 소스에서 기본 생성자 관련 에러가 발생했다.
검색과 고민 끝애
해당 객체의 이름만 딴 기본생성자를 넣었고, 문제 없이 조회가 가능해졌다
@Entity
public class Student{
protected String name;
protected int age;
public Student(Graduate graduate)
this.name = graduate.getName();
this.age = graduate.getAge();
}
와같이 student를 저장할때 졸업생으로 받았다면 학생으로 생성후 저장하려고 생성자를 만들어 뒀는데
이로인한 기본 생성자 에러가 발생한 것이다.
JPA는 조회시 default Constructor로 객체를 생성한 뒤 Reflection을 이용해 값을 매핑하는데
student entity에는 졸업생을 받아 생성하는 것 밖에 없어서 (아무것도 없는상태라면 자동으로 아무것도 없는 것을
기본생성자로 적용하는 것 같다. 때문에 평소에 기본생성자 작성없이 이용해올 수 있었던 것)
에러가 발생하였고,
public Student(){}
를 추가하여 해결하였다.
왠지 모르게 생성자를 저렇게 두는 것은 마음에 들지 않기 때문에 생성자 추가 관련하여 좀 더 생각해 봐야겠다.
'개발 > Spring' 카테고리의 다른 글
junit5 에러 테스트 (0) 2021.03.21 jpa또는 querydsl로 union 쿼리 사용 (5) 2021.02.25 RequestBody의 데이트 타입 정해진 format으로 받기 (0) 2021.02.24 webclinet 응답 객체 다루기 (json 객체) (0) 2020.03.06 Webclinet 응답 메모리 늘리기 (0) 2020.03.06 댓글