Ich möchte ein "Vorschau" -Objekt erstellen und das Objekt an einen REST -Entpoint zurückgeben. (String JSON) < /p>
In Hibernate 6.3 hatte ich keine Probleme, aber in 6.6 habe ich die Fehlermeldung erhalten: < /p>
Code: Select all
org.hibernate.TransientObjectException: persistent instance references an unsaved transient instance of 'XXX' (save the transient instance before flushing)
Ich füge Cascade = {Cascadetype.Persist} hinzu, das in Hibernate 6.3 hilft, aber nicht in 6.6. Der erste Lauf funktioniert, der Fehler tritt nur im zweiten Lauf auf. < /P>
Was kann ich tun? Ich erstelle Objekt A, setze ein paar Eigenschaften und gehe dann in die for -Schleife und erstelle Objekt B. Ich hebe Objekt B an eine Listeneigenschaft von Object A mit ObjectA.getList () an. (ObjectB) . Die Schleife sollte das x -mal durchlaufen. Der Fehler tritt genau im zweiten Lauf auf.
) Um weitere Informationen für das ObjectB zu erhalten und Eigenschaften entsprechend festlegen. Offensichtlich mag Hibernate nicht, dass ich ein Repository / auswähle, ohne das Objekt zuvor gespeichert zu haben. Muss ich die Repository -Methode irgendwie annotieren, um readonly oder so zu sein? Was dann in die Leistung geht, aber ich kann es nicht dazu bringen, anders zu laufen. Leider scheitern meine Tests jetzt! Genau das Gleiche passiert. Ich erstelle das Objekt im Test, ohne zu speichern! Und
ich möchte genau das mit ObjectArepo.findall (). Size () = 0 testen. Auch hier erhalte ich die gleiche Fehlermeldung. Ich habe auch ObjectArepo.detach (Objecta) und ObjectArepo.flush () ausprobiert. Obwohl der Fehler dann mit ObjectArepo.flush () . Was habe ich falsch gemacht? Ich denke, es ist unfair, ohne zu sagen, was los ist.