0
我试图序列与几个延迟加载属性的对象,而我得到了以下错误:杰克逊系列化和延迟加载在Spring MVC
Could not write content: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
经过一番搜索我已经试过这是我的@Configuration类,但它似乎没有帮助:
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
Hibernate4Module hibernateModule = new Hibernate4Module();
hibernateModule.configure(Hibernate4Module.Feature.FORCE_LAZY_LOADING, false);
objectMapper.registerModule(hibernateModule);
return objectMapper;
}
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(objectMapper());
return converter;
}
当我更改为FetchType.EAGER应用程序工作正常。
使用的DTO确实是另一种选择,但我想的东西更自动化的方式来工作。 Hibernate4Module应该可以解决这个问题,但它有点不适合我。 – user3170702
恕我直言,我会使用的DTO的做法,我会用户休眠发电产品,这样就可以使用预测为了利用变压器只选择查询所需字段,然后包裹结果的DTO(如org.hibernate作为.transform.Transformers.aliasToBean(Class targetClass) –