多对一关联映射

 

关联映射,将关联关系映射到数据库中,所谓的关联关系在对象模型中就是一个或多个引用。

多对一关联映射原理:在多的一端加入一个外键,指向一的一端。

在多的一端采用如下标签映射:

 

<many-to-one name="group" column="groupID"/>

 

 

 

Group.java

publicclass Group {

    privateintid;

    private String name;

}

 

 

 

User.java

publicclass User {

    privateintid;

    private String name;

    private Group group;

}

 

 

 

 

Group.hbm.xml

<hibernate-mapping>

    <class name="com.xatrans.test.hibernate.vo.Group" table="tbl_group">

       <id name="id" length="10">

           <generator class="native"/>

       </id>

       <property name="name" length="30"/>

    </class>

</hibernate-mapping>

 

 

 

User.hbm.xml

<hibernate-mapping>

    <class name="com.xatrans.test.hibernate.vo.User" table="tbl_user">

       <id name="id" length="10">

           <generator class="native"/>

       </id>

       <property name="name" length="30"/>

       <many-to-one name="group" column="groupID"/>

    </class>

</hibernate-mapping>

 

 

 

Test.java

publicclass Test extends TestCase {

 

    publicvoid testAdd() {

       Session session = null;

       try {

           session = HibernateUtils.getSession();

           session.getTransaction().begin();

          

           Group group = new Group();

           group.setName("xatrans");

           session.save(group);

          

           User user = new User();

           user.setName("leiwei");

           user.setGroup(group);

          

           User user2 = new User();

           user2.setName("ghostboy");

           user2.setGroup(group);

          

           session.save(user);

           session.save(user2);

          

          

           session.getTransaction().commit();

       } catch (Exception e) {

           e.printStackTrace();

           session.getTransaction().rollback();

       } finally {

           HibernateUtils.closeSession(session);

       }

    }

}

 

 

 

* 重要属性cascade(级联)

 

  级联的意思是指两个对象之间的操作联系关系,对一个对象执行了操作之后,对其指定的级联对象也都要需要执行相同的作品。

 

取值:all,none,save-update,delete

 

all - 在所有情况下都执行级联操作

 

none - 代表在所有情况下都不执行级联操作

 

save-update –保存和更新时执行级联操作

 

delete-删除时执行级联操作

<many-to-one name="group" column="groupID" cascade="save-update"/>

级联是对象之间的连锁操作,只影响添加、修改、删除。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值