Hibernate Criteria 多层次查询关联问题

[code="java"]
class House{
private string houseid;
private string housename;
}
class Shelf{
private string shelfid;
private House house;
}
class Position{
private string positionid;
private Shelf shelf;
}
class Warehouse{
private string warehouseid;
private Position position;
}
[/code]

只用QBC能不能这样类似的解决呢?
[quote]
Criteria criteria = BaseUtil.getCriteria(Warehouse.class);

criteria.add(Expression.eq("position.shelf.house.houseid", "111"));

[/quote]
[b]问题补充:[/b]

  1. Criteria criteria = BaseUtil.getCriteria(Warehouse.class);
  2. CriteriaUtil.addAlias((CriteriaImpl)criteria, "position", "position");
  3. CriteriaUtil.addAlias((CriteriaImpl)criteria, "position.shelf", "shelf");
  4. criteria.add(Expression.eq("shelf.house.houseid", "111"));

这个不要贴了 我看过了 觉得麻烦才问的

我就是用你说的麻烦的方法同的原理实现,无限级联部份属性查询,
但是真正调用时,我的并不麻烦,我的业务代码中是类似这样的:
[code="java"]
//查询用户的三个字段,第一和第二个属性不说了,第三个是所属组织的父组织的名字
String[] columns = {"id","name","org.parentOrg.name"};
//得到Criteria
Criteria criteria = BaseUtil.getCriteria(Warehouse.class,columns,alias);
//查询
dao.findByDetached(criteria);
[/code]

业务代码写成这样你不觉得麻烦吧,级联查询是在框架中封装的,我觉得麻烦点无所谓,反正不用你去写,有兴趣可以到我博客看看

[code="java"]
Criteria criteria = BaseUtil.getCriteria(Warehouse.class);

CriteriaUtil.addAlias((CriteriaImpl)criteria, "position", "position");

CriteriaUtil.addAlias((CriteriaImpl)criteria, "position.shelf", "shelf");

criteria.add(Expression.eq("shelf.house.houseid", "111"));

[/code]