我正在使用下面的代码将记录插入数据库,
EntityManagerFactory emf = getEmf();
em = emf.createEntityManager();
//Get the Transaction
EntityTransaction trx = em.getTransaction();
trx.begin();
for ( int i=0;i<10000;i++) {
//Create new Object and persist
Customer customer = new Customer(.....);
em.persist(customer);
//Once its reach the 1000 size do commit
if ( i % 1000 == 0 ) {
em.flush();
em.clear();
trx.commit();
}
}
em.close();
当我在数据库中没有任何重复值(如新客户对象)时,上面的代码工作正常。如果我在数据库中有任何重复的客户值,我会收到“SQLIntegrityConstraintViolationException”。
在这里,我使用persist()将记录插入数据库以解决性能问题。如果我使用合并(),它的工作正常。但它需要更多的时间来完成任务。
在persist() 的情况下,是否有任何选项可以识别哪个是重复记录(即获取重复记录信息)?
如果数据库中存在多个重复记录,是否有任何选项可以识别哪些是重复记录?