ssh中一对多关系的配置

遇到数据库中表的一对多对应关系,需要配置两个表相应的***.hbm.xml文件,通过查资料现总结如下:

 

<?xml version="1.0" encoding="gbk"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

  
<hibernate-mapping  package="此处填写包文件" >

 
    <class name="一对多中一的实体类的类名"  table="所对应的数据库的表名"  >

  
        <id name="所对应的实体类的属性(id)" column="所对应的数据表的字段(**_id)" unsaved-value="null" >

            <generator class="native"/>

        </id>

        <property name="对应数据表中其他的字段" ></property>

……

        <set name="对应实体类中的那个集合的属性"          inverse="true" lazy="true" cascade="save-update" >

            <key column="对应其外键的字段 "/>

            <one-to-many class="对应一对多中多的实体类的类名"/>

        </set>

      
    </class>

 
   <class name="对应一对多中多的实体类的类名"  table="相对应的数据表名"  >

        <id name="id" column="对应表的主键字段名" unsaved-value="null" >

            <generator class="native"/>

        </id>

        <property name="对应数据表中的其他字段" ></property>

……

        <many-to-one  name="对应一对多中一的实体类的属性" column="对应实体类中的那个集合的属性" ></many-to-one>

  
    </class>

</hibernate-mapping>

 
 
例如:

<!DOCTYPE hibernate-mapping PUBLIC

       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

     
<hibernate-mapping  package="entity.test" >

 
       <class name="Person"  table="Person1"  >

              <id name="pid" column="p_id" unsaved-value="null" >

                     <generator class="native"/>

              </id>

        <property name="name" ></property>

        <set name="computers"   inverse="true" lazy="true" cascade="save-update" >

                     <key column="p_id"/>

                     <one-to-many class="Computer"/>

              </set>   
    </class>

 
 
   <class name="Computer"  table="Computer"  >

              <id name="id" column="c_id" unsaved-value="null" >

                     <generator class="native"/>

              </id>

        <property name="name" ></property>

        <many-to-one  name="person" column="p_id" ></many-to-one>

    </class>

解释:表Person1和Computer,两者关系一对多;在Person1中增加一列p_id,用来和Computer表建立联系;在Person1的model中增加属性private Set<Computer> computers= new HashSet<Computer>(0);在Computer的model中增加属性private Person1 person.

总结具体步骤:

(1)分析表之间的具体关系(一对一、一对多还是多对多),在数据库中添加相应的字段以及约束

(2)别忘了在model中加上增加的属性

(3) 配置相应的***.hbm.xml文件

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值