遇到的情况:在做短信渠道管理添加时,先要去校验数据库中是否有该产线-短信类型-渠道的记录,如果存在就不添加。

//在库中是否存在该记录
private boolean ifExistChannelConfig(SmsChannelProductConfig smsChannelProductConfig){
ExampleMatcher matcher = ExampleMatcher.matching() //构建对象
.withMatcher("product", ExampleMatcher.GenericPropertyMatchers.contains()) //产线采用“like”的方式查询
.withMatcher("channel", ExampleMatcher.GenericPropertyMatchers.contains()) //渠道采用“like”的方式查询
.withMatcher("type", ExampleMatcher.GenericPropertyMatchers.contains()) //短信类型采用“like”的方式查询
.withIgnorePaths("focus"); //忽略属性:是否关注。因为是基本类型,需要忽略掉 SmsChannelProductConfig condition = new SmsChannelProductConfig();
condition.setProduct(smsChannelProductConfig.getProduct());
condition.setChannel(smsChannelProductConfig.getChannel());
condition.setType(smsChannelProductConfig.getType()); condition.setRate(null);//不允许匹配权重查询 List<SmsChannelProductConfig> list = smsChannelProductConfigRepository.findAll(Example.of(condition, matcher)); if(list == null){
return false;
}else if(list.isEmpty()){
return false;
}else{
return true;
}
}
public interface SmsChannelProductConfigRepository extends JpaRepository<SmsChannelProductConfig, Long> {
}

使用SpringDataJPA进行模糊查询时:

使用findAll方法传入Example参数;

而Example参数需要根据Entity和ExampleMatcher够造;

ExampleMatcher如上述代码;

特别要注意在Entity中,如果Entity中的属性存在的值(如上述例子中的属性rate存在有效值)在ExampleMatcher中没有进行模糊查询,那么就要让该属性为null(如上述例子:condition.setRate(null) ),否则拼接成的SQL中的where语句中不止有模糊查询like,还有rate=#{rate}的判断。

SpringDataJPA模糊查询遇到的坑的更多相关文章

  1. spring-data-jpa模糊查询

    记录一条关于spring-data-jpa模糊查询的语句 方法一: @Query(value="select * from search_key a where a.key_name lik ...

  2. Dapper+Mysql 使用LIKE模糊查询写法踩坑

    LIKE '%@Title%' 会解析成'%'@Title'%' 这里用拼接也是不行的'%'+@Title+'%' 只能用MySQL函数方法拼接 public dynamic GetListByFil ...

  3. mybatis : trim标签, “等于==”经验, CDATA标签 ,模糊查询CONCAT,LIKE

    一.My Batis trim标签有点类似于replace效果. trim 属性, prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条 ...

  4. 【Java框架型项目从入门到装逼】第十五节 - jdbc模糊查询实现(附带详细调试过程)

    上一节,我们实现了用户列表查询,已经按条件精确查询: if(student.getUsername() != null && !"".equals(student. ...

  5. Redis命令:scan实现模糊查询

    转: Redis命令:scan实现模糊查询 2017年12月31日 16:54:33 琦彦 阅读数:22893 标签: redis数据库Redis命令scan模糊查询 更多 个人分类: Redis 所 ...

  6. input动态模糊查询的实现方式

    最近在用jQuery实现动态模糊查询的时候,找了挺久都没有找到像Vue.js的watch属性这么好用的动态模糊查询方法.就分享一下目前遇到的坑和可以实现动态查询的几种方式. 1.jQuery的chan ...

  7. django实战(二)--带多字段模糊查询的分页(也是不容易)

    上节我们实现了分页功能,这节我们要实现对模糊查询后的结果进行分页.(引入了bootstrap框架) urls.py from django.urls import path from . import ...

  8. thinkphp 5 及一下或php项目里实现模糊查询

    想在thinkPHP或者PHP项目实现模糊查询怎么实现呢? 今天在网上搜了一下用 mysql里的 like 就可以实现 怎么用呢? 看代码: 错误用法: where('title','like',$s ...

  9. Mybatis框架的模糊查询(多种写法)、删除、添加(四)

    学习Mybatis这么多天,那么我给大家分享一下我的学习成果.从最基础的开始配置. 一.创建一个web项目,看一下项目架构 二.说道项目就会想到需要什么jar 三.就是准备大配置链接Orcl数据库 & ...

随机推荐

  1. 大数据hadoop与spark的区别

    学习hadoop已经有很长一段时间了,好像是二三月份的时候朋友给了一个国产Hadoop发行版下载地址,因为还是在学习阶段就下载了一个三节点的学习版玩一下.在研究.学习hadoop的朋友可以去找一下看看 ...

  2. Python中的偏函数

    偏函数是从Python2.5引入的一个概念,通过functools模块被用户调用. 偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的 ...

  3. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  4. node基于express的socket.io

    前一段事件,我一个同学给他们公司用融云搭建了一套web及时通信系统,然后之前我的公司也用过环云来实现web及时通信,本人对web及时通信还是非常感兴趣的.私下读了融云和环信的开发文档,然后发现如果注册 ...

  5. bzoj3932 任务查询系统

    Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分. 超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si ...

  6. 第6章 进程控制(3)_wait、exec和system函数

    5. 等待函数 (1)wait和waitpid 头文件 #include <sys/types.h> #include <sys/wait.h> 函数 pid_t wait(i ...

  7. Software Scalability with MapReduce

      Software Scalability with MapReduce Craig Henderson First published online April 2010 The architec ...

  8. css图片变色变暗变亮

    本文章向码农介绍css 图片变色变暗变亮 实例代码如下: <style> *{margin:0;padding:0;list-style:none;} img{border:1px sol ...

  9. 大数据量表中,增加一个NOT NULL的新列

      这次,发布清洗列表功能,需要对数据库进行升级.MailingList表加个IfCleaning字段,所有的t_User*表加个IfCleaned字段.   脚本如下 对所有的t_User表执行 a ...

  10. ICML论文|阿尔法狗CTO讲座: AI如何用新型强化学习玩转围棋扑克游戏

    今年8月,Demis Hassabis等人工智能技术先驱们将来到雷锋网“人工智能与机器人创新大会”.在此,我们为大家分享David Silver的论文<不完美信息游戏中的深度强化学习自我对战&g ...