任何人都可以使用in
为where子句建议正确的语法
应用于列表? .hbm文件中的以下查询生成一个解析
例外:
<query name="Nutrient.findNutrients1">
<![CDATA[from Nutrient as nutrient where nutrient.id in elements(?)]]>
</query>
例外如下:
PARSER.reportError(56)|行2:95:
期待IDENT,找到“?”
SessionFactoryImpl。(395)|错误
在命名查询中:
Nutrient.findNutrients1
org.hibernate.hql.ast.QuerySyntaxException:
期待IDENT,找到“?”近线
2,第95列[来自Nutrient as
营养素
元素(?)
最佳答案
删除查询的elements
部分:
<query name="Nutrient.findNutrients1">
<![CDATA[from Nutrient as nutrient where nutrient.id in (:ids)]]>
</query>
并像这样调用它:
List<Long> vals = Arrays.asList(1L, 2L);
Query q = session.getNamedQuery("Nutrient.findNutrients1");
q.setParameterList("ids", vals);
List<Nutrient> result = q.list();