Chinaunix首页 | 论坛 | 博客
  • 博客访问: 485954
  • 博文数量: 111
  • 博客积分: 3146
  • 博客等级: 中校
  • 技术积分: 939
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-07 11:23
个人简介

Nathing

文章分类

全部博文(111)

文章存档

2016年(2)

2015年(1)

2014年(31)

2012年(2)

2011年(9)

2010年(36)

2009年(30)

我的朋友

分类: Java

2009-11-23 11:59:27

7. hihernate一对多关联映射(双向Classes<----->Student

 

一对多双向关联映射:

    * 在一一端的集合上使用,在对方表中加入一个外键指向一一端

    * 在多一端采用

   

注意:标签指定的外键字段必须和指定的外键字段一致,否则引用字段的错误

   

如果在一端维护一对多关联关系,hibernate会发出多余的udpate语句,所以我们一般在多

的一端来维护关联关系

 

关于inverse属性:

    inverse主要用在一对多和多对多双向关联上,inverse可以被设置到集合标签上,

    默认inversefalse,所以我们可以从一端和一端维护关联关系,

    如果设置成inversetrue,则我们只能从多一端来维护关联关系

   

    注意:inverse属性,只影响数据的存储,也就是持久化

      

inversecascade

    * inverse是关联关系的控制方向

    * cascade操作上的连锁反应

<hibernate-mapping package="com.bjsxt.hibernate">

    <class name="Classes" table="t_classes">

       <id name="id">

           <generator class="native"/>

       id>

       <property name="name"/>

       <set name="students" inverse="true" cascade="all">

           <key column="classesid"/>

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

       set>

    class>

hibernate-mapping>

 

<hibernate-mapping>

    <class name="com.bjsxt.hibernate.Student" table="t_student">

       <id name="id">

           <generator class="native"/>

       id>

       <property name="name"/>

       <many-to-one name="classes" column="classesid"/>

    class>

hibernate-mapping>

 

8. hibernate多对多关联映射(单向User---->Role)

<hibernate-mapping>

    <class name="com.bjsxt.hibernate.User" table="t_user">

       <id name="id">

           <generator class="native"/>

       id>

       <property name="name"/>

       <set name="roles" table="t_user_role">

           <key column="userid"/>

           <many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>

       set>

    class>

hibernate-mapping>

 

<hibernate-mapping>

    <class name="com.bjsxt.hibernate.Role" table="t_role">

       <id name="id">

           <generator class="native"/>

       id>

       <property name="name"/>

    class>

hibernate-mapping>

 

9. hibernate多对多关联映射(双向User<---->Role)

table属性值必须和单向关联中的table属性值一致

column属性值要与单向关联中的标签中的column属性值一致

中的column属性值要与单向关联中标签的column属性值一致

映射方法:

<hibernate-mapping>

    <class name="com.bjsxt.hibernate.User" table="t_user">

       <id name="id">

           <generator class="native"/>

       id>

       <property name="name"/>

       <set name="roles" table="t_user_role">

           <key column="userid"/>

           <many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>

       set>

    class>

hibernate-mapping>

 

<hibernate-mapping>

    <class name="com.bjsxt.hibernate.Role" table="t_role">

       <id name="id">

           <generator class="native"/>

       id>

       <property name="name"/>

       <set name="users" table="t_user_role" order-by="userid">

           <key column="roleid"/>

           <many-to-many class="com.bjsxt.hibernate.User" column="userid"/>

       set>

    class>

hibernate-mapping>

阅读(632) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~