【发布时间】:2013-10-02 08:40:09
【问题描述】:
我已经做了很多谷歌搜索,但我仍然不明白为什么要在休眠中使用关联? 我设法在不提及一对多或任何其他关联的情况下做事。 我总是可以使用某些连接条件对表进行笛卡尔积,而无需显式使用休眠连接。 如果我不使用它们,我会错过什么? 如果有的话,请说出它们的优点或缺点。 谢谢。
【问题讨论】:
标签: hibernate associations one-to-many hibernate-onetomany
我已经做了很多谷歌搜索,但我仍然不明白为什么要在休眠中使用关联? 我设法在不提及一对多或任何其他关联的情况下做事。 我总是可以使用某些连接条件对表进行笛卡尔积,而无需显式使用休眠连接。 如果我不使用它们,我会错过什么? 如果有的话,请说出它们的优点或缺点。 谢谢。
【问题讨论】:
标签: hibernate associations one-to-many hibernate-onetomany
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 操作,例如插入和删除。
顺便说一句您在原始问题中提到笛卡尔连接,这些应该是例外而不是常态。它们可能会带来巨大的性能开销,并且通常可以使用不同的连接更有效地完成。
【讨论】: