为什么在hibernate中使用关联?

为什么在hibernate中使用关联?,hibernate,associations,one-to-many,hibernate-onetomany,Hibernate,Associations,One To Many,Hibernate Onetomany,我已经在谷歌上搜索了很多次,但我仍然不明白为什么我应该在hibernate中使用关联? 我设法做一些事情,没有提到一对多或任何其他协会。 我总是可以使用一些连接条件在表上进行笛卡尔积,而不用显式地使用hibernate连接。 如果我不使用它们,我会错过什么? 如果有的话,请说明它们的优点或缺点。 谢谢。Hibernate中关联的主要优点是,它们允许您通过源代码轻松访问/持久化子实体或父实体。例如,如果我有以下内容: @Entity public class Student{ @OneTo

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

Hibernate中关联的主要优点是,它们允许您通过源代码轻松访问/持久化
子实体
父实体。例如,如果我有以下内容:

@Entity
public class Student{

   @OneToMany
   private List<Course> courses = new ArrayList<Course>();

   //Accessors
}
@实体
公立班学生{
@独身癖
私有列表课程=新的ArrayList();
//访问者
}
在我的代码中,我可以使用协会为学生获取所有课程,例如:

Student student = studentRepo.findById(1, Student.class);
List<Course> courses = student.getCourses();
Student-Student=studentRepo.findById(1,Student.class);
列出课程=student.getCourses();
这就是遍历此父子关系所需的全部内容。不需要额外的SQL或join。您还可以轻松地执行其他crud操作,例如插入和删除


顺便说一句您在最初的问题中提到了笛卡尔连接,这些应该是例外,而不是规范。它们可能会带来巨大的性能开销,并且通常可以使用不同的联接更有效地完成。

Hibernate中关联的主要优点是,它们允许您通过源代码轻松访问/持久化
子实体
父实体。例如,如果我有以下内容:

@Entity
public class Student{

   @OneToMany
   private List<Course> courses = new ArrayList<Course>();

   //Accessors
}
@实体
公立班学生{
@独身癖
私有列表课程=新的ArrayList();
//访问者
}
在我的代码中,我可以使用协会为学生获取所有课程,例如:

Student student = studentRepo.findById(1, Student.class);
List<Course> courses = student.getCourses();
Student-Student=studentRepo.findById(1,Student.class);
列出课程=student.getCourses();
这就是遍历此父子关系所需的全部内容。不需要额外的SQL或join。您还可以轻松地执行其他crud操作,例如插入和删除


顺便说一句您在最初的问题中提到了笛卡尔连接,这些应该是例外,而不是规范。它们可能会带来巨大的性能开销,并且通常可以使用不同的连接更高效地完成。

感谢您的回复。每个人都说性能更好。请告诉我如何/为什么如果一个查询(带有子查询)在mysql中运行得很快(而不是整个表上带有连接的查询),那么它在Hibernate中也会运行得很快。谢谢您的回复。每个人都说性能更好。请告诉我如何/为什么如果一个查询(带有子查询)在mysql中运行得很快(而不是在整个表上带有连接的查询),那么它在Hibernate中也会运行得很快。