>Java >java지도 시간 >Hibernate의 1단계 캐시와 스냅샷 영역 이해

Hibernate의 1단계 캐시와 스냅샷 영역 이해

巴扎黑
巴扎黑원래의
2017-06-26 11:25:552287검색

이 스냅샷 영역은 처음에는 이해하기 어렵다고 생각했는데, 온라인에서 많은 블로그를 읽고 나니 이해가 되기 시작했습니다. ADO.NET을 기반으로 한 것으로 이해합니다. ADO.NET에는 SqlCommandBuilder라는 클래스가 있습니다. 제 생각에는 ADO.NET의 Hibernate 스냅샷 영역에 해당하는 것입니다. 메소드가 호출되면 데이터베이스의 정보가 업데이트될 수 있습니다(업데이트 및 삭제 포함). 필수 열거 클래스 중 하나는 행 상태 비트 RowState 클래스입니다. 이 행 상태 비트를 Hibernate(비교 캐시 영역 및 스냅샷 영역)와 비교할 것입니다. 해당하는 대로. 그러나 Hibernate는 캐시 영역을 Refresh할 때 캐시 영역과 스냅샷 영역의 내용을 비교한다.(

차이점을 발견하면 스냅샷 영역을 업데이트하고 업데이트 SQL 문을 저장한다. 새로 고침 동작이 아닌 경우 , 그러나 트랜잭션 작업을 제출하는 것입니다. 그러면 업데이트 문이 저장될 뿐만 아니라 SQL이 업데이트를 실행하기 위해 데이터베이스로 전송됩니다

). 하지만 ADO.NET에서는 비교를 수행하지 않고 기록했습니다. (즉, 행의 RowStae 값 변경) 그리고 마지막으로 SqlCommandBuilder는 이 상태 비트와 기본 키를 기반으로 데이터베이스를 업데이트합니다. 실제로 특정 관점에서 보면 비교도 일종의 기록입니다(행 상태 수정과 유사). 비트), 트랜잭션이 제출될 때까지 데이터베이스에 업데이트됩니다.

한 문장을 추가합니다. 스냅샷은 데이터베이스의 스냅샷(처음에는 데이터베이스의 일부 행에 대한 스냅샷이지만 작업 후에는 더 이상 데이터베이스의 스냅샷이 아니지만 이후에는 트랜잭션이 제출되면 다시 데이터베이스의 스냅샷이 됩니다.)

SqlCommandBuilder에 대한 이 블로그를 읽을 수 있습니다

SQLCommandBuilder class

이 클래스도 있습니다

RowSate 수업

제가 충분히 명확하게 설명하지 못했을 수도 있지만, 이것이 현재 제가 이해하고 있는 것입니다.

위 내용은 Hibernate의 1단계 캐시와 스냅샷 영역 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:hibernate.cfg.xml 준비다음 기사:hibernate.cfg.xml 준비