영속성 컨텍스트
EntityManager em = entityManagerFactory.createEntityManager();
//이때 영속성 컨텓스트가 생성됨 (보이지 않는 공간 em)
특징
@Transactional
public void example(){
User user1 = em.find(User.class, 1L); //DB에서 조회 -> 영속성 컨텍스트에 저장
User user2 = em.find(User.class, 1L); //DB 안 가고 영속성 컨텍스트에서 가져옴
System.out.println(user1==user2); // true! 같은 객체
}
장점
단점
동일성 보장
쓰기 지연
@Transactional
public void saveUsers(){
User user1 = new User("홍길동");
User user2 = new User("김길수");
em.oersist(user1); //이것도 아직 DB에 안감! 영속성 컨텍스트에만 저장
em.persist(user2); //이것도 당연히 DB에 안감
//트랜잭션이 커밋될 때 한번에 DB로 전송됨
}
flush()
clear()
트랜잭션