隔离级别REQUIRES_NEW报CannotAcquireLockException

事务A增加一条数据,事务B随之修改这条数据

事务A隔离级别为REQUIRED,事务B隔离级别为REQUIRES_NEW

执行时产生CannotAcquireLockException

 

用的是mysql数据库,InnoDB。根据REQUIRES_NEW的说明,外层事务会被挂起,所以它应该还没提交,那么内层事务能否看见这条数据,根据结果来看貌似是能看见但是无法获取,所以事务挂起锁也不会被释放?事务没提交也能看见这条数据?

只是个人猜测,能否更详尽的解释这个现象呢?

 

 

你是A运行完运行B还是A运行中又调用了B?