【发布时间】:2015-09-21 23:23:49
【问题描述】:
我在调用调用这个查询的方法时遇到了这个异常:
SELECT s FROM Survey s
WHERE s.idsurvey NOT IN
(SELECT DISTINCT s FROM Useranswer ua
JOIN ua.iduser u
JOIN ua.idanswer a
JOIN a.idquestion q
JOIN q.idsurvey s
WHERE
ua.iduser.iduser = u.iduser
AND ua.idanswer.idanswer = a.idanswer
AND a.idquestion.idquestion = q.idquestion
AND q.idsurvey.idsurvey = s.idsurvey
AND u.iduser = :iduser
)
order by s.dateEnd
有什么帮助吗? 查询似乎没问题。
【问题讨论】:
-
您在顶级查询(
Survey)和子查询(q.idsurvey)中声明了相同的别名s。也许这会导致问题? -
我在几分钟前看到JPA 不支持子查询,但我找到了另一个使用本机sql 的解决方案。
-
显然 JPQL 确实支持一些子查询。但是你有“idsurvey IN Collection of Useranswer objects”这没什么意义