【问题标题】:Jackson serialization for non fetched lazy objects Hibernate 5 Spring 5未获取的惰性对象的杰克逊序列化 Hibernate 5 Spring 5
【发布时间】:2019-01-28 04:38:40
【问题描述】:

当杰克逊尝试序列化惰性对象时,我得到一个错误:

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

我尝试使用这种方法this approach,但没有成功。我对 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);
  }
}

但我遇到了同样的错误。你能解释一下,我做错了什么吗?

我的springboot版本1.5.15.RELEASE,我的jackson-datatype-hibernate5版本:2.6.0

【问题讨论】:

    标签: java hibernate spring-boot jackson


    【解决方案1】:

    默认情况下延迟加载功能设置为 false。

    启用:

    Hibernate5Module module = new Hibernate5Module();
    module.enable(Hibernate5Module.Feature.FORCE_LAZY_LOADING);
    

    【讨论】:

    • 谢谢,我知道了,我问我如何配置它,当我创建具有特殊配置的映射器时,我可以使用 Hibernate 功能,但是当我从控制器返回一些对象时,Spring 使用没有杰克逊控制器我的设置。你能帮我吗,我该如何配置jackson?
    猜你喜欢
    • 2013-06-26
    • 2014-11-21
    • 2016-01-14
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多