νλ¬μ(flush())λ μμμ± μ»¨ν
μ€νΈμ λ³κ²½ λ΄μ©μ DBμ λ°μνλ€.
em.flush()λ₯Ό μ§μ νΈμΆ
μν°ν° λ§€λμ μ flush() λ©μλλ₯Ό μ§μ νΈμΆν΄μ μμμ± μ»¨ν
μ€νΈλ₯Ό κ°μ λ‘ νλ¬μνλ€.
ν μ€νΈλ λ€λ₯Έ νλ μμν¬μ JPAλ₯Ό ν¨κ» μ¬μ©μλ₯Ό μ μΈνκ³ κ±°μ μ¬μ©νμ§ μλλ€.
νΈλμμ μ»€λ° μ νλ¬μ μλ νΈμΆ
DBμ λ³κ²½ λ΄μ©μ SQLλ‘ μ λ¬νμ§ μκ³ νΈλμμ λ§ μ»€λ°νλ©΄ μ΄λ€ λ°μ΄ν°λ DBμ λ°μλμ§ μλλ€.
νΈλμμ μ 컀λ°νκΈ° μ μ κΌ νλ¬μλ₯Ό νΈμΆν΄μ μμμ± μ»¨ν μ€νΈμ λ³κ²½ λ΄μ©μ DBμ λ°μν΄μΌ νλ€.
JPAλ μ΄λ° λ¬Έμ λ₯Ό μλ°©νκΈ° μν΄ νΈλμμ μ»€λ° μ μλμΌλ‘ νλ¬μλ₯Ό νΈμΆνλ€.
JPQL 쿼리 μ€ν μ νλ¬μ μλ νΈμΆJPQLμ΄λ Criteriaκ°μ κ°μ²΄μ§ν₯ 쿼리λ₯Ό νΈμΆν λλ νλ¬μκ° μ€νλλ€.
//μμμ± μ»¨ν
μ€νΈμ μμ§λ§ μμ§ DBμ λ°μλμ§ μμ μνem.persist(memberA);em.persist(memberB);em.persist(memberC);//μ€κ°μ JPQL μ€νquery = em.createQuery("SELECT m FROM Member m", Member.class);List<Member> members = query.getResultList();
JPQLμ μ€ννλ©΄ SQLλ‘ λ³νλμ΄ DBμμ μν°ν°λ₯Ό μ‘°ννλλ° memberA,B,C μν°ν°κ° μμΌλ―λ‘ μ‘°νκ° λμ§ μλλ€.
λ°λΌμ 쿼리λ₯Ό μ€ννκΈ° μ§μ μ μμμ± μ»¨ν μ€νΈλ₯Ό νλ¬μν΄μ λ³κ²½ λ΄μ©μ DBμ λ°μν΄μΌ νλ€.
JPAλ μ΄λ° λ¬Έμ λ₯Ό μλ°©νκΈ° μν΄ JPQLμ μ€νν λλ μλμΌλ‘ νλ¬μλ₯Ό νΈμΆνλ€.
βμλ³μλ₯Ό κΈ°μ€μΌλ‘ μ‘°ννλ find()λ₯Ό νΈμΆν λλ νλ¬μκ° μ€νλμ§ μμ.
μν°ν° λ§€λμ μμ νλ¬μ λͺ¨λλ₯Ό μ§μ μ§μ νλ €λ©΄
javax.persistence.FlushModeTypeμ μ¬μ©νλ©΄ λλ€.
FlushModeType.AUTO : 컀λ°μ΄λ 쿼리λ₯Ό μ€νν λ νλ¬μ(κΈ°λ³Έκ°) - FlushModeType.COMMIT : 컀λ°ν λλ§ νλ¬μ(μ±λ₯ μ΅μ ν μ μ¬μ©)νλ¬μ λͺ¨λ μ§μ μ€μ : em.setFlushMode(FlushModeType.COMMIT)