목록2018/12 (2)
코딩하는 오징어
JPA 기본EntityManagerFactory & EntityManagerEntityManagerFactory: EntityManager를 만드는 공장Datasource하나당 하나의 EntityManagerFactory를 만들어 사용EntityManagerFactory를 생성하는 작업은 비용이 크기 때문에 싱글톤으로 만들어 사용Thread-safeEntityManagerFactory emf = Persistence.createEntityManagerFactory("kakaopay"); EntityManager: entity를 생성, 수정, 삭제, 조회하는 등 entity와 관련된 일들을 처리EntityManagerFactory를 이용하여 EntityManager를 생성하는 비용은 거의 들지 않음.Thr..
JPA에서의 Isolation With LockJPA는 데이터베이스 트랜잭션 격리 수준을 READ COMMITTED 정도로 가정한다. 일부 로직에 더 높은 격리 수준이 필요하면 낙관적 락과 비관적 중 하나를 사용하면 된다.Optimistic Lock(낙관적 락)버전정보를 이용하여 업데이트를 처리하는 방법버전정보로 사용할 컬럼에 @Version 애너테이션을 부여해야함optimistic locking is based on detecting changes on entities by checking their version attributeUPDATE {TABLE_NAME} SET {COL_A} = ?, VERSION = ? (버전 + 1 증가) WHERE ID = ? AND VERSION = ? (버전 비교)..