如何执行级联JPA/toplink批更新

如何执行级联JPA/toplink批更新,jpa,weblogic,jpql,toplink,Jpa,Weblogic,Jpql,Toplink,背景 我对需要实现的JPA级联批处理更新有问题。 更新将需要大约10000个对象,并立即将它们合并到数据库中。 这些对象的平均深度为5个对象,平均大小约为3KB 持久性提供程序是Oracle Toplink 这会消耗大量内存,需要几分钟才能完成 我环顾四周,发现了3种可能性: 在标准JPA merge语句中循环并以一定的间隔刷新 使用JPQL 使用Toplink自己的API(我没有任何经验) 所以我有几个问题 我会使用JPQL来减少标准合并的开销吗?如果我理解正确,merge会导致在调用之前克隆

背景

我对需要实现的JPA级联批处理更新有问题。 更新将需要大约10000个对象,并立即将它们合并到数据库中。 这些对象的平均深度为5个对象,平均大小约为3KB 持久性提供程序是Oracle Toplink

这会消耗大量内存,需要几分钟才能完成

我环顾四周,发现了3种可能性:

在标准JPA merge语句中循环并以一定的间隔刷新

使用JPQL

使用Toplink自己的API(我没有任何经验)

所以我有几个问题

我会使用JPQL来减少标准合并的开销吗?如果我理解正确,merge会导致在调用之前克隆整个对象树。它真的更快吗?有什么方法可以加快这个过程吗

如何使用toplinkapi进行批合并

我知道这是主观的,但是:有人有在JPA/Toplink中进行大规模级联批量更新的最佳实践吗?也许我没有考虑过什么?

相关问题


不确定使用JPQL是什么意思?如果您可以用JPQL update语句来表示更新逻辑,那么这样做将大大提高效率

一定要把你的工作分成几批。还要确保使用批写入和序列预分配

看,