Module io.ebean.api
Package io.ebean

Class TxScope


public final class TxScope extends Object
Holds the definition of how a transactional method should run.

This information matches the features of the Transactional annotation. You can use it directly with Runnable or Callable via DB.execute(TxScope, Runnable) or DB.executeCall(TxScope, Callable).

This object is used internally with the enhancement of a method with Transactional annotation.

See Also:
  • Constructor Details

    • TxScope

      public TxScope()
      Create a REQUIRED transaction scope.
    • TxScope

      public TxScope(io.ebean.annotation.TxType type)
      Create with a given transaction scope type.
  • Method Details

    • required

      public static TxScope required()
      Helper method to create a TxScope with REQUIRES.
    • requiresNew

      public static TxScope requiresNew()
      Helper method to create a TxScope with REQUIRES_NEW.
    • mandatory

      public static TxScope mandatory()
      Helper method to create a TxScope with MANDATORY.
    • supports

      public static TxScope supports()
      Helper method to create a TxScope with SUPPORTS.
    • notSupported

      public static TxScope notSupported()
      Helper method to create a TxScope with NOT_SUPPORTED.
    • never

      public static TxScope never()
      Helper method to create a TxScope with NEVER.
    • toString

      public String toString()
      Describes this TxScope instance.
      toString in class Object
    • getAutoPersistUpdates

      public Boolean getAutoPersistUpdates()
      Return the AutoPersistUpdates mode as a nullable Boolean.
    • isBatchSet

      public boolean isBatchSet()
      Return true if PersistBatch has been set.
    • isBatchOnCascadeSet

      public boolean isBatchOnCascadeSet()
      Return true if batch on cascade has been set.
    • isBatchSizeSet

      public boolean isBatchSizeSet()
      Return true if batch size has been set.
    • checkBatchMode

      public void checkBatchMode()
      Check for batchSize being set without batch mode and use this to imply PersistBatch.ALL.
    • getType

      public io.ebean.annotation.TxType getType()
      Return the transaction type.
    • setType

      public TxScope setType(io.ebean.annotation.TxType type)
      Set the transaction type.
    • setAutoPersistUpdates

      public TxScope setAutoPersistUpdates(io.ebean.annotation.TxOption autoPersistUpdates)
      Set the autoPersistUpdates mode.
    • getProfileId

      public int getProfileId()
      Return the transaction profile id.
    • setProfileId

      public TxScope setProfileId(int profileId)
      Set the transaction profile id.
    • getProfileLocation

      public ProfileLocation getProfileLocation()
      Return the profile location.
    • setProfileLocation

      public TxScope setProfileLocation(ProfileLocation profileLocation)
      Set the profile location.
    • isSkipCache

      public boolean isSkipCache()
      Return true if the L2 cache should be skipped for this transaction.
    • setSkipCache

      public TxScope setSkipCache(boolean skipCache)
      Set to true if the transaction should skip L2 cache access.
    • getLabel

      public String getLabel()
      Return the label for the transaction.
    • setLabel

      public TxScope setLabel(String label)
      Set a label for the transaction.
    • getBatch

      public io.ebean.annotation.PersistBatch getBatch()
      Return the batch mode.
    • setBatch

      public TxScope setBatch(io.ebean.annotation.PersistBatch batch)
      Set the batch mode to use.
    • getBatchOnCascade

      public io.ebean.annotation.PersistBatch getBatchOnCascade()
      Return the batch on cascade mode.
    • setBatchOnCascade

      public TxScope setBatchOnCascade(io.ebean.annotation.PersistBatch batchOnCascade)
      Set the batch on cascade mode.
    • getBatchSize

      public int getBatchSize()
      Return the batch size. 0 means use the default value.
    • setBatchSize

      public TxScope setBatchSize(int batchSize)
      Set the batch size to use.
    • setSkipGeneratedKeys

      public TxScope setSkipGeneratedKeys()
      Set if the transaction should skip reading generated keys for inserts.
    • isSkipGeneratedKeys

      public boolean isSkipGeneratedKeys()
      Return true if getGeneratedKeys should be skipped for this transaction.
    • isReadonly

      public boolean isReadonly()
      Return if the transaction should be treated as read only.
    • setReadOnly

      public TxScope setReadOnly(boolean readOnly)
      Set if the transaction should be treated as read only.
    • isFlushOnQuery

      public boolean isFlushOnQuery()
      Return false if the JDBC batch buffer should not be flushed automatically when a query is executed.
    • setFlushOnQuery

      public TxScope setFlushOnQuery(boolean flushOnQuery)
      Set flushOnQuery to be false to stop automatically flushing the JDBC batch buffer when a query is executed.
    • getIsolationLevel

      public int getIsolationLevel()
      Return the isolation level.
    • getIsolation

      public io.ebean.annotation.TxIsolation getIsolation()
      Return the Isolation level this transaction should run with.
    • setIsolation

      public TxScope setIsolation(io.ebean.annotation.TxIsolation isolation)
      Set the transaction isolation level this transaction should run with.
    • getServerName

      public String getServerName()
      Return the serverName for this transaction. If this is null then the default server (default DataSource) will be used.
    • setServerName

      public TxScope setServerName(String serverName)
      Set the serverName (DataSource name) for which this transaction will be. If the serverName is not specified (left null) then the default server will be used.
    • getRollbackFor

      public ArrayList<Class<? extends Throwable>> getRollbackFor()
      Return the throwable's that should cause a rollback.
    • setRollbackFor

      public TxScope setRollbackFor(Class<? extends Throwable> rollbackThrowable)
      Set a Throwable that should explicitly cause a rollback.
    • setRollbackFor

      public TxScope setRollbackFor(Class<?>[] rollbackThrowables)
      Set multiple throwable's that will cause a rollback.
    • getNoRollbackFor

      public ArrayList<Class<? extends Throwable>> getNoRollbackFor()
      Return the throwable's that should NOT cause a rollback.
    • setNoRollbackFor

      public TxScope setNoRollbackFor(Class<? extends Throwable> noRollback)
      Add a Throwable to a list that will NOT cause a rollback. You are able to call this method multiple times with different throwable's and they will added to a list.
    • setNoRollbackFor

      public TxScope setNoRollbackFor(Class<?>[] noRollbacks)
      Set multiple throwable's that will NOT cause a rollback.
    • isBatchMode

      public boolean isBatchMode()
    • isBatchOnCascade

      public boolean isBatchOnCascade()