经过网上资料查询,原因为:Spring 事务嵌套造成死锁。
该异常为一个service中调用了另一个service,两个service对同一表进行操作,同时操作了相同的数据,造成事务嵌套,从而死锁。
解决办法:
在当前方法前加入@Transactional(propagation=Propagation.SUPPORTS)
注意,如果业务中有操作了相同的数据,而且数据前后有很重要的关联性,强烈建议两个service分开调用,这时无论如何也不能使用@Transactional(propagation=Propagation.SUPPORTS),否则会导致数据成为脏数据,影响数据的正确性