-
Criteria 为条件查询
Criterion 为条件
通过Criteria的add即可将Criterion条件添加
-
方法说明
方法
|
说明
|
Restrictions.eq
|
=
|
Restrictions.allEq
|
利用Map来进行多个等于的限制
|
Restrictions.gt
|
>
|
Restrictions.ge
|
>=
|
Restrictions.lt
|
<
|
Restrictions.le
|
<=
|
Restrictions.between
|
BETWEEN
|
Restrictions.like
|
LIKE
|
Restrictions.in
|
in
|
Restrictions.and
|
and
|
Restrictions.or
|
or
|
Restrictions.sqlRestriction
|
用SQL限定查询
|
2,QBC常用限定方法
Restrictions.eq --> equal,等于.
Restrictions.allEq -->
参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq的效果
Restrictions.gt --> great-than > 大于
Restrictions.ge --> great-equal >=
大于等于
Restrictions.lt --> less-than, < 小于
Restrictions.le --> less-equal <=
小于等于
Restrictions.between -->
对应SQL的between子句
Restrictions.like --> 对应SQL的LIKE子句
Restrictions.in --> 对应SQL的in子句
Restrictions.and --> and 关系
Restrictions.or --> or 关系
Restrictions.isNull -->
判断属性是否为空,为空则返回true
Restrictions.isNotNull --> 与isNull相反
Restrictions.sqlRestriction -->
SQL限定的查询
Order.asc --> 根据传入的字段进行升序排序
Order.desc --> 根据传入的字段进行降序排序
MatchMode.EXACT --> 字符串精确匹配.相当于"like
'value'"
MatchMode.ANYWHERE --> 字符串在中间匹配.相当于"like
'%value%'"
MatchMode.START --> 字符串在最前面的位置.相当于"like
'value%'"
MatchMode.END --> 字符串在最后面的位置.相当于"like
'%value'"
例子
查询年龄在20-30岁之间的所有学生对象
List list =
session.createCriteria(Student.class)
.add(Restrictions.between("age",new
Integer(20),new Integer(30)).list();
查询学生姓名在AAA,BBB,CCC之间的学生对象
String[]
names = {"AAA","BBB","CCC"};
List list =
session.createCriteria(Student.class)
.add(Restrictions.in("name",names)).list();
查询年龄为空的学生对象
List
list =
session.createCriteria(Student.class)
.add(Restrictions.isNull("age")).list();
查询年龄等于20或者年龄为空的学生对象
List
list =
session.createCriteria(Student.class)
.add(Restrictions.or(Restrictions.eq("age",new
Integer(20)),
Restrictions.isNull("age")).list();
--------------------------------------------------------------------
使用QBC实现动态查询
public List
findStudents(String name,int age){
Criteria criteria = session.createCriteria(Student.class);
if(name !=
null){
criteria.add(Restrictions.liek("name",name,MatchMode.ANYWHERE));
}
if(age
!= 0){
criteria.add(Restrictions.eq("age",new
Integer(age)));
}
criteria.addOrder(Order.asc("name"));//根据名字升序排列
return
criteria.list();
}
-----------------------------------------------------------------------------------
今天用了写hibernate高级查询时用了Restrictions(当然Expression也是可以以的)这个类.感觉不错.
下面的代码写的不易读.其实核心就是一句
Restrictions.or(Restrictions.like(),Restrictions.or(Restrictions.like,........))
里面的or可以无限加的.还是比较好用
Session
session = getHibernateTemplate().getSessionFactory()
.openSession();
Criteria criteria =
session.createCriteria(Film.class);
List<Film> list =
criteria.add(
Restrictions.or(Restrictions.like("description",
key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("name",
key,MatchMode.ANYWHERE),
Restrictions.or(
Restrictions.like("direct", key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("mainplay",key,MatchMode.ANYWHERE),
Restrictions.like("filearea",
key,MatchMode.ANYWHERE)))))).list();
session.close();
return list;
分享到:
相关推荐
。。。
。。。
在上面的代码中,我们首先创建了一个 Criteria 对象,然后使用 `Restrictions.like()` 方法创建了一个条件对象,最后使用 `add()` 方法将条件添加到 Criteria 对象中,并使用 `list()` 方法来获取查询结果。...
Oracle_start_with_connect_by_prior_用法[文].pdf
它可以使用不限数量的线程来完成此过程。 安装 apt包即将推出 从源编译 确保在计算机上安装了gcc(4.7或更高版本),make,openssl和openssl-dev(仅Linux,macOS请参见 。此问题将在以后的版本中修复) sudo apt ...
Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态方法,如 eq(等于)、ge(大于等于)、between 等来方法的创建 Criterion 查询条件(SimpleExpression 实例)。除此之外,...
IE 8 不支持的内容以及解决其中一些问题的方法 我希望你永远不必参考这份文件(我们在 2015 年) 标记 语义HTML5元素,如article , aside , figcaption , figure , footer , header , nav , section等(但你...
本手册还介绍了RFID智能标签和热敏打印机的使用方法,包括如何使用RFID技术来自动识别和追踪物品、如何使用热敏打印机来打印标签等内容。 8. Software Product:软体产品 本手册中提到了软体产品的概念,包括软体...
我的电脑已经能注册,请用的时候注意使用方法,我记得是按上面的步骤破解,记不清楚了。 大家自己尝试一下,资源里有3.0的安装文件。 请大家自己看看这个怎么用 [Foxit Reader Pro] SN=FRP1196129234 Modules= ...
test_stl/stl2png.jar是我编译好的测试包,可以直接使用。 如果成功,则在最后量的输出中可以看到: success transform STL to png total takes 1515 millisecond 参数 elvin@elvin-pc ~/workspace/stl2png/test_stl...
为解决这个问题,本文提出了一种利用“向日葵”远程控制软件来实现从家中的计算机接入教育专网的方法。 首先,本文讨论了教育专网的特点和 Restrictions,以及外网计算机连接教育专网的难点。然后,本文介绍了...
9 中,sanctions, Restrictions, fine, limits, problems, tax, duty, responsibility 等词语都是英语中常用的词汇。学生可以通过学习这些词语的用法和释义来提高词汇掌握和阅读理解能力。 Ex. VI, p. 10 中,...
受限Python RestrictedPython是一种工具,可帮助定义Python语言的子集,该子集允许将程序输入提供给受信任的环境。 RestrictedPython不是沙盒系统或安全环境,但它有助于定义受信任的环境并在其中执行不受信任的...
使用方法: 在RawIsapi.cpp设置(当前为硬编码)路径以指向托管dll。 生成项目。 指向包含web.config文件的文件夹的新IIS站点 将网站的应用程序池设置为“ Classic且No Managed Code 在内置的dll上设置权限,...
用法 # ## Using cgrun for executing command# Run `foobar` under some restrictionssudo cgrun cpuset.cpus=0-2 cpuset.mems=0 cpu.shares=1 -- foobar arg1 arg2 arg3...# Run `foobar` under some restrictions...
二进制图像魔术 为没有 Imagick-Extension for PHP 并且在包含convert -... 激活插件,然后它将被 wordpress 的默认方法用作 Image-Manipulation-library。 要求: 目前,它需要/bin或/usr/bin的convert -binary 。
目前使用ORM(Entity framework 4.0)集成QuickBook性能优化以下方面有提升:USA EPAY(集成)支付模块(感谢Chris Curtis)QuickPay支付方式中添加了退款和收款GOOGLE广告集成更新PAYPAL SOAP API至最新版(63.0)...
目前使用ORM(Entity framework 4.0) 集成QuickBook 性能优化 以下方面有提升: USA EPAY(集成)支付模块(感谢Chris Curtis) QuickPay支付方式中添加了退款和收款 GOOGLE广告集成 更新PAYPAL SOAP API至最新版...
加密算法是一些公式和法 则,它规定了明文和密文之间的变换方法。由于加密算法的公开化和解密技术的发展, 加上发达国家对关键加密算法的出口限制,各个国家正不断致力于开发和设计新的加密 算法和加密机制。 从技术...
criteria.add(Restrictions.sqlRestriction("MENUITEM_ID in(select a.MENUITEM_ID from Wuxin_MENUITEM a connect by prior a.MENUITEM_ID = a.PARENT_ID"+ " start with a.MENUITEM_ID = '"+parentId+"')" )); ...