2014-11-07 82 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”。

所以我没有得到这个记录。

上面的代码是正确的。 我多么粗心!