博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atitit.Hibernate于Criteria 使用汇总and 关系查询 and 按照子对象查询 o9o
阅读量:6800 次
发布时间:2019-06-26

本文共 2703 字,大约阅读时间需要 9 分钟。

Atitit.HibernateCriteria 使用总结and 关联查询 and 依照子对象查询 o9o

 

<

 

 

1. Criteria,,Criterion ,,

Criteria是一种比更的查询方式。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.addRestrictions.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. 參考::

HibernateCriteria的完整使用方法 - LifeNote - BlogJava.htm

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
抖音短视频开发项目跨入社交圈,头条实现社交梦?
查看>>
亲测 | 如何更高效的管理原生微服务应用
查看>>
jQuery UI 自定义样式的日历控件
查看>>
成为优秀UI设计师,必须了解的UI设计规范
查看>>
Memcached源码分析 - LRU淘汰算法(6)
查看>>
数据类型
查看>>
Jenkins 插件之环境变量插件EnvInject(学习笔记十三)
查看>>
PowerShell收集服务器日检报告,并发邮件给指定人员
查看>>
windows命令行删除所有文件和子目录
查看>>
网球机器人入侵火星 从单独工作到团队协作
查看>>
java中多种写文件方式的效率对比实验
查看>>
升级Xcode7之后如果遇到下面的错误
查看>>
浅谈React工作原理
查看>>
计划任务与系统日志管理
查看>>
Spring Security3配置使用
查看>>
升级aws ec2主机配置
查看>>
CentOS 6.5 svn服务器1.0版
查看>>
RED7防火墙
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cisco 3560交换机和H3C S5120 链路聚合配置实例。
查看>>