2012-06-28 11 views
7

私はの線に沿ってのqueryStringている:私の位置パラメータを設定する場合、クエリは通常通りHibernate - 名前付きパラメーターと定位置パラメーターを混在させることはできますか?

session.createSQLQuery("SELECT C.FIRSTNAME AS firstName, C.LASTNAME as lastName FROM ADDRESSBOOK_CONTACT AS C WHERE C.ADDRESSBOOK_ID = :addressbookId AND firstName = ?"); 

を実行しているが、結果がない:

query.setParameter(0, "firstname1010"); 
query.setParameter("addressbookId", addressbook.getId()); 

間違っています。私のポジションを名前に変更した場合:

query.setParameter(firstname, "firstname1010"); 

私のクエリは正しい結果を返します。

なぜ私がこれをやっているのかについての説明はありませんが、2つのタイプを混在させるのがサポートされるべきかどうかを知りたいですか?私はorg.hibernate.Query上のクラスレベルのドキュメントから3.6.3.Final

答えて

5

を休止状態使用しています:

あなたはJDBCスタイルのパラメータと同じクエリで名前付きパラメータ をミックスし、一致しない場合があります。

あなたが見ている動作は完全に予想されます。

関連する問題