1

私はSpringを使用してHibernateで作業しており、位置付けられたパラメーターを値に置き換えるためにSpring Hibernate template( ) を使用しています。 私のクエリは次のとおりです。 getHibernateTemplate().find(String query,Object values)

from className classObject where classObject.variableOne = ? and classObject.variableTwo = ?  

私のパラメータはArrayList<String>2つの値を持つです。

getHibernateTemplate().find(String query,Object values)where句で値が自動的に割り当てられArrayList(ご覧のとおり、パラメーターを手動でバインドしませんでした)、結果が返されました。
ここで、アプリケーションから春を削除し、休止状態のみを使用しました。そこで知りたいのですが、

  • HQL と値を渡す上記と同じ機能を提供する hibernate (Session または Query) クラスで利用可能な同等のメソッドはありますか?

前もって感謝します。

4

1 に答える 1

1

以下のようなものを使用する必要があります

private void setParamValues(final String[] paramValues, SQLQuery query) {
        if (paramValues != null && paramValues.length > 0) {
            for (int liCnt = 0; liCnt < paramValues.length; liCnt++) {
                query.setString(liCnt, paramValues[liCnt]);
            }
        }
}

SQLQuery は ? を置き換えます。渡されたパラメータの値で。paramValues 配列のシーケンスは、クエリに書き込まれたものと同じである必要があることに注意してください。

上記は私の場合に機能しましたが、これはあなたの場合にも機能すると確信しています。

これは Hibernate メソッドではありません。データベースを呼び出す前にこのメソッドを使用する必要があります。

于 2013-06-24T13:30:26.020 に答える