当前位置: 首页 > 知识库问答 >
问题:

Hibernate中本机查询的命名参数上的奇怪异常

司寇阳曦
2023-03-14

我有一个疑问

select ... from x join y on ..
where ... and :age between y.min and y.max

但是在使用hibernate执行查询时,我收到

org.hibernate.QueryParameterException:无法定位命名参数[age]

怎么了?

共有2个答案

周龙光
2023-03-14

检查您的java代码,如果您已经正确地通过了“年龄”。可能你已经错过了,或者拼错了。

如果你也能分享你的java端代码,那会很好。

葛修真
2023-03-14

因为您还没有发布实际的查询,所以我从您的代码片段中推断,您在查询中的错误位置使用了:age参数。查询的where子句的语法是< code > column _ name operator value ,因此应该用一个表的实际列名来代替< code>:age。你可能想做的是< code>y.min

 类似资料:
  • 问题内容: 我对Hibernate Native Query有问题。我有一个选择,它选择数组切片(PostgreSQL数据库)。 问题在于hibernate状态识别以下部分:来自“ SELECT my_array [1:300] …”的“:300”作为命名参数,并且我得到以下异常:尚未设置所有命名参数。 我试图用’:’,’::’逃脱冒号(:),但没有成功。 Hibernate版本是3.2 问题答案

  • 错误:运算符不存在:uuid=bytea 有什么建议吗?

  • 问题内容: 使用Hibernate时,有什么方法可以在命名查询中指定可选参数(例如,从表单提供搜索参数而并非所有参数都是必需的)?我正在使用本机SQL查询,但该问题可能也适用于命名HQL查询。 我很确定对此的答案是“否”,但是我还没有在文档中找到确切的答案。 问题答案: AFAIK,没有这样的事情,因此您必须为此编写一个动态查询。也许看一下以前的答案,该答案显示了如何在HQL中执行此操作(您可以将

  • 我写了原生sql查询,而不是使用hql和面对roblem 超出声明序数参数的位置。记住序数参数是基于1的!职位: 1 和DAO 我读了和hibernate使用0作为第一个索引。 堆栈跟踪 //更新 有趣的是,当我设置查询数值时 我明白了 但是在MySQL中我得到了成功的结果。 我如何决定这个问题?

  • 问题内容: 谁能指出我如何将order by子句作为命名参数传递给HQL? 有效的示例: 无效的示例: 问题答案: 不支持,只能在and 子句中使用输入参数,并且不能为子句使用参数。或者,如果我改写,您不能对列使用参数,只能对值使用。因此,要么: 有尽可能多的命名查询排序顺序 将排序字符串连接到查询字符串 使用条件查询

  • 我的项目设置是Spring MVC,Hibernate 3.2.x,在 MySQL 数据库上 收到以下错误: org.hibernate.QueryParameterException:无法找到命名参数电子邮件 方法#1: 方法#2: 错误: java.lang.IllegalArgumentException:参数email不作为命名参数存在于[fromcom.cmgr.beans.UserAc