26 Stimmen

Hibernate JPA und Spring javax.persistence.TransactionRequiredException: Es findet keine Transaktion statt

Wenn ich anrufe:

entityManager.flush()

Ich verstehe die im Titel erwähnte Ausnahme.

Ich bin mit Hibernate JPA.

2voto

Muhammad Imran Tariq Punkte 21390

Stellen Sie sicher, dass Sie eine aktive Transaktion haben, wenn diese Anweisung ausgeführt wird. Wenn Sie JPA verwenden, verwenden Sie EntityManager.getTransaction().begin() . Dabei wird davon ausgegangen, dass Sie JPA außerhalb eines JTA-Transaktionsbereichs verwenden.

2voto

debugs-bunny Punkte 23

Ich hatte das gleiche Problem... habe einige Stunden damit verbracht, bis ich den Grund endlich gefunden hatte. Es war nur eine Zeile Code, die die Ausnahme in meinem Fall verursacht...

In meinem mvc-core-config.xml war die folgende Zeile der Grund:

<context:component-scan base-package="com.my.package.application" />

Nachdem ich sie wie folgt geändert hatte, funktionierte alles wieder:

<context:component-scan base-package="com.my.package.application.controller" />

Ich vermute also, dass das Scannen aller meiner Anwendungspakete anstelle von nur meinen @Controller-Klassen zu dem Problem führt, das @harshal-waghmare in seinen Beitrag zu einer anderen Antwort .

1voto

Dapeng Punkte 1660

Bitte stellen Sie sicher, dass Ihre Handler-Methode deklariert ist als public

@Transactional 
@RequestMapping('/test')
public String doTest() {
    // do your stuff here 
    return 'testview';
}

0voto

Maciej Biłas Punkte 1916

Stellen Sie sicher, dass Ihre Federkonfiguration die folgende Zeile enthält:

<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" />

mode kann entweder Proxy ou aspektj y transaction-manager muss auf Ihren Transaktionsmanager verweisen.

0voto

Nestor Urquiza Punkte 2581

Dasselbe passierte mir mit spring 3.0.0 / 3.0.3. Die Daten wurden in MySQL von JUnit persistiert, aber nicht vom Tomcat-Server. Nach so viel Arbeit gab ich auf RESOURCE_LOCAL für JTA auf.

Das hat bei mir funktioniert http://erich.soomsam.net/2007/04/24/spring-jpa-and-jta-with-hibernate-and-jotm/ Es verwendet JTA und hängt von JOTM ab.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X