hibernate对象关系映射的配置

来源:互联网 发布:文明4 mac 汉化 编辑:程序博客网 时间:2024/05/13 19:24
一对一主键关联单双向
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.wepull.pojo">    <class name="IdCard" table="t_idcard">        <id name="id">            <generator class="native"></generator>                </id>        <property name="name"></property>        <!-- 双向配置如下 -->        <one-to-one name="p"></one-to-one>    </class></hibernate-mapping><hibernate-mapping package="com.wepull.pojo">    <class name="Person" table="t_person">        <id name="id">            <generator class="foreign">                <param name="property">i</param>            </generator>                </id>        <property name="name"></property>        <!-- person找Idcard  单向 -->        <one-to-one name="i" constrained="true"></one-to-one>    </class></hibernate-mapping>



一对一外键关联单双向
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.wepull.pojo">    <class name="IdCard" table="t_idcard">        <id name="id">            <generator class="native"></generator>                </id>        <property name="name"></property>        <!-- 双向配置    级联删除-->        <one-to-one name="p" property-ref="i" cascade="delete"></one-to-one>    </class></hibernate-mapping><hibernate-mapping package="com.wepull.pojo">    <class name="Person" table="t_person">        <id name="id">            <generator class="native"></generator>                </id>        <property name="name"></property>        <!-- person找Idcard  单向 -->        <many-to-one name="i" unique="true"></many-to-one>    </class></hibernate-mapping>




一对多/多对一
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.wepull.pojo">    <class name="Student" table="t_student">        <id name="id">            <generator class="native"></generator>                </id>        <property name="name"></property>        <!-- 多对一配置如下 -->        <many-to-one name="c" class="Classes"></many-to-one>    </class></hibernate-mapping><hibernate-mapping package="com.wepull.pojo">    <class name="Classes" table="t_classes">        <id name="id">            <generator class="native"></generator>                </id>        <property name="name"></property>        <!-- 一对多 -->        <set name="s" inverse="true"><!-- 由学生管理 -->        <!-- column:多的一方持有一的一方的外键字段 -->            <key column="c"></key>            <one-to-many class="Student" />        </set>    </class></hibernate-mapping>



多对多单双向
<hibernate-mapping package="com.wepull.pojo">    <class name="Role" table="t_role">        <id name="id">            <generator class="native"></generator>                </id>        <property name="name"></property>        <!-- 多对多 -->        <set name="u" table="t_user_role">            <key column="r"></key>            <many-to-many class="User" column="u"></many-to-many>        </set>        </class></hibernate-mapping><hibernate-mapping package="com.wepull.pojo">    <class name="User" table="t_user">        <id name="id">            <generator class="native"></generator>                </id>        <property name="name"></property>        <!-- 多对多配置如下 -->        <set name="r" table="t_user_role">            <key column="u"></key>            <many-to-many class="Role" column="r"></many-to-many>        </set>            </class></hibernate-mapping>



Annotation注解(多对一)
import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;/** * @author fcs * 不能自动删除表 * 多对一单向     多方持有一方的外键 * 2014-8-24 */@Entitypublic class Student {    private int id;    private String name;    private Classes c;        @ManyToOne(fetch=FetchType.LAZY)//延迟加载    @JoinColumn(name="cid")//修改表字段名  防止自动生成sid    public Classes getC() {        return c;    }    public void setC(Classes c) {        this.c = c;    }    @Id    @GeneratedValue(strategy=GenerationType.IDENTITY)//主键自增长    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;    }}




















0 0
原创粉丝点击