Jpa条件查询组合查询and 和 or同时用
更多精彩文章欢迎关注公众号“Java之康庄大道”

条件查询,各个条件之间是and并且&&关系,其中地理信息省市区县,例如河北省,要包括其下属所有城市,每个城市包括下属区县,只选择河北省时候,要查询的是河北省所有的,他们之间是or 或者 ||关系
如果写sql,很好完成where t.id = 1 and t.name=‘hbs and (t.region='河北省‘ or t.region='石家庄市’........等等)
如果JPA怎么写条件查询呢?
感谢 https://blog.csdn.net/langyan122/article/details/80608383 这篇文章的作者。
我的应用如下所示:
public Page<Crossing> findAll(String crossingCode, String crossingName, Integer crossingType, Integer lightshape,
String region, Pageable pageable) { Page<Crossing> pageList = getCrossingDao().findAll((root,query,cb)-> { List<Predicate> list = new ArrayList<Predicate>();
if(crossingCode!=null && crossingCode!="") {
list.add(cb.like(root.get("code"), "%"+crossingCode+"%"));
}
if(crossingName!=null && crossingName!="") {
list.add(cb.like(root.get("name"), "%"+crossingName+"%"));
}
if(crossingType!=-1) {
list.add(cb.equal(root.get("crossingTypeId"), crossingType));
}
if(lightshape!=-1) {
list.add(cb.equal(root.get("lightshapeId"), lightshape));
} Predicate[] array = new Predicate[list.size()];
Predicate Pre_And = cb.and(list.toArray(array)); List<Predicate> listOr = new ArrayList<Predicate>();
if(region!="") {
String arr[] = region.split(",");
for(int i=0;i<arr.length;i++) {
if(arr[i]!=null && arr[i]!="") {
listOr.add(cb.equal(root.get("regionId"), arr[i])); }
}
Predicate[] arrayOr = new Predicate[listOr.size()];
Predicate Pre_Or = cb.or(listOr.toArray(arrayOr));
return query.where(Pre_And,Pre_Or).getRestriction();
}else{
return null;
} }, pageable); return pageList;
}
遇到的困难,记载之;
Jpa条件查询组合查询and 和 or同时用的更多相关文章
- FLASK-SQLALCHEMY如何使用or和and条件进行组合查询
		FLASK-SQLALCHEMY如何使用or和and条件进行组合查询 http://www.cherishlau.site/2018/03/29/flask-sqlalchemy-use-or-and ... 
- Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询
		1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ... 
- spring boot jpa 多条件组合查询带分页的案例
		spring data jpa 是一个封装了hebernate的dao框架,用于单表操作特别的方便,当然也支持多表,只不过要写sql.对于单表操作,jpake可以通过各种api进行搞定,下面是一个对一 ... 
- yii下多条件多表组合查询以及自写ajax分页
		多条件组合查询主要用到yii的CDbCriteria,这个类很多oem框架都有,非常好用. 前台表单 前台查询表单效果是这样的,多个条件组,每个组里放多个input,name为数组.当任何一个复选框被 ... 
- 序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
		查询窗口中可以设置很多查询条件 表单中输入的内容转为datagrid的load方法所需的查询条件向原请求地址再次提出新的查询,将结果显示在datagrid中 转换方法看代码注释 <td cols ... 
- solr的多条件组合查询和solr的范围查询【转】
		solr的多条件组合查询和solr的范围查询 版权声明:本文为博主原创文章,供大家参考,但不要抄袭哦! 存在问题:为了减轻数据库的访问压力,往往我们将必要的数据存储到solr中,并给部分字段建立索引, ... 
- jsp 多条件组合查询
		web层: public String query(HttpServletRequest request, HttpServletResponse response) throws ServletEx ... 
- 《MySQL数据操作与查询》- 维护学生信息、老师信息和成绩信息  支持按多种条件组合查询学生信息和成绩信息
		综合项目需求 一.系统整体功能 系统需支持以下功能: 维护学生信息.老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息 学生 Student(id,班级id,学号,姓名,性别,电话,地址,出 ... 
- Spring Data JPA中的动态查询 时间日期
		功能:Spring Data JPA中的动态查询 实现日期查询 页面对应的dto类private String modifiedDate; //实体类 @LastModifiedDate protec ... 
随机推荐
- mysql 中显示 table 的基本信息
			mysql> show table status like 'j_position' \G . row *************************** Name: j_position ... 
- 转:zip 和 unzip 的参数说明
			收集的资料: 1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip: # zip -r yasuo.zip abc.txt dir1 2.我下载了一个yasuo.zip文件, ... 
- 使用jQuery的validation插件实现表单校验
			前端表单校验: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ... 
- Oracle Metadata
			http://www.devart.com/dotconnect/oracle/articles/metadata.htmlhttp://dcx.sybase.com/1101/en/dbprogra ... 
- python gif动态图的合成
			1.确保imageio已经安装 pip install imageio 2.函数准备 def create_gif(image_list, gif_name): import imageio fram ... 
- 【Android】14.0 UI开发(五)——列表控件RecyclerView的瀑布布局排列实现
			1.0 列表控件RecyclerView的瀑布布局排列实现,关键词StaggeredGridLayoutManager LinearLayoutManager 实现顺序布局 GridLayoutMan ... 
- H5前端正则验证插件
			最近学习了一个新的关于前端正则验证的插件,‘jQuery.validate.js ’ 要用这个插件 首先得有插件,下载jquery.validate.min.js 和jq文件并引入. 我把它简单的通俗 ... 
- SQLSERVER的逆向工程,将数据库导入到PowerDesigner中
			原文:http://blog.csdn.net/linianzhenti/article/details/42938595 PD是一款不错的数据库设计工具,在佩特来这个项目中,起初,合作伙伴用PD大体 ... 
- 实用爬虫-02-爬虫真正使用代理 ip
			实用爬虫-02-爬虫真正使用代理 ip 因为这里呢,是实用爬虫,想要仔细学习一些基础的,可以去查看: Python 爬虫教程:https://www.cnblogs.com/xpwi/category ... 
- 解决nginx使用proxy_pass反向代理时,session丢失的问题
			这2天在测试Nginx作为反向代理到Tomcat应用时,session丢失的问题.经过一系列查看官方文档和测试,发现如下:1.如果只是host.端口转换,则session不会丢失.例如: ... 
