我编写了一个JPQL语句,它将多个select语句组合在一起,每个语句选择一个不同的字符串常量。查询的简化版本如下所示:
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会在第一个选择陈述之后忽略所有内容?如果它有所不同,我使用Hibernate 4.1.9作为JPA实现,使用MySQL数据库。