【发布时间】:2020-02-10 19:56:06
【问题描述】:
我的 JPA 存储库中有 2 个实体,学生和教师。当我使用 find 方法找到一个学生时,我希望相应的老师也能被填充。但是,当我保存一个学生对象时,我只有对应的teacher_id,我没有整个对应的教师对象。我可以使用teacher_id 执行findById,但结果证明成本很高,因为我要保存许多学生对象,每次保存都会导致 2 个数据库调用。
@ManyToOne
@JoinColumn(name="teacher_id")
private Teacher teacher;
【问题讨论】:
-
您可能想在此处设置使用参考,例如通过
Entity.getReference( Teacher.class, teacherId). -
不,每次保存都不会调用两次,除非您对某个 Teacher 对象进行变异。只需通过 id 查找 Teacher 并将其设置为参考 - 通常 JPA 甚至会缓存该 Teacher 对象。
标签: java database jpa spring-data-jpa