[QueryDSL] 기본 메서드와 숫자 비교 메서드

JOY·2023년 5월 17일
0

[Java]

목록 보기
15/15
post-thumbnail

QueryDSL

  • Java 기반의 동적 쿼리 작성이 가능한 라이브러리
  • SQL 쿼리문을 안전하고 간결하게 작성할 수 있는 도구
  • JPA, Hibernate, MyBatis등 다양한 ORM 프레임워크와 함께 사용할 수 있다

ORM 프레임워크

  • 객체와 관계형 데이터베이스간의 매핑을 자동화 하는 기술 또는 프레임워크
  • Object-Relational Mapping의 약자
    개발자가 직접 SQL문을 작성하지 않고도 DB와 상호작용할 수 있도록 해줘서 편리함!

기본 메서드

우리가 알고있는 SQL 모든 절을 그대로 사용할 수 있다

  • select()
  • from()
  • where()
  • join()
  • orderBy()
  • groupBy()
  • having()
select member from member
where age > 19
order by name desc;

👇위의 SQL 문을 QueryDSL을 사용하여 바꿔보자!

JPAQueryFactory qFactory = new JPAQueryFactory(entityManager);

List<Member> members = qFactory
    .select(member)
    .from(member)
    .where(member.age.gt(19))
    .orderBy(member.name.desc())
    .fetch();
  • 테이블 전체를 조회할 것이라면 selectFrom()을 사용하여 쿼리문을 줄일 수 있다
  • fetch() : select 절 실행 및 결과를 List<T> 형태로 반환
  • fetchOne() : 단일 엔티티 조회
  • fetch() : 여러 엔티티 조회
  • fetchSelect() : 특정 필드만 선택하여 조회

숫자 비교 메서드

  • eq : 값이 일치하는지 확인
query.where(entity.field.eq(100));
  • ne : 값이 일치하지 않는지 확인
query.where(entity.field.ne(100));
  • lt : 값보다 작은지 확인
query.where(entity.field.lt(100));
  • gt : 값보다 큰지 확인
query.where(entity.field.gt(100));
  • loe : 값보다 작거나 같은지 확인
query.where(entity.field.loe(100));
  • goe : 값보다 크거나 같은지 확인
query.where(entity.field.goe(100));
profile
Just Do IT ------- 🏃‍♀️

0개의 댓글