hibernate - Coldfusion HQL 查询异常 - 意外标记

标签 hibernate coldfusion lucee

Lucee 4.5.1 下,使用 Coldfusion/HQL,我收到以下错误:

Lucee 4.5.1.022 Error (org.hibernate.hql.ast.QuerySyntaxException)
Message     unexpected token: : near line 1, column 88 [from League where leagueID in (select leagueID from Game where seasonID=:sid and userID:=uid and showReportYN=1) order by leagueID]
Cause   org.hibernate.hql.ast.QuerySyntaxException
Stacktrace  The Error Occurred in
/my/file/code.cfm: line 39
...
39: qryLeagues = ORMExecuteQuery("from League where leagueID in (select leagueID from Game where seasonID=:sid and userID:=uid and showReportYN=1) order by leagueID", {sid=url.sid, uid=request.userID});
...

它似乎与 HQL 文档相符: https://docs.jboss.org/hibernate/orm/4.3/devguide/en-US/html/ch11.html#d5e3400

而且,这篇 SO 帖子似乎也表明这是可以的: unexpected token : ( subquery hql

不确定我错过了什么......

更新#2

答案确实修复了它,但随后出现以下错误:

No data type for node: org.hibernate.hql.ast.tree.IdentNode

这是最终的工作查询(注意子查询中的类别名):

qryLeagues = ORMExecuteQuery("from League where leagueID in (select g.League.leagueID from Game g where g.Season.seasonID=:sid and g.Season.User.userID=:uid and g.League.showReportYN=1)",

最佳答案

您已将 =: 切换到第二个参数(第 88 个字符处)

and userID:=uid

应该是

and userID=:uid

首先使用=,然后使用:

关于hibernate - Coldfusion HQL 查询异常 - 意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832211/

相关文章:

java - Maven 3.2.1 + Hibernate 4.3.4 - 无法构建实体管理器工厂 - 由 : ParameterizedTypeImpl cannot be cast to java. lang.Class 引起

javascript - Coldfusion/Lucee 通过 AJAX 进行多重条件选择

java - 替换显示为编码的特殊字符

javascript - 为什么我的 JSON 无效,即使它看起来正确?

java - Java/ColdFusion 和 Lucee 之间的 identityHashCode 区别

java - 使用 BeanUtils.copyProperties 时如何维护数值为 null?

java - JPA/HSQLDB 仍在吞噬我所有的内存

java - h2 上的 hibernate ID 生成器 AUTO_INCREMENT 和集群中的 MySQL

javascript - 将 JSON 字符串从 ColdFusion 传递到 Javascript

coldfusion - 希望访问/输出与 dspBody() 分开的页面的关联图像。我该怎么做呢?