今天突然想到一个问题,是这样的,我们在利用hibernate的时候,实体可以映射成数据库表,表也可以导出实体,如果现在有两个实体:Student(学生)与 Classes(班级),当然也就对应两张表,他们的关系是:多对一,我现在的问题是,我们在写实体的时候,把主外键关系建立好跟不建立主外键关系有效率上的问题嘛?
如果建立关系,那么一般在多的一端加入一个外键指向一的一端,利用<many-to-one>建立关系
如果不建立关系,那么直接在Student中加入一个字段,就可以了,我想知道,建立关系跟不建立关系有没有效率上的影响或者其他方面的影响,或者说建立关系好些还是不建立关系好些?理由是?

解决方案 »

  1.   

    当然要建立外键关联,1,从数据结构上说,利于保持数据库的完整性,利于维护
    2.在使用hibernate进行查询的时候只需要查询Classes即可带出Student,同样保存的时候也是如此。
      

  2.   


    但是如果我只需要Classes的name属性,那么不需要带出Student,而hibernate关联了,不需要也会查询出来,就是这样效率上会比没关联的低么?
      

  3.   

    hibernate有懒加载的功能,就是你查询class的时候并不真正获取student
    在你要用到的时候才查询的