hibernate_0200_多对一双向关联

来源:互联网 发布:apache.hadoop包下载 编辑:程序博客网 时间:2024/05/01 14:46

本文主要讨论hibernate一对多,多对一双向关联的注意问题:

//Organization.cfg.xml配置

<?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>  <class table="t_organization" name="com.oa.model.Org">    <id name="id">      <generator class="native"/>    </id>    <property name="name"/>    <property name="sn"/>    <property name="description"/>    <!--在set上最好设置inverse="true"属性,这样就不会出现重复发出hql语句了,当然    如果设置了inverse="true"的时候,那么维护的时候,只能在另一端维护了-->    <set inverse="true" cascade="all" name="persons">      <key column="org_id"/>      <one-to-many class="com.oa.model.Person"/>    </set>  </class></hibernate-mapping>

//Person.cfg.xml配置:

<?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>  <class table="t_person" name="com.oa.model.Person">    <id name="id">      <generator class="native"/>    </id>    <property name="name"/>    <property name="sex"/>    <property name="address"/>    <property name="phone"/>    <property name="duty"/>    <property name="description"/>    <many-to-one column="org_id" name="org" />   </class></hibernate-mapping>

在此关系中,Person只能属于一个机构,一个机构中自然有多个人,最关键的地方就是在set集合上配置inverse="true",在一对多,多对一中经常用的方法


原创粉丝点击