Addressing Lazy Object Serialization Issue with Jackson
Your aspiration to prevent Jackson from serializing unfetched lazy attributes has a straightforward resolution. Thanks to the valuable input from indybee, we've uncovered a solution that works with your current Spring, Hibernate, and Jackson versions.
Spring versions 3.1.2 and later introduce an enhanced MappingJackson2HttpMessageConverter that incorporates the functionality of the custom converter mentioned in the Spring 3.1 tutorial. To leverage this converter, extend your Spring configuration class from WebMvcConfigurerAdapter and override the configureMessageConverters method.
Within the configureMessageConverters method, add the MappingJackson2HttpMessageConverter with the Hibernate4Module registered. In Java config, this might resemble:
@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(jacksonMessageConverter()); super.configureMessageConverters(converters); }
For an XML configuration, create a custom HibernateAwareObjectMapper as suggested in the tutorial:
<mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.pastelstudios.json.HibernateAwareObjectMapper" /> </property> </bean> </mvc:message-converters>
This solution seamlessly integrates the Hibernate4Module with Spring's default message converter, ensuring that unfetched lazy objects are not serialized by Jackson.
The above is the detailed content of How Can I Prevent Jackson from Serializing Unfetched Lazy Attributes in Spring?. For more information, please follow other related articles on the PHP Chinese website!