kaka_xia 2009-09-19 13:40
浏览 243
已采纳

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"));

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

  • 写回答

2条回答 默认 最新

  • javabull 2009-09-21 23:36
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?