Spring jpa事务停止回滚
我有以下代码。即使出现异常,我也希望继续执行Spring jpa事务停止回滚,spring,jpa,Spring,Jpa,我有以下代码。即使出现异常,我也希望继续执行 @Transactional(noRollbackFor={PersistenceException.class, PSQLException.class,SQLGrammarException.class}) public void executeQuery(String parameterName){ Query query = objectManager.getEntityManager().createNativeQuery("SOM
@Transactional(noRollbackFor={PersistenceException.class, PSQLException.class,SQLGrammarException.class})
public void executeQuery(String parameterName){
Query query = objectManager.getEntityManager().createNativeQuery("SOME UPDATE QUERY");
Map<String, String> paramMap = (Map) destTableMap.get(parameterName);
query.setParameter("xyz",5);
try{
query.executeUpdate();
}catch(Exception ex){
ex.printStackTrace();
}
}
发件人:
如果会话引发异常,包括任何SQLException,
立即回滚数据库事务,调用Session.close()
并放弃会话实例。某些会议方法不适用
使会话保持一致状态。没有引发异常
Hibernate可以被视为可恢复的。确保会议将
通过在finally块中调用close()来关闭
必须回滚事务。因此,如果您想在Hibernate引发异常时继续执行,那么应该在@Transactional
注释中使用REQUIRES\u新的传播,将execute theexecuteQuery
方法放在它自己的事务中。这样,只会回滚此短事务 来自:
如果会话引发异常,包括任何SQLException,
立即回滚数据库事务,调用Session.close()
并放弃会话实例。某些会议方法不适用
使会话保持一致状态。没有引发异常
Hibernate可以被视为可恢复的。确保会议将
通过在finally块中调用close()来关闭
必须回滚事务。因此,如果您想在Hibernate引发异常时继续执行,那么应该在
@Transactional
注释中使用REQUIRES\u新的传播,将execute theexecuteQuery
方法放在它自己的事务中。这样,只会回滚此短事务 我尝试使用以下方法来避免此TransactionSystemException:org.springframework.transaction.TransactionSystemException:无法提交JPA事务代码>嵌套异常为javax.persistence.RollbackException
:标记为rollbackOnly的事务
@Transactional(readOnly = false, rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
public String foo(Object obj, String tableName, BindingResult result) throws Exception
{
// put some code here
}
我尝试使用以下方法来避免此TransactionSystemException:org.springframework.transaction.TransactionSystemException:无法提交JPA事务代码>嵌套异常为javax.persistence.RollbackException
:标记为rollbackOnly的事务
@Transactional(readOnly = false, rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
public String foo(Object obj, String tableName, BindingResult result) throws Exception
{
// put some code here
}
重复:重复: