0

背景

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

这会占用大量内存并需要几分钟才能完成。

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

循环通过标准 JPA 合并语句并以特定间隔刷新

使用 JPQL

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

所以我有几个问题

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

如何使用 Toplink API 进行批量合并?

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

相关问题

JPA 中的批量更新(Toplink)

使用 JPA/Toplink 进行批量插入

4

1 回答 1

1

不确定使用 JPQL 是什么意思?如果您可以用 JPQL 更新语句来表达您的更新逻辑,那么这样做会更有效率。

绝对将您的工作分成几批。还要确保您使用的是批量写入和序列预分配。

看,

http://java-persistence-performance.blogspot.com/2011/06/how-to-improve-jpa-performance-by-1825.html

于 2013-01-09T13:35:00.670 回答