Hibernate比较全面的sql查询说明.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate比较全面的sql查询说明

可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装。现在对 Hibernate的Criteria 的用法进行总结:?? Hibernate 设计了CriteriaSpecification作为 Criteria 的父接口,下面提供了 Criteria和DetachedCriteria?。??? Criteria 和DetachedCriteria的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而DetachedCriteria是离线的,创建时无需?Session,DetachedCriteria提供了 2 个静态方法forClass(Class) 或forEntityName(Name)?进行DetachedCriteria实例的创建。 Spring 的框架提供了getHibernateTemplate().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria来返回查询结果。??? Criteria 和DetachedCriteria均可使用 Criterion 和 Projection 设置查询条件。可以设置FetchMode( 联合查询抓取的模式 ) ,设置排序方式。对于 Criteria 还可以设置FlushModel?(冲刷 Session 的方式)和LockMode(数据库锁模式)。?下面对 Criterion 和 Projection 进行详细说明。???? Criterion 是 Criteria 的查询条件。Criteria 提供了 add(Criterion criterion) 方法来添加查询条件。???? Criterion 接口的主要实现包括: Example 、 Junction 和SimpleExpression。而?Junction 的实际使用是它的两个子类 conjunction 和 disjunction ,分别是使用 AND 和 OR 操作符进行来联结查询条件集合。???? Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态方法,如eq(等于)、ge(大于等于)、 between 等来方法的创建 Criterion 查询条件?(SimpleExpression实例)。除此之外, Restrictions 还提供了方法来创建 conjunction 和?disjunction 实例,通过往该实例的 add(Criteria) 方法来增加查询条件形成一个查询条件集合。???? 至于 Example 的创建有所不同, Example 本身提供了一个静态方法 create(Object?entity) ,即根据一个对象(实际使用中一般是映射到数据库的对象)来创建。然后可以设置一些过滤条件:?Example exampleUser =Example.create(u)?.ignoreCase() // 忽略大小写?.enableLike(MatchMode.ANYWHERE);?// 对 String 类型的属性,无论在那里值在那里都匹配。相当于 %value%?? Project 主要是让 Criteria 能够进行报表查询,并可以实现分组。 Project 主要有?SimpleProjection、ProjectionList和 Property 三个实现。其中SimpleProjection和?ProjectionList的实例化是由内建的 Projections 来完成,如提供的avg、 count 、 max 、?min 、 sum 可以让开发者很容易对某个字段进行统计查询。??????? Property 是对某个字段进行查询条件的设置,如通过Porperty.forName(“color”).in(new String[]{“black”,”red”,”write”}); 则可以创建一个 Project 实例。通过?criteria 的 add(Project) 方法加入到查询条件中去。???? 使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装,下面介绍几种用法:1. 创建一个Criteria 实例org.hibernate.Criteria接口表示特定持久类的一个查询。Session是 Criteria实例的工厂。Criteria crit = sess.createCriteria(Cat.class);crit.setMaxResults(50);List cats = crit.list(

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档