>  기사  >  Java  >  Java에서 Hibernate의 상태는 무엇입니까

Java에서 Hibernate의 상태는 무엇입니까

PHPz
PHPz앞으로
2023-05-03 20:19:051465검색

1. 임시 상태

메모리 공간을 new로 열어 생성한 엔터티 객체이지만, 참조하는 변수가 없으면 JVM(가비지 컬렉터)에 의해 재활용됩니다. ). 임시 상태 개체는 메모리에 격리되어 있으며 데이터베이스 와 연결되어 있지 않으며 정보를 전달하는 전달자일 뿐입니다.

영속 상태 객체가 임시 상태 객체를 참조하면 자동으로 지속 상태 객체가 됩니다. 예를 들어 save, saveorupdate 및 기타 세션 메서드를 호출할 때입니다.

특징:

(1) new를 사용하여 생성된 개체에는 id 속성이 설정되지 않습니다.

(2) 세션에서 호스팅되지 않습니다. 즉, 개체 데이터가 메모리에 저장되지 않습니다. 세션 캐시

(3) 임시 개체 데이터는 데이터베이스의 데이터와 관계가 없습니다.

2. 영구 상태

영구 상태 개체는 데이터베이스의 데이터와 연결되며 항상 세션 상태와 연결됩니다. (세션)과 트랜잭션(Transaction)이 함께 연결되어 있습니다. 영속 상태 객체가 변경되면 데이터베이스 작업이 즉시 수행되지 않습니다. 트랜잭션이 종료될 때만 데이터베이스가 업데이트되어 Hibernate의 영속 객체와 데이터베이스 작업의 동기화가 보장됩니다.

영속 상태 개체가 관리 상태 개체가 되면 Hibernate 지속성 계층의 관리 범위 내에 있지 않게 됩니다.

특징:

(1) get 또는 load 메소드를 사용하여 데이터베이스에서 쿼리된 데이터 객체이거나, 저장 또는 업데이트 메소드를 사용하여 데이터가 지속성 레이어 객체로 변환됩니다.

(2) 객체 데이터 세션이 주최됩니다. 즉, 세션 캐시에 객체 데이터의 복사본이 있고 데이터베이스에 해당 레코드가 있습니다

3. Out of Control 상태

영속 객체의 세션이 닫히면 객체가 변경됩니다. 지속 상태에서 에스크로 상태로. 관리 상태 객체는 여전히 데이터베이스의 데이터와 연관되어 있지만 Hibernate의 Session 범위 내에 있지 않습니다.

분리된 개체를 새 세션에 다시 연결하면 영구 개체로 다시 변경됩니다.

특징:

(1) 주로 영구 상태 객체를 통해 session.evict() 또는 session.clear() 또는 session.close()를 호출하여 얻습니다. ID 값이 설정된 새 객체를 생성할 수도 있습니다

( 2 ) 객체가 세션 캐시에 있지 않고 메모리에 존재합니다. (참고: 객체에는 id 값이 설정되어 있습니다.)

4. 삭제 상태

세션의 삭제 메소드가 호출되면 객체는 다음으로 변경됩니다. 삭제된 상태입니다. 삭제된 상태는 재활용될 때까지만 기다릴 수 있습니다.

위 내용은 Java에서 Hibernate의 상태는 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제