zoukankan      html  css  js  c++  java
  • hibernate之关于一对多单向关联映射


    【hibernate】之关于一对多单向关联映射


    基于外键的一对多关联映射!

    一对多,Group(组)对于Person(人),一个组能够有多个人!ok?

    Hibernate主要有两种配置方法。一种是Annotations 一种是XML


    以下是Annotations的配置方法!

    @Entity
    @Table(name="t_group")
    publicclass Group {
        private Integer id;
        private String name;
        private Set<Person> persons=newHashSet<Person>();//set不同意反复,最适合数据库模型
        @Id
        @GeneratedValue
        public Integer getId() {
           returnid;
        }
        publicvoid setId(Integerid) {
           this.id = id;
        }
        @Column(name="t_name")
        public String getName() {
           returnname;
        }
        publicvoid setName(Stringname) {
           this.name = name;
        }
        @OneToMany
         //加上@JoinColumn是为了防止Hibernate将一对多当做多对多来处理,产生中间表
        @JoinColumn(name="group_id")
        public Set<Person>getPersons() {
           returnpersons;
        }
        publicvoidsetPersons(Set<Person> persons){
           this.persons = persons;
        }
    }

    @Entity
    @Table(name="t_person")
    publicclass Person {
        private Integer id;
        private String name;
        private Integer age;
        @Id
        @GeneratedValue
        public Integer getId() {
           returnid;
        }
        publicvoid setId(Integerid) {
           this.id = id;
        }
        @Column(name="t_name")
        public String getName() {
           returnname;
        }
        publicvoid setName(Stringname) {
           this.name = name;
        }
        @Column(name="t_age")
        public Integer getAge() {
           returnage;
        }
        publicvoid setAge(Integerage) {
           this.age = age;
        }
    }

    XML配置一对多的单向关联映射
    publicclass Person {
        private Integer id;
        private String name;
        private Integer age;
        public Integer getId() {
           returnid;
        }
        publicvoid setId(Integerid) {
           this.id = id;
        }
        public String getName() {
           returnname;
        }
        publicvoid setName(Stringname) {
           this.name = name;
        }
        public Integer getAge() {
           returnage;
        }
        publicvoid setAge(Integerage) {
           this.age = age;
        }
    }

    publicclass Group {
        private Integer id;
        private String name;
        private Set<Person> persons=newHashSet<Person>();//set不同意反复,最适合数据库模型
        public Integer getId() {
           returnid;
        }
        publicvoid setId(Integerid) {
           this.id = id;
        }
        public String getName() {
           returnname;
        }
        publicvoid setName(Stringname) {
           this.name = name;
        }
        public Set<Person>getPersons() {
           returnpersons;
        }
        publicvoidsetPersons(Set<Person> persons) {
           this.persons = persons;
        }
    }

    <?

    xml version="1.0"?

    > <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="csg.hibernate.entity"> <class name="Group"table="t_group"> <id name="id"> <column name="id"/> <generator class="native" /> </id> <property name="name" /> <set name="persons"> <key column="group_id"/> <one-to-many class="csg.hibernate.entity.Person"/> </set> </class> </hibernate-mapping>


    <?

    xml version="1.0"?

    > <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="csg.hibernate.entity"> <class name="Person"table="t_person"> <id name="id"> <column name="id"/> <generator class="native" /> </id> <property name="name" /> <property name="age" /> </class> </hibernate-mapping>



    Ok,一对多单向关联映射的Annotations和XML配置方法!



  • 相关阅读:
    css 透明气泡效果
    uniapp 跳转tabbar页面传递参数
    unaipp 发送验证码倒计时
    uniapp 返回顶部
    js 实现放大镜效果
    js 禁用右键菜单和禁止复制
    js 表格的添加和删除操作
    js 留言板(带删除功能)
    推荐几个好用的网站
    pc端使用rem适配
  • 原文地址:https://www.cnblogs.com/llguanli/p/8943380.html
Copyright © 2011-2022 走看看