JPA ์๋ ์๋ฆฌ
JPA ๋ด๋ถ์์๋ ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น?
JPA ์๋ ์๋ฆฌ
JPA ๊ตฌ๋ ๋ฐฉ์
-
๋จผ์ Persistence ํด๋์ค์์ META-INF๋ผ๋ ํด๋ ์๋์์ persistence.xml์ ์ค์ ์ ๋ณด๋ฅผ ์ฝ์ด๋ค์ธ๋ค.
-
EntityManagerFactory์์ EntityManager๋ฅผ ์์ฑํ๋ค.
-
EntityManager๋ฅผ ํตํด ํธ๋์ญ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ํธ๋์ ์ ์ ์์ํ๋ค.
-
Member Entity ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ค๋ค
-
Member์ ์ ๋ณด๋ฅผ ์ถ๊ฐํด์ค๋ค.
-
EntityManager์
persist
๋ฉ์๋์ Member์ ๋ด๋๋ค. -
ํธ๋์ญ์ ๊ฐ์ฒด๋ฅผ ํตํด
commit
์ ๋ณด๋ธ๋ค. -
์ด๋ try catch๋ก ํธ๋์ญ์ ์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋,
rollback
์ฒ๋ฆฌ๋ฅผ ํด์ค๋ค. -
EntityManager๋ฅผ closeํ๋ค.
-
EntityManagerFactory๋ฅผ closeํ๋ค.
์ฃผ์
- EntityManagerFactory๋ ํ๋๋ง ์์ฑํด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์์ ๊ณต์ ๋๋ค.
- EntityManager๋ ์ฐ๋ ๋ ๊ฐ์ ๊ณต์ ๋์ง ์๋๋ค.(์ฌ์ฉํ๊ณ ๋ฒ๋ฆฐ๋ค)
- JPA์ โ๋ชจ๋ โ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ํธ๋์ ์ ์์์ ์คํ๋๋ค.
์์
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();
member.setId(1L);
member.setName("HelloA");
em.persist(member);
tx.commit();
} catch(Exception e){
tx.rollback();
} finally {
em.close();
}
emf.close();
}