我正在使用Oracle 11GR2,当varchar2字段为空时,在我的Eclipse控制台上System.out.println显示空字段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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以参考Hibernate的文档来使用拦截器
你的吸气方法:
public String getVarchar2()
{
if(this.varchar2==null)
return "";
else
return this.varchar2;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7772 次 |
| 最近记录: |