Open toychip opened 9 months ago
1๋ฒ ๋ฌธ์
2.----1----๊ณผ -----2-----,-----3------,------4------- ์ฌ์ด์ ์ด๋ค ์ฟผ๋ฆฌ๊ฐ ๋๊ฐ๋๊ฐ?
public class JpaMain {
public static void main(String[] args){
EntityManagerFactory emf=Persistence.createEntityManagerFactory("hello");
EntityManager em=emf.createEntityManager();
EntityTransaction tx=em.getTransaction();
tx.begin();
try{
Member member=new Member(373737L,"jinujinu");
em.persist(member);
System.out.println("-----------------------------1---------------------------");
List<Member> selectMFromMemberM = em.createQuery("select m from Member m").getResultList();
System.out.println("-----------------------------2----------------------------");
em.detach(member);
member.setName("kkkk");
System.out.println("----------------------------3----------------------------");
tx.commit();
System.out.println("----------------------------4-----------------------------");
}catch (Exception e){
tx.rollback();
}
finally {
em.close();
}
emf.close();
}
}
3๋ฒ ๋ฌธ์ . ์์ ์ํ์ ํด๋นํ๋ member ๊ฐ์ฒด๋ฅผ ๋ชจ๋ ๊ณ ๋ฅด์์ค.
em.persist(member);
em.remove(member);
Member member = em.find(Member.class, 1L);
Member member = new Member(1L, "memberA");
4๋ฒ ๋ฌธ. JPQL์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์์์ฑ ์ปจํ ์คํธ์ ๋ฐ์ดํฐ๋ ๊ฐฑ์ ๋๋์ง? ๊ทธ๋ ๋ค๋ฉด ๊ทธ ์์ ์?
5๋ฒ ๋ฌธ์ . Q. ์ค์์ ์ํ๊ฐ ๋๋ ๊ฒฝ์ฐ๋ em.detacher(Entity);, em.clear();, em.close(); ๊ฐ ์๋๋ฐ ์ด ์ ์ ์ฐจ์ด๋?
1๋ฒ ๋ฌธ์
2๋ฒ ๋ฌธ์
3๋ฒ ๋ฌธ์
4๋ฒ ๋ฌธ์
5๋ฒ ๋ฌธ์ // ํน์ ์ํฐํฐ ์ค์์ ์ํ๋ก ์ด์ em.detacher(Entity)
// ๋ชจ๋ ์์์ฑ ์ปจํ ์คํธ ์ค์์ ์ํ๋ก ์ด์ em.clear();
// ์์์ฑ ์ข ๋ฃ์ด๋ฏ๋ก ์ค์์ ์ํ๊ฐ ๋จ em.close();
6๋ฒ ๋ฌธ์
EntityManagerFactory
์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ๋ DB ์ข ๋ฅ ํ๋ ๋น ํ๋๋ง ์์ฑํ๋๋ฐ, ์ด ํ ๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์์ ๊ณต์ ๋๋๋ก ์ค๊ณ๋์ด์๋ค. (์ฑ๊ธํค ๋ฐฉ์)
EntityManager๋ฅผ ์์ฑํ๋ ์ญํ ์ด ์ฃผ ์ ๋ฌด
EntityManagerFactory๋ thread-safeํด์ ๋์์ฑ์ด ๋ณด์ฅ๋์ง๋ง, ์์ฑ ๋น์ฉ์ด ์๋นํ ํฌ๋ค.
JPA๋ DB์ ๊ทผ ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค EntityManagerFactory์์๋ EntityManager๋ฅผ ์์ฑํ์ฌ DB์ฐ๊ฒฐ ์์ฒญ์ ์ฒ๋ฆฌ
EntityManager
๐JPA ์์
JPA๊ฐ ๋ฌด์์ธ์ง ์์๋ณด๊ณ , JPA๊ฐ ๋ฐ์ ๋ ๊ณผ์ ์ ํ์ตํ๊ณ JPA์ ๊ธฐ๋ณธ ๋์ ์๋ฆฌ์ ์ค์ตํด๋ณด๋ ์๊ฐ์ ๊ฐ๋๋ค.