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:
Ich kann nicht mehr Informationen bekommen und verstehe nicht, was das Problem ist ...
Könnte jemand helfen?
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.
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 ...