Querydsl - 정렬 em.persist(new Member(null, 100)); em.persist(new Member("member5", 100)); em.persist(new Member("member6", 100)); List result = queryFactory .selectFrom(member) .where(member.age.eq(100)) .orderBy(member.age.desc(), member.username.asc().nullsLast()) .fetch(); 다른 것은 일반 쿼리와 비슷하다. nullsFirst() null 데이터 있으면 맨 앞으로 nullsLast() null 데이터 있으면 맨 뒤로 이정도는 유용하게 알아두면 좋을 것 같다.~
전체 글
Querydsl - 결과 조회 @Test public void resultFetch() { // List List fetch = queryFactory .selectFrom(member) .fetch(); // 단 건 Member findMember1 = queryFactory .selectFrom(member) .fetchOne(); // 처음 한 건 조회 Member findMember2 = queryFactory .selectFrom(member) .fetchFirst(); // 페이징에 사용 QueryResults results = queryFactory .selectFrom(member) .fetchResults(); } fetch() : 리스트 조회, 데이터 없으면 빈 리스트 반환 fetchO..
검색 조건 쿼리 사실 동적 쿼리 Querydsl로 짜고 싶어서 배우는 것!.. @Test public void search() { Member findMember = queryFactory .selectFrom(member) .where(member.username.eq("member1") .and(member.age.eq(10)) ).fetchOne(); assertThat(findMember.getUsername()).isEqualTo("member1"); } 쿼리를 생각해보면 select * from Member m where m.username = 'member1' and m.age = 10; 이런 쿼리이다. /* select member1 from Member member1 where membe..
Querydsl - 기본 QType 활용 Q클래스 인스턴스를 사용하는 2가지 방법 QMember qMember = new QMember("m"); //별칭 직접 지정 QMember qMember = QMember.member; //기본 인스턴스 사용 확인할 수 있다. 한번 더 줄일 수 있는 방법 import static study.querydsl.entity.QMember.member; // import static study.querydsl.entity.QMember.*; -> 권장 @Test public void startQuerydsl() { Member findMember = queryFactory .select(member) .from(member) .where(member.username.eq..
JPQL vs Querydsl JPQL @SpringBootTest @Transactional public class QuerydslBasicTest { @Autowired EntityManager em; @BeforeEach public void before() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member member2 = new Member("member2", 20, teamA); Member member3 = new Member("member3", 30, t..
QueryDsl 라이브러리 살펴보기 querydsl-apt: Querydsl 관련 코드 생성 기능 제공 QClass 생성해주는 기능 querydsl-jpa: querydsl 라이브러리 아래 selectFrom 이런 메서드 제공 Hello result = query .selectFrom(qHello) .fetchOne(); http://querydsl.com/