我使用 Hibernate 作为 ORM。当我搜索这个错误时,据说我的问题是由于映射造成的,但我检查了它并没有发现任何问题
我的查询是:
select result from com.a.b.c.loan.ArchiveHistory result where result.id =?
Run Code Online (Sandbox Code Playgroud)
映射是:
<hibernate-mapping>
<class name="com.a.b.c.loan.ArchiveHistory" mutable="false" table="ARCT_HISTORY_VIEW">
<id name="id" column="BIBLIOGRAPHICID" type="long" unsaved-value="0">
</id>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
Ste*_*rnK 10
正如文档中所述:
JPQL 样式的位置参数使用问号后跟序数 -
?1,来声明?2。序数以 1 开头。就像命名参数一样,位置参数也可以在查询中出现多次。
因此,尝试以这种方式重写您的查询:
Query query = entityManager.createQuery(
"select result from com.a.b.c.loan.ArchiveHistory result where result.id =?1"
).setParameter( 1, 23L );
Run Code Online (Sandbox Code Playgroud)
或者,作为更具可读性的替代方案,我建议使用按名称绑定参数:
Query query = entityManager.createQuery(
"select result from com.a.b.c.loan.ArchiveHistory result where result.id = :id"
).setParameter("id", 23L );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15439 次 |
| 最近记录: |