添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
目录事务是什么?为什么要使用事务?如何使用事务?事务的传播带来的几种结果两个特例:propagation属性事务是什么?ACID,事务内的一组操作具有 原子性 、一致性、隔离性、持久性。 Atomicity(原子性):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 Consistency(一致性):. 1 什么是 @ Transactional 声明式 事务 管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个 事务 ,在执行完目标方法之后根据执行情况提交或者回滚 事务 。 2 如何使用 @ Transactional @ Transactional (rollbackFor=Exception.class) 如果加了这个注解... @ Transactional (isolation = Isolation.READ_COMMITTED)//读已提交 脏读 要求Transaction01只能读取Transaction02已提交的修改。 解决不可重复读 @ Transactional (isolation = Isolation.REPEATABLE_READ)// 事务 隔离级别,可重复读(行锁) 解决 幻读 @ Transactional (isolation = Isolation.SERIALIZABLE)// 事务 隔离级别,串
今天,有一个非常简单的业务需求,就是简单的删除数据以及它所联动的其他的表的记录。可是,今天,我犯了一个非常低级的错误。就是: 首先的话,我是先在主表删除了那条记录,然后根据记录 的主键去删除从表的数据,由于没有加上 事务 管理。当我测试去操作这个业务的时候,它返回删除失败,但是刷新之后,发现主表的数据已经没了,但是从表的数据却还在,发生了异常。 这是因为,主表 的数据已经没了,而删除从表 的数据需要根据主表 的主键。由此发生了异常,而我也没有添加上 事务 管理。 我们应该先删除从表的数据,最后再删除主表
日常打BUG: 应该是哪里有冲突,maxInactiveIntervalInSeconds设置的是放入redis的session过期时间。 我在代码里使用的是获取间隔时间,还是有点区别 int interval = request.getSession().getMaxInactiveInterval(); 你可以再模拟试试