博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法
阅读量:6546 次
发布时间:2019-06-24

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

Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法

今天测试一个搜索的模块用到模糊查询查询是否包含指定对象又因为使用到了分页

所以我们这里就使用了Restrictions.like() 来处理

这个方法有三个参数

如下

 

Restrictions.like(propertyName, value, matchMode)

第一个参数表示需要查询的字段名第二个参数表示需要匹配的数据第三个参数表示查询的精度默认是精确匹配相当于sql的 like 'value'

 

第三个参数是可选的

 

第一和第二个参数好理解主要是第三个参数他可以是以下的值

 

MatchMode.EXACT 精确匹配,相当于 like 'value'MatchMode.ANYWHERE 字符串在中间位置,相当于 like '%value%'MatchMode.START 字符串在最前面的位置,相当于“like 'value%'MatchMode.END 字符串在最后面的位置,相当于“like '%value'

默认情况下是第一个精确匹配

 

如果你只想使用两个参数想实现后面的三种查询方法那我们就需要在参数中构造

如下面的代码

 

criteria.add(Restrictions.ilike("shopdes", "%"+stext+"%"));

也就是说上面的代码和下面的代码是一样的结果

criteria.add(Restrictions.ilike("shopdes", stext,MatchMode.ANYWHERE));

如果您的代码直接是这样

criteria.add(Restrictions.ilike("shopdes", stext));

那你的结果和上面的结果是不一样的哦这个是精准查找了不是模糊查找了

 

 

下面的代码也是一个意思

criteria.add(Restrictions.ilike("shopdes", stext+"%"));  criteria.add(Restrictions.ilike("shopdes", stext,MatchMode.START));

下面的代码也是一个意思

 

criteria.add(Restrictions.ilike("shopdes", "%"+stext));  criteria.add(Restrictions.ilike("shopdes", stext,MatchMode.END));

我们还可以这样进行组合模糊查询如下代码

 

 

criteria.add(Restrictions.or(Restrictions.like("shopdes", stext,MatchMode.ANYWHERE),Restrictions.like("shopname", stext)));

 

以上代码表示查询如果这个字符串和shopdes是模糊匹配或者和shopnama是精准匹配都符合我们的要求

 

关于DetachedCriteria的其他一些查询方法整理如下

Restrictions.eq() 这个就是比较和java的equalsleisi Restrictions.allEq() 参数为Map对象使用key/value进行多个等于的对比相当于多个Restrictions.eq()的效果 Restrictions.gt() 大于

Restrictions.ge() 大于等于 Restrictions.lt() 小于 Restrictions.le() 小于等于 Restrictions.between() 和SQL的between子句类似 Restrictions.in() 对应SQL的in子句 Restrictions.and() and关系 Restrictions.or() or关系 Restrictions.isNull() 判断属性是否为空为空返回true否则返回false Restrictions.isNotNull() 与Restrictions.isNull()相反 Order.asc() 根据传入的字段进行升序排序 Order.desc() 根据传入的字段进行降序排序

转载于:https://www.cnblogs.com/oshoh/p/8296012.html

你可能感兴趣的文章
BZOJ3994:[SDOI2015]约数个数和——题解
查看>>
3、EJB3.0开发第一个无会话Bean和客户端(jboss4.2.3)
查看>>
git fetch & pull详解
查看>>
boost_1.63.0编译VS2013
查看>>
jQuery 插件-(初体验一)
查看>>
PHP语言 -- Ajax 登录处理
查看>>
基于js的CC攻击实现与防御
查看>>
我的家庭私有云计划-19
查看>>
项目实践中Linux集群的总结和思考
查看>>
关于使用Android NDK编译ffmpeg
查看>>
监控MySQL主从同步是否异常并报警企业案例模拟
查看>>
zabbix从2.2.3升级到最新稳定版3.2.1
查看>>
我有一个网站,想提高点权重
查看>>
浅谈(SQL Server)数据库中系统表的作用
查看>>
微软邮件系统Exchange 2013系列(七)创建发送连接器
查看>>
程序员杂记系列
查看>>
【树莓派】制作树莓派所使用的img镜像(一)
查看>>
理解网站并发量
查看>>
spring整合elasticsearch之环境搭建
查看>>
TensorFlow 架构与设计-编程模型【转】
查看>>