簡體   English   中英

使用一個JPQL查詢聯接多個表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM