我正在处理大量实体并使用hibernate将其持久化到数据库。我已经发现,如果表格中的大量数据长达一分钟,开始交易需要花费大量时间(从Web服务获取数据时,整个同步过程耗时20h)。
有没有办法改进这种方法的持久性逻辑?
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);
}
我认为合并或事务提交操作耗时很合理,但为什么事务开始很耗时?