java - 插入大量记录时,休眠持续丢失一些记录
问题描述
我们有一些场景,当我们使用它插入记录时,我们需要向表中插入记录,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() );
解决方案
推荐阅读
- google-cloud-platform - GCP - 是否有任何 api 暴露来创建 jsonl 文件
- c# - 如何更新逻辑以检查 SQL 查询状态并基于 C# 中的返回 true/false?
- python - Django 和 Github 上的数据库管理
- python - Python消耗过多的内存,即使有足够的内存也无法完成运行
- python - 如何按 LABEL 列对 pandas 数据框进行排序
- reactjs - 使用 useReducer 和 Context 和 TypeScript 的类型错误
- javascript - 在 react-google-maps 中单击标记时未显示信息窗口
- python - 连接两个矩阵时的TypeError:只有整数标量数组可以转换为标量索引
- c# - 你如何阻止统一的角色与平台重叠?
- c++ - opencv2/calib3d.hpp:没有 suh 文件或目录(如何正确地将 opencv 链接到 qt)