스프링 데이터 Common 10. QueryDSL 연동 - KwangtaekJung/inflearn-spring-data-jpa-keesun GitHub Wiki

스프링 데이터 Common: QueryDSL

findByFirstNameIngoreCaseAndLastNameStartsWithIgnoreCase(String firstName, String lastName)

  • 여러 쿼리 메소드는 대부분 두 가지 중 하나.

    • Optional findOne(Predicate): 이런 저런 조건으로 무언가 하나를 찾는다.
    • List|Page|.. findAll(Predicate): 이런 저런 조건으로 무언가 여러개를 찾는다.
    • QuerydslPredicateExecutor 인터페이스
  • QueryDSL

  • 스프링 데이터 JPA + QueryDSL

    • 인터페이스: QuerydslPredicateExecutor
    • 구현체: QuerydslPredicateExecutor
  • 연동 방법

    • 기본 리포지토리 커스터마이징 안 했을 때. (쉬움)
    • 기본 리포지토리 커스타마이징 했을 때.
      • <=SimpleJpaRepository 대신 QuerydslJpaRepository를 상속 받아서 사용하면 된다.
      • (추가) deprecated되었다. 그냥 SimpleJpaRepository를 쓰면 됨.

의존성 추가

        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
        </dependency>


            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/generated-sources/java</outputDirectory>
                            <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
public interface AccountRepository extends JpaRepository<Account, Long>, QuerydslPredicateExecutor<Account> {
}
⚠️ **GitHub.com Fallback** ⚠️