Hibernat 配置多对一,一对多,多对多关系

我建了4个表,

1 Cascade //级联
inverse //由谁控制

 

Course 主键 kid 科目表

Student 主键 sid 学生表 外键cid

Clazz cid  班级表

stu_course 关联表 主键scid  外键 sid kid;

班级和学生是一对多的关系

那么学生对班级就是一对多

stu.hbm.xml

  <many-to-one name="clazz" class="com.org.entity.Clazz" fetch="select" lazy="false">
            <column name="cid" />
        </many-to-one>

clazz.hbm.xml

正常bag节点是set,因为我在clazz.java中把set集合变为list,要把构造方法重写一下,和list的set、get方法

1 <bag name="stus" inverse="true" lazy="false">
2             <key>
3                 <column name="cid" />
4             </key>
5             <one-to-many class="com.org.entity.Stu" />
6         </bag>

如果要获取关联表的数据就要在这个实体的hbm。xml中把lazy="false"这样就能查到了

多对多

首先数据库要有关联表,不用实体类、关联表的名字Stu_Couse

stu.hbm.xml

1  <set name="stuCouses" lazy="false" table="Stu_Couse" inverse="true">
2             <key>
3                 <column name="sid" />
4             </key>
5             <many-to-many class="com.org.entity.Couse" column="kid"/>
6         </set>

talbe设置关联表的名字《key》不要改, many -to-many class指的是多对多的表,也就是course colun节点必填写的是关联表中的关联字段

1 <many-to-many class="com.org.entity.Couse" column="kid"/>
2     

 

course。hbm。xml

1  <set name="stuCouses" table="Stu_Couse" inverse="true" lazy="false">
2             <key>
3                 <column name="kid" />
4             </key>
5             <many-to-many class="com.org.entity.Stu" column="sid"/>
6         </set>


这样就成了

Demo 可以看一下http://pan.baidu.com/share/link?shareid=29999&uk=1712110123学的不好见谅

转载于:https://www.cnblogs.com/Mr-Wu/archive/2012/09/12/HibernateMany-to-Many.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值