调用调用此查询的方法时,出现了此异常:
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();