作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设其他一切都像魅力(实体、命名查询、 native 命名查询)一样工作,我在尝试运行以下查询时遇到奇怪的异常,其中日期列类型为TIMESTAMP
:
@NamedNativeQuery(name = "problematicQuery", query = "DELETE FROM mytable WHERE date < ?")
我尝试使用以下代码执行此查询,其中日期是java.sql.Timestamp
:
Query deleteQuery = em.createNativeQuery("problematicQuery");
deleteQuery.setParameter(1, date);
deleteQuery.executeUpdate();
此代码会导致以下异常:
org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1
当我将中间代码行更改为:
Query deleteQuery = em.createNativeQuery("problematicQuery");
deleteQuery.setParameter(0, date);
deleteQuery.executeUpdate();
我会在不同的位置得到相同的异常:
org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 0
我使用的是 JBoss 7.2.0.Final(Hibernate 版本是 4.2.0.CR1)、Oracle 11g。
哪里出了问题?我错过了什么吗?
最佳答案
看来你使用的方式不对
em.createNamedQuery("problematicQuery")
而不是
em.createNativeQuery("problematicQuery");
在您的情况下,从字符串“problematicQuery”创建的查询不存在参数
关于java - Hibernate setParemeter 是从 1 开始还是从 0 开始?查询参数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32605899/
假设其他一切都像魅力(实体、命名查询、 native 命名查询)一样工作,我在尝试运行以下查询时遇到奇怪的异常,其中日期列类型为TIMESTAMP: @NamedNativeQuery(name =
我是一名优秀的程序员,十分优秀!