Spring MVC :konnte nicht initialisiert proxy - keine Sitzung (durch Verweis Kette)
type Exception report
Nachricht Konnte nicht schreiben Inhalt: fehlgeschlagen zu faul initialize a collection of role: edu.waa.eingestuft.dto.Benutzer.Produkte, die nicht initialisiert werden konnte proxy - keine Sitzung (durch Verweis Kette: java.util.ArrayList[0]->edu.waa.eingestuft.dto.User["Produkte"]); verschachtelte Ausnahme ist com.fasterxml.jackson.databind-Methode.JsonMappingException: fehlgeschlagen zu faul initialize a collection of role: edu.waa.eingestuft.dto.Benutzer.Produkte, die nicht initialisiert werden konnte proxy - keine Sitzung (durch Verweis Kette: java.util.ArrayList[0]->edu.waa.eingestuft.dto.User["Produkte"])
Beschreibung Der server hat einen internen Fehler, der verhinderte, dass es von der Erfüllung dieser Anforderung.
InformationsquelleAutor Anand Godar | 2015-10-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich nur noch die @JsonIgnore an der nach dem @ManyToMany(fetch = FetchType.FAUL, cascade = CascadeType.ALLE) Anmerkungen. Es arbeitete.
Aber nicht sicher, warum es funktioniert.
InformationsquelleAutor Anand Godar
Das problem ist, Ihr FetchType.faul. Wenn Jackson konvertiert die Benutzer-Entität, es versucht zu laden, der Produkte, sondern die hibernate-session wird geschlossen.
So hinzufügen @JsonIgnore ist ein Weg, um dieses Problem zu lösen, aber wenn Sie Sie brauchen, die Produkte zurück auch keine option.
Ich fand diese Antwort löst das gleiche problem bei mir und gab mir die lazy geladen werden Typ:
https://stackoverflow.com/a/21760361
Das gute an dieser Lösung ist, dass Sie immer noch mit dem lazy load für Produkte.
InformationsquelleAutor buettner123
Ich denke mal der controller aus der hibernate-session. (ohne @Transactional). Aber Ihre json-Liste will gefüllt werden, die außerhalb der Tagung. Aber hibernate gefüllt mit proxy anstelle von realen Daten und außerhalb der hibernate-session es nicht laden kann, dass die Daten, wenn Sie versuchen, Zugriff auf ist. JsonIgnore nicht verlangen, dass die Daten, so dass es funktioniert. Oder, wenn Sie wollen, dass die Daten im json-Objekts fetchtype EAGER. Dann in den Ruhezustand laden Sie Sie sofort. Wenn Sie möchten, dass die Liste nur in besonderen Fällen lassen es FAUL ist, aber der Zugang es dann auf service-Ebene in eine spezielle Methode , die annotation @transactional. Dann hibernate ist in der Lage zu füllen, die Liste.
InformationsquelleAutor Michael Hegner
Kam ich auch über das gleiche problem. Ich habe gerade die folgende annotation zu meiner Person-Klasse (kurz vor der entity-Klasse). Es macht den job für sicher.
InformationsquelleAutor MAC