空字符串字段作为空字段

sam*_*ubr 2 java hibernate spring-mvc spring-data-jpa spring-boot

默认情况下,Spring将空字符串字段保留为数据库中的空字符串。有没有办法使用Spring Boot将任何实体中所有空字符串字段持久化为空字段?

小智 5

也许您可以尝试使用转换器:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)