Interface TransactionService

All Known Implementing Classes:
DummyTransactionService, TransactionServiceImpl

public interface TransactionService
Contract for retrieving access to a user transaction.

Note that the implementation of the jakarta.transaction.UserTransaction is not able to provide the full set of status codes available on the jakarta.transaction.Status class.

Author:
David Caruana
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Determine if the repository has been put into read only mode.
    jakarta.transaction.UserTransaction
    Gets a user transaction that ensures a new transaction is created.
    jakarta.transaction.UserTransaction
    Gets a user transaction that ensures a new transaction is created.
    jakarta.transaction.UserTransaction
    getNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)
    Gets a user transaction that ensures a new transaction is created.
    Get the standard instance of the helper object that supports transaction retrying.
    jakarta.transaction.UserTransaction
    Gets a user transaction that supports transaction propagation.
    jakarta.transaction.UserTransaction
    getUserTransaction(boolean readOnly)
    Gets a user transaction that supports transaction propagation.
    jakarta.transaction.UserTransaction
    getUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)
    Gets a user transaction that supports transaction propagation.
    boolean
    Determine if ALL user transactions will be read-only.
  • Method Details

    • getAllowWrite

      boolean getAllowWrite()
      Determine if the repository has been put into read only mode. This is independent of the current user.
      Returns:
      true if the repository is allowed to perform write operations
    • isReadOnly

      @NotAuditable boolean isReadOnly()
      Determine if ALL user transactions will be read-only. The 'System' user is always allowed to write.
      Returns:
      Returns true if all transactions are read-only AND the current user is not the 'System' user.
    • getUserTransaction

      @NotAuditable jakarta.transaction.UserTransaction getUserTransaction()
      Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.
      Returns:
      the user transaction
    • getUserTransaction

      @NotAuditable jakarta.transaction.UserTransaction getUserTransaction(boolean readOnly)
      Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.
      Parameters:
      readOnly - Set true for a READONLY transaction instance, false otherwise. Note that it is not always possible to force a write transaction if the system is in read-only mode.
      Returns:
      the user transaction
    • getUserTransaction

      @NotAuditable jakarta.transaction.UserTransaction getUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)
      Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.
      Parameters:
      readOnly - Set true for a READONLY transaction instance, false otherwise.
      ignoreSystemReadOnly - true to force the read-only flag to be respected regardless of the system read-only mode.
      Returns:
      the user transaction
    • getNonPropagatingUserTransaction

      @NotAuditable jakarta.transaction.UserTransaction getNonPropagatingUserTransaction()
      Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.
      Returns:
      Returns a non-propagating user transaction
    • getNonPropagatingUserTransaction

      @NotAuditable jakarta.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly)
      Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.
      Parameters:
      readOnly - Set true for a READONLY transaction instance, false otherwise. Note that it is not always possible to force a write transaction if the system is in read-only mode.
      Returns:
      Returns a non-propagating user transaction
    • getNonPropagatingUserTransaction

      @NotAuditable jakarta.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)
      Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.
      Parameters:
      readOnly - Set true for a READONLY transaction instance, false otherwise.
      ignoreSystemReadOnly - true to force the read-only flag to be respected regardless of the system read-only mode.
      Returns:
      Returns a non-propagating user transaction
    • getRetryingTransactionHelper

      @NotAuditable RetryingTransactionHelper getRetryingTransactionHelper()
      Get the standard instance of the helper object that supports transaction retrying.
      Returns:
      Returns a helper object that executes units of work transactionally. The helper can be reused or altered as required.