[英]Join multiple tables with one JPQL query
我得到了這個要在JPQL中創建為查詢的sql查詢,但我無法正確執行。 我在QuestionAnswers和QuizQuestions之間有很多關系:
SQL:
SELECT quizName, question, answer FROM Quiz
JOIN QuizQuestions on Quiz.quizId = QuizQuestions.Quiz_QuizId
JOIN QuestionAnswers on QuizQuestions.questionId = QuestionAnswers.question_questionId
WHERE quiz.quizId = 1;
JPQL查詢:
Query query = entityManager.createQuery("SELECT q.quizName, f.question, a.answer FROM Quiz q, QuizQuestions f, QuestionAnswers a LEFT JOIN QuestionAnswers ON f.questionId=a.question.questionId");
我在Intellij中收到語法錯誤。
有什么事嗎
我正在使用EclipseLink
EDIT只需一個連接即可解決此問題:
Query query = entityManager.createQuery("SELECT f.quiz.quizName FROM QuizQuestions f JOIN QuestionAnswers qa WHERE f.questionId = qa.question.questionId");
可能您正在尋找這樣的JPQL:
SELECT quiz.name, quizquestion.question, questionasnswer.answer FROM Quiz quiz
JOIN quiz.quizQuestions quizquestion
JOIN quizquestion.questionAnswers questionasnswer
WHERE quiz.id = 1;
我將使用qa.question.questionId
(tableA.tableB.column)驅逐解決方案,因為JPA框架並不總是從中生成漂亮的SQL。 始終在JPQL中顯式顯示JOIN。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.