정렬 인프런 강의에서 나온 예시는 회원 정렬 순서 1. 회원 나이 내림차순(desc) 2. 회원 이름 올림차순(asc) 단 2에서 회원 이름이 없으면 마지막에 출력(nulls last) 이 예시를 Querydsl로 짜 볼 것이다. @Test public void sort() throws Exception { em.persist(new Member(null, 100)); em.persist(new Member("member5", 100)); em.persist(new Member("member6", 100)); // when List result = queryFactory .selectFrom(member) .where(member.age.eq(100)) .orderBy(member.age.desc(), ..
Spring JPA 공부/Querydsl
기본 Q-Type 활용 Q클래스 인스턴스를 사용하는 2가지 방법 QMember qMember = new QMember("m"); //별칭 직접 지정 QMember qMember = QMember.member; //기본 인스턴스 사용 이렇게 2가지 방법이 있습니다. 하지만 이것보다 더 간편하게 사용할 수 있는 방법은 static import를 사용하는 것 입니다. 이렇게 static imprort로 사용할 수 있습니다. 쿼리를 보면 별칭으로 member1으로 되어있습니다. 이것은 default 값으로 Qmember에 설정되어 있습니다!! Querydsl을 실행하다가 JPQL 형식을 보고 싶으면 spring.jpa.properties.hibernate.use_sql_comments: true 이걸 appli..
JPQL JPQL은 지금까지 제가 사용한 형식입니다. 쿼리를 짜서 직접 실행하는 스타일입니다. @Test public void startJPQL() throws Exception { //member1을 찾아라. String qlString = "select m from Member m " + "where m.username = :username"; // when Member findMember = em.createQuery(qlString, Member.class) .setParameter("username", "member1") .getSingleResult(); //then assertThat(findMember.getUsername()).isEqualTo("member1"); } 이렇게 jpql로 ..
이번에 방학동안 프로젝트를 하면서 제일 큰 문제가 동적쿼리를 처리하는 부분이었습니다. 동적 쿼리는 주로 조건에 따라 WHERE 절의 일부가 필요한 경우나 정렬 순서를 동적으로 결정해야 하는 경우 등에 사용됩니다. 예를 들어, 사용자가 웹 애플리케이션에서 검색 조건을 입력한 경우, 그 조건에 따라 데이터베이스에 쿼리를 보내야 합니다. 이때 동적 쿼리를 사용하여 해당 조건을 반영한 쿼리를 생성하고 실행할 수 있습니다. 이 부분을 손쉽게 해결해 줄 수 있는게 Querydsl이라고 합니다. 그래서 김영한 강사님의 실전! Querydsl을 듣고 공부해보기로 했습니다!! Querydsl 세팅 저는 스프링부트 3.1.3 을 사용하였고 자바는 17을 사용했습니다. 스프링부트 3 이후는 Querydsl 세팅하는 법이 달..