JPA Entity에 기본 생성자를 만들어야 하는 이유

동철·2024년 1월 14일
0

JPA 관련 프로젝트를 하던 중, 이런 에러를 만났다.

기본 생성자가 엔티티에 존재하지 않다는 내용이다.
구글링하여 찾아보니, DB와 엔티티가 매핑되려면 기본 생성자를 만들어줘야 한다는 것이다.

'왜 기본생성자를 만들어 줘야할까?' 하는 궁금증이 생겼다.

JPA에서 기본 생성자 만들어줘야 하는 이유

DB에 존재하는 데이터를 엔티티에 매핑하는 과정은 JPA에서 빈번하다.
JPA는 DB 데이터를 객체 필드에 주입할 때 기본 생성자로 객체를 만들고 Reflection API를 통해 값을 매핑하게 된다.

🔘 Reflection API?
정확한 클래스 타입을 알지 못해도 그 클래스의 정보들(타입, 필드, 메서드 등)에 접근할 수 있게 해주는 API이다.

그러나 Reflection API는 생성자의 매개변수 정보를 알 수 없다.
그렇기 때문에 기본 생성자를 만들어줘야 Reflection API가 객체를 생성할 수 있고, 생성된 객체로 필드 값을 매핑할 수 있다.

profile
세상에 기여하는 사람이 되고 싶습니다.

0개의 댓글