2

可能不是标题中最好的描述,但我有 3 个实体

订单 -> 一对多 -> 订单产品

订购产品 <- 多对一 -> 产品

产品 <- OneToMany -> OrderProduct ,

我的本机查询是

SELECT t0.*
FROM isc_orders t0 
INNER JOIN isc_customers t1 ON t0.ordcustid = t1.customerid 
INNER JOIN isc_order_products t2 ON t0.orderid = t2.orderorderid 
INNER JOIN isc_products t3 ON t2.ordprodid = t3.productid
where t3.productid in (359, 344, 345, 346, 347, 348)

是否有任何方法可以在一次选择中以 JPA 方式执行此操作,因为我有我的集合和实体急切加载连接,以便一次性填充对象图

4

1 回答 1

1

像这样的东西:

SELECT DISTINCT o
FROM Order o JOIN o.orderProducts op1
JOIN FETCH o.orderProducts op2 JOIN FETCH op2.product
WHERE op1.product.productid IN ?

请注意,您需要两个带有OrderProducts 的连接 - 一个用于过滤,另一个用于急切获取。

于 2011-01-19T14:20:19.780 回答