1. propagation_required
If no transaction exists, create a transaction. If a transaction already exists, add it to the transaction. This is the most common choice.
2. propagation_supports
Supports the current transaction. If no transaction exists, it is executed in non-transaction mode.
3. propagation_mandatory
Use the current transaction. If no transaction exists, an exception is thrown.
4. propagation_requires_new
Create a new transaction. If a transaction exists, the current transaction is suspended.
5. propagation_not_supported
The operation is performed in non-transaction mode. If a transaction exists, the current transaction is suspended.
6. propagation_never
It is executed in non-transaction mode. If a transaction exists, an exception is thrown.
7. propagation_nested
If a transaction exists, it is executed in the nested transaction. If no transaction exists, perform a similar operation as propagation_required.