hibernate HQL从子查询QuerySyntaxException中减去

时间:2012-08-21 14:01:06

标签: hibernate exception subquery hql

我正在尝试编写适用于Sybase和Derby数据库的HQL查询。以下是查询的伪代码:

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: unexpected AST node失败但如果我以SQL执行查询则成功。我已经把它缩小到它不喜欢从子查询的结果中减去一个值,但我还没有在谷歌上找到解释如何解决这个问题的任何内容。

任何人都知道我做错了什么?现在我只是将它作为SQL继续前进,但我的好奇心真的想知道如何在HQL中做到这一点。

1 个答案:

答案 0 :(得分:-1)

  

我正在尝试编写适用于Sybase和Sybase的HQL查询   德比数据库

您不编写符合任何特定数据库平台要求的HQL。 HQL是一个抽象,它引用映射对象图中的属性和类。

Hibernate将使用您提供的映射和配置的方言来生成符合底层数据库平台的SQL。