@Override public Savepoint setSavepoint() throws SQLException { return targetConnection.setSavepoint(); }
@Override public Savepoint setSavepoint(String name) throws SQLException { return targetConnection.setSavepoint(name); }
@Override public Savepoint setSavepoint(String name) throws SQLException { return raw.setSavepoint(name); }
@Override public Savepoint setSavepoint() throws SQLException { return raw.setSavepoint(); }
/** * Create a new JDBC 3.0 Savepoint for the current Connection, * using generated savepoint names that are unique for the Connection. * @return the new Savepoint * @throws SQLException if thrown by the JDBC driver */ public Savepoint createSavepoint() throws SQLException { this.savepointCounter++; return getConnection().setSavepoint(SAVEPOINT_NAME_PREFIX + this.savepointCounter); }
/** * 设置保存点 * * @param name 保存点的名称 * @return 保存点对象 * @throws SQLException SQL执行异常 */ public Savepoint setSavepoint(String name) throws SQLException { return getConnection().setSavepoint(name); }
/** * 设置保存点 * * @return 保存点对象 * @throws SQLException SQL执行异常 */ public Savepoint setSavepoint() throws SQLException { return getConnection().setSavepoint(); }
/** * 设置保存点 * * @param name 保存点的名称 * @return 保存点对象 * @throws SQLException SQL执行异常 */ public Savepoint setSavepoint(String name) throws SQLException { return getConnection().setSavepoint(name); }
/** * 设置保存点 * * @return 保存点对象 * @throws SQLException SQL执行异常 */ public Savepoint setSavepoint() throws SQLException { return getConnection().setSavepoint(); }
@Override public Savepoint setSavepoint(String name) throws SQLException { checkState(); try { return conn.setSavepoint(name); } catch (SQLException ex) { handleException(ex, null); return null; // never arrive } }
@Override public Savepoint setSavepoint() throws SQLException { checkState(); try { return conn.setSavepoint(); } catch (SQLException ex) { handleException(ex, null); return null; } }
@Override public Savepoint connection_setSavepoint(ConnectionProxy connection) throws SQLException { if (this.pos < filterSize) { return nextFilter() .connection_setSavepoint(this, connection); } return connection.getRawObject() .setSavepoint(); }
@Override public Savepoint connection_setSavepoint(ConnectionProxy connection, String name) throws SQLException { if (this.pos < filterSize) { return nextFilter() .connection_setSavepoint(this, connection, name); } return connection.getRawObject() .setSavepoint(name); }
public Savepoint setSavepoint() throws KettleDatabaseException { try { return connection.setSavepoint(); } catch ( SQLException e ) { throw new KettleDatabaseException( BaseMessages.getString( PKG, "Database.Exception.UnableToSetSavepoint" ), e ); } }
public Savepoint setSavepoint( String savePointName ) throws KettleDatabaseException { try { return connection.setSavepoint( savePointName ); } catch ( SQLException e ) { throw new KettleDatabaseException( BaseMessages.getString( PKG, "Database.Exception.UnableToSetSavepointName", savePointName ), e ); } }
@Override public Savepoint setSavepoint(String name) throws SQLException { TestObjectStoreInitRetry.debugTrace(); return _baseConn.setSavepoint(name); }
@Test public void testExistingTransactionWithManualSavepoint() throws Exception { DatabaseMetaData md = mock(DatabaseMetaData.class); Savepoint sp = mock(Savepoint.class); given(md.supportsSavepoints()).willReturn(true); given(con.getMetaData()).willReturn(md); given(con.setSavepoint("SAVEPOINT_1")).willReturn(sp); final TransactionTemplate tt = new TransactionTemplate(tm); tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED); assertTrue("Hasn't thread connection", !TransactionSynchronizationManager.hasResource(ds)); assertTrue("Synchronization not active", !TransactionSynchronizationManager.isSynchronizationActive()); tt.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException { assertTrue("Is new transaction", status.isNewTransaction()); Object savepoint = status.createSavepoint(); status.releaseSavepoint(savepoint); assertTrue("Is new transaction", status.isNewTransaction()); } }); assertTrue("Hasn't thread connection", !TransactionSynchronizationManager.hasResource(ds)); verify(con).releaseSavepoint(sp); verify(con).commit(); verify(con).close(); verify(ds).getConnection(); }
@Test public void testExistingTransactionWithManualSavepointAndRollback() throws Exception { DatabaseMetaData md = mock(DatabaseMetaData.class); Savepoint sp = mock(Savepoint.class); given(md.supportsSavepoints()).willReturn(true); given(con.getMetaData()).willReturn(md); given(con.setSavepoint("SAVEPOINT_1")).willReturn(sp); final TransactionTemplate tt = new TransactionTemplate(tm); tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED); assertTrue("Hasn't thread connection", !TransactionSynchronizationManager.hasResource(ds)); assertTrue("Synchronization not active", !TransactionSynchronizationManager.isSynchronizationActive()); tt.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException { assertTrue("Is new transaction", status.isNewTransaction()); Object savepoint = status.createSavepoint(); status.rollbackToSavepoint(savepoint); assertTrue("Is new transaction", status.isNewTransaction()); } }); assertTrue("Hasn't thread connection", !TransactionSynchronizationManager.hasResource(ds)); verify(con).rollback(sp); verify(con).commit(); verify(con).close(); }
given(con.setSavepoint("SAVEPOINT_1")).willReturn(sp);
given(con.getMetaData()).willReturn(md); for (int i = 1; i <= count; i++) { given(con.setSavepoint(ConnectionHolder.SAVEPOINT_NAME_PREFIX + i)).willReturn(sp);