zoukankan      html  css  js  c++  java
  • 如何在Spring Data JPA中引入Querydsl

    一、环境说明

    基础框架采用Spring Boot、Spring Data JPA、Hibernate。在动态查询中,有一种方式是采用Querydsl的方式。

    二、具体配置

    1、在pom.xml中,引入相关包和配置插件。

    (1)引入包(注:不需要版本号,Spring Boot 会自动匹配合适的版本)

    <!-- Querydsl相关包 -->         
             <dependency>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-jpa</artifactId>
            </dependency>
            
            <dependency>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-apt</artifactId>
            </dependency>

    (2)配置插件:主要用来生成“查询对象”。

                <plugin>
                  <groupId>com.mysema.maven</groupId>
                  <artifactId>maven-apt-plugin</artifactId>
                  <version>1.0.4</version>
                  <executions>
                    <execution>
                      <phase>generate-sources</phase>
                      <goals>
                        <goal>process</goal>
                      </goals>
                      <configuration>
                        <outputDirectory>target/generated-sources</outputDirectory>
                        <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                      </configuration>
                    </execution>
                  </executions>
                </plugin>             

     

    2、设置源文件夹

    经过上面pom.xml的配置后,就在 target/generated-sources 文件夹下面自动生成“查询对象”。需要将该文件夹设置成“源文件夹”,以便可以将下面的java文件进行编译使用。

    生成的查询对象,都是在原实体(bo)类的名字前,加上 Q 表示。

    3、dao中继承接口QueryDslPredicateExecutor

     

    4、在service层使用 Querydsl方式进行是查询,例如:

    三、写在最后

    此文仅作为引入Querydsl的笔记,并不代表作者本人推荐使用Querydsl。就实际应用而言,个人更倾向于使用 JPA Criteria 的方式来实现动态查询,其接口是JpaSpecificationExecutor。

     

  • 相关阅读:
    Appium + Python自动化
    Appium + python自动化
    基于python的request库,模拟登录csdn博客
    利用uiautomator实现Android移动app启动时间的测试
    JavaScript 闭包
    Vue.js 参考资料汇总
    JVM垃圾回收策略
    JVM内存分配策略
    synchronized底层原理
    HTTPS加密原理
  • 原文地址:https://www.cnblogs.com/rulian/p/7212482.html
Copyright © 2011-2022 走看看