Ich habe Probleme mit der Methode EntityManager.persist(Object)
. Jetzt, wenn ich andere Probleme los, durch App Arbeit ohne Ausnahme aber Objekt ist nicht in meiner Datenbank.
Meine Entitätsklasse:
%Vor%meine Dao-Klasse:
%Vor%mein XML-Kontext:
%Vor% und pereistence.xml
:
Hat jemand eine Idee, was fehlt mir?
Erhalten Sie eine bestimmte Ausnahme? Es wäre hilfreich zu wissen, was es ist, wenn Sie es sind.
Es gibt eine Reihe ähnlicher Probleme bereits bei Stackoverflow:
Der Spring-Transaktionskontext speichert keine Daten
Diese Vorschläge legen nahe, dass Sie em.flush()
nach em.persist(chain)
hinzufügen und die @transactional
-Anmerkungen
Sie sollten auch überprüfen, ob Sie Transaktionsanmerkungen über eine Zeile wie:
aktiviert haben %Vor%in Ihrer .xml-Konfiguration
Versuchen Sie Folgendes:
%Vor%PS: Sie sollten auch eine Generierungsmethode für Ihre ID festlegen.
Können Sie posten, welche Ausnahme erhalten Sie? Ich nehme an, dass Ihr Fehler darin besteht, dass Sie in Ihrer persistence.xml Ihr "Chain" -Objekt nicht angegeben haben.
Sie können mit diesem Tag angeben
%Vor%Oder nur
%Vor%Fügen Sie dieses Provider -Tag ein.
Legen Sie auch niemals eine Zahl für eine Spalte fest, die mit @Id
gekennzeichnet istWenn Sie die Methode save () mit einer ID-Spalte mit einem festgelegten Wert verwenden, gehen Sie in den Ruhezustand wird versuchen, UPDATE KEINE INSERT-Daten einzugeben.
Mach das: Erstellen Sie die getEntityManager-Methode
%Vor%Dann
%Vor%Verwenden Sie @EnableTransactionManagement in AppConfig Konfigurationsdateiheader
Sie müssen die ID-Generierungsstrategie wie folgt zuweisen:
%Vor%und in der Speichermethode
%Vor%Wenn Sie Id zuweisen, wird Hibernate / Jpa versuchen, Datensatz zu aktualisieren, der nicht verfügbar ist, anstatt neuen Datensatz einzufügen, und ich denke, wird keine Ausnahme auslösen.