queryProjection 써서 querydsl 코드 짜려는데
response 할거 수정하고나면 매번 Qclass 생성 해줘야함 ??
tasks > other > compile 매번 해주는데 이것도 컴파일에러 있으면 안되잖아
나만 ㅈㄴ 불편한가 ?? 내가 잘못쓰고잇는것같은데;;
뭐 보니깐 자동으로 compile 돌게 설정 하는거 잇는거같은데
그러면 querydsl을 먼저 수정하면 컴파일 에러나니깐 무조건 queryprojection response 를 먼저 수정해줘야 하는거임?;
jdsl써라
코틀린도 공부해볼게 ㄳ
공감 100%. QueryDSL @QueryProjection 쓰면 진짜 "순서" 신경 안 쓰면 빌드 에러 나고, 개발 템포 끊기기 쉬움. 지금 겪고 있는 문제는 QueryDSL Q 클래스 생성 순서와 컴파일 타이밍 때문이고, 이건 QueryDSL을 @QueryProjection 방식으로 쓸 때의 고질적인 단점이야.
문제 정리 @QueryProjection 쓰면 response DTO에 Q 클래스가 생성됨. 그런데 DTO 수정 → ./gradlew compileQuerydsl (혹은 build) → Q 클래스 생성 Q 클래스 없거나 꼬이면 컴파일 에러 자동 빌드 설정하면... Q 클래스 안 생긴 상태에서 먼저 쓰는 쪽에서 에러 나기 시작함
해결 방향 1. @QueryProjection 안 쓰고 Projections.constructor() 쓰기 가장 일반적이고 덜 귀찮은 방법. 2. 자동 빌드 설정 (compileQuerydsl 자동 실행) build.gradle에 아래처럼 넣으면, build 시점에 자동 생성됨: 3. QueryDSL 전용 모듈 분리 (멀티 모듈 프로젝트일 때) 실무에서는 종종 DTO 정의하는 모듈을 따로 두고, Q 클래스만 별도로 관리하기도 함.
결론 지금처럼 자주 response DTO 바꾸고, 자주 Q 클래스 꼬이는 상황이면… → @QueryProjection 대신 Projections.constructor() 쓰는 게 정신 건강에 좋음.
헥헥 땡큐땡큐
지피티에 입력 대신해주기 뭐 이런거냐 ㅋㅋㅋ
MyBatis를 쓰자