hibernate一对多&多对一关系表达

多表关系

  1. 多对一|一对多 {客户与联系人}
  2. 多对多
  3. 一对一

多对一|一对多 {客户与联系人}

在表中的表达
|ID=1 百度公司 | 李彦宏 CID=1(外键指向一方的主键)|
|ID=1 百度公司 | 刘总 CID=1|
在对象中的表达
客户实体:
private Long id;
private String name;
private Set<联系人> linkMens;

使用集合表达,一的一方有多个多的一方

联系人实体:
private Long id;
private String name;
private 客户 Customer;

使用对象引用一的一方,
表达多的一方属于哪个一的一方

表达一对多关系时:
set集合:不重复(使用)
list集合:存取顺序一致,可重复(不使用)

对象关系映射,配置文件:
LinkMan.hbm.xml

	<!-- 
		name属性:引用属性名
		column属性: 外键列名
		class属性: 与我关联的对象完整类名
	 -->
	  <!-- 
	 	级联操作:	cascade
	 		save-update: 级联保存更新
	 		delete:级联删除
	 		all:save-update+delete
	 	级联操作: 简化操作.目的就是为了少些两行代码.
	  -->
	  <!-- 多的一方: 不能放弃维护关系的.外键字段就在多的一方.  -->
	<many-to-one name="customer" column="lkm_cust_id" class="Customer"  >
	</many-to-one>               

customer.hbm.xml配置文件

	<set name="LinkMens" inverse="true" cascade="delete">
		<key column="lkm_cust_id"></key>
		<one-to-many class="LinkMan"></one-to-many>
	</set>
	
  </class>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值