您的位置:首页 > 其它

Atitit.Hibernate于Criteria 使用汇总and 关系查询 and 按照子对象查询 o9o

2015-10-10 19:53 681 查看
Atitit.Hibernate于Criteria 使用总结and 关联查询 and 依照子对象查询 o9o

1. Criteria,,Criterion ,, 1

<2. 基本的对象黑头配置磊个关联,三 1
3. Criteria 黑头配置关联查询了... 2

4. Ati Meata 配置关联 @CriteriaRelt 2

5. 关联createCriteria() 3

6. Criteria的使用outline 4

7. 參考:: 5

1. Criteria,,Criterion ,,

Criteria是一种比hql面向对象的查询方式。Criteria 可使用 Criterion 和 Projection 设置查询条件。能够设置 FetchMode( 联合查询抓取的模式 ) 。设置排序方式,Criteria 还能够设置 FlushModel (冲刷 Session 的方式)和 LockMode (数据库锁模式)。

2. 基本的对象黑头配置磊个关联,三

public class GvPlayRecord

Equipment eq;

/**

// attilax 老哇的爪子 5_u_8 o9n

* @return the eq

*/

@ManyToOne

@NotFound(action=NotFoundAction.IGNORE)

@JoinColumn(name = "equipment_id", insertable = false,updatable = false)

@RemoteProperty

public Equipment getEq() {

return eq;

}

Criteria c = new BaseSvs(). getSession().createCriteria(GvPlayRecord.class);

SimpleExpression se= Restrictions.eq("eq.dpt.groupid", 114 );

//c.add(se);

List list = c.list();

三说新不上 eq.dpt.groupid 属性...好像直黑头的配置不生效..

作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

3. Criteria 黑头配置关联查询了...

Criteria c = new BaseSvs(). getSession().createCriteria(GvPlayRecord.class);

Criteria eqCri=c.createCriteria("eq");

eqCri.add(Restrictions.eq("departId", 117 ));

中间才行兰...

4. Ati Meata 配置关联 @CriteriaRelt

@CriteriaRelt(fld="departId")

Equipment eq;

框架处理code

//yash condition process. def

SqlAti_Criteria sql=new SqlAti_Criteria();

sql.reqMap=QueryPropertyssMap;

sql.Criteria=c;

sql.setCls(cls). addWhereExp(fld);

@SuppressWarnings("all") public SqlAti addWhereExp(Field fld) {

CriteriaRelt an=fld.getAnnotation(CriteriaRelt.class);

if(an!=null)

{

Criteria crSub=this.Criteria.createCriteria(fld.getName());

crSub.add( Restrictions.eq(an.fld(), this.reqMap.get(an.fld())));

}

return this;

}

5. 关联createCriteria()

4.

5.

你能够使用createCriteria()很easy的在互相关联的实体间建立 约束。

List cats = sess.createCriteria(Cat.class)

.add( Restrictions.like("name", "F%")

.createCriteria("kittens")

.add( Restrictions.like("name", "F%")

.list();

注意第二个 createCriteria()返回一个新的 Criteria实例,该实例引用kittens 集合中的元素。

接下来。替换形态在某些情况下也是非常实用的。

List cats = sess.createCriteria(Cat.class)

.createAlias("kittens", "kt")

.createAlias("mate", "mt")

.add( Restrictions.eqProperty("kt.name", "mt.name") )

.list();

(createAlias()并不创建一个新的 Criteria实例。)

Cat实例所保存的之前两次查询所返回的kittens集合是 没有被条件预过滤的。假设你希望仅仅获得

符合条件的kittens。 你必须使用returnMaps()。

List cats = sess.createCriteria(Cat.class)

.createCriteria("kittens", "kt")

.add( Restrictions.eq("name", "F%") )

.returnMaps()

.list();

Iterator iter = cats.iterator();

while ( iter.hasNext() ) {

Map map = (Map) iter.next();

Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);

Cat kitten = (Cat) map.get("kt");

}

6. Criteria的使用outline

5. 动态关联抓取

6. 6. 查询演示样例

org.hibernate.criterion.Example类同意你通过一个给定实例 构建一个条件查询。

7. 7. 投影(Projections)、聚合(aggregation)和分组(grouping)

8. 8. 离线(detached)查询和子查询

7. 參考::

Hibernate中Criteria的完整使用方法 - LifeNote - BlogJava.htm



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: