我已经编写了一条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中的表:
select distinct 'A' as col_0_0_
from widget_a widget0_
where widget0_.creation_timestamp>?为什么JPA会忽略第一个select语句之后的所有内容,这有什么显而易见的原因吗?如果有什么不同的话,我使用Hibernate 4.1.9作为JPA实现,并使用MySQL数据库。
发布于 2013-02-25 16:16:48
JPQL没有联合这样的概念。因此,任何包含它的“查询”都不是JPQL,因此应该作为无效的JPQL被拒绝( DataNucleus JPA肯定会这样做)
https://stackoverflow.com/questions/15062501
复制相似问题