博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring JPA动态查询
阅读量:4195 次
发布时间:2019-05-26

本文共 1729 字,大约阅读时间需要 5 分钟。

/** * 动态生成where语句 * @param searchArticle * @return */private Specification
getWhereClause(final SearchArticle searchArticle){
return new Specification
() {
@Override public Predicate toPredicate(Root
root, CriteriaQuery
query, CriteriaBuilder cb) {
List
predicate = new ArrayList<>(); if(searchArticle.getPostTimeStart()!=null){
predicate.add(cb.greaterThanOrEqualTo(root.get("postTime").as(Date.class), searchArticle.getPostTimeStart())); } if(searchArticle.getPostTimeEnd()!=null){
predicate.add(cb.lessThanOrEqualTo(root.get("postTime").as(Date.class), searchArticle.getPostTimeEnd())); } if(searchArticle.getRecTimeStart()!=null){
predicate.add(cb.greaterThanOrEqualTo(root.get("recommendTime").as(Date.class), searchArticle.getRecTimeStart())); } if (searchArticle.getRecTimeEnd()!=null){
predicate.add(cb.lessThanOrEqualTo(root.get("recommendTime").as(Date.class), searchArticle.getRecTimeEnd())); } if (StringUtils.isNotBlank(searchArticle.getNickname())){
//两张表关联查询 Join
userJoin = root.join(root.getModel().getSingularAttribute("user",User.class),JoinType.LEFT); predicate.add(cb.like(userJoin.get("nickname").as(String.class), "%" + searchArticle.getNickname() + "%")); } Predicate[] pre = new Predicate[predicate.size()]; return query.where(predicate.toArray(pre)).getRestriction(); } }; }

详情见 :

转载地址:http://mxwli.baihongyu.com/

你可能感兴趣的文章
Struts2 标签库讲解
查看>>
Google Web工具包 GWT
查看>>
材料与工程学科相关软件
查看>>
MPI的人怎么用仪器
查看>>
windows 下AdNDP 安装使用
查看>>
Project 2013项目管理教程(1):项目管理概述及预备
查看>>
ssh客户端后台运行
查看>>
哥去求职,才说了一句话考官就让我出去
查看>>
一位超算中心管理人员的空间
查看>>
Weapons of Mass Destruction, Detection
查看>>
环境资源与相关词汇中英文对照
查看>>
fluorenscence aerodynamic particcle sizer
查看>>
HOME - Research Highlights & Publications
查看>>
Leibniz Institute for Tropospheric Research
查看>>
Laser Spectroscopy Group
查看>>
顺风比EMS强多了!
查看>>
搭建CPU+GPU 集群
查看>>
手把手教你配置Windows2003集群(图)
查看>>
WIN7下开启无线网卡软AP
查看>>
Unofficial Windows Binaries for Python Extension Packages
查看>>