【问题标题】:Why to use association in hibernate?为什么要在hibernate中使用关联?
【发布时间】:2013-10-02 08:40:09
【问题描述】:

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

【问题讨论】:

    标签: hibernate associations one-to-many hibernate-onetomany


    【解决方案1】:

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

    @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 操作,例如插入和删除。

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

    【讨论】:

    • 感谢您的回复。每个人都说性能更好。请告诉我如何/为什么? & 如果一个查询(带有子查询)在 mysql(通过分析检查)中运行得快(比在整个表上进行连接的查询)在 Hibernate 中也运行得快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    相关资源
    最近更新 更多