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
Hibernate 使用联接进行HQL更新(避免子查询)_Hibernate_Jpa_Hql - Fatal编程技术网

Hibernate 使用联接进行HQL更新(避免子查询)

Hibernate 使用联接进行HQL更新(避免子查询),hibernate,jpa,hql,Hibernate,Jpa,Hql,我有两张大桌子,它们之间有联系。 如何使用连接条件编写和更新两个表,并具有良好的性能和避免子查询。 我知道通过以下示例可以做到这一点: update product set isOK=1 where id in (select F_ProductID from sales ) 但是上面的示例没有很好的性能,因为它没有使用索引。 我知道我们可以通过使用本机查询来实现这一点,但我有另一个问题。您尝试过批量更新吗?否,您确定批量更新具有良好的性能吗?当我在事务中使用批处理操作时,刷新需要时间,这很不

我有两张大桌子,它们之间有联系。 如何使用连接条件编写和更新两个表,并具有良好的性能和避免子查询。 我知道通过以下示例可以做到这一点:

update product set isOK=1 where id in (select F_ProductID from sales )
但是上面的示例没有很好的性能,因为它没有使用索引。
我知道我们可以通过使用本机查询来实现这一点,但我有另一个问题。

您尝试过批量更新吗?否,您确定批量更新具有良好的性能吗?当我在事务中使用批处理操作时,刷新需要时间,这很不愉快。但是我认为你在这方面帮助了我,因为我还没有为此检查批处理更新,但是谢谢。对于一些批量操作,原生sql更好,但是你表示不能使用原生sql。同样对于批量操作,刷新允许您在内存占用大小和操作速度之间进行优化。您可以决定批处理的大小。是的,native很好,但它会损坏jpa缓存,我必须清除缓存。