From 3d4ccecf46f75df53f9044675a6924ecc9d19bb5 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Mon, 6 Feb 2023 03:07:50 +0900 Subject: [PATCH] #30 jpa basic: jpql - bulk --- .../main/java/com/hello/jpa/query/Bulk.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 hello-jpa/src/main/java/com/hello/jpa/query/Bulk.java diff --git a/hello-jpa/src/main/java/com/hello/jpa/query/Bulk.java b/hello-jpa/src/main/java/com/hello/jpa/query/Bulk.java new file mode 100644 index 00000000..5e155092 --- /dev/null +++ b/hello-jpa/src/main/java/com/hello/jpa/query/Bulk.java @@ -0,0 +1,69 @@ +package com.hello.jpa.query; + +import com.hello.jpa.query.entity.Member; +import com.hello.jpa.query.entity.Team; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.EntityTransaction; +import javax.persistence.Persistence; + +public class Bulk { + + public static void main(String[] args) { + EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); + + EntityManager em = emf.createEntityManager(); + + EntityTransaction tx = em.getTransaction(); + tx.begin(); + + try { + Team team = new Team(); + team.setName("team1"); + em.persist(team); + + Team team2 = new Team(); + team2.setName("team2"); + em.persist(team2); + + Member member = new Member(); + member.setName("member1"); + member.setTeam(team); + em.persist(member); + + Member member2 = new Member(); + member2.setName("member2"); + member2.setTeam(team); + em.persist(member2); + + Member member3 = new Member(); + member3.setName("member3"); + member3.setTeam(team2); + em.persist(member3); + + // flush 자동 호출 + int resultCount = em.createQuery("update Member m set m.age = 20") + .executeUpdate(); + + System.out.println("resultCount = " + resultCount); + + // 영속성 컨텍스트에 남아 있으므로 초기화 해야함 + Member findMember = em.find(Member.class, member.getId()); + System.out.println("findMember = " + findMember); + + em.clear(); + Member findMember2 = em.find(Member.class, member.getId()); + System.out.println("findMember = " + findMember2); + + tx.commit(); + } catch (Exception e) { + e.printStackTrace(); + tx.rollback(); + } finally { + em.close(); + } + + emf.close(); + } +}