Hibernate сохраняется пропустить некоторые записи, когда вставлен большой набор записей - PullRequest
1 голос
/ 11 июня 2019

У нас есть сценарии, в которых нам нужно вставить запись в таблицу, когда мы вставляем запись, используя em.persist, это дает нам идентификатор, который мы регистрируем, но некоторое время (запись 2K из записи 200K) идентификатор, который регистрируется, неприсутствует в БД.

Когда происходит вставка (упомянутая ранее), другой поток может вставить запись в ту же таблицу.

Мы используем EJB и вводим

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

И вставка происходит в разных компонентах и ​​запускается из веб-сервисов.

Примечание: вставка 200К записей происходит из веб-сервисов одна за другой

Так как это в производстве, и мы неОгромный набор данных в тестовой среде, поэтому невозможно воспроизвести то же самое. Как определить причину проблемы? Любой потенциальный клиент будет оценен

Спасибо, большое

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