Bha*_*hah 2 java jpa transactions rollback spring-boot
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public void abc()
{
try{
//some Code
}
catch(DataIntegrityViolationException ex)
{
//some Code
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,如何从回滚此事务中排除 DataIntegrityViolationException?
你应该使用noRollbackFor属性。例子:
@Transactional(noRollbackFor = DataIntegrityViolationException.class)
Run Code Online (Sandbox Code Playgroud)
默认情况下@Transactional仅适用于RuntimeExceptions 和Errors,但不适用于已检查的异常。
因此,如果您确实想为除异常之外的每个异常回滚事务,您还DataIntegrityViolationException应该指定属性:rollbackFor
@Transactional(rollbackFor = Throwable.class, noRollbackFor = DataIntegrityViolationException.class)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3624 次 |
| 最近记录: |