【发布时间】:2022-01-11 01:24:06
【问题描述】:
我在我的应用程序中使用 JPA 将一系列插入和更新捆绑到一个 commit() 操作中。
当提交运行时,是否可以了解该操作的进度 (0-100%),以便我可以在进度条中向用户显示?
我可以将我的更新分成多个提交,但这会使整个工作花费更长的时间。
使用 EclipseLink 作为我的 JPA 提供者。
【问题讨论】:
-
您使用的是哪个 Jpa 实现?休眠?
-
请发布您的简化代码。
commit通常是一个非常快速的操作,即使对于大型事务也是如此,并且不需要显示进度。 -
@Marmite 这是一个包含几千条记录的文件导入,最终每条记录运行多个插入和更新。
-
EclipseLink 还具有您可能使用的性能监控工具(请参阅eclipse.org/eclipselink/documentation/2.5/concepts/…)。不幸的是,我认为这两个选项都不是您想要的——它们似乎都旨在跟踪统计数据,并且似乎没有衡量交易中剩下的内容。为此,您需要连接到 EclipseLink 的会话侦听器 eclipse.org/eclipselink/documentation/2.4/jpa/extensions/… 。这可能允许获取它正在使用的变更集,并帮助跟踪需要完成的工作量。
标签: java jpa jdbc eclipselink