我有一個列可能有一些不好的數據,我不能清理它,所以我需要檢查null或空字符串。我在做一個Hibernate條件查詢,所以我已經得到了返回不正確,現在的情況如下:hibernate如何使用空字符串進行平等限制?
Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Criteria myCriteria = session.createCriteria(Object);
...
myCriteria.add(Restrictions.or(Restrictions.isNull("stringColumn"),
Restrictions.eq("stringColumn", "")));
List<Objects> list = myCriteria.list();
我不能得到正常返回我期望的結果。因此,作爲一個實驗,我改變了第二個限制爲:
Restrictions.eq("stringColumn", "''")
,它開始返回了預期的效果,所以是休眠錯誤翻譯我的空字符串(如「」)到一個SQL空字符串(例如「」) ,還是我只是做錯了?
哪些是您使用的數據庫 - 空字符串有不同在不同的DBS行爲 – Mark 2010-05-11 18:00:23