hibenate 실체 생명주기

1: 자유 상태 (Transient)      자유 상태 (Transient) 는 실체 대상 이 메모리 에 자 유 롭 게 존재 하 는 것 을 말 하 는데 그 는 데이터 뱅 크 의 기록 과 무관 하 다.
예:
TUser user = new TUser(); 
user.setName("MyName"); 

 
이곳 의 user 대상 은 매우 일반적인 자바 대상 일 뿐 데이터베이스 의 기록 과 아무런 관계 가 없다.2: 지속 상태 (영구)
     영구 상태 (Persistent), 즉 실체 대상 은 Hibernate 프레임 워 크 의 관리 상태 이 고 실체 대상 은 Hibernate 의 실체 용기 에 포함 되 어 관리 된다.영구적 인 상태 에 있 는 대상 은 Hibernate 에서 데이터베이스 로 고 화 됩 니 다.
예:
TUser user_1 = new TUser(); 
TUser user_2 = new TUser(); 
user_1.setName("Name_1"); 
user_2.setName("Name_2"); 
Transaction tx = session.begintransaction();
session.save(user_1); 

 session 을 통한 save 방법, user1 대상 은 이미 Hibernate 의 실체 관리 용기 에 포함 되 어 지구 화 상태 / / 상태 (Persistent) 에 있 습 니 다. 이때 user1. 대상 의 모든 수정 은 데이터베이스 에 동기 화 됩 니 다.tx.commit(); //그리고 user2. 여전히 자유 상태 (Transient) 에 있 고 Hibernate 프레임 워 크 의 관 리 를 받 지 않 습 니 다.위 에서 보 듯 이 자유 상태 에 있 는 실체 대상 은 하 이 버 네 이 트 의 Session. sava 방법 을 통 해 지구 상태 로 전환 할 수 있다.Session. save 방법 외 에 도 다른 방법 으로 지속 적 인 상태의 대상 을 얻 을 수 있 습 니 다. 그것 은 바로 Hibernate 를 통 해 불 러 온 대상 입 니 다. Session. load 방법 을 통 해 지속 적 인 상태 에 있 는 실체 대상 을 직접 불 러 올 수 있 습 니 다.다음 과 같다: TUser user = Session. load (TUser. class, new Integer (1)); /load 방법 이 돌아 오기 전에 대상 을 Hibernate 의 관리 범위 에 포함 시 켰 기 때문에 이곳 의 user / / 는 이미 지속 적 인 상태 입 니 다.위의 코드 를 통 해 알 수 있 듯 이 지구 상태 에 있 는 실체 대상 은 반드시 Session 과 관련 되 고 이 Session 의 유효기간 내 에 있어 야 한다. 3: 유리 상태 (Detached)
 지구 상태 에 있 는 실체 대상 은 관련 된 Session 이 닫 힌 후에 이 실체 대상 은 유리 상태 에 있 습 니 다. 
TUser user = new TUser(); 
user.setName("name_1"); 
Transaction tx = session.begintransaction(); 
session.save(user); 

/ / 자유 상태의 실체 대상 user 를 지구 상태 로 전환 합 니 다. tx. commt ();
session.close(); //session 이 닫 히 면 영구적 인 상태 에 있 는 실체 대상 user 는 유리 상태 로 전 환 됩 니 다.
/ / 이때 user 는 session 과 관 계 를 끊 었 기 때 문 입 니 다.
 세 가지 상태의 전환 자유 상태 - > 지속 상태: Session. sava 방법 으로 전환 할 수 있 습 니 다.지구 상태 -- > 유리 상태: Session. close 방법 으로 session 을 닫 고 유리 상태의 대상 의 지구 상 태 를 가 져 올 수 있 습 니 다 -- > 자유 상태: Session. delete 방법 으로 실체 대상 에 대응 하 는 데이터베이스 기록 을 삭제 하여 실체 대상 을 자유 상태 로 만 들 수 있 습 니 다.
출처: DIY 부락 http://www.diybl.com/course/3_program/java/javajs/20090204/154816.html

좋은 웹페이지 즐겨찾기