我正在使用 Oracle 11GR2,当 varchar2 字段为空时,执行System.out.println
空白字段上将显示null
在我的 Eclipse 控制台上。我怎样才能让它显示空字符串?
在 getter 中使用这个技巧很好,但它会改变模型的预期行为。
正如我的评论中所引用的,Oracle 无法区分空字符串和 null。如果您确定您使用的所有字符串属性永远不会为空,您可以在休眠中创建一个拦截器,如下所示
public class EmptyStringInterceptor extends EmptyInterceptor {
@Override
public boolean onLoad(Object entity,
Serializable id,
Object[] state,
String[] propertyNames,
Type[] types) {
for (int i = 0; i < types.length; i++) {
if (StringType.equals(types[i]) && state[i] == null) {
state[i] = "";
}
}
return true;
}
}
您可以参考Hibernate关于拦截器使用的文档 http://docs.jboss.org/hibernate/orm/4.0/manual/en-US/html/events.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)