QueryDSL与SpringDataJPA学习

作者: 程序员Anthony | 来源:发表于2018-02-12 15:08 被阅读481次

    什么是QueryDSL

    • QueryDSL做为一个通用的查询框架,可以在任何支持的ORM框架或者SQL平台上以一种通用的Java API方式来构建类型安全的查询。目前QueryDSL支持的平台包括 JPA,JDO,原生的JDBC,Java Collections,RDF,Lucene,Hibernate,Hibernate Search以及MongoDB 。
    • 类型安全(Type safety)和一致性(Consistency)是它设计的两大准则。在 Spring Boot 中可以很好的弥补 JPA 的不灵活,实现更强大的逻辑。

    QueryDSL 使用

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

    因为是类型安全的,所以还需要加上Maven APT plugin,使用 APT 自动生成一些类:

    <project>
      <build>
      <plugins>
        ...
        <plugin>
        <groupId>com.mysema.maven</groupId>
        <artifactId>apt-maven-plugin</artifactId>
        <version>1.1.3</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>
        ...
      </plugins>
      </build>
    </project>
    

    QueryDSL 优点

    • IDE的代码提示
    • 几乎没有语法来允许无效的查询
    • 领域类和属性可以线程安全的引用
    • 变更领域类时可以更好的重构

    参考链接

    相关文章

      网友评论

        本文标题:QueryDSL与SpringDataJPA学习

        本文链接:https://www.haomeiwen.com/subject/sbjqtftx.html