Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Java org.springframework.jdbc数据库回滚不';不要恢复状态_Java_Database_Exception_Jdbc_Rollback - Fatal编程技术网

Java org.springframework.jdbc数据库回滚不';不要恢复状态

Java org.springframework.jdbc数据库回滚不';不要恢复状态,java,database,exception,jdbc,rollback,Java,Database,Exception,Jdbc,Rollback,我尝试回滚我的数据库更改 roollback代码毫无例外地运行,但我的数据库因更改而变脏 我错过什么了吗 final Connection dbConnection = rulesUiRepository.getConnection(); dbConnection.setAutoCommit(false); try { if (rulesUiRepository.updateRulesUiSnapshot(this.nonSplittedRulesSna

我尝试回滚我的数据库更改

roollback代码毫无例外地运行,但我的数据库因更改而变脏

我错过什么了吗

    final Connection dbConnection = rulesUiRepository.getConnection();
    dbConnection.setAutoCommit(false);
    try {

        if (rulesUiRepository.updateRulesUiSnapshot(this.nonSplittedRulesSnapshot) == -1)
            throw new RuntimeException("cannot save ui snapshot to DB");

       ...more code

    } catch (Exception e) {
        logger.error("transaction to update db and cofman failed", e);

        //did work
        //dbConnection.rollback();

        throw new Exception("transaction to update db and cofman failed", e);

    } finally {
        //or
        if (dbConnection != null) {
            dbConnection.close();
        }
    }
使用该代码:

public synchronized void rollback() throws SQLException {
    try {
        this.txn_known_resolved = true;
        this.inner.rollback();
    } catch (NullPointerException var2) {
        if(this.isDetached()) {
            throw SqlUtils.toSQLException("You can't operate on a closed Connection!!!", var2);
        } else {
            throw var2;
        }
    } catch (Exception var3) {
        if(!this.isDetached()) {
            throw this.parentPooledConnection.handleThrowable(var3);
        } else {
            throw SqlUtils.toSQLException(var3);
        }
    }
}

Rollbak自上次提交后执行回滚。您有一些代码没有显示可能通过使用@Transactional(例如)隐式提交或显式提交,而回滚事务仅在数据库事务执行后有效

为什么回滚被注释掉?你的数据库是什么?连接的实际代码是什么?执行前和执行后的状态是什么?发布一个完整的最小示例,再现问题。这里有太多的未知。为什么回滚被注释掉了?因为它不适合我你的数据库是什么?org.springframework.jdbc DB rollback不会还原代码下的状态i send commit
rulesUiRepository.updateRulesUiSnapshot(this.nonsplitedrulessnapshot)
它将jdbsc代码深深地包装在内部,您无法在提交后回滚事务。有时,您可以添加新的更新以回滚状态