Hibernate是否支持UNION ALL?

Bra*_*Zhu 4 java sql database hibernate hql

我是一个部分UI开发人员,现在我需要转向Hibernate开发.今天我在尝试使用UNION ALL时遇到了HQL问题,这里是HQL:

SELECT COUNT(DISTINCT users.userId) AS totalSize FROM (SELECT DISTINCT 
d1.sponsor.id AS userId FROM Dating d1 WHERE d1.invitee.id = ? UNION ALL 
SELECT DISTINCT d2.invitee.id AS userId FROM Dating d2 WHERE d2.sponsor.id = ?) 
AS users 
Run Code Online (Sandbox Code Playgroud)

它显示如下错误:

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ( near line 1, column 55
Run Code Online (Sandbox Code Playgroud)

然后我尝试将此HQL转换为原始SQL:

SELECT COUNT(DISTINCT users.userId) AS totalSize FROM (SELECT DISTINCT 
d1.sponsorId AS userId FROM mmy_dating d1 WHERE d1.inviteeId = 6 UNION 
ALL SELECT DISTINCT d2.inviteeId AS userId FROM mmy_dating d2 WHERE 
d2.sponsorId = 6) AS users;
Run Code Online (Sandbox Code Playgroud)

它通常显示正确的结果,所以我在想Hibernate是否不支持UNION ALL语法?

提前致谢.

Sea*_*oll 6

https://hibernate.atlassian.net/browse/HHH-1050仍然有功能请求.另请参阅Hibernate Union的替代方案

  • 我使用纯SQL来实现它而不是HQL. (3认同)