μ€λμ κ°μ¬λκ»μ μΈν 리μ μ΄λ₯Ό λ€μ΄λ‘λ νκ³ μ¬μ©νμλ©΄μ λ§μ΄ λ²λ² μ΄μ μ λ¬΄μ¨ μμ μ νλμ§λ κΈ°μ΅μ΄ μλλ€.
(μ΄μ κΉμ§ μμ
νλ 1λ¬λμ μ΄ν΄λ¦½μ€λ₯Ό μ¬μ©νμ¬)
(λλ μ΄ν΄λ¦½μ€λ₯Ό λνκ΅ μμ
λ λͺκ°μ μ°κ³ μΈν
리μ μ΄λ₯Ό 2λ
μ λ μ΄ κ² κ°λ€)
ν° μ£Όμ λ JPA μ Spring Data JPA, Spring Security λ₯Ό μ΄ 3κ°μ ννΈλ₯Ό μ€λ λ΄μΌ λλΈλ€λκ² λ§μ΄ μλμ μ§κΈλΆν° μ 리νλ κ²μ κ°μΈμ μΌλ‘ 곡λΆν λ΄μ©μ΄λ€.
κΉμνλμ μλ° ORM νμ€ JPA κ°μ’λ₯Ό λ£κ³ μ 리ν λ΄μ©μ λλ€.
EntityManger.persist(member) μ΄ λ‘μ§μ μλ―Έλ DBμ μ μ₯νλ€λ κ²μ΄ μλλΌ, member κ°μ²΄λ₯Ό μμμ± μ»¨ν
μ€νΈλΌλ κ³³μ μ μ₯νλ€λ κ²μ
λλ€.β‘ μ¦ EntityMangerλ₯Ό ν΅ν΄μ μμμ± μ»¨ν μ€νΈμ μ κ·Όνλ κ²μ λλ€.
1.λΉμμ : μμμ± μ»¨ν
μ€νΈμ μ ν κ΄κ³μλ μλ‘μ΄ μν
μ½λμ κ°μ΄ κ°μ²΄λ₯Ό μμ±νκ³ νλλ§ ν λΉν μν, JPAλ μ ν κ΄κ³μλ μν
Member member = new Member();
member.setName("νκΈΈλ");
member.setAge(24);
2.μμ : μμμ± μ»¨ν μ€νΈμμ "κ΄λ¦¬" λλ μν
Member member = new Member();
member.setName("νκΈΈλ");
member.setAge(24);
// emfλ μν°ν°λ§€λμ ν©ν 리
EntityManger em = emf.createEntityManager();
em.getTransaction().begin();
// κ°μ²΄λ₯Ό μμν μν
em.persist(member);
3.μ€μμ : μμμ± μ»¨ν νΈμ€μ μ μ₯λμλ€κ° λΆλ¦¬λ μν
// μμμ± μ»¨ν
μ€νΈμμ μ§μ°λ κ², DB X
em.detach(member)
4.μμ : μμ λ μν
// κ°μ²΄λ₯Ό μμ
em.remove()
β‘ μμμ± μ»¨ν μ€νΈμ μ΄μ : μλ° μ΄ν리μΌμ΄μ μ΄λ DB μ€κ°μ μλ€κ³ μκ° νλ©΄ νΈν κ² κ°λ€. μμμ± μ»¨ν μ€νΈκ° μ‘΄μ¬ν¨μΌλ‘μ¨ λ²νΌλ₯Ό ν μμκ³ μΊμ±μ ν μ μλ μ΄μ μ΄ μμ΅λλ€.
2λ¬μ λ©μ¬ λ°±μλ μ¬ν κ³Όμ μ΄μ§λ§, νλ¬λμ μ§ννλ©΄μ νΉν μ€λ κ°μμ λν΄ μμ¬μμ΄ λ§μ΄ λ¨λκ²κ°λ€.
κ²½λ ₯μλ κ°μ¬μ§λ§, κ·Έλ λ€κ³ μκ°μλ€μκ² μ€λͺ
μ μνλκ² κ°μ§λ μλ€.
μ΄λ²μ£Ό κΈμμΌμ μλ ν νλ‘μ νΈμμ μκΈ°μ£Όλλ‘ κΈ°μ μ μ¨κ°λ©° λ°°μ°λκ² μ§κΈ κ°μ₯ νμ€μ μΈ λ°©λ²μΈκ² κ°λ€.