Jackson-Serialisierung bei nicht abgerufenen Lazy-Objekten vermeiden
Wenn Lazy-Fetched-Hibernate-Objekte mit Jackson serialisiert werden, kann fällig eine JsonMappingException ausgelöst werden auf die fehlende Initialisierung. Um dieses Problem zu lösen, können mehrere Ansätze implementiert werden.
Eine Methode besteht darin, das Hibernate4Module beim von Spring bereitgestellten Standard-MappingJackson2HttpMessageConverter zu registrieren. Dies kann erreicht werden, indem die Spring-Konfigurationsklasse (WebMvcConfigurerAdapter) erweitert und die Methode configureMessageConverters überschrieben wird. Innerhalb dieser Methode sollte ein neuer MappingJackson2HttpMessageConverter erstellt und mit dem Hibernate4Module angepasst werden. Dieser Konverter kann dann zu den HttpMessageConverters der Anwendung hinzugefügt werden.
Für die XML-Konfiguration muss anstelle eines benutzerdefinierten HttpMessageConverters ein HibernateAwareObjectMapper erstellt werden. Dieser Mapper kann dann als objectMapper-Eigenschaft des MappingJackson2HttpMessageConverter festgelegt werden. Anschließend sollte MappingJackson2HttpMessageConverter als Nachrichtenkonverter in der XML-Konfiguration hinzugefügt werden.
Durch die Implementierung eines dieser Ansätze wird Jackson daran gehindert, nicht abgerufene Lazy-Objekte zu serialisieren, wodurch die JsonMappingException aufgelöst und eine ordnungsgemäße Serialisierung sichergestellt wird.
Das obige ist der detaillierte Inhalt vonWie kann man Jackson-Serialisierungsfehler mit im Ruhezustand befindlichen Lazy-Loaded-Objekten verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!