空字符串字段作为空字段
Posted
技术标签:
【中文标题】空字符串字段作为空字段【英文标题】:Empty string field as null field 【发布时间】:2018-04-23 14:37:32 【问题描述】:默认情况下,Spring 将数据库中的空字符串字段作为空字符串持久化。有没有办法使用 Spring Boot 将来自任何实体的所有空字符串字段保留为空字段?
【问题讨论】:
使用 Spring Boot?什么意思? 抱歉,我的意思是使用 Spring Data 和/或 Hibernate Annotations。 为什么字段设置为空字符串?将它们设置为空,它们将在数据库中保存为空。 【参考方案1】:也许你可以尝试使用转换器:
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import org.apache.commons.lang.StringUtils;
@Converter(autoApply = true)
public class EmptyStringToNullConverter implements AttributeConverter<String, String>
@Override
public String convertToDatabaseColumn(String string)
// Use defaultIfEmpty to preserve Strings consisting only of whitespaces
return StringUtils.defaultIfBlank(string, null);
@Override
public String convertToEntityAttribute(String dbData)
//If you want to keep it null otherwise transform to empty String
return dbData;
【讨论】:
不错!解决了我的问题。谢谢! 不错的解决方案。真的很有帮助。我正要开始搜索压倒一切的杰克逊。以上是关于空字符串字段作为空字段的主要内容,如果未能解决你的问题,请参考以下文章
SrpingMVC/SpringBoot中restful接口序列化json的时候使用Jackson将空字段,空字符串不传递给前端