我有一个带有名称字段的ClassRoom类和一个带有ClassRoom字段的Student类。并非所有学生都有课堂。 我希望列出所有学生的教室名称(如果没有教室,则为空字符串)。使用此JPQL查询:
Select s.name, s.classRoom.name from Student s LEFT JOIN s.classRoom
问题在于,这只会让学生回到教室。正确生成的SQL应该是
Select s.name, c.name from student s left join classroom c on c.id=s.classroomid
返回所有学生,但s.classRoom.name构造似乎强制在生成的SQL中进行内部联接。
答案 0 :(得分:0)
使用像s.classRoom.name
这样的链接表达式会生成内部联接。您需要为左连接实体分配别名并使用该别名:
select s.name, c.name from Student s left join s.classRoom c