0

休止状態でUNIONクエリを実行するにはどうすればよいですか? 私は休止状態を学ぶのが初めてで、今では次のような名前付きクエリがあります。

<query>
    SELECT product.defaultSk.name FROM Product product
    WHERE product.defaultSk.name LIKE :name 
    AND product.defaultSk.activeStartDate &lt;= :currentDate
    AND (product.defaultSk.activeEndDate &gt; :currentDate OR product.defaultSk.activeEndDate = null)
    AND (product.archiveStatus.archived IS NULL OR product.archiveStatus.archived = 'N')        
    UNION
    SELECT category.name FROM Category category
    WHERE category.name LIKE :name
    AND (archived = 'N')
</query>

上記のクエリを実行すると、最初のクエリのみの結果が得られ、2 番目のクエリは結果を返しません。 2番目のクエリを実行しませんか...

これは、クエリを実行した後のコンソールです。

コンソール:

 Hibernate: select skimpl1_.NAME as col_0_0_ from PRODUCT productimp0_, BLC_SK skimpl1_ left outer join PRODUCT_SK_XREF skimpl1_1_ on skimpl1_.SK_ID=skimpl1_1_.SK_ID where productimp0_.DEFAULT_SK_ID=skuimpl1_.SK_ID and (skimpl1_.NAME like ?) and skimpl1_.ACTIVE_START_DATE<=? and (skimpl1_.ACTIVE_END_DATE>? or skimpl1_.ACTIVE_END_DATE is null) and (productimp0_.ARCHIVED is null or productimp0_.ARCHIVED='N')

テーブルから結果を取得するためにjqueryオートコンプリートを実装しましたが、2つのテーブル結果をマージしたいので、2つのテーブルからの結果をマージするため、ユニオンクエリを使用します。私は何か間違ったことをしていますか..HibernateではユニオンができないというSOの投稿をいくつか読みました。もしそうなら、この問題の回避策は何でしょうか。

前もって感謝します。

4

1 に答える 1

0

HQL はサポートしていませんunion。2 つの異なるクエリを実行するか、SQL を使用する必要があります。

于 2013-02-22T07:08:54.923 に答える