[java] Java Querydsl을 사용하여 데이터베이스 테이블 필터링하기

Java 개발자들은 데이터베이스 테이블에서 원하는 데이터를 가져오기 위해 다양한 방법을 사용합니다. 이 중에서 Querydsl은 유용한 도구로 알려져 있습니다. Querydsl은 Java에서 타입 안정성을 가진 SQL 쿼리를 작성할 수 있게 도와주는 라이브러리입니다. 이번 포스트에서는 Querydsl을 사용하여 데이터베이스 테이블을 필터링하는 방법에 대해 알아보겠습니다.

1. Querydsl 의존성 추가하기

Querydsl을 사용하기 위해 먼저 프로젝트에 Querydsl 의존성을 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음과 같이 의존성을 추가합니다:

<dependency>
  <groupId>com.querydsl</groupId>
  <artifactId>querydsl-core</artifactId>
  <version>4.4.0</version>
</dependency>

Gradle을 사용하는 경우 build.gradle 파일에 다음과 같이 의존성을 추가합니다:

compile('com.querydsl:querydsl-core:4.4.0')

의존성을 추가한 후 프로젝트를 다시 빌드해야 합니다.

2. Querydsl Query 작성하기

데이터베이스 테이블을 필터링하기 위해 Querydsl Query를 작성해야 합니다. Querydsl은 SQL 쿼리를 Java 코드로 작성할 수 있도록 해줍니다. 다음은 예시 코드입니다:

QUser qUser = QUser.user;
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);

List<User> filteredUsers = queryFactory.selectFrom(qUser)
               .where(qUser.age.between(20, 30)
               .and(qUser.isActive.isTrue())
               .fetch();

위의 코드에서 QUser는 Querydsl에서 생성한 엔티티 클래스입니다. JPAQueryFactory는 QueryFactory의 구현체로, EntityManager를 통해 Querydsl 쿼리를 실행할 수 있게 해줍니다. 마지막으로 where 절을 사용하여 원하는 조건으로 데이터를 필터링하고 fetch 메서드를 호출하여 결과를 가져옵니다.

3. Querydsl 조건 추가하기

Querydsl을 사용하면 여러 가지 조건을 쉽게 추가할 수 있습니다. 다음은 일반적인 조건을 추가하는 방법에 대한 예시입니다:

이 외에도 다양한 조건을 추가할 수 있으며, Querydsl 문서를 참조하여 더 자세한 내용을 알아볼 수 있습니다.

4. 결과 사용하기

Querydsl로 필터링한 결과 데이터를 사용할 수 있습니다. 예를 들어, 필터링된 사용자 데이터를 화면에 출력하거나 다른 작업에 활용할 수 있습니다. 다음은 결과를 사용하는 예시입니다:

for (User user : filteredUsers) {
    System.out.println(user.getName());
}

위의 코드는 필터링된 사용자 데이터를 반복문을 통해 하나씩 출력하는 예시입니다.


참고 자료: