Wie erstelle ich in Hibernate 6.6 eine komplexe Entität ohne Speicherung?Java

Java-Forum
Anonymous
 Wie erstelle ich in Hibernate 6.6 eine komplexe Entität ohne Speicherung?

Post by Anonymous »

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.

Code: Select all

findByName()
) 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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post