hibernate 表与表之间的关系

1 一对多

1)分类和商品:一个分类里有多个商品,一个商品只能属于一个分类。
2)客户和联系人:一个客户有多个联系人,一个联系人只能属于一个客户。(客户是一,联系人是多)

一对多建表是通过外键建立联系。

新建客户和联系人的实体类,Customer.java,LinkMan.java

在Customer.java中set一个list,添加get和set方法。存储客户的联系人。

private Set<LinkMan> setLinkMan=new HashSet<LinkMan>();

在LinkMan.java中表示所属的客户。添加get和set方法

private Customer customer;

Customer.hbm.xml

            <!--name是set集合的名称--> 
        <set name="setLinkMan">
            <!--外键,1和多都配置外键,外键名字随便起--> 
            <key column="clid"></key>
            <!--联系人实体的全路径--> 
            <one-to-many class="cn.hiber.entity.LinkMan"/>
        </set>

LinkMan.hbm.xml

         <!--name:联系人所属的客户。class:客户的全路径。column:两实体类的外键--> 
<many-to-one name="custumer" class="cn.hiber.entity.Customer" column="clid"></many-to-one>

在hibernate.cfg.xml中加入Customer.hbm.xml和LinkMan.hbm.xml的mapping.

2 多对多

1)订单和商品:一个订单里有多个商品,一个商品属于多个订单。
2)用户和角色
-用户:张三、李四、王五
-角色:总经理、秘书、司机、保安

-张三可以是总经理、司机
-李四可以是司机、秘书、保安
-王五可以是总经理、秘书

多对多是创建第三张表维护关系。

这里写图片描述

这里写图片描述

用户hbm.xml
这里写图片描述
角色hbm.xml
这里写图片描述

两个xml文件之间的关系
这里写图片描述
在hibernate.cfg.xml中加入2个xml的mapping

3 一对一

1)一个丈夫只有一个妻子,一个妻子只有一个丈夫。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值