调用调用此查询的方法时,出现了此异常:

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

有什么帮助吗?
该查询似乎很好。

最佳答案

我试图解决这个问题将近2个小时。
我找到了使用本机sql的解决方案。

字符串查询=“从调查s中选择s.IDSURVEY,s.DATE_END,其中s.IDSURVEY未输入(从调查s中选择不同的s.IDSURVEY,在s.IDSURVEY = q.IDSURVEY上加入问题q,在q.IDQUESTION = a上回答a .IDQUESTION在a.IDANSWER = ua.IDANSWER上加入用户答案ua,其中ua.IDUSER =“+ iduser +”)在s.DATE_END之前订购“;

return (List<Survey>)em.createNativeQuery(query).getResultList();

10-01 06:53