iteye_9794 2010-11-03 13:54
浏览 197
已采纳

Hibernamte多表查询 HQL怎么写

[b]哪位大哥帮小弟看看,小弟感激不尽。[/b]对应的类有
Goods (商品)
private String id;//编号
private String name;//名字

private Double price;//价格

OrderDetail//订单
private String id;//订单号
private List orderDetailItem = new ArrayList();
——-------------------------------
OrderDetailItem//订单明细
private String id;//ID
private Goods goods = new Goods();
private Integer num;//数量

怎么写HQL语句把三个表关联在一起,根据订单的ID查询出对应该的商品名字、价格、数量?
我也写了总是报错如下:
select new org.ncist.evaaass.qsl.domain.shop.Goods(o.id,o.name,o.price),

    new org.ncist.evaaass.qsl.domain.shop.OrderDetailItem(p.num)

    from org.ncist.evaaass.qsl.domain.shop.OrderDetail e,

    org.ncist.evaaass.qsl.domain.shop.OrderDetailItem p,

    org.ncist.evaaass.qsl.domain.shop.Goods o 

    where o.id = p.id  and p.id = e.id and  e.id='402880e82c054f2c012c05749f44000e'
  • 写回答

3条回答 默认 最新

  • yourname1111 2010-11-04 09:26
    关注

    OrderDetailItem缺少了OrderDetail的多对一,需要补上,然后
    select model.goods model from OrderDetailItem as model where model.这里填OrderDetail多对一的变量名.id = '402880e82c054f2c012c05749f44000e'

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

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题