关于Spring data JPA中的onetomore 的级联操作

探讨数据库中主从表关系下,如何通过级联操作实现数据的一致性管理,包括级联添加、删除和更新的策略。

/*
删除主表数据

有从表数据
1.在默认情况下,会先把外键字段设置为null,再删除主表数据。
因此如果在数据库的表结构上,外键字段有非空约束,默认情况就会报错。

2.如果配置了放弃维护关联关系,则与设不设置非null就没有关系,一定不能删除。

3.最后如果需要删除,则需要进行使用级联删除引用。

无从表数据
没有限制,可以随便删除


级联操作:
案例:客户和联系人的案例(1对多的关系)
	客户:一家公司
	联系人:这家公司的员工

	一个客户可以具有多个联系人
	一个联系人从属于一家公司


分析步骤:
	①明确表的关系
		一对多的关系
	②确定表类型(描述  外键|中间表)
		主表:客户类
		从表:联系人表
			*再从表上添加外键
	③编写实体类,在实体类中描述表关系(包含关系)
		客户:在客户的实体类中包含一个联系人的集合
		联系人:在联系人的实体类中包含一个客户的对象
	④配置映射关系
		*使用JPA注解配置一对多映射关系

级联: 
	操作一个对象的同时操作他关联的对象

	级联操作:
		①需要区分操作主题
		②需要在操作主题的实体类上,添加级联属性(需要添加到多表映射关系的注解上)
		③cascade(配置级联)

	级联添加:
		案例: 当保存一个客户的同时保存联系人
	级联删除:
		案例: 当删除一个客户的同时删除所有联系人



	//CascadeType.all :所有
				MERGE :更新
				PERSIST :保存
				REMOVE: 删除
	@OneToMany(mappedBy = "blog",cascade = CascadeType.ALL)
	private List<Comment> comments = new ArrayList<>();

	还有一点 级联删除要把配置文件中的
	jpa:
	hibernate:
	ddl-auto: update
	最后一行改为update
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值