Spring Hibernate Jackson Hibernate5Module [英] Spring Hibernate Jackson Hibernate5Module

查看:1394
本文介绍了Spring Hibernate Jackson Hibernate5Module的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用Hibernate 5.1.0和Jackson 2.7.5设置了弹簧4.3.1

I have set up spring 4.3.1 with Hibernate 5.1.0 and Jackson 2.7.5

我有一些懒惰的init异常因为Jackson ObjectMap尝试转换我的我退出交易服务时迟到的对象。

I had some lazy init Exceptions because the Jackson ObjectMapper tries to convert my Objects to late when I am out of the Transactional Service.

因此我读过杰克逊的Hibernate5Module。

Therefore I have read the Hibernate5Module for Jackson.

添加模块后我没有得到延迟异常但是所有@JsonView注释都被忽略而且我的懒惰集合是'null'

After adding the Module I do not get lazy Exceptions BUT all @JsonView Annotations are ignored and my lazy collections are 'null'

public class SpringWebConfig extends WebMvcConfigurerAdapter {

    ...


    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {

        for (HttpMessageConverter<?> converter : converters) {
            if (converter instanceof org.springframework.http.converter.json.MappingJackson2HttpMessageConverter) {
                ObjectMapper mapper = ((MappingJackson2HttpMessageConverter) converter).getObjectMapper();
                mapper.registerModule(new Hibernate5Module());
            }
        }

    }

}

我有什么问题吗?
Hibernate5Module应初始化延迟集合...

Is there anything I am doing wrong? The Hibernate5Module should initialize the lazy collections ...

推荐答案

使用以下内容

@EnableWebMvc
@Configuration
@ComponentScan({ "..." })
public class SpringWebConfig extends WebMvcConfigurerAdapter {

    @Autowired
    SessionFactory sf;

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

        Hibernate5Module module = new Hibernate5Module(sf);
        module.disable(Feature.USE_TRANSIENT_ANNOTATION);
        module.enable(Feature.FORCE_LAZY_LOADING);

        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        builder.modulesToInstall(module);

        converters.add(new MappingJackson2HttpMessageConverter(builder.build()));

    }

}

这篇关于Spring Hibernate Jackson Hibernate5Module的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆