eclipselink Batch-Schreibzugriff ist deaktiviert, wenn Verlaufsrichtlinie oder DescriptorEventAdapter verwendet werden.
Ich versuche, mithilfe der Eclipselink-Verlaufsrichtlinie den Änderungsverlauf einer Tabelle / Entität aufzuzeichnen. Ich verwende auch DescriptorEventAdapter / aboutToInsert, aboutToUpdate, aboutToDelete-Hooks, um Prüfdatensätze einzufügen. Alles funktioniert gut, außer dass ich festgestellt habe, dass die Stapelschreiboption nicht funktioniert, nachdem ich die oben genannten Funktionen angewendet habe.
<property name="eclipselink.jdbc.batch-writing" value="JDBC" />
Der Code ist wie folgt:
for (int i = 0; i <= 3; i++) {
MyEntity e= new MyEntity ();
e.setName("insert-" + i);
entityManager.save(e);
}
Wenn ich history / DescriptorEventAdapter deaktiviere, sieht die SQL folgendermaßen aus:
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY (ID, NAME) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [1, insert-0]
DEBUG o.e.p.s./.sql - bind => [2, insert-1]
DEBUG o.e.p.s./.sql - bind => [3, insert-2]
DEBUG o.e.p.s./.sql - bind => [4, insert-3]
Nach dem Anwenden des history / DescriptorEventAdapter
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY (ID, NAME) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [1, insert-0]
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY_HIST (ID, NAME, VALID_FROM) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [1, insert-0, 2016-06-16 01:55:22.424]
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY (ID, NAME) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [2, insert-1]
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY_HIST (ID, NAME, VALID_FROM) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [2, insert-1, 2016-06-16 01:55:22.424]
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY (ID, NAME) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [3, insert-3]
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY_HIST (ID, NAME, VALID_FROM) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [3, insert-3, 2016-06-16 01:55:22.424]
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY (ID, NAME) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [4, insert-3]
DEBUG o.e.p.s./.sql - INSERT INTO MY_ENTITY_HIST (ID, NAME, VALID_FROM) VALUES (?, ?)
DEBUG o.e.p.s./.sql - bind => [4, insert-3, 2016-06-16 01:55:22.424]
Könnten Sie bitte einen Vorschlag dazu machen? Danke im Voraus