Eclipselink联合和订购者-JPQL格式错误的结尾

时间:2020-04-09 15:39:07

标签: mysql jpa eclipselink jpql

我正在尝试运行以下查询:

SELECT u FROM Entity_UsersInfoDetail u WHERE u.id IN (SELECT ub.id FROM Entity_UsersBoosts ub WHERE ub.boostExpiresAt > FUNCTION('NOW')) 
UNION
SELECT u FROM Entity_UsersInfoDetail u WHERE u.id IN (SELECT ua.fromUser.id FROM Entity_UsersActions ua WHERE ua.toUser.id = :userId AND ua.status = :status AND ua.actionType <> :actionType)
UNION
SELECT u FROM Entity_UsersInfoDetail u

此查询运行完美,并给出正确的结果集。我想在最后一次选择后立即添加'ORDER BY'子句,所以它变成:

SELECT u FROM Entity_UsersInfoDetail u WHERE u.id IN (SELECT ub.id FROM Entity_UsersBoosts ub WHERE ub.boostExpiresAt > FUNCTION('NOW')) 
UNION
SELECT u FROM Entity_UsersInfoDetail u WHERE u.id IN (SELECT ua.fromUser.id FROM Entity_UsersActions ua WHERE ua.toUser.id = :userId AND ua.status = :status AND ua.actionType <> :actionType)
UNION
SELECT u FROM Entity_UsersInfoDetail u ORDER BY u.lastActive DESC

但是当我尝试使用'ORDER BY'子句运行时,它给了我

[2020-04-09 18:31:56] Syntax error parsing [SELECT u FROM Entity_UsersInfoDetail u WHERE u.id IN (SELECT ub.id FROM Entity_UsersBoosts ub WHERE ub.boostExpiresAt > FUNCTION('NOW'))
[2020-04-09 18:31:56] UNION
[2020-04-09 18:31:56] SELECT u FROM Entity_UsersInfoDetail u WHERE u.id IN (SELECT ua.fromUser.id FROM Entity_UsersActions ua WHERE ua.toUser.id = :userId AND ua.status = :status AND ua.actionType <> :actionType)
[2020-04-09 18:31:56] UNION
[2020-04-09 18:31:56] SELECT u FROM Entity_UsersInfoDetail u ORDER BY u.lastActive DESC].
[2020-04-09 18:31:56] [376, 403] The query contains a malformed ending.

我正在使用Eclipselink 2.7.6。如何在最后选择的查询中添加订单依据?预先感谢。

0 个答案:

没有答案
相关问题