引發原因:當前類中使用@Transactional注解,當前類中的一個方法內的try catch內調用了來自兩個服務類的中的兩個方法,
方法1正常運行,但是方法2拋出異常,此時因為當前類中有@Transactional注解,所以方法1也需要回滾,但是兩個方法都同在
一個try catch 內,所以也無法回滾,這時拋出異常UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only。
解決辦法:用另外一個類且有@Transactional注解,將兩個方法封裝成同一個方法3,此時兩個方法在同一個事物中,再調用方法3時,方法內其中一個方法
拋出異常,另一個方法也能夠正常回滾。
示意圖如下: