순수 jpa 와 queryDsl 실전 관련 오류
아래와 같이 작성했는데 memberJpaRepository. searchWhere() 메서드 호출이 안되네요 ..ㅠㅠ 코드가 문제일까요?
@Repository //@RequiredArgsConstructor public class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory jpaQueryFactory; // 순수 jpa 와 QueryDsl 적용 전 준비 public MemberJpaRepository(EntityManager em) { this.em = em; this.jpaQueryFactory = new JPAQueryFactory(em); } List<MemberTeamDto> searchByBuilder(MemberSearchCond condition){ // BooleanBuilder 동적쿼리 BooleanBuilder builder = new BooleanBuilder(); //StringUtils.hasTest() import stirng.framework -> null, "" 값에 대한 boolean 값 반환 if(hasText(condition.getUsername())){ builder.and(member.username.eq(condition.getUsername())); } if(hasText(condition.getTeamName())){ builder.and(team.name.eq(condition.getTeamName())); } //age 는 null 값 허용 if (condition.getAgeGoe() != null) { builder.and(member.age.goe(condition.getAgeGoe())); } if(condition.getAgeLoe() != null){ builder.and(member.age.loe(condition.getAgeLoe())); } return jpaQueryFactory .select (Projections.constructor( MemberTeamDto.class, member.id, member.username, member.age, team.id, team.name)) .from(member) .leftJoin(member.team,team) .where(builder) .fetch(); } List<MemberTeamDto> searchByWhere(MemberSearchCond condition){ return jpaQueryFactory .select(Projections.constructor(MemberTeamDto.class, member.id, member.username, member.age, team.id, team.name)) .from(member) .leftJoin(member.team, team) .where( usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeLoe()), ageLoe(condition.getAgeLoe()) ).fetch(); } private BooleanExpression usernameEq(String username){ return StringUtils.hasText(username) ? member.username.eq(username): null; } private BooleanExpression teamNameEq(String teamName){ return StringUtils.hasText(teamName) ? team.name.eq(teamName): null; } private BooleanExpression ageGoe(Integer ageGoe){ return ageGoe!= null ? member.age.goe(ageGoe): null; } private BooleanExpression ageLoe(Integer ageLoe){ return ageLoe != null ? member.age.loe(ageLoe): null; } }
답변 1
0
안녕하세요. 빛혜원 님
도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
감사합니다.
SpringBoot 4.X에서의 Querydsl 설정
0
96
2
querydsl 오픈소스에 대한 질문
1
76
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
111
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
322
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
71
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
162
1
querydsl sum() 메서드 없어요.
0
160
2
build 디렉터리 생성
0
140
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
114
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
93
1
오타 제보 드립니다.
0
73
2
벌크 연산과 flush, clear
0
76
1
Run As Intellij 로 변경시 Q타입 import 불가
0
89
1
QHello import하기 문제 발생
0
148
2
등록된 함수 보는법(H2Dialect) 질문
0
69
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
199
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
202
1
querydsl 설정 문제
0
222
2
quey dsl 설정부분
0
158
2
count 쿼리 관련 질문입니다!
0
75
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
89
1
답변부탁드리겠습니다.
0
90
2
(OrderSpecifier)관련 내용 어디있을가요
0
66
1
중급문법 벌크연산에서
0
83
2





