0
동시에 데이터베이스에서 여러 세션이 작동합니다. (정규 DB 세션과 NHibernate 세션)첫 번째 레벨 캐시의 부실 데이터
D.B.에서 엔터티를 처음받을 때. 엔티티는 1 차 캐시 - 신원 맵에 저장됩니다.
첫 번째 쿼리 후 어떻게됩니까? NH 세션 외부에서 엔터티가 변경 되었습니까? 데이터가 오래되었습니다.
session.Get<Cat>(1).Name == "Bar" // true
// different session trigger updated the cat name to "Foo"
session.Get<Cat>(1).Name == "Bar" // true
NHibernate 세션을 세션 외부의 변경 사항과 동기화하는 방법이 있습니까? 쉽게
수정하고 항상 도움이 ... 변화가 전에 일어난 경우에 대해 나는 물체를 무엇 새로 고칩니다. 엔티티가 변경되지 않았 음을 확인하기 위해 모든 라인을 새로 고침하고 싶지 않습니다. 나 한테 뭐가있어? – gdoron
어떤 세션에 커밋이있을 때마다 모든 세션의 모든 항목을 자동으로 새로 고치려고하십니까? 메시징 (즉, 모든 세션 컨테이너에 대한 브로드 캐스트 업데이트 메시지)을 할 수 있지만 대신 낙천적 동시성을 사용합니다. –
NH 세션이 아닌 다른 세션에서 변경된 엔티티 만 업데이트하면됩니다. 모든 세션 ID 맵을 새로 고칠 필요는 없습니다. – gdoron