我使用hibernate-jpa-2.1-api
。我需要一些功能。插入时如何忽略dublicate行
我每分钟解析一个文件并将数据插入MSSQL DB。我需要跳过重复的行。例如在12:00
我已经在我的文件300行。我解析每一个并插入300行。一分钟后(12:01
)我的文件包含500行。我解析它,我想只插入200行而不是旧的300行。
在程序的旧实现中,我使用了SQL插入并且没有使用ORM。
这里是我的老SQL查询:
insert /*+ ignore_row_on_dupkey_index(avaya_cm_cdr, i_avaya_cm_cdr_nodub) */ into avaya_cm_cdr(acmcdr_id, cdrdate, cdrtime, secdur, condcode, attdconsole, codeused, outcrtid, codedial, dialednum, intrkcode, incrtid, callingnum, vdn, bcc, ppm, acctcode, authcode) values(seq_acmcdr_id.nextval, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
这是我的新的插入与ORM:
em = Persistence.createEntityManagerFactory("COLIBRI").createEntityManager();
public void insertAVAYAcmCDRs(List<AvayaCmCdr> cdrList) {
em.getTransaction().begin();
for (AvayaCmCdr aCdrList : cdrList) {
em.persist(aCdrList);
}
em.getTransaction().commit();
}
我如何使用模拟功能ignore_row_on_dupkey_index
与ORM?
p.s.在旧的实现中,我使用了Oracle DB。
你刚刚得到的(俄语)答案有什么问题[这里](http://ru.stackoverflow.com/questions/470631/Аналог-функции-ignore-row-on-dupkey-index-в- mssqlили-ОРМ眠)? –