- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第16章条件查询(CriteriaQueries)
第?16?章? 条件查询(Criteria Queries)
具有一个直观的、可扩展的条件查询API是Hibernate的特色。
16.1.?创建一个Criteria 实例
org.hibernate.Criteria接口表示特定持久类的一个查询。Session是 Criteria实例的工厂。
Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();
16.2.?限制结果集内容
一个单独的查询条件是org.hibernate.criterion.Criterion 接口的一个实例。org.hibernate.criterion.Restrictions类 定义了获得某些内置Criterion类型的工厂方法。
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like(name, Fritz%) )
.add( Restrictions.between(weight, minWeight, maxWeight) )
.list();
约束可以按逻辑分组。
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like(name, Fritz%) )
.add( Restrictions.or(
Restrictions.eq( age, new Integer(0) ),
Restrictions.isNull(age)
) )
.list();
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.in( name, new String[] { Fritz, Izi, Pk } ) )
.add( Restrictions.disjunction()
.add( Restrictions.isNull(age) )
.add( Restrictions.eq(age, new Integer(0) ) )
.add( Restrictions.eq(age, new Integer(1) ) )
.add( Restrictions.eq(age, new Integer(2) ) )
) )
.list();
Hibernate提供了相当多的内置criterion类型(Restrictions 子类), 但是尤其有用的是可以允许你直接使用SQL。
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.sql(lower({alias}.name) like lower(?), Fritz%, Hibernate.STRING) )
.list();
{alias}占位符应当被替换为被查询实体的列别名。
Property实例是获得一个条件的另外一种途径。你可以通过调用Property.forName() 创建一个Property。
Property age = Property.forName(age);
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.disjunction()
.add( age.isNull() )
.add( age.eq( new Integer(0) ) )
.add( age.eq( new Integer(1) ) )
.add( age.eq( new Integer(2) ) )
) )
.add( Property.forName(name).in( new String[] { Fritz, Izi, Pk } ) )
.list();
16.3.?结果集排序
你可以使用org.hibernate.criterion.Order来为查询结果排序。
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like(name, F%)
.addOrder( Order.asc(name) )
.addOrder( Order.desc(ag
您可能关注的文档
- 祁门红茶的采收和加工.doc
- GBT763114-1998润滑剂和有关产品(L类)的分类第14部分U组(热处理).pdf
- 福建省惠安县2014年初中学业质量测查(第二次质检)数学试题(纯word版).doc
- GBT763116-1999润滑剂工业用油和相关产品(L类)的分类第16部分P组(气动工具).pdf
- 离散信号matlab.doc
- 程序阅读填空.doc
- 第13周教案查询设计中心.doc
- 第11章第2节人体内废物的排出.ppt
- 第14课检阅.ppt
- 第17讲曲线运动运动的合成与分解.pptx
- 2024年05月山东交通职业学院招考聘用博士研究生50人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽芜湖市弋江区老年学校(大学)工作人员特设岗位公开招聘2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东东营河口区教育类事业单位招考聘用22人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东交通职业学院招考聘用100人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东威海职业学院招考聘用高层次人才2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽石台县事业单位工作人员33人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东滨州市博兴县事业单位公开招聘考察笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽蚌埠固镇县湖沟镇选聘村级后备干部7人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东省安丘市教育和体育局所属事业单位学校公开2024年招考232名工作人员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东临沂临港经济开发区工作人员(5人)笔试历年典型题及考点剖析附带答案含详解.docx
最近下载
- 草原就是我的家教学设计.docx VIP
- 安徽省黄山市重点名校2023-2024学年中考生物最后冲刺模拟试卷含解析.doc VIP
- 部编一年级下册语文字帖【打印可用】.pdf
- 初二地理生物中考动员主题班会.pptx VIP
- 常州大学2020-2021学年第1学期《西方经济学》期末考试试卷(A卷)含参考答案.docx
- 安徽省临泉重点名校2023-2024学年中考生物对点突破模拟试卷含解析.doc VIP
- 内轴型膝关节设计理念及特点.pdf
- 新人教PEP版小学英语六年级下册期末全册单元复习课件(含专题).ppt
- 2024年党纪学习教育党课.pptx VIP
- 2023安徽省中考生物模拟试卷第一卷(含解析).pdf VIP
文档评论(0)