如何在使用Spring Boot时在Spring Data中配置Jackson ObjectMap?
当我尝试返回自引用实体时,当我尝试在自引用表中检索对象的子项时,我不断收到"com.fasterxml.jackson.databind.JsonMappingException: 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"
错误。
我认为这个问题是一个序列化问题,可以通过使用jackson-datatype-hibernate包来帮助我序列化自引用对象来解决。 https://github.com/FasterXML/jackson-datatype-hibernate
到目前为止,我还未能看到有关如何配置Spring Data Rest使用的现有ObjectMapper实例的任何明确指导。
根据项目的GitHub页面,我需要做的就是将ObjectMapper子类化
public class HibernateAwareObjectMapper extends ObjectMapper {
public HibernateAwareObjectMapper() {
registerModule(new Hibernate4Module());
}
}
但是,如果我将ObjectMapper子类化,那么我是不是会松开Jackson ObjectMapper的默认行为?我不一定想失去那种行为,只是扩展它。另外,我不需要在课堂上加上@Component
注释才能让Spring接听它吗?
答案 0 :(得分:1)
如果您使用的是Spring Data REST,我认为您需要Spring Boot 1.2来自动更新对象映射器(有关详细信息,请参阅here)。对于旧版本,您可以自己注入(但是您需要配置所需的所有功能,如果它不仅仅是那个模块)。