본문 바로가기

영속성3

[JPA] 영속성 컨텍스트의 이점 - 동일성 보장 동일성 보장 영속성 컨텍스트의 이점 두번째는 영속 엔티티의 동일성을 보장해 준다는 것. 동일성 보장을 공부하기에 앞서 동일성에 대해 알아보자. 동일성 동일성이란 서로 다른 두 객체 인스턴스가 완전히 같은 값을 갖는 경우를 의미한다. 변수가 참조하는 두 객체의 주소값이 같기 때문에 사실상 하나의 객체로 봐도 무방하다. 두 객체가 동일한지는 '==' 연산자를 통해 판별할 수 있다. 동일성 보장 예제 Member member1 = em.find(Member.class, 1L); Member member2 = em.find(Member.class, 1L); System.out.println("member 1 == member2? " + (member1 == member2)); tx.commit(); 결과 Hib.. 2024. 1. 10.
[JPA] 엔티티의 생명주기 - 영속, 비영속, 준영속, 삭제 엔티티생명주기 JPA 엔티티의 생명주기에 대해 알아보자. 엔티티 생명주기에는 영속, 비영속, 준영속, 삭제 총 4가지 상태가 있다. 비영속 (new/transient) 영속성 컨텍스트와 관계 없는 새로운 상태를 말한다. 즉, 영속성 컨텍스트 관리되기 이전의 상태. 영문 표기는 transient 인데 '일시적인' 이라는 뜻이 있다. 데이터베이스 영속성이 부여되기 전인 일시적인 상태를 의미한다. ====================== member.getId() = 1 ====================== Hibernate: /* insert jpashop.jpashop.domain.Member */ insert into Member (city, USERNAME, street, TEAM_ID, zipco.. 2024. 1. 10.
[JPA] JPA와 영속성 컨텍스트(Persistent Context) 영속성(Persistent)이란 ? 영속성이란 어플리케이션이 종료되어도 사라지지 않는 데이터의 특성이다. 영속성을갖이 않는 데이터는 메모리에 존재했다가 어플리케이션이 종료되는 순간 사라진다. 우리는 데이터를 지속적으로 보관하기 위해 데이터베이스에 영구 저장함으로서 영속성을 부여한다. 영속성 컨텍스트(Persistent Conext)란? 영속성 컨텍스트란 데이터를 영구 저장하는 환경(context)으로 해석 할 수 있다. 영속성 컨텍스트는 EntityManager가 생성될 때 함께 생성된다. 어플리케이션과 DB사이에 객체를 보관하는 가상의 공간이라고 생각하면 이해하기 편하다. 단, JPA의 영속성 컨텍스트는 엔티티매니저가 생성한 트랜잭션 내에서만 유효하다. 트랜잭션이 종료되면 영속성 선텍스트에 저장된 데이.. 2023. 12. 29.