jpa-запрос, где объект в коллекции находится в списке - PullRequest
2 голосов
/ 19 января 2011

Вероятно, не лучше всего описано в заголовке, но у меня есть 3 объекта

Заказ -> OneToMany -> Заказ товара

и

OrderProduct <- ManyToOne -> Product

Продукт <- 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 за один выбор, поскольку у меня есть коллекции и сущности, которые хотят загрузить с объединением, чтобы граф объектов заполнялся за один проход

1 Ответ

1 голос
/ 19 января 2011

Примерно так:

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 с - одно для фильтрации, другое для извлечения.

...