Hibernate 休眠查询列表中项目的位置
有人能在 申请名单?在.hbm文件中的以下查询生成一个解析 例外情况:Hibernate 休眠查询列表中项目的位置,hibernate,hql,Hibernate,Hql,有人能在 申请名单?在.hbm文件中的以下查询生成一个解析 例外情况: <query name="Nutrient.findNutrients1"> <![CDATA[from Nutrient as nutrient where nutrient.id in elements(?)]]> </query> 例外情况如下: PARSER.reportError(56)|第2:95行: 应为IDENT,找到“?” SessionFactoryImp
<query name="Nutrient.findNutrients1">
<![CDATA[from Nutrient as nutrient where nutrient.id in elements(?)]]>
</query>
例外情况如下:
PARSER.reportError(56)|第2:95行:
应为IDENT,找到“?”
SessionFactoryImpl.(395)|错误
在命名查询中:
营养素1
org.hibernate.hql.ast.QuerySyntaxException:
应为标识,在第行附近找到“?”
2,第95栏[来自营养素as
营养素,其中nutrient.id位于
元素(?)
删除查询的
元素
部分:
<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();
List vals=Arrays.asList(1L,2L);
Query q=session.getNamedQuery(“Nutrient.findNutrients1”);
q、 设置参数列表(“ID”,VAL);
列表结果=q.List();
谢谢。但是,我不知道如何在.hbm文件中定义的查询中使用命名参数-我认为您需要在整个会话中使用命名参数…您知道是否可以通过.hbm完成吗?@Greg您可以在命名查询中使用位置参数或命名参数。但这不是重要的部分。如果您选择r:)@Pascal而不是remove,您是否介意添加一点内容来说明如何在此上下文中传递命名参数?@Gred我应该在我的初始答案中这样做。请参阅我的更新。@Pascal很抱歉需要在此处显示,但您是否也会显示使用位置参数的查询版本?(我肯定我在做一些愚蠢的事情,但这并不是我所期望的那样)