-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
엔티티 클래스 생성 시 생성자 및 Setter 생성과 관련해 질문 드립니다.
22.12.01 22:29 작성 조회수 329
0
해당 강의를 이제 막 시작하고 있는 학생입니다.
queryDSL 환경 세팅을 하다가 엔티티 클래스에 궁금한 점이 생겨서요.
보통 질의에 대한 결과 데이터에 대해 수정이 불가능하도록 불변 객체로 만든다고 하잖아요.
그 때문에 JPA에서 사용하는 엔티티 객체 또한 생성자를 public으로 만들지 않고 Setter의 사용도 피한다고 알고 있습니다.
그런데 위 방법이 JPA로 질의를 해올 때는 문제가 되지 않지만 ( 즉, select할 경우 )
직접 제가 객체를 만들어서 ( new 생성자 사용 ) insert를 하거나, select한 객체에 필드 값을 수정해서 ( setter 사용 ) update를 하는 경우에는 public 생성자도 setter도 모두 필요한 것 아닌가요?..
혹은 제가 잘못된 정보를 알고 있는 것일까요??
select 시 대안으로 해당 결과를 final로 하여 받으면 불변 객체가 되어 조회 이후 데이터 수정을 막을 수 있다고 생각했지만 public 생성자 사용 여부와 setter 사용 여부에 대한 적절한 상황 파악이 어려워 질문 드립니다!
답변을 작성해보세요.
답변 1