source

지속성 콘텍스트란?

nicesource 2023. 1. 19. 07:01
반응형

지속성 콘텍스트란?

자바와 JPA는 처음입니다.JPA를 공부하다가 엔티티, 지속성 같은 신조어를 많이 발견했어요.읽는 동안 지속성 컨텍스트의 정확한 정의를 이해할 수 없었습니다.

평신도의 말로 설명할 수 있는 사람이 있나요? 자료에서 가 있습니까?@Entity

예를 들어, 이 정의는 너무 복잡해서 이해할 수 없습니다.

지속성 컨텍스트는 모든 지속적 ID에 대해 고유한 엔티티 인스턴스가 존재하도록 설정된 엔티티 세트입니다.

퍼시스텐스 콘텍스트는 어떤 퍼시스텐스 스토어(예를 들어 데이터베이스)에서 유지되는 데이터를 유지하는 엔티티 세트를 취급한다.특히 컨텍스트는 컨텍스트와 기본 지속성 저장소와 관련하여 기업이 가질 수 있는 (예를 들어 관리, 분리) 다른 상태를 알고 있다.

휴지 상태 관련(JPA 프로바이더)이지만, 다음의 링크는 도움이 된다고 생각합니다.

http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch03.html

http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/architecture.html

Java EE에서는 일반적으로 EntityManager를 통해 지속성 컨텍스트에 액세스합니다.

http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html

기업이 가질 수 있는 다양한 상태와 이들 사이의 추이를 아래에 설명한다.

http://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html/objectstate.html

https://vladmihalcea.com/wp-content/uploads/2014/07/jpaentitystates.png

  1. 엔티티는 javax.persistence에 의해 관리됩니다.지속성 컨텍스트를 사용하는 EntityManager 인스턴스.
  2. EntityManager 인스턴스는 지속성 컨텍스트와 관련지어집니다.
  3. 지속성 컨텍스트 내에서 엔티티 인스턴스와 해당 라이프사이클이 관리됩니다.
  4. 지속성 컨텍스트는 특정 엔티티 인스턴스를 생성, 유지 및 삭제하는 범위정의합니다.
  5. 영속 컨텍스트는 영속 엔티티 세트를 포함하는 캐시와 같습니다.따라서 트랜잭션이 완료되면 모든 영속 객체가 Entity Manager의 영속 컨텍스트에서 분리되어 더 이상 관리되지 않습니다.

이 페이지에서 가져온 내용:

다음은 JPA의 세계에 대한 간단한 치트 시트입니다.

  • 캐시는 데이터 복사본이며, 복사 의미는 데이터베이스 외부에 있습니다.
  • 캐시 플러시는 수정된 데이터를 데이터베이스에 다시 저장하는 작업입니다.
  • Persistence Context는 기본적으로 캐시입니다.또한 자체 비공유 데이터베이스 연결을 갖는 경향이 있습니다.
  • Entity Manager는 Persistence Context(따라서 캐시)를 나타냅니다.
  • EntityManagerFactory는 EntityManager(따라서 PersistenceContext/Cache)를 만듭니다.

영속적인 컨텍스트는 데이터를 보유하고 데이터베이스와 같은 영속적인 스토리지에서 유지되도록 검증된 엔티티를 나타냅니다.일단은commit이러한 엔티티가 연결된 세션에서 트랜잭션(휴면 상태)은 영구 컨텍스트를 플러시하고 변경(삽입/저장, 업데이트 또는 삭제)은 영구 스토리지에 유지됩니다.

org.hibernate.Session 및 API »javax.persistence.EntityManagerAPI는 영구 데이터를 처리하기 위한 컨텍스트를 나타냅니다.

이 개념은 지속성 컨텍스트라고 불립니다.영속 데이터는 영속 컨텍스트와 기본 데이터베이스 모두에 관련된 상태를 가집니다.

지속성 컨텍스트는 엔티티 인스턴스(데이터를 보유할 수 있으므로 데이터베이스에 유지할 수 있음)가 Entity Manager에 의해 관리되는 환경 또는 캐시입니다.엔티티를 데이터베이스와 동기화합니다.@Entity 주석이 있는 모든 개체는 지속할 수 있습니다.@Entity는 데이터베이스와 통신하기 위한 오브젝트 작성을 지원하는 클래스일 뿐입니다.그리고 사물이 의사소통하는 방법은 방법을 사용하는 것입니다.그리고 이러한 방법을 제공하는 사람이 엔티티 매니저입니다.

"특정 시간에 엔티티 매니저 인스턴스에 의해 관리되는 일련의 지속 가능한(엔티티) 인스턴스"를 지속성 컨텍스트라고 합니다.

JPA @Entity 주석은 지속 가능한 엔티티를 나타냅니다.

여기서 JPA의 정의를 참조해 주세요.

문외한의 용어로 퍼시스텐스 콘텍스트는 엔티티를 관리하는 환경, 즉 "엔티티"를 데이터베이스와 동기화하는 환경이라고 할 수 있습니다.

@pritam kumar는 좋은 개요를 제공하지만 5번째 포인트는 사실이 아닙니다.

지속성 컨텍스트는 트랜잭션 범위(트랜잭션 기간 동안 지속성 컨텍스트 '존속') 또는 확장(트랜잭션 범위)일 수 있습니다.

https://blogs.oracle.com/carolmcdonald/entry/jpa_caching

JPA의 EntityManager와 휴지 상태의 세션은 확장된 지속성 컨텍스트를 제공합니다.

언급URL : https://stackoverflow.com/questions/19930152/what-is-persistence-context

반응형