我有一个带有名称字段的 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 中进行内部连接。