我在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)