2
的平等限制休眠空字符串扩展上 How does hibernate use an empty string for an equality restriction?为PostgreSQL 8.3版本和Oracle 11g
我有一个关于如何检查的Oracle 11g和PostgreSQL 之间的空字符串使用Hibernate限制
问题对于我的具体应用, PostgreSQL的节约使用2个单引号“” 空值,而Oracle保存空值NULL
的代码来检查是否为空值的不就是
public void AssureNotEmpty() { ...
//For Oracle 11g
valueRestriction = Restrictions.isNotNull(propertyValueAlias);
//For PostgreSQL
valueRestriction = Restrictions.and(Restrictions.isNotNull(propertyValueAlias),
Restrictions.ne(propertyValueAlias, ""));
Restrictions.ne(propertyValueAlias,“”)在Oracle失败当值不为空,因为它会被解释为值!= NULL(这将永远是假的)的休眠使甲骨文解释“”为空值。
那么我该如何使数据库平台不可知的功能(因为现在我必须检测哪个数据库正在运行,PostgreSQL或Oracle)?
还是我完全误解了一些东西?
好,谢谢杰克将不得不测试它:) – portoalet 2011-04-01 11:25:41