1

以下が hibernate 3.2.1 の EJBQL 機能でサポートされていることを確認しようとしていますが、私の google-fu は失敗しました。私が見つけたのは、ネストされたクエリが EJB 2.x でサポートされていないことだけでした。

次のように、クエリ内にクエリを配置できますか。

select count(*) from 
    (select myField from myTable group by myField having sum(case.....) ....... )
4

1 に答える 1

1

fromEBJQL は句内のサブクエリをサポートしていないため(selectおよびで使用できますwhere)、この正確なクエリを実行することはできません。クエリを書き直してみることができます。あなたの場合、以下は同等である必要があります。

select count(distinct e.myField) from myEntity e group by e.myField having ...

または、createNativeQuery()元のクエリを HQL で書き直さずにそのまま使用します。もちろん、これは移植性を損ないます。

ヒント: Eclipse を使用している場合は、 http://www.jboss.org/toolsまたはマーケットプレイスから Hibernate プラグインを入手してください。これにより、IDE から直接クエリを作成して実行できます ( Hibernate ツールのドキュメントでクエリのプロトタイピングを参照してください)。他の IDE も同様の機能を持つ可能性があります。

于 2012-10-10T21:03:29.530 に答える