我使用的是 Oracle 11GR2,当 varchar2 字段为空时,在空字段上执行 System.out.println
将在我的 Eclipse 控制台上显示 null
。我怎样才能让它显示空字符串?
最佳答案
在 getter 中使用这个技巧很好,但它会改变模型的预期行为。
正如我在评论中引用的那样,Oracle 无法区分空字符串和 null。如果您确定您正在使用的所有字符串属性永远不会为 null,您可以像这样在 hibernate 中创建一个拦截器
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;
}
}
关于java - 如何强制 Hibernate 返回一个空值而不是 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14251767/