0

HQLSybase データベースと 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: unexpected AST node、クエリを SQL として実行すると成功します。サブクエリの結果から値を減算するのが好きではないことに絞り込みましたが、これを修正する方法を説明するものをグーグルで見つけることができませんでした。

私が間違っていることを知っている人はいますか?今のところ、先に進むために SQL として実行するだけですが、私の好奇心は本当に HQL でそれを行う方法を知りたがっています。

4

1 に答える 1

-1

Sybase データベースと Derby データベースの両方で機能するこの HQL クエリを作成しようとしています。

特定のデータベース プラットフォームの要件に準拠する HQL を作成しません。HQL は、マップされたオブジェクト グラフのプロパティとクラスを参照する抽象化です。

Hibernate は、提供されたマッピングと構成されたダイアレクトを使用して、基礎となるデータベース プラットフォームに準拠する SQL を生成します。

于 2012-08-21T16:14:00.797 に答える