0

私は Hibernate の初心者なので、これのいくつかが明白である場合は申し訳ありませんが、非常に長い 1 日でした。Hibernate と Toad/Oracle で簡単なクエリを作成して実行しようとしています。

Toad/Oracle の sql は次のように読み取ります。

上記は正しい 10 レコードを返します。

次の Java コードは 0 レコードを返しますが、これは正しくありません.claim_index = :id";

 Query qLinesAvailable = em.createNativeQuery(sLinesAvailable);
 qLinesAvailable.setParameter("id", "87167895");        // fails
 qLinesAvailable.setParameter("id", 87167895);    // fails


 List<Object> out = (List<Object>) qLinesAvailable.getResultList();
 BigDecimal x = (BigDecimal) out.get(0);

0 レコードを返します。.getSingleResult() を使用しても、0 レコードが返されます。

ここで何が欠けていますか?

どんな助けでも大歓迎です!

4

2 に答える 2

0

不正な形式のクエリエラーが表示されない場合は、パラメータが正しくバインドされていないようです。

デバッグするには、パラメーターを設定した後、そのSQLステートメントをその行に出力します。これは、パラメータが設定された後、Toadと比較するためにSQLを確認できる唯一の方法です。

バインディングファイルはどのように見えますか?IDに別の名前が含まれている可能性があるため、名前に基づいてIDを見つけることができません。テストと同じように、パラメータの順序値を使用してバインドを試みます。

これはいくつかのアイデアを与えるかもしれません:http ://www.mkyong.com/hibernate/hibernate-parameter-binding-examples/

頑張ってください!私たちは皆そこにいました:)

于 2013-02-01T05:38:51.357 に答える
0

試してみるとどうなりますか:

 (Number) query.getSingleResult();

クエリはリストではなく、単なるカウントを返しています。

幸運を。

于 2013-02-01T05:40:01.417 に答える