zoukankan      html  css  js  c++  java
  • Hibernate之条件查询(Criteria Queries)

    1、创建一个Criteria 实例

         org.hibernate.Criteria接口表示特定持久类的一个查询。SessionCriteria实例的工厂。

    Criteria crit = session.createCriteria(Teacher.class);
    		crit.setMaxResults(50);
    		List cats = crit.list();

    2、限制结果集内容

          一个单独的查询条件是org.hibernate.criterion.Criterion 接口的一个实例。org.hibernate.criterion.Restrictions类 定义了获得某些内置Criterion类型的工厂方法。

    List<Teacher> list = session.createCriteria(Teacher.class)
    							.add(Restrictions.like("name", "%张%"))
    							.add(Restrictions.between("score", 50, 80))
    							.list();


    3、结果集排序

          以使用org.hibernate.criterion.Order来为查询结果排序。

    List<Teacher> list = session.createCriteria(Teacher.class)
    							.add(Restrictions.like("name", "%胡%"))
    							.addOrder(Property.forName("name").desc())
    							.list();


    4、关联

         你可以使用createCriteria()非常容易的在互相关联的实体间建立 约束。

    List<Teacher> list = session.createCriteria(Teacher.class)
    							.add(Restrictions.like("name", "%老师%"))
    							.createCriteria("students")
    							.add(Restrictions.like("name", "zhangsan"))
    							.list();


    离线(detached)查询和子查询

    DetachedCriteria类使你在一个session范围之外创建一个查询,并且可以使用任意的Session来执行它。

    DetachedCriteria query = DetachedCriteria.forClass(Teacher.class)
    	    .add( Property.forName("name").eq("胡老师") );
    		
    		List<Teacher> list = query.getExecutableCriteria(session).list();


    DetachedCriteria也可以用以表示子查询

    DetachedCriteria query = DetachedCriteria.forClass(Teacher.class)
    		.createAlias("students", "s").add(Restrictions.eq("s.name", "sunqi"));
    		
    		List<Teacher> list = query.getExecutableCriteria(session).list();


    注:DetachedCriteria和Criteria的区别和用法

    Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供了 Criteria和DetachedCriteria
    Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样,
    Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离的创建时无需 Session

     

    参考整理:http://oss.org.cn/ossdocs/framework/hibernate/reference-v3_zh-cn/querycriteria.html

  • 相关阅读:
    PHP Cookies
    PHP 文件上传
    PHP 文件
    02_电话拨号器intent说明
    13_传智播客iOS视频教程_OC程序的编译链接
    12_传智播客iOS视频教程_注释和函数的定义和调用
    11_传智播客iOS视频教程_NS前缀和@符号
    10_传智播客iOS视频教程_NSString
    09_传智播客iOS视频教程_自动释放池与NSLog函数
    08_传智播客iOS视频教程_Foundation框架
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131472.html
Copyright © 2011-2022 走看看