Hibernate Criterion是Criteria的查询条件。Criteria 提供了add(Criterion criterion)方法来添加查询条件。Criteria 的特点来方便地进行查询条件的组装。
Criteria的常用方法:
1. 创建一个Criteria 实例
org.hibernate.Criteria接口表示特定持久类的一个查询。Session是 Criteria实例的工厂。
Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();
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();
3. 结果集排序
使用org.hibernate.criterion.Order来为查询结果排序。
List cats = sess.createCriteria(Cat.class).add( Restrictions.like("name", "F%")
.addOrder( Order.asc("name") ).addOrder( Order.desc("age") ).setMaxResults(50)
.list();
List cats = sess.createCriteria(Cat.class).add( Property.forName("name").like("F%") ).addOrder( Property.forName("name").asc() ).addOrder( Property.forName("age").desc() ).setMaxResults(50).list();
4. 关联
使用createCriteria()很容易的在互相关联的实体间建立约束。
List cats = sess.createCriteria(Cat.class) .add( Restrictions.like("name", "F%")
.createCriteria("kittens").add( Restrictions.like("name", "F%").list();
5. 查询示例
org.hibernate.criterion.Example类允许通过一个给定实例来构建一个条件查询。
Cat cat = new Cat();
cat.setSex('F');
cat.setColor(Color.BLACK);
List results = session.createCriteria(Cat.class).add( Example.create(cat) ) .list();
6. 投影(Projections)、聚合(aggregation)和分组(grouping)
org.hibernate.criterion.Projections是 Projection 的实例工厂。一般通过调用
setProjection()应用投影到一个查询。
List results = session.createCriteria(Cat.class).setProjection( Projections.rowCount() ).add( Restrictions.eq("color", Color.BLACK) ).list();
List results = session.createCriteria(Cat.class).setProjection( Projections.projectionList()
.add( Projections.rowCount() )
.add( Projections.avg("weight") )
.add( Projections.max("weight") )
.add( Projections.groupProperty("color") )).list();
在一个条件查询中没有必要显式的使用 "group by" 。某些投影类型就是被定义为分组投影,而这些投影类型也出现在SQL的group by子句中。 可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。
下面是两种不同的实现方式:
List results = session.createCriteria(Cat.class).setProjection(
Projections.alias( Projections.groupProperty("color"), "colr" ) ).addOrder( Order.asc("colr") ).list();
List results = session.createCriteria(Cat.class).setProjection(
Projections.groupProperty("color").as("colr") ).addOrder( Order.asc("colr") ).list();
alias()和as()方法简便的将一个投影实例包装到另外一个 别名的Projection实例中。简而言之,当你添加一个投影到一个投影列表中时你可以为它指定一个别名:
List results = session.createCriteria(Cat.class)
.setProjection( Projections.projectionList()
.add( Projections.rowCount(), "catCountByColor" )
.add( Projections.avg("weight"), "avgWeight" )
.add( Projections.max("weight"), "maxWeight" )
.add( Projections.groupProperty("color"), "color" )
)
.addOrder( Order.desc("catCountByColor") )
.addOrder( Order.desc("avgWeight") )
.list();
List results = session.createCriteria(Domestic.class, "cat")
.createAlias("kittens", "kit")
.setProjection( Projections.projectionList()
.add( Projections.property("cat.name"), "catName" )
.add( Projections.property("kit.name"), "kitName" )
)
.addOrder( Order.asc("catName") )
.addOrder( Order.asc("kitName") )
.list();
相关推荐
Hibernate 提供了操纵对象和相应的 RDBMS 表中可用...Hibernate Session 接口提供了 createCriteria() 方法,可用于创建一个 Criteria 对象,使当您的应用程序执行一个标准查询时返回一个持久化对象的类的实例。
详细介绍了criteria的使用方法和许多相关查询技巧
Navier-Stokes-Landau-Lifshitz方程组的正则性准则,樊继山,高洪俊,在本文中, 我们研究了Navier-Stokes-Landau-Lifshitz 方程组正则性准则。利用精细的估计,得到了Navier-Stokes-Landau-Lifshitz 方程组的光滑解...
3.5 Model Criteria 10 CRITERION 1 – Leadership 10 CRITERION 2 – Policy and Strategy 12 CRITERION 3 – People 14 CRITERION 4 – Partnerships and Resources 16 CRITERION 5 – Processes 18 CRITERION 6 ...
此函数用于计算和绘制已识别模态振型之间的模态保证准则 (MAC) 矩阵。
foreach(var item in items){ foreach(var criterion in criteria) { if (!criterion.IsMetBy(item)) //如果不符合标准 { //那么说明这个item肯定不是要查找的,那么应该在外层循环执行continue操作 } } ...
localization, and he derived mathematical expressions for these criteria. Based on these criteria, he claimed that the optimal step edge detector was similar to a derivative of a gaussian. However, ...
CRB criterion and to array beamwidth; we also derive closed-form expressions for the design criteria when the DOA prior is uniform on a sector of angles. We show that optimal arrays have elements on ...
org.hibernate.criterion A framework for defining restriction criteria and order criteria. org.hibernate.mapping This package defines the Hibernate configuration-time metamodel. org.hibernate....
org.hibernate.criterion A framework for defining restriction criteria and order criteria. org.hibernate.mapping This package defines the Hibernate configuration-time metamodel. org.hibernate....
1、给每行绑定一个鼠标移上和移走事件 onmouseover onmouseout 2、焦点如果从文本框转移动显示的层中 设置了文本框失去焦点事件,目的是让层不显示 3、单元格设置不同样式 一个左对齐,一个右对齐 加一个全局的...
The kinematic criteria applied so far in manipulator design have been based largely on kinematic solvability, in the sense of allowing for closed-form inverse kinematic solutions. As opposed to this ...
This paper deals with Markov ... Two types of threshold probability criteria are discussed. The first criterion is a probability that a total reward is not greater than a given initial threshold va
determine two most influential criteria, including potential costs and benefits. With the weight of each criterion worked out, our model demonstrates that option 3 is the optimal choice.
Of spherical harmonics graphic simulation, Maximum Likelihood (ML) criteria and maximum a posteriori (MAP) criterion, matlab development toolbox support vector machine.
注:Hibernate 有冬眠之意,Squirrel ( 松鼠 ) 具有冬眠的习性,项目中众多类名称沿袭自 Hibernate,如 Criteria、Criterion、Restrictions 等。 Query private static Session session; @BeforeClass public static...
ssh补充资料,PPT,文档,练习等 Hibernate对象条件查询: 查询通过如下三个类获取: Criteria 代表一次查询 Criterion 代表一个查询条件 Restrictions 产生查询条件的工具类
字符串::变形 变形英语名词和动词。 字符串::拐点提供了名词的英语语调和动词组成。... pluralize ( "criterion" ) # => "criteria"Strings :: Inflection . pluralize ( "vertebra" ) # => "vertebrae"安装将此行添加
3.7.3 Maximum-Distortion-Energy Criterion (von Mises) 201 3.7.4 Graphical Representation and Experimental Verification of Rankine, Tresca, and von Mises Criteria 201 3.7.5 Failure Criteria for Brittle...
3.7.3 Maximum-Distortion-Energy Criterion (von Mises) 201 3.7.4 Graphical Representation and Experimental Verification of Rankine, Tresca, and von Mises Criteria 201 3.7.5 Failure Criteria for Brittle...