Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring jpa事务停止回滚_Spring_Jpa - Fatal编程技术网

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 the
executeQuery
方法放在它自己的事务中。这样,只会回滚此短事务

来自:

如果会话引发异常,包括任何SQLException, 立即回滚数据库事务,调用Session.close() 并放弃会话实例。某些会议方法不适用 使会话保持一致状态。没有引发异常 Hibernate可以被视为可恢复的。确保会议将 通过在finally块中调用close()来关闭


必须回滚事务。因此,如果您想在Hibernate引发异常时继续执行,那么应该在
@Transactional
注释中使用REQUIRES\u新的传播,将execute the
executeQuery
方法放在它自己的事务中。这样,只会回滚此短事务

我尝试使用以下方法来避免此
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
}
重复:重复: