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 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据