美文网首页
spring jpa 动态查询

spring jpa 动态查询

作者: allblux | 来源:发表于2017-02-23 16:20 被阅读0次

在业务中需要动态查询,多方查询之后感觉还可以.简单的动态查询

代码如下

 override fun findAll(map: Map<String, Any>, pageable: Pageable): Page<SnEntity> {
        var mySpec: Specification<SnEntity> = Specification { root: Root<SnEntity>, criteriaQuery, criteriaBuilder ->
            var exp1: Path<String>? = root.get("no")
            var exp2: Path<String>? = root.get("createBy")
            var exp3: Path<Int>? = root.get("status")
            var type = map["type"]
            var status = map["status"]
            var predicate: Predicate = criteriaBuilder.conjunction()
            if ((status as String).isNotBlank()) {
                predicate.expressions.add(criteriaBuilder.equal(exp3, status))
            }
            if ((type as String).isNotBlank()) {
                predicate.expressions.add(criteriaBuilder.or(criteriaBuilder.like(exp1, "%$type%"),
                        criteriaBuilder.like(exp2, "%$type%")))
            }
            predicate
        }
        return snRepository.findAll(mySpec, pageable)
    }

mysql 的find_in_set也是很好用
在使用find_in_set的时候 jpa好像是并不支持这样搜索。
所以决定用原生sql,此时产生一个问题。之前传一个pageable参数进去后,jpa就会自动分页排序,最后在stackoverflow上找到一个解决方法
原文地址

 @Query(value = "select * from user_invest  where find_in_set(?1,investField)>0 and institution like %?2% ORDER BY ?#{#pageable}",
            countQuery = "select count(*) from user_invest  where find_in_set(?1,investField)>0 and institution like %?2%  ",
            nativeQuery = true)
    fun  findByFieldAndKeyword(filed: Int, keyword: String, pageable: Pageable): Page<InvestEntity>

记录一下,日后参考

相关文章

  • 7 Spring-data-jpa查询方法

    springdata-jpa 八种查询方法 Spring Data JPA 简单查询--接口方法 jpa动态查询-...

  • Spring Data JPA

    Spring Data JPA,一种动态条件查询的写法 我们在使用SpringData JPA框架时,进行条件查询...

  • springboot jpa JpaSpecificationE

    示例一 Spring Data JPA之JpaSpecificationExecutor复杂动态查询实例 示例二 ...

  • 关于JPA中动态查询的做法

    原文出处: 【一目了然】Spring Data JPA使用Specification动态构建多表查询、复杂查询及排...

  • spring jpa 动态查询

    在业务中需要动态查询,多方查询之后感觉还可以.简单的动态查询 代码如下 mysql 的find_in_set也是很...

  • SpringBoot+Spring JPA基础使用

    Spring JPA集成基础查询实例复杂查询+分页一对多查询及多对多查询 1. Spring JPA集成 1.1 ...

  • Spring Data JPA进阶

    Spring Data JPA进阶 目录 ddl属性配置 通过解析方法名查询 关联查询 spring.jpa.pr...

  • JPA查询

    jpa常用的查询方式 jpa官方文档 https://docs.spring.io/spring-data/jpa...

  • Spring Data JPA 基本使用

    JPA查询传递参数和对象 参数 对象 通过spring-data-jpa进行复杂对象查询 通过spring-dat...

  • JPA-复杂查询

    时间相关查询 Spring data jpa 条件查询-按时间段查询Jpa查询排序,时间范围查询,当天时间范围查询...

网友评论

      本文标题:spring jpa 动态查询

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