首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate联系关系映射(一)多对一

2012-09-19 
Hibernate关联映射(一)多对一Hibernate多对一关联映射首先有两个实体,User和Group这里多对一,所以以多的一

Hibernate关联映射(一)多对一
Hibernate多对一关联映射

首先有两个实体,User和Group
这里多对一,所以以多的一方为主控方。(即为:User)

package org.jzkangta.hibernate.many2one1.entity;// Generated 2010-8-27 14:33:39 by Hibernate Tools 3.2.1.GAimport java.util.Date;/** * User generated by hbm2java */public class User  implements java.io.Serializable {     private Integer id;     private String name;     private Group group;     public Group getGroup() {        return group;    }    public void setGroup(Group group) {        this.group = group;    }    public Integer getId() {        return this.id;    }        public void setId(Integer id) {        this.id = id;    }    public String getName() {        return this.name;    }        public void setName(String name) {        this.name = name;    }  }

Group.java
package org.jzkangta.hibernate.many2one1.entity;// Generated 2010-8-27 14:37:02 by Hibernate Tools 3.2.1.GA/** * Group generated by hbm2java */public class Group  implements java.io.Serializable {     private int int_;     private String name;    public int getInt_() {        return int_;    }    public void setInt_(int int_) {        this.int_ = int_;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}


User.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2010-8-27 14:33:42 by Hibernate Tools 3.2.1.GA --><hibernate-mapping>    <class name="org.jzkangta.hibernate.User" table="user" catalog="ibatisdb">        <id name="id" type="java.lang.Integer">            <column name="id_" />            <generator />        </id>        <property name="name" type="string">            <column name="name_" length="50" />        </property>        <many-to-one name="group" column="groupid_" cascade="all"/>    </class></hibernate-mapping>

<many-to-one name="group" column="groupid_"   cascade="all"/>
这句话的意思是说,在User表里会自动的加上一个groupid_字段作为外键。
cascade="all"是指级联关系,即操作User的话group也会跟着被更新。

多对一的意思:就是在多的一端(User)加上外键,指向一的一端(Group)
关联映射的本质,将关联关系映射到数据库中,关联关系是指对象模型中的一个或者多个引用。例如本例中User实体中的 private Group group;

<many-to-one>标签,会在多的一端添加一个外键,指向一的一端。这个外键是由<many-to-one>中column="groupid_"来指定的。




热点排行