zoukankan      html  css  js  c++  java
  • Atitit.Hibernate于Criteria 使用汇总and 关系查询 and 按照子对象查询 o9o

    Atitit.HibernateCriteria 使用总结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.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

    我要啦免费统计

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

  • 相关阅读:
    uvm_pkg——老板,打包带走
    uvm.sv——UVM之道
    uvm_comps.svh
    uvm_subscriber——告诉她我们来过
    uvm_monitor——借我一双慧眼
    编程面试过程中常见的10大算法(转)
    MySQL 分区表
    Nginx + Tomcat 动静分离实现负载均衡(转)
    浅析JVM内存结构和6大区域(转)
    Linux Shell编程变量赋值和引用
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4868142.html
Copyright © 2011-2022 走看看