kotlin使用spring data jpa(三)

99封情书 提交于 2019-12-03 08:05:16

使用QueryDSL集成查询

QueryDSL是什么?

  1. QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询。
  2. Querydsl可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者是SQL的查询语句,也就是说QueryDSL是基于各种ORM框架以及SQL之上的一个通用的查询框架。
  3. 借助QueryDSL可以在任何支持的ORM框架或者SQL平台上以一种通用的API方式来构建查询。目前QueryDSL支持的平台包括JPA,JDO,SQL,Java Collections,RDF,Lucene,Hibernate Search

下面我们通过一个查询订单的实例来简单集成QueryDSL

首先引入QueryDSL对JPA的支持

 implementation 'com.querydsl:querydsl-jpa:4.2.1'
    //使用kapt激活querydsl apt工具
    kapt "com.querydsl:querydsl-apt:4.2.1:jpa"

执行build会发现生成

build\generated\source\kapt\main\com\example\demo2\entity\QOrderEntity.java

这个类是我们查询的条件,可以进行如下查询,当然条件是可以拼装的

  val page = if (pageIndex <= 1) 1 else pageIndex
        val qOrderMasterEntity = QOrderEntity.orderEntity
        var predicate = qOrderEntity.isNotNull
        predicate =predicate.and( qOrderEntity.orderStatus.eq(11))
        predicate = predicate.and(qOrderEntity.currencyCode.eq("HKD"))
        orderRepository.findAll(predicate, PageRequest.of(page, 10))
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!