0

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

4

1 回答 1

1

使用链式表达式 likes.classRoom.name生成内连接。您需要为左连接实体分配一个别名并使用该别名:

select s.name, c.name from Student s left join s.classRoom c
于 2012-09-26T13:47:22.023 回答