μ½λλ₯Ό μμ±νλ€κ° repository.save()λ₯Ό νμ§ μμλ update μΏΌλ¦¬κ° μ€νλμ΄ DBμ λ°μλλ νμμ λ³΄κ³ Dirty Checkingμ λν΄μ μμ보μλ€ π€
βοΈ Dirty Checkingμ΄λ?
Spring JPAμμ λν° μ²΄νΉμ΄λ μμμ± μ»¨ν μ΄λκ° κ΄λ¦¬νλ μν°ν°μ μνλ₯Ό κ°μ§ν΄μ λ³κ²½λ λΆλΆμ΄ μλ€λ©΄ μλμΌλ‘ νΈλμμ μ΄ λλλ μμ μ λ°μ΄ν°λ² μ΄μ€μ λ°μνλ κΈ°λ₯μ΄λ€.
dirty : λ³κ²½λ μν°ν° λ°μ΄ν°
dirty checking : λ³κ²½λ λΆλΆ κ°μ§
Dirty Checkingμ μΈμ μΌμ΄λ κΉ?
- μμμ± μ»¨ν
μ€νΈμμ κ΄λ¦¬λλ μν°ν°
- μ€μμ/λΉμμ μνμ μν°ν°λ λν° μ²΄νΉμ λμμ΄ λμ§ μλλ€.
- Transaction(νΈλμμ
)μ΄ μ»€λ°λμμ λ
- νΈλμμ
μ΄ μ»€λ°λκΈ° μ κΉμ§ μμμ± μ»¨ν
μ€νΈλ λ³κ²½μ¬νμ μΆμ νκΈ°λ§ νκ³ DBμ λ°μνμ§λ μλλ€.
νΈλμμ μ΄ μ»€λ°λμ΄μΌ μμμ± μ»¨ν μ€νΈκ° μν°ν°μ λ³κ²½λ μνλ₯Ό DBμ λ°μνλ€.
- νΈλμμ
μ΄ μ»€λ°λκΈ° μ κΉμ§ μμμ± μ»¨ν
μ€νΈλ λ³κ²½μ¬νμ μΆμ νκΈ°λ§ νκ³ DBμ λ°μνμ§λ μλλ€.
Dirty Checkingμ΄ μ΄λ»κ² μΌμ΄λ κΉ?
JPAμμλ μν°ν°λ₯Ό μ‘°νν λ ν΄λΉ μν°ν°μ μνλ₯Ό κΈ°λ°μΌλ‘ μ€λ μ·μ λ§λ λ€.
νΈλμμ μ΄ λλλ μμ μ μ΄ μ€λ μ·κ³Ό λΉκ΅ν΄μ λ³κ²½μ΄ μλ€λ©΄ Update 쿼리λ₯Ό λ°μμν¨λ€.
μ€μμ/λΉμμ μν
μ€μμ
μμμ± μ»¨ν μ€νΈμ μ μ₯λμλ€κ° λΆλ¦¬λ μνλ‘ νμ¬λ μμ μνκ° μλ μνμ΄λ€.
λΉμμ
JPAμ κ΄κ³μμ΄ κ°μ²΄λ§ μμ±ν μνμ΄λ€.
β μμμ± μ»¨ν μ€νΈμ κ΄λ¦¬λ₯Ό λ°κΈ° μν΄μλ μλ³μ (@Id)κ° νμνλ€.
μ€μμ μνλ μμμ± μ»¨ν μ€νΈμ κ΄λ¦¬λ₯Ό λμ΄μ λ°μ§ μμ§λ§ μ¬μ ν μλ³μλ μ‘΄μ¬νλ€.
'Spring' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Spring] Spring Security(μ€νλ§ μν리ν°) Form Login μΈμ¦ (0) | 2023.11.01 |
---|---|
[Spring] Spring Security(μ€νλ§ μν리ν°) κΈ°μ΄ κ°λ (1) | 2023.10.31 |
[Spring] Service, ServiceImpl ꡬ쑰 (0) | 2023.06.30 |
[Spring] ν΄μνκ·Έ κΈ°λ₯ DB + JPA μ€κ³ (0) | 2023.06.20 |
[Spring] MultipartFile, Dto νλ²μ μ λ ₯ λ°κΈ° | swagger | S3 (0) | 2023.02.14 |