Folgendes, Pseudo-Code Mini-beispiel läuft im Applicationsserver (JBoss) in einer Transaktion
Ohne flush ist das neue Objet im dem Query-Ergebnis nicht enthalten, mit flush schon.
Ich hätte erwartet, dass der Entitymanager sicherstellt, dass ich innerhalb einer Transaktion ein konsistentes Bild der Daten hab und erkennt, dass ich beim Query auf Objekte zugreife die noch nicht geflushed sind. Scheint aber nicht so zu sein. Wo ist das dokumentiert? (Kontext: Eclipselink 2.7.9 als JPA-Implementierung)
Java:
public void dummy() {
MyObject myObject = new MyObject();
entitymanager.persist(myObject);
// entitymanager.flush();
entityManager.createQuery("SELECT COUNT(*) FROM MyObject");
}
Ohne flush ist das neue Objet im dem Query-Ergebnis nicht enthalten, mit flush schon.
Ich hätte erwartet, dass der Entitymanager sicherstellt, dass ich innerhalb einer Transaktion ein konsistentes Bild der Daten hab und erkennt, dass ich beim Query auf Objekte zugreife die noch nicht geflushed sind. Scheint aber nicht so zu sein. Wo ist das dokumentiert? (Kontext: Eclipselink 2.7.9 als JPA-Implementierung)