Search
β˜•

Transaction-propagation

supports

Support a current transaction, execute non-transactionally if none exists. Analogous to EJB transaction attribute of the same name.
ν˜ΈμΆœν•œ λ©”μ„œλ“œμ—μ„œ νŠΈλžœμž­μ…˜μ΄ 있으면 νŠΈλžœμž­μ…˜μ„ μž‡κ³ , μ—†μœΌλ©΄ μ—†λŠ” μ±„λ‘œ 놔둔닀.
특이점: ν˜ΈμΆœν•œ λ©”μ„œλ“œμ—μ„œ νŠΈλžœμž­μ…˜μ΄ μ—†μ—ˆμ–΄λ„ 일단 νŠΈλžœμž­μ…˜ 생성은 ν•œλ‹€. ν•˜μ§€λ§Œ μ μš©ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€!
β†’ exists, but not active!

mandatory

Support a current transaction, throw an exception if none exists
ν˜ΈμΆœν•œ λ©”μ„œλ“œμ—μ„œ νŠΈλžœμž­μ…˜μ΄ μ—†μœΌλ©΄ IllegalTransactionStateException μ˜ˆμ™Έλ₯Ό ν„°λœ¨λ¦°λ‹€.

not supported

Execute non-transactionally, suspend the current transaction if one exists.
일단 생성은 ν•œλ‹€. 그런데 μ“°μ§€λŠ” μ•ŠλŠ”λ‹€!
물리적 νŠΈλžœμž­μ…˜κ³Ό 논리적 νŠΈλžœμž­μ…˜μ˜ 차이인 λ“― ν•˜λ‹€!

nested

Execute within a nested transaction if a current transaction exists, behave like REQUIRED otherwise. Note: Actual creation of a nested transaction will only work on specific transaction managers. Out of the box, this only applies to the JDBC DataSourceTransactionManager.
νŠΉμ •ν•œ transaction manager μ—μ„œλ§Œ μž‘λ™ν•œλ‹€κ³  ν•œλ‹€.
ν˜ΈμΆœν•œ λ©”μ„œλ“œμ—μ„œ νŠΈλžœμž­μ…˜μ΄ 있으면 NestedTransactionNotSupportedException μ˜ˆμ™Έκ°€ ν„°μ§„λ‹€.
ν˜ΈμΆœν•œ λ©”μ„œλ“œμ—μ„œ νŠΈλžœμž­μ…˜μ΄ μ—†μœΌλ©΄ μƒˆλ‘œ 생성을 ν•œλ‹€.
mandatory 와 λ°˜λŒ€ λŠλ‚Œμ΄λ‹€.

never

| Execute non-transactionally, throw an exception if a transaction exists.
ν˜ΈμΆœν•œ λ©”μ„œλ“œμ—μ„œ νŠΈλžœμž­μ…˜μ΄ 있으면 IllegalTransactionStateException μ˜ˆμ™Έλ₯Ό ν„°λœ¨λ¦°λ‹€.
ν˜ΈμΆœν•œ λ©”μ„œλ“œμ—μ„œ νŠΈλžœμž­μ…˜μ΄ μ—†μœΌλ©΄ νŠΈλžœμž­μ…˜μ„ μƒμ„±ν•˜κΈ°λŠ” ν•˜λŠ”λ° μ μš©ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€.
이 λ˜ν•œ 물리적/논리적 의 차이인 것 κ°™λ‹€.