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条)

报告相同问题?

悬赏问题

  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图