关于mybatis插入返回主键id和SpringBoot事务注解自调用演示
文章目录
- 一. 插入返回任意规则主键ID
- 二. SpringBoot自调用事务
- 2.1 场景1
- 2.2 场景2
- 自调用结论总结
一. 插入返回任意规则主键ID
··实体对象
@TableName("bank")
@Data
public class Entity {
@TableId("id")
Integer id;
@TableField("money")
Integer money;
@TableField("name")
String name;
public Entity(String name,Integer money){
this.name = name;
this.money = money;
}
}
结论:返回值依旧是受影响行数,但insert标签中selectKey.keyProperty可以绑定入参对象的指定属性。
keyProperty: 绑定到入参对象的属性
order: 指定该标签语句执行顺序
二. SpringBoot自调用事务
下列是程序执行前数据库快照
2.1 场景1
事务入口public方法,自调用子方法规则任意
执行金额增加和扣减快照如下
变种
事务均成功
结论: 建议事务注解放在controller层。或者放在controller调用的第一个service作为事务入口 不需要考虑很多问题
2.2 场景2
自调用子方法为事务入口
无事务方法,自调用有事务方法
代码执行后快照
结论:事务失效
自调用结论总结
结论: 建议事务注解放在controller层。或者放在controller调用的第一个service作为事务入口 不需要考虑很多问题