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>

当我执行上述查询时,我只得到第一个查询的结果,而我的第二个查询没有返回任何结果。我的控制台只显示第一个查询的触发,我找不到第二个查询被触发。为什么它不运行第二个查询...

这是我运行查询后的控制台,

安慰:

 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 自动完成以从表中生成结果,现在我想合并两个表结果。我将使用联合查询,因为它合并了来自两个表的结果。我做错了什么吗?我已经阅读了一些 SO 帖子,说明在 Hibernate 中无法进行联合。如果是这样,这个问题的解决方法是什么。

提前致谢。

4

1 回答 1

0

HQL 不支持union. 您必须执行两个不同的查询,或者使用 SQL。

于 2013-02-22T07:08:54.923 回答