我需要将以下SQL查询转换为HQL查询。
从表中选择*,其中(column1,column2,column3) (( 'A', 'B', 'C'),( 'd', 'E', 'F'));
答案 0 :(得分: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为“来自SomeEntity e where(column1,column2)in(:idList)”,它就不起作用。