λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€λ μμ μ λ¨μ νΉμ νλμ λ Όλ¦¬μ μΈ κΈ°λ₯μ μννκΈ° μν΄ νλ²μ λͺ¨λ μνλμ΄μΌ ν μ°μ°λ€μ μλ―Ένλ€.
κ³μ’ μ΄μ²΄
λΌλ μμ
μ ν λ, aκ³μ’.μΆκΈ()
κ³Ό bκ³μ’.μ
κΈ()
μ΄λΌλ λ κ°μ§ μΌμ΄ ν©μ³μ Έ κ³μ’ μ΄μ²΄
λΌλ νλμ λ
Όλ¦¬μ κΈ°λ₯μ μ΄λ£¨λ κ²μ μμλ‘ λ€ μ μλ€.
νΈλμμ
μ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ λ°μλκ±°λ, μ ν λ°μλμ§ μμμΌ νλ€. μλ₯Ό λ€μ΄, κ³μ’ μ΄μ²΄ κ³Όμ μμ aκ³μ’
μμ λ§μμ μΈμΆνλλ° bκ³μ’
μ λ§μμ μ
κΈνμ§ μλ κ²½μ°κ° λ°μν΄μλ μ λλ€.
μΌκ΄μ μΈ λ°μ΄ν°λ² μ΄μ€ μνλ₯Ό μ μ§ν΄μΌ νλ€. λ°μ΄ν°λ² μ΄μ€ κ³ μ μμλ νΈλμμ μν μ κ³Ό νΈλμμ μν νμ μνκ° κ°μμΌ ν¨μ μλ―Ένλ€.
λμμ μ€νλλ νΈλμμ λ€μ΄ μλ‘ μν₯μ λΌμΉμ§ μμμΌ νλ€.
μ±κ³΅μ μΌλ‘ μλ£λ νΈλμμ μ κ²°κ³Όλ νμ μ μ₯λμ΄μΌ νλ€.
νΈλμμ μμ μ μ±κ³΅μ μΌλ‘ λ§μΉκ³ λ°μ΄ν°λ² μ΄μ€κ° λ€μ μΌκ΄λ μνκ° λμμ λ, κ°±μ μ΄ μλ£λμμμ μ리λ μ°μ°μ΄λ€.
νΈλμμ μμ λμ€ μ€λ₯κ° λ°μνμ λ, μΌλΆκ° μ μμ μΌλ‘ μ²λ¦¬λμλλΌλ νΈλμμ μ΄ νν λͺ¨λ μ°μ°μ μ·¨μ(Undo)νλ μ°μ°μ΄λ€.
μ€νλ§μμλ μ΄λ Έν μ΄μ λ°©μμΌλ‘ @Transactionalμ λ©μλ, ν΄λμ€, μΈν°νμ΄μ€ μμ μ μΈνμ¬ μ¬μ©νλ λ°©λ²μ΄ μΌλ°μ μ΄λ©° μ΄λ₯Ό μ μΈμ νΈλμμ μ΄λΌκ³ νλ€. μ μ©λ λ²μ λ΄μμλ νΈλμμ κΈ°λ₯μ΄ ν¬ν¨λ νλ‘μ κ°μ²΄κ° μμ±λμ΄ μλμΌλ‘ commit νΉμ rollbackμ μ§ννλ€.
π‘ νλ‘μ κ°μ²΄
κ°μ²΄λ₯Ό κ°μΈκ³ μλ κ°μ²΄λ₯Ό λ§νλ€. κΈ°μ‘΄μ κ°μ²΄μ νμ μ λμΌνλ€. μ κ·Όμ μ μ΄νκ³ μΆκ±°λ, λΆκ° κΈ°λ₯μ μΆκ°νκ³ μΆμ λ μ¬μ©νλ€.
[Java]@Transactional Annotation μκ³ μ°μ
[Spring] Transactional μ 리 λ° μμ
[Java] νΈλμμ
μ²λ¦¬νκΈ°