자바 Hibernate 대상(순간 적,지구 적,탈 관 적)상세 설명

Java Hibernate 대상
           최근 자바 하 이 버 네 이 트 를 배 웠 기 때문에 자바 하 이 버 네 이 트 대상 의 몇 가지 상 태 를 자료 정리 하 였 습 니 다.  관심 있 는 친 구 는 보 셔 도 됩 니 다.
순간(transient):데이터베이스 에 데이터 가 대응 하지 않 습 니 다.역할 영역 을 초과 하면 JVM 쓰레기 회수 기 에 의 해 회수 되 며,일반적으로 new 가 나 오고 session 과 관련 이 없 는 대상 입 니 다.
영구(persistent):데이터베이스 에 데이터 가 대응 하고 있 습 니 다.현재 session 과 관련 이 있 으 며 관련 된 session 이 닫 히 지 않 았 습 니 다.사 무 를 제출 하지 않 았 습 니 다.
영구적 인 대상 상태 가 바 뀌 면 트 랜 잭 션 을 제출 할 때 데이터베이스(hibenate 에서 감지 할 수 있 습 니 다)에 영향 을 줄 수 있 습 니 다.
 (대상 save 후 데 이 터 를 영구적 으로 유지 합 니 다.이때 obj.set()를 제출 한 후 트 랜 잭 션 hibenate 에서 데이터 의 수정 이 감지 되 었 습 니 다.
save 라 는 대상 이전에(업무 중 에 있 더 라 도),즉 이 대상 이 오래 지속 되 지 않 기 전에 obj.set()를 사용 하면 hibenate 에서 데이터 수정 을 감지 하지 못 하고 데이터 베이스 에 영향 을 주지 않 습 니 다)
탈 관/유리(detached):데이터베이스 에 데이터 가 대응 하지만 현재 session 과 관련 이 없습니다.탈 관 대상 상태 가 바 뀌 었 습 니 다.hibenate 에 서 는 감지 할 수 없습니다.
hibenate 대상 의 세 가지 상태,변환 그림:


Commit()는 session 을 닫 습 니 다.
면접 도:한 대상 이 어떤 상태 에 있 는 지 판단 한다 면?
주요 근 거 는 1.이 대상 이 session 에 있 는 지,2.데이터 베이스 에 대응 하 는 기록 이 있 는 지 확인 하 는 것 이다.
요약:
순간 상태:session 관리 가 없 으 며 데이터베이스 에 대응 하 는 기록 이 없습니다.
지구 상태:session 관리 가 있 고 데이터베이스 에 기록 되 어 있 습 니 다.
탈 관 상태/유리 상태:session 관리 가 없 지만 데이터베이스 에 기록 되 어 있 습 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기