请问如何优化此查询?
FROM OrderEntity WHERE id IN (SELECT DISTINCT orderId FROM ProductEntity
WHERE code = :myCode OR extCode = :myCode)
此查询对于具有大约百万行的表来说太慢了
订单1 ... *产品
感谢您的帮助
修改
在纯sql中我会使用这个查询很快,但我不知道如何在HQL中形成它:
SELECT * FROM order o, (SELECT DISTINCT order_id FROM product WHERE code = 'ABC'
OR ext_code = 'ABC') p WHERE o.id = p.order_id
答案 0 :(得分:0)
我猜可以使用与OrderEntity(外键order_id)的关联映射ProductEntity。
如果为true,请尝试映射并测试此查询(内部联接可能更快):
SELECT o
FROM
ProductEntity p
INNER JOIN p.orderEntity o
WHERE p.code = :myCode OR p.extCode = :myCode