개발일기 (94) 썸네일형 리스트형 QueryDsl정렬 QueryDsl에서 정렬은 간단하게 할 수 있습니다. 먼저 예제에서 정렬 순서로는 1, 회원 나이 내림차순(desc) 2, 회원 이름 올림차순(asc) 3, 만약 회원이름이 null 이라면 제일 마지막에 조회 입니다. 예제) QMember qmember = QMember.member; em.persist(new Member(null,100)); em.persist(new Member("member5",100)); em.persist(new Member("member6",100)); List result = queryFactory .selectFrom(qmember) .where(qmember.age.eq(100)) .orderBy(qmember.age.desc() , qmember.username.asc.. QueryDsl 결과조회 QueryDsl에 여러가지 결과 조회에 대하여 학습하였습니다. - fetch() : 리스트 조회, 데이터 없으면 빈 리스트 반환 - fetchOne() : 단건 조회 - 결과 없으면 null - 결과가 둘 이상이면 com.querydsl.core.NonUniqueResultException 이 뜸 - fetchFirst() : limit(1).fetchOne() - fetchResults() : 페이징 정보 포함, total count 쿼리 추가 실행 - fetchCount() : count쿼리로 변경해서 count 수 조회 예제1) List member = queryFactory .selectFrom(qmember) .fetch(); - 리스트를 조회합니다. 예제2) Member fetchOne = q.. QueryDsl Where 절에서 And 사용법 두가지 1) @Test public void search(){ QMember qmember = QMember.member; Member findeMember = queryFactory .selectFrom(qmember) .where(qmember.username.eq("member1") .and(qmember.age.eq(10))) .fetchOne(); Assertions.assertThat(findeMember.getUsername()).isEqualTo("member1"); } - .and를 통하여 사용 2) @Test public void search2(){ QMember qmember = QMember.member; Member member = queryFactory .selectFrom(qmembe.. JQPL이 제공하는 검색 조건 member.username.eq("member1"); // username = "member1"; member.username.ne("member1"); // username != "member1"; member.username.eq("member1").not(); // username != "member1"; member.username.isNotNull(); // 이름이 is not null member.age.in(10,20); //age in(10,20) member.age.notIn(10,20); // age not in(10,20) member.age.between(10,30); // between 10, 30 member.age.goe(30); // age >= 30 member.age.g.. QueryDsl 단건 조회 샘플 @Test public void startQueryDsl(){ JPAQueryFactory queryFactory = new JPAQueryFactory(em); QMember m = new QMember("m"); Member findMember = queryFactory .select(m) .from(m) .where(m.username.eq("member1")) .fetchOne(); Assertions.assertThat(findMember.getUsername()).isEqualTo("member1"); } - QMember m = new QMember("m"); - > QMember의 별칭 지정 - QMember qmember = Qmember.member; - > 기본 인스턴스 사용 - .f.. JPQL 조회 TEST @Test public void startJPQL(){ //member1을 찾아라 Member findMember = em.createQuery("select m from Member m where username = :username",Member.class) .setParameter("username","member1") .getSingleResult(); Assertions.assertThat(findMember.getUsername()).isEqualTo("member1"); } username이 "member1"인 단일 데이터 조회 Assertions.assertThat 을 통하여 정합성 확인 이전 1 ··· 9 10 11 12 다음