Projections.fields()와 Projections.bean() 질문입니다.
미해결
실전! Querydsl
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] >> 로컬 환경 스프링부트 3.1.2 hibernate-core 6.2.6 안녕하세요! Projections.bean()은 setter를 이용해서 인스턴스를 만든다고 하셨는데, getter/setter를 전부 제거해도 테스트를 통과하고 인스턴스도 잘 초기화가 되어버렸습니다. 좀 이상하기도 하고 bean()와 fields()가 동작 방식이 거의 같은 것 같아 확인해보니 new QBean<T>를 할 떄 fields()에는 fieldAccess 파라미터에 true를 인수로 넣는 차이밖에 없더라고요. public static <T> QBean<T> fields(Class<? extends T> type, Expression<?>... exprs) { return new QBean<T>(type, true, exprs); } 라이브러리 코드를 보면 fieldAccess가 true면 this.fields에 값을 바인딩하고 this.setters는 emptyList로 초기화하고 fieldAccess가 false일 경우 this.fields를 emptyList로 초기화하고 this.setters에 값을 바인딩하는데요. if (fieldAccess) { this.fields = initFields(bindings); this.setters = Collections.emptyList(); } else { this.fields = Collections.emptyList(); this.setters = initMethods(bindings); } 실무에서 활용할 때 이 두 함수 관련해서 주의점이 있을까요?
- java
- jpa
- projections
- dto
- bean
- fields





