我已经做了很多谷歌搜索,但我仍然不明白为什么我应该在休眠中使用关联?我设法在不提及一对多或任何其他关联的情况下做事。我总是可以使用某些连接条件对表进行笛卡尔积,而无需显式使用休眠连接。如果我不使用它们,我会错过什么?如果有的话,请说出它们的优点或缺点。谢谢你。
问问题
458 次
1 回答
1
Hibernate 中关联的主要优点是它们允许您通过源代码轻松访问/持久化child
或实体。parent
例如,如果我有以下内容:
@Entity
public class Student{
@OneToMany
private List<Course> courses = new ArrayList<Course>();
//Accessors
}
在我的代码中,我可以使用关联来获取学生的所有课程,例如:
Student student = studentRepo.findById(1, Student.class);
List<Course> courses = student.getCourses();
这就是遍历这个父子关系所必需的。不需要额外的 SQL 或连接。您还可以轻松地执行其他 crud 操作,例如插入和删除。
顺便说一句,您在原始问题中提到笛卡尔连接,这些应该是例外而不是常态。它们可以带来显着的性能开销,并且通常可以使用不同的连接更有效地完成。
于 2013-10-02T08:47:30.900 回答