我编写了一个联合多个 select 语句的 JPQL 语句,每个语句选择一个不同的字符串常量。查询的简化版本如下所示:
SELECT DISTINCT 'A' AS widget_type
FROM WidgetA widgetA
WHERE widgetA.creationTimestamp > :cutoff
UNION SELECT DISTINCT 'B' AS widget_type
FROM WidgetB widgetB
WHERE widgetB.creationTimestamp > :cutoff
该查询不会导致任何错误,但我没有得到我期望的结果。我看到生成的 SQL 没有任何联合 - 它只从第一个选择中查询表:
select distinct 'A' as col_0_0_
from widget_a widget0_
where widget0_.creation_timestamp>?
为什么 JPA 在第一个 select 语句之后会忽略所有内容,有明显的原因吗?如果有什么不同,我使用 Hibernate 4.1.9 作为 JPA 实现,带有 MySQL 数据库。