一方:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="cn.onetomany.Customer" table="t_customer">
<id name="cid" column="cid">
<generator class="native"></generator>
</id>
<property name="custName" column="custName"></property>
<property name="custLevel" column="custLevel"></property>
<property name="custSource" column="custSource"></property>
<property name="custPhone" column="custPhone"></property>
<!-- 配置客户实体类里面set集合,set集合表示一个客户里面有很多联系人
使用set标签:
set标签有name属性:set集合属性名称
inverse:
false:默认值,不放弃关系维护
true:放弃关系维护
cascade :
save-update:支持级联增加和级联更新
delete:支持级联删除
inverse属性深入
(1)如果不配置cascade,做删除,默认效果是把联系人设置null
(2)现在做操作,不配置cascade属性,但是添加inverse设置true
执行出现异常,外键约束异常
(3)如果配置inverse属性,必须和cascade一起使用
-->
<set name="setLinkMan" cascade="delete" inverse="true">
<!--
column:配置外键名称
-->
<key column="clid"></key>
<!--
class:联系人实体类全路径
-->
<one-to-many class="cn.onetomany.LinkMan"/>
</set>
</class>
</hibernate-mapping>
多方:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="cn.onetomany.LinkMan" table="t_linkman">
<id name="lkm_id" column="lkm_id">
<generator class="native"></generator>
</id>
<property name="lkm_name" column="lkm_name"></property>
<property name="lkm_gender" column="lkm_gender"></property>
<property name="lkm_phone" column="lkm_phone"></property>
<!-- 联系人所属客户
name: 客户类型属性名称
class:客户实体类全路径
column:配置外键
-->
<many-to-one name="customer" class="cn.onetomany.Customer" column="clid"></many-to-one>
</class>
</hibernate-mapping>