使用Criteria查询级联表时出现的问题及解决

Hibernate的dot-based级联表查询HQL可以算是能够大大提高生产力的特性之一,比如

EOrder (1) —- (1) ECustomer

一般会在EOrder对象中维护一个ECustomer对象,然后使用以下方式进行查询:

session.createQuery("from EOrder where customer.name=?").setString(0,"shanghai");

但是上面的思路在今天使用Criteria时出现了问题,一直报错找不到属性”customer.name”。经过再三google,原来是使用Criteria时需要自己维护级联关系,即

Criteria orderCriteria = session.createCriteria(EOrder.class);
 orderCriteria.createCriteria("customer").add(Restrictions.ilike("name","%gg%"));

还有一种解决办法:

Criteria orderCriteria = session.createCriteria(EOrder.class)
                                            .createAlias("customer","cust")                                           
                                                .add(Restrictions.ilike("cust.name","%d%"));


 



 
 
     

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值