我正在处理大量实体并使用休眠将其保存到数据库中。我发现如果表中的大量数据长达一分钟,开始事务会花费很多时间(从 Web 服务获取数据时,整个同步过程需要 20 小时接近 3 小时)。
有什么办法可以改进这种方法的持久性逻辑吗?
final EntityManager em = emf.createEntityManager();
try {
final MfBranch branch = <get data from web service>
em.getTransaction().begin(); // bottleneck
em.merge(branch);
em.getTransaction().commit();
} finally {
DisposableUtils.closeQuietly(em);
}
我认为看到合并或事务提交操作很耗时是合理的,但为什么事务开始很耗时?