0

现在我在查询中使用 hql。代码是:

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

DB中的电话号码是varchar2(255 char),我使用Oracle DB。

但是这段代码不能在java代码中工作。如果电话号码是“999-000-0001”,它可以工作。我可以得到一个记录。但是如果电话号码是“USPersonal”,我就不会得到记录。

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

在 DB 中,我使用 Sql Developer,我可以获得以上所有内容。

我不知道,为什么会这样?setString 不起作用吗?

4

1 回答 1

0

I have solve this problem.

Because in this case, the phoneNumber come from file. In file, I ignored there has some space in phoneNumber " USPersonal ", while in DB, it is "USPersonal" only.

So I didn't get this record.

The codes above are correct. How careless of me!

于 2014-11-07T05:59:29.963 回答