如何解决如何使用 ObjectTypeConverter 管理空值?
我有这个转换器将 Boolean.class 字段从实体转换为 Oracle DB 中的 VARCHAR(1):
@ObjectTypeConverter(name = "SNtoBoolConverter",dataType = java.lang.String.class,objectType = java.lang.Boolean.class,conversionValues = {
@ConversionValue(dataValue = "S",objectValue = "true"),@ConversionValue(dataValue = "N",objectValue = "false"),}
) 有没有办法将空值转换为字符? 谢谢!
解决方法
不,您需要使用 custom converter。类似的东西:
@Converter(name="SNtoBoolConverter",converterClass=org.myorg.converters.SNtoBoolConverter.class)
Boolean yourProperty;
public class SNtoBoolConverter implements org.eclipse.persistence.mappings.converters.Converter {
public Object convertDataValueToObjectValue(Object dataValue,Session session) {
if ("S".equals(dataValue))
return Boolean.TRUE;
if ("N".equals(dataValue))
return Boolean.FALSE;
return null;
}
public Object convertObjectValueToDataValue(Object value,Session session) {
if (null == value)
return null;
if (value == Boolean.TRUE){
return "S"
} else {
return "N"
}
}
public void initialize(DatabaseMapping mapping,Session session){}
public boolean isMutable() {return false;}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。