所以我有两张桌子。一张用户表和一张完成的考试表。已完成的“检查”表具有作为外键的用户ID,并且与“用户”表作为一对一关联。
我在用户模型中建立了这样的关系:
@OneToOne(fetch = FetchType.EAGER, mappedBy = "user")
private FinishedExam finishedExam;
在FinishedExams模型中,如下所示:
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
private User user;
当我在控制器中调用所有完成的检查时:
@GetMapping("/all")
public Iterable<FinishedExam> getAllFinishedExams()
{
return finishedExamRepository.findAll();
}
我把所有完成的测试都链接到用户身上,这很好。
我的问题是,是否可以让所有用户都使用他们完成的检查,如果他们有,如果他们没有(所以基本上是
LEFT JOIN
)
这在冬眠中是可能的吗?
编辑:
我刚试过,但它只返回所有没有考试的用户。
@GetMapping("/allUsersWithExams")
@Fetch(FetchMode.SELECT)
public Iterable<User> getAllUsersWithTheirExams()
{
return userRepository.findAll();
}