Spring boot Spring Boot:事务以静默方式回滚,因为它已被标记为仅回滚

Spring boot Spring Boot:事务以静默方式回滚,因为它已被标记为仅回滚,spring-boot,exception,transactions,spring-data-jpa,try-catch,Spring Boot,Exception,Transactions,Spring Data Jpa,Try Catch,我试图将异常消息保存在Catch块的DB表中,但当代码通过整个@Transactional方法时,异常事务也会回滚 例: 但它仍然给出了“事务被静默回滚,因为它已被标记为仅回滚”异常。是否有任何方法可以强制仅提交saveException部分,而不使用save try块和回滚异常保存 提前感谢将@Transactional放在内部调用的方法上是行不通的(这个问题在stackoverflow上已经回答了很多次).@M.Deinum,即使在catch块本身执行save exception操作,也会产

我试图将异常消息保存在Catch块的DB表中,但当代码通过整个@Transactional方法时,异常事务也会回滚

例:

但它仍然给出了“事务被静默回滚,因为它已被标记为仅回滚”异常。是否有任何方法可以强制仅提交saveException部分,而不使用save try块和回滚异常保存


提前感谢

@Transactional
放在内部调用的方法上是行不通的(这个问题在stackoverflow上已经回答了很多次).@M.Deinum,即使在catch块本身执行save exception操作,也会产生相同的异常。是否有任何解决方法。再次启动新事务之前已回答过多次。简言之,save方法是一个不同的外部服务。即使它被移动到了不同的服务类,也无法工作。您需要用注释对它进行标记,并确保它启动一个新事务。否则就不行了。
@javax.transaction.Transactional
public void operationMethod(){
 serviceMethod();
}

public void serviceMethod()
 try{
 }
 catch(Exception e){
saveException(e.getMessage());
}
}

//here tried @org.springframework.transaction.annotation.Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = Exception.class) and different combinations with Nested and Required
saveException(String exceptionMessage){
//save it into table logic
}