Festlegen der Isolationsstufe in der @Transactional "READ_UNCOMMITTED". Ich verwende EclipseLink 2.5.1-RC1

Habe ich eine Anforderung zum starten neue Transaktion innerhalb einer Laufenden Transaktion, so dass eine Ausnahme in der 2. Transaktion wird rollback nur neue Transaktion nicht die alte.

Diese mache ich durch die Einstellung Vermehrung Attribut in der 2. Transaktion wie diese:

@Transactional(propagation = Propagation.REQUIRES_NEW)

Diese eine neue Transaktion angelegt, aber die neue Transaktion zu Lesen, einige nicht gespeicherte Daten der ersten Transaktion (dirty read), und auch die Daten aktualisieren. Dies versuche ich zu tun, indem Sie die Einstellung isolation-Attribut, wie :

@Transactional(propagation = Propagation.REQUIRES_NEW, isolation=Isolation.READ_UNCOMMITTED)

Löst dies eine Ausnahme - InvalidIsolationLevelException, nämlich "Standard-JPA nicht unterstützt benutzerdefinierte Isolationsstufen verwenden eine spezielle JpaDialect für Ihre JPA-Implementierung".

Kann jeder mir helfen zu implementieren JpaDialect? Ich bin mit Eclipse Link 2.5.1 .

Oder kann ich irgend wie in der Nähe der ersten Transaktion, bevor eine neue Transaktion gestartet? Seit der Ersten Transaktion ist geschlossen, die Zweiten haben kein problem beim Lesen der Daten verpflichtet, die von der Ersten Transaktion.

InformationsquelleAutor Noor Khan | 2015-02-05
Schreibe einen Kommentar