采用spring框架时,在 Service 层的方法中加上注解 @Transactional 就可以将这个方法加上事务管理。
如果这个方法中处理的业务逻辑比较多,比较耗时,那么可能会出现事务超时的异常
JTA transaction unexpectedly rolled back (maybe due to a timeout)
如果出现这个异常,解决办法是在 @Transactional 中加上 timeout = 3000 ,这个时间就是超时时间,如下
@Transactional(timeout = 3000)
查看源码可以知道这个 timeout 的值默认值是 transaction system 的值。