1

我在 orm.xml 中使用命名本机查询。

我编写了一个查询来从特定表中获取 Id。由于我只想返回结果,所以我编写了一个虚拟结果集映射。

我收到以下错误:

找不到命名参数 [1]

但是,当我们使用字符串连接在 Java 文件中编写查询时,这种声明参数的方式可以正常工作。可能是什么问题?

这是我的 orm.xml 的一部分

    <named-native-query name="transactionIDs" result-set-mapping="dummy">
        <query>
                SELECT txn_master.id FROM txn_master txn_master
                LEFT JOIN  transaction txn_detail ON txn_detail.master_id = txn_master.id
                WHERE txn_detail.created between ? AND ?
        </query>
</named-native-query>


<sql-result-set-mapping name="dummy">
      <column-result name="bla" />
</sql-result-set-mapping>

但我得到错误:

  16:46:54,933 ERROR [STDERR] java.lang.IllegalArgumentException:  
   org.hibernate.QueryParameterException: could not locate named parameter [1]
  16:46:54,933 ERROR [STDERR]   at  
   org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:176)

 16:46:54,933 ERROR [STDERR]    at 
  org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:231)
4

0 回答 0