首页 > 解决方案 > 插入大量记录时,休眠持续丢失一些记录

问题描述

我们有一些场景,当我们使用它插入记录时,我们需要向表中插入记录,em.persist 它会为我们提供我们正在记录的 id,但有时(200K 记录中的 2K 记录)记录的 id 不存在于数据库中。

当插入正在进行时(前面提到过),另一个线程可能会在同一个表中插入记录。

我们正在使用 EJB 和注入

 @PersistenceContext(unitName = "ecm-nocache")
 private EntityManager em;

这两种插入都发生在不同的 bean 中并由 Web 服务触发。

注意:200K 记录插入正在从 Web 服务中一一发生

由于这是在生产中,并且我们在测试环境中没有庞大的数据集,因此无法复制相同的数据,我如何确定问题所在,任何潜在客户都会被告知

多谢

ProductClassification pc = new ProductClassification();
 pc.setClassification(classification);
 pc.setProduct(product);
 em.persist(pc); 
 log.info( pc.getId()+"----"+classification.getId()+"----"+product.getId() );

标签: javahibernatejpaejb-3.0

解决方案


推荐阅读