트랜잭션 논리적인 작업 셋에 하나의 쿼리가 있든 두 개 이상의 쿼리가 있든 관계없이 논리적인 작업 셋 자체가 100% 적용되거나, 아무것도 적용되지 않아야 함을 보장해 주는 것 데이터의 정합성을 보장해 줌 MySQL에서의 트랜잭션 InnoDB스토리지엔진은 트랜잭션을 제공함. MEMORY와 MyISAM 스토리지 엔진은 트랜잭션을 제공하지 않음 이로 인해 MyISAM에서는 부분 업데이트(Partial Update)가 발생하고, 이러한 부분 업데이트 현상은 테이블 데이터의 정합성을 맞추는데 상당히 어려운 문제를 만듦 -> 데이터 클렌징 코드를 따로 작성해주어야 함 주의사항 트랜잭션 또한 DBMS의 커넥션과 동일하게 꼭 필요한 최소의 코드에만 적용하는 것이 좋음 일반적으로 데이터베이스 커넥션은 개수가 제한적임 ..
영속성 콘텍스트 "엔티티를 영구 저장하는 환경"이라는 뜻 영속성 콘텍스트는 논리적인 개념이다. 눈에 보이지 않는다. 엔티티 매니저를 통해서 영속성 콘텍스트에 접근한다. 엔티티의 생명주기 비영속(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) 영속성 컨텍스트에 관리 되는 상태 준영속(detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed) 삭제된 상태 //객체를 생성한 상태(비영속) Member member = new Member(); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); //객체를 저장한 상태(영속) em.persist(member); ..