2
任何人都知道是否可以在像这个查询下面的关联中使用子查询?与休眠相关联的子查询
SELECT l, o
FROM User u
INNER JOIN u.licenses l
LEFT JOIN l.orders o
WITH o.id = (
SELECT MAX(lastOrder.id)
FROM Order lastOrder
WHERE lastOrder.license = l
)
WHERE u.idtPerson = :idtPerson
AND l.statusCode != 3
我发现这个解决办法...
SELECT l, o
FROM User u
INNER JOIN u.licenses l
LEFT JOIN l.orders o
WHERE u.idtPerson = :idtPerson
AND l.statusCode != 3
AND (
o.id IS NULL
OR o.id = (
SELECT MAX(lastOrder.id)
FROM Order lastOrder
WHERE lastOrder.license = l
)
)
但我真的相信这不是一个很好的解决方案,有什么建议?