Criteria.createAlias与createCriteria使用区别

本文探讨DetachedCriteria在进行多级实体对象查询时,createAlias与createCriteria的区别。createAlias不返回新Criteria,直接在当前实例添加别名,而createCriteria返回新Criteria,可用于更复杂的查询结构。例如,当查询EmApply类及其关联的emApplyType和org实体时,两者的使用方式有所不同。
摘要由CSDN通过智能技术生成

 

         CreateAlias方法并不返回新的Criteria,而createCriteria会返回新的Criteria,也就是说:

          DetachedCriteria dc = DetachedCriteria.forClass(EmApply.class); //root

          //此处接近着调用add(),alias 就会指向type,因为当前的Criteria的实例是新建的

          dc.createCriteria("emApplyType","type").add(Restrictions.sqlRestriction("{alias}.typeName like '%xx%'"));   

          createCriteria 使用于多级实体对象查询,比如 EmApply类的emApplyType 属性还关联了另一个实体对象,

        

        单纯的像一下这样用,两方法没什么太大的区别:

          DetachedCriteria dc = DetachedCriteria.forClass(EmApply.class); //root
    
          dc.createCriteria("emApplyType","type");      //没有紧跟着add()方法,在下边的查询中,也可以用type这个别名.
          dc.createAlias("org", "o");

          dc.add(Restrictions.eq("type.id", Long.parseLong(applyType+"")));

          dc.add(Restrictions.eq("o.id", Long.parseLong(applyType+"")));

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值