JPA/Querydsl17 Querydsl 13 - 조회 API 컨트롤러 개발 조회 API 컨트롤러 개발 편리한 데이터 확인을 위해 샘플 데이터를 추가할 것이다. 샘플 데이터 추가가 테스트 케이스 실행에 영향을 주지 않도록 다음과 같이 프로파일을 설정하자. spring: profiles: active: local 현재 프로젝트의 application.yml을 보면 아래와 같다.(main의 yml) spring: datasource: url: jdbc:h2:tcp://localhost/~/datajpa username: king password: driver-class-name: org.h2.Driver profiles: active: local #local jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: tr.. 2022. 1. 22. Querydsl 12 - 동적쿼리와 성능 최적화 조회(where 절 파라미터) Where절에 파라미터를 사용한 예제 이미 이전에 본 방법이다(여기 참고). 리퍼지토리에 아래와 같이 작성가능하다. public List search(MemberSearchCondition condition){ return queryFactory .select(new QMemberTeamDto( 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.getAgeGoe()), ageLoe(conditi.. 2022. 1. 22. Querydsl 11 - 순수 JPA 리포지토리와 Querydsl, 동적쿼리 Builder 순수 JPA와 Querydsl • 순수 JPA 리퍼지토리와 Querydsl • 동적쿼리 Builder 사용 • 동적쿼리 Where 사용 • 조회 API 컨트롤러 개발 1. 순수 JPA리퍼지토리와 Querydsl 순수 JPA를 사용한 리퍼지토리를 만들고, 테스트를 해본 뒤, Querydsl로 바꾸면서 둘을 비교해보자. 먼저 순수 JPA 리퍼지토리는 아래와 같다. @Repository public class MemberJpaReposiotory { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaReposiotory(EntityManager em) { this.em = em; this.quer.. 2022. 1. 21. Querydsl 10 - SQL function 호출하기 SQL function은 JPA와 같이 Dialect에 등록된 내용만 호출할 수 있다. replace 함수 사용 @Test void sqlFunction() { List result = queryFactory .select(Expressions.stringTemplate( "function('replace', {0}, {1}, {2})", member.username, "member", "M")) .from(member) .fetch(); for (String s : result) System.out.println("s = " + s); } 출력결과: s = M5 s = M1 s = M2 s = M3 s = M4 원래는 member1, member2, ... 이렇게 저장되었던 회원 이름이 M1, M2로 .. 2022. 1. 20. 이전 1 2 3 4 5 다음