<aside> π‘ * Transaction μ DB μμ μνλ₯Ό λ³νμν€λ μμ μ μͺΌκ°€ μ μλ(Atomicity) λ Όλ¦¬μ λ¨μμ΄λ©° νλμ transaction μ commit λλ rollback λλ€.
</aside>
μ΄λ‘ μ μΌλ‘ Database μμ€ν μ κ°κ°μ Transaction μ λν΄
Atomicity(μμμ±), Consistency(μΌκ΄μ±), Isolation(κ³ λ¦½μ±), Durability(μꡬμ±)μ 보μ₯νλ€.
JPA μ EntityManager κ° νμ±νλ μν(Spring Data JPA λ default κ°μ)λ‘ Transaction μμμ DB μ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ©΄ μ΄ λ°μ΄ν°λ Persistence(μμμ±)μ΄ μ μ§λ μνκ° λλ€.(Persistence μνκ° λλ€κ³ ν΄μ λ°λ‘ Commit μ΄ λλ건 μλλ€.)
μ΄ μνμμ ν΄λΉ λ°μ΄ν°μ κ°μ λ³κ²½νλ©΄ JPA μ Persistence context μ κ°μ΄ μ λ°μ΄νΈ λκ³ transaction μ΄ λλλ μμ μ μ λ³κ²½λ μ¬νμ Commit νλ€.
Entity object μ κ°λ§ λ³κ²½νλ€λ©΄ Update query λ₯Ό 보λ΄μ§ μμλ λλ€.
@Transactional
μ Exception μ΄ λ°μνλ©΄ rollback μ μν€κ³ , μ μλν κ²½μ° commit μ νλ€.
νμ§λ§ μ¬κΈ°μ μ ννκ² μ§κ³ λμ΄κ°λ©΄ λͺ¨λ Exception νμ
μ΄ μλΒ UnCheckedException
λ§ rollbackμ μν¨λ€.