• 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()非常容易的在互相关联的实体间建立 约束。
     
    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

    我要啦免费统计
  • 相关阅读:
    一款炫酷Loading动画--载入失败
    ITK Configuring and Building in VisualStudio及hello world程序编译
    InnoDB: Error: log file .ib_logfile0 is of different size 0 10485760 bytes
    vim学习笔记(1)——vim操作
    Android数据格式解析对象JSON用法
    JSONObject与JSONArray的使用
    AsyncHttpClient来完成网页源代码的显示功能,json数据在服务器端的读取还有安卓上的读取
    android开源框架android-async-http使用
    开源框架AsyncHttpClient使用
    Android:Layout_weight的深刻理解
  • 原文地址:https://www.cnblogs.com/attilax/p/15199108.html
Copyright © 2020-2023  润新知