zoukankan      html  css  js  c++  java
  • Hibernate(九)一对多双向关联映射

    上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容。

    一对多双向关联映射

    一对多双向关联映 射,即在一的一端存在多的一端的一个集合对象,在多的一端存在一的一端的一个对象,这样就可以保证在加 载一的一端或多的一端将被指向端的集合或对象加载上来,即保证双向关联。

    一对多双向关联映射和 一对多单向关联映射的异同

    一对多双向关联映射相应的类结构图和代码。具体如下:

    public class Classes {    
        private int id;   
        private String name;      
        private Set students;  
              
        public int getId() {  
            return id;  
        }  
        public void setId(int id) {  
            this.id = id;  
        }  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
        public Set getStudents() {  
            return students;  
        }  
        public void setStudents(Set students) {  
            this.students = students;  
        }     
    }  
          
    public class Student {  
        private int id;   
        private String name;      
        private Classes classes;  
          
        public int getId() {  
            return id;  
        }  
        public void setId(int id) {  
            this.id = id;  
        }  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
        public Classes getClasses() {  
            return classes;  
        }  
        public void setClasses(Classes classes) {  
            this.classes = classes;  
        }  
    }

    通过对比之前我们在上篇博文Hibernate从入门到精通(八)一对多单向关联映射中的关于一对多 单向关联映射的相应的类结构图和代码。可以发现,一对多双向关联向和单向关联的区别主要是在多的一端加 入了一的一端的对象,这就将单向关联变成了双向关联。

    为了更好说明两者的区别,我们再看一下一对多 双向关联映射的表结构和相应的Hibernate映射配置。具体如下:

    <class 
    
    name="com.zs.hibernate.Classes" table="t_classes">  
        <id name="id">  
            <generator class="native"/>  
        </id>  
        <property name="name"/>  
        <set name="students" inverse="true">        
            <key column="classesid"/>  
            <one-to-many class="com.zs.hibernate.Student"/>  
        </set>  
    </class>  
          
    <class name="com.zs.hibernate.Student" table="t_student">  
        <id name="id">  
            <generator class="native"/>  
        </id>  
        <property name="name"/>  
        <many-to-one name="classes" column="classesid"/>  
    </class>

    从存储结构上看,一对多单向关联和双向关联没有什么区别,但是从配置文件上看 ,一对多双向关联的配置文件中在多的一端的配置文件上存在<many-to-one />的相关配置,即保证多 对一的映射,这就保证了双向。

    通过本次的讲解,关于一对多双向关联的内容,我们就讲解完毕了, 一对多映射是一个比较常用和重要的映射关系,希望读者认真思考这部分内容,下次我们讲多对多映射的相关 内容。

  • 相关阅读:
    php://input,$_POST,$HTTP_RAW_POST_DATA区别
    使用print2flash开发在线文档
    [转] 一百本名著中的一百句话
    [转]PHP经验——PHPDoc PHP注释的标准文档
    .htaccess是什么?.htaccess几个简单应用
    帝国CMS系统结合项图文教程
    帝国cms文章内容tags关键词设置调用方法以及tags静态化
    如何在Apache中配置多端口访问
    USER-AGENT是什么
    关于js的几道经典题(作用域、原型链等)自己做的
  • 原文地址:https://www.cnblogs.com/duscl/p/4871415.html
Copyright © 2011-2022 走看看