1

我已经做了很多谷歌搜索,但我仍然不明白为什么我应该在休眠中使用关联?我设法在不提及一对多或任何其他关联的情况下做事。我总是可以使用某些连接条件对表进行笛卡尔积,而无需显式使用休眠连接。如果我不使用它们,我会错过什么?如果有的话,请说出它们的优点或缺点。谢谢你。

4

1 回答 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 回答