Spring Transaction Propagation Types

In the Spring framework, there are several types of transaction propagation mechanisms.

  1. By default, add to the current transaction if one exists or create a new transaction if none exists.
  2. SUPPORTS: If there is currently a transaction, join it; if there is no transaction currently, run in a non-transactional manner.
  3. It is required to join the transaction if one currently exists, and to throw an exception if there is no transaction present.
  4. REQUIRES_NEW: Creates a new transaction, suspends the current transaction if it exists.
  5. NOT_SUPPORTED: Execute in a non-transactional manner, suspending the current transaction if one exists.
  6. NEVER: Perform in a non-transactional manner, throwing an exception if a transaction is currently in progress.
  7. If there is already a transaction in progress, the code will execute in a nested transaction; otherwise, a new nested transaction will be created.
bannerAds