Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
集合中的实体位于列表中的jpa查询_Jpa_Openjpa - Fatal编程技术网

集合中的实体位于列表中的jpa查询

集合中的实体位于列表中的jpa查询,jpa,openjpa,Jpa,Openjpa,可能不是标题中描述得最好的,但我有3个实体 订单->OneToMany->订单产品 及 订单产品产品 产品订单产品 我的本机查询是 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 t

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

订单->OneToMany->订单产品

订单产品产品

产品订单产品

我的本机查询是

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的方式实现这一点,因为我使用join加载了我的集合和实体,以便在一次过程中填充对象图,如下所示:

SELECT DISTINCT o
FROM Order o JOIN o.orderProducts op1
JOIN FETCH o.orderProducts op2 JOIN FETCH op2.product
WHERE op1.product.productid IN ?
请注意,您需要两个与
OrderProduct
s的联接—一个用于过滤,另一个用于快速获取