spring rest lazy loading with hibernate
Try adding the following dependancy (depending on your hibernate version):
<dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-hibernate5</artifactId> <version>${jackson.version}</version></dependency>
And then (assuming you have a Java based configuration) add the following in the WebMvcConfigurerAdapter class:
@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(jackson2HttpMessageConverter());}@Beanpublic MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); converter.setObjectMapper(this.jacksonBuilder().build()); return converter;}public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); Hibernate5Module hibernateModule = new Hibernate5Module(); hibernateModule.configure(Feature.FORCE_LAZY_LOADING, false); builder.modules(hibernateModule); // Spring MVC default Objectmapper configuration builder.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); builder.featuresToDisable(MapperFeature.DEFAULT_VIEW_INCLUSION); return builder;}
It should force the Jackson's objectMapper to not fetch lazy-loaded values.