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