本人想要实现的效果如下面sql 语句所示:

select * from user u where u.userid like '% 参数1 %' and u.username like '%参数2%'

通过百度已经实现 动态查询代码如下:

public Page getDataForSearch(PageRequest pageRequest, final JSONObject jSONObjSearch) throws SaggException {

Page page = null;

try {

page = userRepo.findAll(new Specification() {

@Override

public Predicate toPredicate(Root root, CriteriaQuery> query, CriteriaBuilder builder) {

List predicates = new ArrayList();

Predicate predicate = null;

Expression namePath = null;

if (null != jSONObjSearch) {

if (StrKit.notBlank(jSONObjSearch.getString("userid"))) {

namePath = root.get("userid");

predicate = builder.like(namePath, "%" + jSONObjSearch.getString("userid") + "%");

predicates.add(predicate);

}

if (StrKit.notBlank(jSONObjSearch.getString("userName"))) {

namePath = root.get("userName");

predicate = builder.like(namePath, "%" + jSONObjSearch.getString("userName") + "%");

predicates.add(predicate);

}

}

query.where(predicates.toArray(new Predicate[predicates.size()]));

return null;

}

}, pageRequest);

} catch (Exception e) {

// 交易人管理模块异常状态码statusCode用2000开始,2001:数据查询错误

throw new SaggException(StatusCodeUtil.personSearchErr);

}

return page;

}

DAO 层代码如下:

public interface UserRepository extends CrudRepository {

// List findAll(Pageable pageable);

Page findAll(Pageable pageable);// 分页需返回page对象

Page findAll(Specification spe, Pageable pageRequest);

Page findByUseridOrUserNameLike(Pageable pageable, String userid, String userName);

问题: 上面这种写法,好像不能达到我期望的效果,上面这个代码哪里错了?怎么改进?请大神赐教,感激不尽……

jpa 多字段like_Spring Date jpa 多个like匹配查询基础问题?相关推荐

  1. jpa 多字段like_Spring Data JPA 如何进行模糊查询(LIKE) ?

    一. 方法一 1.  Controller层: 方法参数如下,一定要加 "%"+name+"%" /** * @description: * @author: ...

  2. 【JPA】字段访问、属性访问及混合访问

    [JPA]字段访问.属性访问及混合访问 转载:https://www.cnblogs.com/yangchongxing/p/10120318.html 1.字段访问 注解字段,通过反射来获得和设置字 ...

  3. springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出错的解决办法

    springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出错的解决办法 参考文章: (1)springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出 ...

  4. JPA教程:JPA概述、JPA实体生命周期、JPA实体映射关系、JPA查询语言

    JPA定义了Java ORM及实体操作API的标准.本文摘录了JPA的一些关键信息以备查阅. 如果有hibernate的基础,通过本文也可以快速掌握JPA的基本概念及使用. 1 JPA概述 JPA(J ...

  5. ORM框架之Spring Data JPA(二)spring data jpa方式的基础增删改查

    上一篇主要在介绍hibernate实现jpa规范,如何实现数据增删改查,这一篇将会着重spring data jpa 一.Spring Data JPA 1.1 Spring Data JPA介绍: ...

  6. 【Spring Data JPA自学笔记一】JPA是什么?JPA访问数据库初体验

    文章目录 JPA是什么? JDBC的诞生 JPA的诞生 如何使用JPA? 配置JPA 配置pom.xml 配置persistence.xml 实现POJO类 调用JPA方法 关于EntityManag ...

  7. JPA休眠替代方案。 如果JPA或Hibernate对于我的项目而言不够好,该怎么办?

    你好!你好吗? 今天,我们将讨论不建议使用JPA / Hibernate的情况. 在JPA领域之外,我们还有哪些选择? 我们将谈论的是: JPA /休眠问题 解决一些JPA /休眠问题的方法 选择此处 ...

  8. oracle date引入哪个包,oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题...

    环境: spring jdbc 3.2.3.RELEASE oracle 11.2.0.1.0 - Production 生产环境存在大表(3000万数据):WR_MP_HOURW_R,包含复合主键: ...

  9. oracle to_char 和 to_date的区别,斜杠和横杠日期转换,mybatis中入参日期,数据库字段是date的写法

    文章目录 斜线日期转换为横线 这样的时间字符串如何转换20201212040506258 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 mybatis中入参日期,数据库字段是date ...

最新文章

  1. JavaScript OOP(2)定义JavaScript类
  2. WinCE 应用程序开机自动方法
  3. 13.7 线程生命周期状态图、线程常用的方法。
  4. 更改tomcat的request编码方式
  5. zc702运行linux,笔记:ZC702之linux运行
  6. python怎么获取redis中的数据_python 获取的redis里的数据怎么处理
  7. oracle获取行的值给产量,递归oracle sql识别值
  8. 青云QingCloud携手伟仕佳杰打造专业企业级云服务
  9. 蓝桥杯 BASIC-18 基础练习 矩形面积交
  10. JAVA→XML解析EXtensible Markup Language、JSON解析JavaScript Object Notation
  11. Hadoop - 任务调度系统比较
  12. Ubuntu18.04 如何解决编译objective-c出现undefined reference to objc_get_class
  13. Ubuntu16.04深度学习环境+个人桌面配置(CUDA10.1 + cudnn8.0.4 + pytorch1.7)
  14. Python核心编程(第三版)课后习题解答——第二章
  15. 精装房验房项目以及注意事项,业主自己验收必备工具有哪些?精装房验收整改建议
  16. 深度Linux与永中集成Office相聚在未来
  17. Crontab 在线生成器 - Linux计划任务
  18. 使用depends查看64位dll/exe
  19. Skip List——跳表,一个高效的索引技术
  20. Java案例2-1商品入库

热门文章

  1. 【Java】判断某值是否在数组中,使用Arrays类
  2. 【安卓开发】项目的目录结构分析
  3. JMeter性能测试工具简介
  4. 作为开发者发布小程序_如何建立个人品牌作为新开发者
  5. ubuntu安装sqoop1.4.7
  6. Part1 R语言的基本操作
  7. 原版英文书籍《Linux命令行》阅读记录6 | 重定向
  8. Python实现二分法搜索
  9. python文件及异常处理
  10. 双向口 与 准双向口 区别