Java 在联接查询上转换为JPA别名选择

Java 在联接查询上转换为JPA别名选择,java,jpa,Java,Jpa,对于表结构: 问题 id question 学生 id name 回答 id question_id student_id 目标: 获取给定学生的所有已回答和未回答问题 在MYSQL中尝试并测试了SQL SELECT * FROM question q LEFT JOIN (SELECT * FROM answer a WHERE a.student_id=?) AS answered ON q.id = answered.question_id; 如何将其转换为JPA?偏

对于表结构:

问题

id

question
学生

id

name
回答

id

question_id

student_id
目标: 获取给定学生的所有已回答和未回答问题

在MYSQL中尝试并测试了SQL

SELECT * FROM question q 
LEFT JOIN 
(SELECT * FROM answer a WHERE a.student_id=?) AS answered 
ON q.id = answered.question_id;
如何将其转换为JPA?

偏移量,请阅读以下内容:

如果确实要使用别名手动执行此操作,请选择:

SELECT q FROM Question q WHERE EXISTS(SELECT a FROM Answer a WHERE a.question.id = q.id);

谢谢@NishanthiGrashia,但那不一样。需要转换为JPA的部分是别名select。而不是主题中提到的连接。问题是别名SELECT in LEFT outer join。选择a从回答a右连接a.q问题,其中(..)我在那里拥有的sql或多或少会转换为别名SELECT。它是jpa,有直接的关系你有完整的QL语句吗?您提到的select语句没有显示未回答的问题。请参阅上面的SQL语句。非常感谢。
SELECT q FROM Question q WHERE EXISTS(SELECT a FROM Answer a WHERE a.question.id = q.id);