gpt4 book ai didi

java - JPA EntityManager 限制数据库并发操作数

转载 作者:行者123 更新时间:2023-11-30 09:12:02 24 4
gpt4 key购买 nike

我正在使用 JPA 框架做一些数据库操作。

首先,我创建了一个 EntityManager 对象,然后使用代码片段为特定表保存实体对象

"entityManager.persist(specificEntity)"

这个持久化操作是通过带有注释的方法完成的

"@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)"

我尝试在该方法中使用 for 循环来保存大量数据,并且所有数据都保存在一个事务中。通常这一切都很好,但是当我尝试保留很多行时,我遇到了问题和错误

"Out of operation records in transaction coordinator (increase MaxNoOfConcurrentOperations)"

我的数据库支持大约 32,000 个并发操作。那么在JPA框架中有没有办法指定最大并发操作数。

最佳答案

我假设您在循环内创建您的实体,并且 EntityManagers FlushModeType 设置为 COMMIT,这意味着 EM 等待您提交事务,直到向数据库发送/插入记录。

即使您可以设置 EM 最大操作计数值,让 AS 在一个事务中处理数万个实体的插入(最坏的情况:甚至将事务数据写入等待提交的平面文件)肯定不是好主意。

在这种特殊情况下,要么对 block 进行某种批处理,要么至少从将 FlushModeType 设置为 AUTO 的记录自动提交开始。

关于java - JPA EntityManager 限制数据库并发操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21821958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com