hibernate HQL从子查询QuerySyntaxException中减去
我正在尝试编写这个HQL查询,它将同时适用于Sybase和Derby数据库。以下是查询的伪代码:hibernate HQL从子查询QuerySyntaxException中减去,hibernate,exception,subquery,hql,Hibernate,Exception,Subquery,Hql,我正在尝试编写这个HQL查询,它将同时适用于Sybase和Derby数据库。以下是查询的伪代码: from MY_TABLE as t where (t.Val = :val) and (t.Val2 > ( select max(tt.Val2) from MY_TABLE as tt where tt.Val = :val) - 2); 当我将hibernate作为HQL查询运行时,它会失败,并出现QuerySyntaxException:意外的AST节点
from MY_TABLE as t
where (t.Val = :val)
and (t.Val2 >
( select max(tt.Val2)
from MY_TABLE as tt
where tt.Val = :val) - 2);
当我将hibernate作为HQL查询运行时,它会失败,并出现QuerySyntaxException:意外的AST节点,但如果我以SQL形式执行查询,则会成功。我把范围缩小到不喜欢从子查询的结果中减去一个值,但我在谷歌上找不到任何解释如何解决这个问题的东西
有人知道我做错了什么吗?现在,我只想把它作为SQL来继续,但我的好奇心真的想知道如何在HQL中实现它
我正在尝试编写这个HQL查询,它将同时适用于Sybase和
德比数据库
您不需要编写符合任何特定数据库平台要求的HQL。HQL是一种抽象,它引用映射对象图中的属性和类
Hibernate将负责使用您提供的映射和配置的方言生成符合底层数据库平台的SQL。不知道为什么会被降票,通过升票重新归零!可能是一个虚假的点击,因为不可否认我们为什么使用HQL。虽然您的答案提供了信息,但它并没有回答所问的最终问题。这就是你的答案被降级的原因。最初的问题是:当子查询使用SQL时,为什么不能从使用HQL的子查询的结果中减去常量值?那么,做我想做的事情的正确方法是什么?