Oracle 将空字符串视为 Java/JPA 程序员的 NULL 问题
如何处理 Oracle 将空字符串存储为数据库中的 null 的情况?
我希望将其存储为空字符串,因为它不是NULL,因为发出查询会更容易。
类似这样的东西会选择空字符串和非空字符串,但不会选择 null 值
select * from mytable where myfield like '%';
如果我想选择空值(最初应该是空字符串),我必须像这样选择:
select * from mytable where myfield like '%' or myfield is null;
我很乐意跳过以后在我的sql语句中一直做or myfield is null
我心目中的当前解决方案是在应用程序级别中处理此问题,例如,在实体中,我将所有 String 字段默认值初始化为空格,例如:
@Entity
public class MyEntity {
private String name = " ";
public void setName(String name) {
if (isEmptyString(name)) {
name = " ";
}
}
...
}
或者,也许,我可以使用Oracle 11g中我仍然未知的新类型,该类型可以保持空字符串不变,而无需将其更改为空值?
谢谢!