在HQL中加入多个表

ZAJ*_*ZAJ 6 hibernate hql

任何人都可以帮助我将此查询转换为HQL

SELECT      
  supplierOrderDetails.productID,
  supplierOrderDetails.orderQty,
  supplierOrderReceiveDetail.qtyArrived
FROM
 supplierOrder
INNER JOIN
  supplierOrderDetails
ON
  (supplierOrderDetails.supplierOrderID = supplierOrder.ID)
INNER JOIN 
    supplierOrderReceive
ON  
 (supplierOrderReceive.supplierOrderID = supplierOrder.ID)
INNER JOIN 
    supplierOrderReceiveDetail
ON  
 (supplierOrderReceiveDetail.supplierOrderReceiveID = supplierOrderReceive.ID)  
   AND 
 (supplierOrderReceiveDetail.ProductID =supplierOrderDetails.ProductID)     
WHERE supplierOrder.ID = 1
Run Code Online (Sandbox Code Playgroud)

这是表关系

在此输入图像描述

ZAJ*_*ZAJ 5

我为那些想知道如何在HQL中联接多个表的人添加了查询

SELECT supplierOrderDetails.productID as product, supplierOrderDetails.orderQty as orderedQty,sum(supplierOrderReceiveDetail.qtyArrived) as qtyArrived 

FROM SupplierOrder as so, SupplierOrderDetails as supplierOrderDetails,  SupplierOrderReceiveDetail as supplierOrderReceiveDetail, SupplierOrderReceive as supplierOrderReceive

INNER JOIN supplierOrderDetails.supplierOrderID

INNER JOIN supplierOrderReceive.supplierOrder

INNER JOIN supplierOrderReceiveDetail.supplierOrderReceive

GROUP BY supplierOrderDetails.productID, supplierOrderDetails.orderQty
Run Code Online (Sandbox Code Playgroud)


Yag*_*ola -1

此链接非常适合开始学习如何通过 HQL 连接实体。

HQL 连接参考

编辑:
要使休眠连接实体,您必须定义实体之间的关联/映射。
Hibernate 使用 Hibernate 映射文件中定义的关系名称。