Zum Inhalt springen

EntityManager/UserTransaction -> Rollback ohne funktion


Empfohlene Beiträge

Geschrieben (bearbeitet)

Moin,

meine Unittests führen vor den Tests ein transaction.begin() und danach ein transaction.rollback() aus.

Beides hab ich per injection in der Testklasse.

@PersistenceContext()

private EntityManager entityManager;

@Resource

private UserTransaction userTransaction;

Entity Manager wird nicht mehr benutzt. Ich führ das nur der vollsätndigkeithalber mit auf. Es wurden darüber mal testdaten persistiert. (Da hat das rollback korrekt drauf funktioniert)

Nun rufe ich Businesslogik auf, welche Objekte persistiert (entityManager.persist()).

Die Businesslogik nutzt für den EntityManager keine injection.

Beim debuggen seh ich allerdings, dass die transaction in der Testklasse, wie auch in der Businesslogik im entityManager definitiv die selbe ist. (stimmt nicht ganz, der transactionmanager ist der selbe, die transaction seh ich im entitymanager leider nicht)

Habt ihr ne idee warum ein Rollback an dieser Stelle nicht funktionieren könnte?

Schöne Grüße,

Uschi

Bearbeitet von DonUschi
Geschrieben (bearbeitet)

weitere infos und erkenntnisse des tages:

Die UnitTests testen die Businesslogik über einen Aufruf der Webservicemethoden die auf die Businesslogik Zugriff haben.

Im UnitTest hab ich eine UserTransaction und wollte auf diese begin und rollback machen. Das hat ja aber wahrscheinlich überhaupt keinen Einfluss auf die Transactions und EntityManager im Backend. (Diese sind nämlich für jede Aktion im Backend und auch im Frontend jedesmal andere)

Ist es überhaupt möglich von der Sicht des UnitTests aus die Transaction des Backends zu steuern? Schichtverletzungen wären dabei erstmal egal.

Da das ganze Container Managed ist, hab ich ja auch leider keinen Zugriff auf die EntityTransaction die dann evtl. global wäre?

Bearbeitet von DonUschi

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...