Trennen einer Entität von einem JPA-Persistenzkontext (JPA 2.0 / Hibernate / EJB 3 / J2EE 6)

8

Ich habe eine zustandslose EJB-Methode geschrieben, die es ermöglicht, eine Entität in den "Nur-Lese" -Modus zu bringen.

Die Methode besteht darin, die Entity mit dem EntityManager zu holen und sie dann zu lösen (mit dem JPA 2.0 EntityManager).

Mein Code ist folgender:

%Vor%

Die Entity funktioniert einwandfrei, aber der Aufruf der Methode detach gibt den folgenden Fehler zurück:

%Vor%

Ich kann nicht mehr Informationen bekommen und verstehe nicht, was das Problem ist ...

Könnte jemand helfen?

    
Julien 29.03.2010, 14:50
quelle

2 Antworten

7

Ich nehme an, dass Sie JPA 2.0 mit der falschen Version von Hibernate verwenden, die die JPA 2.0-Spezifikation nicht implementiert. Die Ausnahme besagt, dass EntityManagerImpl nicht über die erforderliche Methode verfügt.

Ich empfehle, Hibernate auf 3.5 zu aktualisieren, was eine JPA 2.0-Implementierung ist.

    
Bozho 29.03.2010, 15:04
quelle
1

Sie können alle Entitäten mit "clear" trennen, aber sie entfernen nur ein Objekt, das nicht in JPA 2.0 enthalten ist. Ссылка

Wahrscheinlich hatten Sie impl im Build-Pfad und eine andere Implementierung auf Ihrem Anwendungsserver (EclipseLink? oder alte Hibernate-Version) ...

Der entityManager.detach(...) befindet sich im Ruhezustand, aber nicht in JPA. Sie müssen daher den Hibernate-Impl auf Ihrem Anwendungsserver verwenden, um diese Funktion zu verwenden ...

    
Sebastien Lorber 08.04.2010 09:04
quelle

Tags und Links