org.hibernate.QueryException:预期的位置参数

时间:2012-11-09 19:47:08

标签: java hibernate struts hibernate-mapping named-query

我有一个namedQuery thru,我传递了2个参数,如下所示,

ArrayList idName= new ArrayList();
     idName.add(id); --int
     idName.add(ABC); --String

我将此对象传递给namedQuery,如下所示:

return getHibernateTemplate().findByNamedQuery("findIDAndName", idName);

我的hbm.xml有这个查询,

  <sql-query name="findIDAndName">
      <return alias="IdNamePmt" class="com.app.Grp.model.IdNamePmt"/>
      <![CDATA[select * from PMT.CSE_NME_VW where PMT_ID=? and PMT_NAME=?]]>
    </sql-query>

当我运行应用程序时,我收到以下错误:

org.hibernate.QueryException: Expected positional parameter count: 2, actual parameters: [[7, ABC]] [select * from PMT.CSE_NME_VW where PMT_ID=? and PMT_NAME=?]
    at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:367)
    at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:228)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:172)

我已经传递了2个参数,而我的'where'子句也需要2个参数。怎么了? 任何例子高度赞赏?

1 个答案:

答案 0 :(得分:0)

我认为应该是

return getHibernateTemplate().findByNamedQuery("findIDAndName", idName.toArray());