본문 바로가기

JPA

(3)
[JPA] 3장. 영속성 관리(2): 영속성 컨텍스트 개념, 엔티티 생명주기 해당 포스팅은 위 책을 학습하기 위한 용도로 쓰여진 글입니다. 영속성 컨텍스트(Persistence Context)란?'엔티티를 영구 저장하는 환경' 이라는 뜻이다.엔티티 매니저로 엔티티를 저장하거나 조회하면, 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다.영속성 컨텍스트는 논리적인 개념에 가깝고 눈에 보이지도 않는다. 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저를 통해 영속성 컨텍스트에 접근 및 관리할 수 있다.em.persist(member);persist() 메서드는 엔티티 매니저를 사용하여 회원 엔티티를 영속성 컨텍스트에 저장한다.  엔티티의 생명주기엔티티에는 4가지 상태가 존재한다.비영속(new / transient): 영속성 컨텍스트와 전혀..
[JPA] 3장. 영속성 관리(1): 엔티티 매니저 팩토리, 엔티티 매니저 해당 포스팅은 위 책을 학습하기 위한 용도로 쓰여진 글입니다. 엔티티 매니저 팩토리, 엔티티 매니저란?엔티티 매니저 팩토리는 이름 그대로 엔티티 매니저를 만드는 공장이다.그러나 공장을 만드는 비용이 상당히 크기 때문에, 엔티티 매니저 팩토리는 애플리케이션 전체에서 딱 한 번만 생성하고 공유해서 사용해야 한다(공장에서 엔티티 매니저를 생성하는 비용은 거의 들지 않는다).  EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");공장을 만드는 비용이 큰 이유는 다음과 같다.META-INF/persistence.xml에서 이름이 jpabook인 영속성 유닛(persistence-unit)을 찾아서 엔티티 매니저 팩토리를 생성한다..
[MyBatis/JPA] (이론) MyBatis -> JPA 전환 과정 💡목표MyBatis로 작성된 코드를 JPA로 변환해보자.   📕 과정1. 목적을 정확히 생각하자기본적인 목적은, 퍼시스턴스 레이어(MyBatis,JPA)의 변환이 다른 레이어 코드 변경을 일으키지 않게 하면서(핵심),MyBatis를 JPA로 변환하는 것이다. 단,⭐ 다른 레이어의 코드 변경 없이 수행되어야 한다. ⭐ 기존 시스템의 기능은 모두 유지되면서 수행되어야 한다 MyBatis 자체를 JPA로 바꾸면 안되고, 두 기술스택이 병행되어야 한다(그 후에 MyBatis 제거)사용자가 사용하던 API는 그대로 사용해야 한다.Response 타입이 바뀌면 안 된다.만약 서비스 코드에서 MyBatis 레포지토리를 JPA 레포지토리로 그냥 바꿔버린다면, JPA 레포지토리의 코드가 바뀜에 따라 서비스가 동작하지..