0

以下のSQLクエリをHQLクエリに変換する必要があります。

select * from table where(column1、column2、column3)in(('A'、'B'、'C')、('D'、'E'、'F'));

4

1 に答える 1

0

以下のコードは、IN句にIDが含まれている場合は完全に機能しますが、非キー列または部分キー列にIN句を設定する必要がある場合は機能しません。

List ids = new ArrayList<SomeEntityId>(2);
ids.add( new SomeEntityId(1,12) );
ids.add( new SomeEntityId(10,23) );
ids.add( new SomeEntityId(10,22) );
Query query=s.createQuery( "from SomeEntity e where e.id in (:idList)" );
query.setParameterList( "idList", ids );
List list=query.list();

しかし、HQLを「fromSomeEntity e where(column1、column2)in(:idList)」として作成すると、機能しません。

于 2012-10-17T10:07:16.527 に答える