Legday

[JPA] ν”ŒλŸ¬μ‹œ & μ€€μ˜μ† μƒνƒœ λ³Έλ¬Έ

JPA

[JPA] ν”ŒλŸ¬μ‹œ & μ€€μ˜μ† μƒνƒœ

Legday 2022. 12. 11. 23:58
πŸ’‘ ν”ŒλŸ¬μ‹œ : μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ˜ λ³€κ²½λ‚΄μš©μ„ DB에 반영

ν”ŒλŸ¬μ‹œ λ°œμƒ

  • 변경감지 → μˆ˜μ •λœ μ—”ν‹°ν‹° μ“°κΈ°μ§€μ—° SQLμ €μž₯μ†Œμ— 등둝 → λ“±λ‘λœ 쿼리λ₯Ό DB에 전솑

ν”ŒλŸ¬μ‹œ λ°œμƒμ‹œν‚€λŠ” 방법( ν…ŒμŠ€νŠΈν• λ•Œλ§Œ 쓰인닀 )

  • transaction.commit() → ν”ŒλŸ¬μ‹œ μžλ™ν˜ΈμΆœ
  • em.flush() → μ§μ ‘ν˜ΈμΆœ
  • JPQL 쿼리 μ‹€ν–‰ → ν”ŒλŸ¬μ‹œ μžλ™ 호좜

κ²°λ‘ 

  • μ˜μ†μ„± μ»¨ν…μŠ€νŠΈλ₯Ό λΉ„μš°λŠ”κ²Œ μ•„λ‹ˆλ‹€
  • μ˜μ†μ„ μ»¨ν…μŠ€νŠΈμ˜ λ³€κ²½λ‚΄μš©μ„ DB에 동기화!
  • νŠΈλžœμž­μ…˜μ΄λΌλŠ” μž‘μ—… λ‹¨μœ„κ°€ μ€‘μš”ν•˜λ‹€.

πŸ’‘μ€€μ˜μ† μƒνƒœ :μ˜μ† μƒνƒœμ˜ μ—”ν‹°ν‹°κ°€(1μ°¨ μΊμ‹œμ— λ“€μ–΄μžˆλŠ”) μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ—μ„œ 뢄리(detached) λ₯Ό λ§ν•œλ‹€.
  • 뢄리됐기 λ•Œλ¬Έμ— μ˜μ†μ„± μ»¨ν…μŠ€νŠΈκ°€ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯을 μ‚¬μš©ν•˜μ§€ λͺ»ν•œλ‹€.

μ€€μ˜μ† μƒνƒœλ‘œ λ§Œλ“œλŠ” 방법

  • em.detach(entyty) : νŠΉμ • μ—”ν‹°ν‹°λ§Œ μ€€μ˜μ† μƒνƒœλ‘œ μ „ν™”
  • em.clear() : μ˜μ†μ„± μ»¨ν…μŠ€νŠΈλ₯Ό μ™„μ „νžˆ μ΄ˆκΈ°ν™”
  • em.close() : μ˜μ†μ„± μ»¨ν…μŠ€νŠΈλ₯Ό μ’…λ£Œ

'JPA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JPA] ν•„λ“œμ™€ μ»¬λŸΌλ§€ν•‘  (0) 2022.12.15
[JPA] μ—”ν‹°ν‹° λ§€ν•‘  (0) 2022.12.15
[JPA] μ˜μ†μ„± μ»¨ν…μŠ€νŠΈ(PersistenceContext)λž€ ?  (0) 2022.12.09
JPAλž€?  (0) 2022.12.06