0

私がやりたいことは、ID のリストを受け取り、読み込まれたオブジェクトのリストを返す HQL クエリを作成することです。しばらくすると、このようなものが機能することがわかりました

from Foo foo where foo.ID in (:IdList)

ただし、これは、アプリが次の例外をスローする複合 ID に使用しようとすると、単一の ID に対してのみ機能します。

System.ArgumentOutOfRangeException : インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス

私は無知です...

休止状態の使用方法を説明できることを期待して、id オブジェクトのカスタム型を作成しましたが、うまくいきませんでした。

何かアイデアはありますか?

ありがとう

4

1 に答える 1

0

私はこれを行うことができるsqlqueryを考えることはできません(In私が知る限り、入力としてペアを取ることはできません)

これで十分でしょうか(私の頭の上では、今はテストできません)?

var query = "from Foo foo where ";

for (int i = 0; i < idlist.Count; i++)
{
    query += "OR foo.ID = :p" + i;
}

var hqlquery = session.CreateQuery(query);
for (int i = 0; i < idlist.Count; i++)
{
    hqlquery.SetParameter("p" + i, idlist[0]);
}
于 2011-07-13T08:52:41.080 に答える