2014-11-07 80 views
0

現在我在查詢中使用hql。 的代碼是:休眠query.setString不工作

return session.createQuery(
       "from Company com " 
         + " where com.comId = " 
         + ":comId and com.phoneNumber = :phoneNumber") 
       .setString("comId", comId).setString("phoneNumber", 
         phoneNumber).list(); 

的phoneNumber的在DB是VARCHAR2(255個字符),並且我使用Oracle DB。

但是這段代碼無法在java代碼中工作。 如果phoneNumber是「999-000-0001」,它可以工作。我可以得到一個記錄。 但是,如果phoneNumber是「USPersonal」,我不會記錄。

在Company.java中,phoneNumber是String,並且具有get和set方法。

在數據庫中,我使用Sql Developer,我可以得到以上所有。

我不知道,爲什麼?該setString不起作用?

回答

0

我已經解決了這個問題。

因爲在這種情況下,phoneNumber來自文件。在文件中,我忽略了在phoneNumber「USPersonal」中有一些空間,而在DB中,它只是「USPersonal」。

所以我沒有得到這個記錄。

上面的代碼是正確的。 我多麼粗心!