0

When Jackson try to serialize lazy object, i get an error:

Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: failed to lazily initialize a collection of role:

I try to use this approach this approach, but i wasn't successfull. My config for jackson-modules

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

  public MappingJackson2HttpMessageConverter jacksonMessageConverter(){
    MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new Hibernate5Module());
    messageConverter.setObjectMapper(mapper);
    return messageConverter;
  }

  @Override
  public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(jacksonMessageConverter());
    super.configureMessageConverters(converters);
  }
}

But i'm getting the same error. Could you explain me, what are I doing wrong?

My springboot version 1.5.15.RELEASE, my jackson-datatype-hibernate5 version: 2.6.0

sergpc
  • 305
  • 1
  • 4
  • 11

1 Answers1

1

By default lazy loading feature is set to false.

To enable:

Hibernate5Module module = new Hibernate5Module();
module.enable(Hibernate5Module.Feature.FORCE_LAZY_LOADING);
Wilder Valera
  • 986
  • 9
  • 11
  • thanks, i knew about it, I asked how can i configure it, when i create mapper with special configuration i can use Hibernate feature, but when i return some Object from controller, Spring uses jackson controller without my settings. Can you help me, how can i configure jackson? – sergpc Aug 22 '18 at 18:34