我有一个名为AbstractEntity
的基础JPA实体,其属性为code
,我还有大量其他JPA实体(ProductEntity
,CategoryEntity
,UserEntity
等),每个都从AbstractEntity
延伸。
现在有些实体引用了其他实体,例如CategoryEntity
有一个名为parentCategory
的属性,或者ProductEntity
有一个类别集合(categories
)。< / p>
现在我想让杰克逊序列化ProductEntity
,但每当属性类型为AbstractEntity
时,我希望它只打印code
而不打印任何其他内容。
我的解决方案是为Serializer
添加自定义AbstractEntity
,但您可能会认为ProductEntity
也是AbstractEntity
,所以每当我说objectMapper.writeValueAsString(product)
时我只得到code
。而我想要的是:
{
code: 'abc',
category : 'categoryA',
price : '12 $',
active : true
}
有没有办法告诉jackson仅将自定义序列化程序用于字段而不是对象本身? 顺便说一下,我无法真正使用注释,因为我无法访问代码,就像我说这些类真的很多。