Frage

Ich versuche JOTM und Hibernate EntityManager zu integrieren zusammen zu meinem EJBs in einer transaktionalen Weise Umgebung zu testen, aber out-of-Container.

Mein Test sieht wie folgt aus:

  1. Start JOTM
  2. JOTM die Usertransaction in JNDI Put
  3. Erstellen und Konfigurieren StandardXADataSource
  4. Legen Sie die Datasource in JNDI
  5. Konfigurieren winter und erstellen EMF
  6. Erstellen Sie eine EM
  7. Starten Sie eine Transaktion
  8. Schließen Sie sich die Transaktion in EM
  9. Shop ein Unternehmen
  10. Stellen Sie sicher, es wird gespeichert
  11. Zurücksetzen der Transaktion
  12. Überprüfen Sie die Datenbank für die Anzahl der Datensätze
  13. Träne alles nach unten

Hier ist, was mein Code wie folgt aussieht: http://pastebin.com/m22a9f6b

Dies ist die Log-Ausgabe: http://pastebin.com/m6da9383a

Der Test schlägt fehl auf Schritt 12 (Linie 121).

Wie Sie sehen können, obwohl ich habe die Transaktion Roll gesichert, gibt es einen Datensatz in der DB. Scheint, wie Transaktionen, bei denen gar nicht verwendet und die Aufzeichnung stieg in den db durch.

Haben Sie Ideen, wie dies geschehen könnte und wie man es beheben?

War es hilfreich?

Lösung

Ich fand heraus, ich brauche meine eigene Implementierung von Connection zu schaffen, die XAConnection-Objekt anstelle von einfachen Verbindungen zurückkehren würde. Auf diese Weise Transaktionen scheinen Arbeit

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top