一对多多对一,多对多

1.

一对多,多对一,多的一方肯定会维护关系,一的一方只有在创建了关系才会维护,下面是关系的维护代码

 

delete 删除了该对象的数据,和该对象的另一个表的外键置为null,

删除的是含有外键的表,就直接删除该条记录

一对多,多对一,使用级联操作

 

解决双方维护关系

 

 

 

delete方法有两种情况

1.不维护关系。外键置为null,或者是删除了含有外键的表的数据

2.级联删除。删除表中的记录(级联删除)

 

 

 

 

 

 

 

 

多对多

普通,双方维护(双方都维护中间表数据),操作两张表

级联:操作三张表

维护:一方维护中间表,操作两张表

 

级联不维护关系

维护

 

 

 

 

 

 

 

save()需要返回一个Serialzable的实现类,因此执行这个方法时会马上插入到数据库,而persist()不会立即插入到数据库。

"当我们封装一个长会话流程的时候,persist()方法就显得尤为重要了!"

 

 

用于保存临时对象

session.merge ()方法

该方法将修改表中记录,其所需要的实体状态为脱管状态,但是注意,它并不影响调用方法前后的状态,也即该实体依然是脱管状,

session.merge()方法会首先发送一句select语句,去数据库端获取UserInfo持久化标识所对应的表记录;然后自动生成一个持久化状态的UserInfo实体,与脱管状态的UserInfo实体做比较是否有所改变;一旦发生了改变,才会发送update语句执行更新。而按执行顺序,若两句session.merge()方法针对同一个脱管状态的UserInfo实体,那其结果只会执行最后一个session.merge()方法所发出的update语句。即使执行了session.merge()方法,UserInfo实体依然是脱管状态,因此第一个UserInfo实体的语句不会同步数据库中的表。

 

 

 

findByExample

findByExample只为example中的基本类型属性生效,如果example的属性中有bean的话(一般有外键时就会出现了)就会无法转成SQL查询条件

 

findByProperty

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值