0

今、クエリで hql を使用しています。コードは次のとおりです。

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

DB の phoneNumber は varchar2(255 文字) で、私は Oracle DB を使用しています。

しかし、このコードは Java コードでは機能しません。電話番号が「999-000-0001」であれば利用可能です。記録が取れます。しかし、phoneNumber が「USPersonal」の場合、レコードを取得できません。

Company.java では、phoneNumber は String であり、get メソッドと set メソッドがあります。

DBでは、Sql Developerを使用して、上記のすべてを取得できます。

わかりません、なぜですか?setString は動作しませんか?

4

1 に答える 1

0

私はこの問題を解決しました。

この場合、phoneNumber はファイルから取得されるためです。ファイルでは、phoneNumber " USPersonal " にスペースがあることを無視しましたが、DB では "USPersonal" のみです。

だから私はこの記録を手に入れませんでした。

上記のコードは正しいです。私はなんて不注意だ!

于 2014-11-07T05:59:29.963 に答える