【问题标题】:org.hibernate.QueryException: Expected positional parameterorg.hibernate.QueryException:预期的位置参数
【发布时间】:2012-11-09 19:47:08
【问题描述】:

我有一个 namedQuery,我通过它传递了 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 个参数。怎么了? 有什么例子值得赞赏吗?

【问题讨论】:

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


    【解决方案1】:

    我认为应该是

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

    【讨论】:

    • 这没有帮助。有什么例子吗?
    • findByNamedQuery() 的第二个参数应该是一个数组,而不是一个列表。你还有例外吗?错误信息是什么?
    猜你喜欢
    • 2023-02-10
    • 2021-09-15
    • 2020-11-27
    • 1970-01-01
    • 2022-07-25
    • 2021-12-18
    • 2021-07-27
    • 2021-06-14
    • 2013-08-12
    相关资源
    最近更新 更多