Spring/JPA2 @NoArgsConstructor(access = AccessLevel.PROTECTED) 쓰는 이유 엔터티 혹은 DTO 작성시 @NoArgsConstructor(access = AccessLevel.PROTECTED) 어노테이션을 많이 사용한다. @NoArgsConstructor에 AccessLevel설정으로 AccessLevel.PUBLIC, AccessLevel.PRIVATE, AccessLevel.PROTECTED가 있다. 왜 @NoArgsConstructor(access = AccessLevel.PROTECTED)를 많이 쓰는 것일까? 문제점부터 알아보자. 문제점 @NoArgsConstructor(access = AccessLevel.PUBLIC): 1. 기본 생성자를 사용하는 방식을 여러 곳에서 생성이 가능하다.(BAD) 2. 객체 데이터에 빈값이 들어가는 일관성에 문제가 생길 수 있다. @N.. 2023. 10. 11. [JPA] OneToMany 관계일 때 컬렉션 조회를 통한 쿼리성능개선 다음은 닥터 질문 답변 게시판 상황이다. 멤버는 질문을 할 수 있고 닥터는 답변을 달 수 있다. 질문과 답변은 OneToMany 관계이다. 여기서 문제는 질문 하나에 대해서 답변이 N개가 달린다면 N번의 쿼리가 나간다는 점이다. 답변 N개를 한번에 조회할 수 있는 방법이 있을까? 컬렉션 조회를 이용하면 된다. - 닥터 질문 답변 게시판 답변 쿼리는 다음과 같다. 문제점: 답변 쿼리를 조회하면 답변한 닥터 쿼리가 3번 나가게 된다. 질문 하나에 대해서 닥터 3명이 답변을 단 상황에서 OneToMany이므로 쿼리가 3번 나갔다. 이러면 성능에 문제가 생기기에 컬렉션 조회를 이용한다. 해결방안: application.yml 파일을 수정하자. jpa: hibernate: ddl-auto: update # 어플리.. 2022. 11. 5. 이전 1 다음