我使用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или-ОРМ眠)? –