我想持久化到jsonb类型列(com.vladmihalcea. hib. type.json.jsonBinaryType)
@Type(type = "jsonb")
@Column(name = "style", columnDefinition = "jsonb")
private TextStyleJsonB style;
JSON对象相对较大,我不希望它保存带有空值的字段,所以我决定使用自定义对象Map器,在那里我忽略空值。但它没有被应用,所有空值仍然保存到postgres数据库。有什么想法如何摆脱空字段,只保存带有实值的字段吗?
在spring boot中,我有以下应用程序属性
hibernate:
types:
jackson:
object:
mapper: com.xxx.constructor.configurations.CustomObjectMapperSupplier
自定义对象Map器供应商如下所示:
public class CustomObjectMapperSupplier
implements ObjectMapperSupplier {
@Override
public ObjectMapper get() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
return mapper;
}
}
1条答案
按热度按时间r55awzrz1#
您不应该在应用程序.yml中定义CustomObjectMapperSupplier,而应该建立hibernate.properties具有下列属性的www.example.com档案: