public interface SavepointManager
セーブポイントはアクティブなトランザクション内でのみ機能することに注意してください。高度なニーズにこのプログラムによるセーブポイント処理を使用するだけです。それ以外の場合は、PROPAGATION_NESTED を使用したサブトランザクションが望ましいです。
このインターフェースは、JDBC 3.0 のセーブポイントメカニズムに触発されていますが、特定の永続化テクノロジーからは独立しています。
TransactionStatus
, TransactionDefinition.PROPAGATION_NESTED
, Savepoint
SE修飾子と型 | メソッドと説明 |
---|---|
ObjectSE | createSavepoint() 新しいセーブポイントを作成します。 |
void | releaseSavepoint(ObjectSE savepoint) 指定されたセーブポイントを明示的に解放します。 |
void | rollbackToSavepoint(ObjectSE savepoint) 指定されたセーブポイントにロールバックします。 |
ObjectSE createSavepoint() throws TransactionException
rollbackToSavepoint
を使用して特定のセーブポイントにロールバックし、releaseSavepoint
を使用して不要になったセーブポイントを明示的に解放できます。ほとんどのトランザクションマネージャーは、トランザクションの補完時にセーブポイントを自動的に解放することに注意してください。
rollbackToSavepoint(java.lang.Object)
または releaseSavepoint(java.lang.Object)
に渡されるセーブポイントオブジェクト NestedTransactionNotSupportedException
- 基になるトランザクションがセーブポイントをサポートしていない場合 TransactionException
- たとえば、トランザクションが適切な状態にないためにセーブポイントを作成できなかった場合 Connection.setSavepoint()
SEvoid rollbackToSavepoint(ObjectSE savepoint) throws TransactionException
セーブポイントはその後自動的に解放されません。releaseSavepoint(Object)
を明示的に呼び出すか、トランザクションの補完時に自動解放を使用できます。
savepoint
- ロールバックするセーブポイント NestedTransactionNotSupportedException
- 基になるトランザクションがセーブポイントをサポートしていない場合 TransactionException
- ロールバックが失敗した場合 Connection.rollback(java.sql.Savepoint)
SEvoid releaseSavepoint(ObjectSE savepoint) throws TransactionException
ほとんどのトランザクションマネージャーは、トランザクションの補完時にセーブポイントを自動的に解放することに注意してください。
トランザクションの補完時に適切なリソースのクリーンアップが最終的に行われる場合、実装はできるだけ静かに失敗する必要があります。
savepoint
- リリースするセーブポイント NestedTransactionNotSupportedException
- 基になるトランザクションがセーブポイントをサポートしていない場合 TransactionException
- リリースが失敗した場合 Connection.releaseSavepoint(java.sql.Savepoint)
SE