Propagation levels of transactions in Spring
REQUIRED (default) : The default isolation level, if there is currently a transaction, join the transaction, if there is no current transaction, create a new transaction.
REQUIRED_NEW : Regardless of whether there is currently a transaction, a new transaction is created. New and old transactions exist independently. If the old transaction throws an exception, it will not affect the submission of new transactions.
NESTED : Nested transactions. If there is a current transaction, it will be nested in the current transaction, if there is no current transaction, a new transaction will be created.
SUPPORTS : Indicates support for the current transaction. If there is a transaction currently, join the transaction. If there is no transaction currently, it will proceed in a non-transactional manner.
NOT_SUPPORT : Indicates that transactions are not supported, and if there is a current transaction, the current transaction will be suspended.
MANDATORY : Mandatory. Throws an exception if no transaction currently exists.
NEVER : Execute in a non-transactional manner. Throws an exception if a transaction currently exists.