您的位置:首页 > 其它

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

2013-02-27 19:39 363 查看
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%"));

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐