2010-03-22 5 views
5

나는 나의 NHibernate에 구성에 지정된 캐시 영역 자 NHibernate를 사용하고 있습니다 오전 :NHibernate 캐시/삭제 문제가 있습니까?

<class name="UserDefinedGroup" table="Message_Groups"> 
    <cache region="HalfHour" usage="read-write" /> 
    ... 
</class> 
: 나는 엔티티 정의가

<cache region="HalfHour" expiration="1800" priority="3" /> 

를 읽기 - 쓰기 모드에서이 캐시 영역을 사용하도록 설정되어 있습니다 (UserDefinedGroup)

var results = Session.CreateQuery("from UserDefinedGroup order by Name") 
       .SetCacheable(true) 
       .SetCacheRegion("HalfHour") 
       .List<UserDefinedGroup>(); 
: 그것은 UserDefinedGroup 인스턴스의 큰 숫자를 반환으로

은 또한 쿼리 캐시를 사용하도록 설정하는 HQL 쿼리가3210

그러나 인스턴스를 시도하고 UserDefinedGroup 삭제하면 엔터티 읽기/쓰기 캐시를 사용하도록 설정되어 있지만 다음과 같은 오류가 나타납니다.

ReadOnlyCache하십시오 읽기 전용 개체 Cristal.Model.UserDefinedGroups.UserDefinedGroup

내가 완전히 포인트 누락 또는 여기 NHibernate에 캐싱을 오해 오전 쓸 수 없습니다? 나는 이것이 삭제를 수행하고 캐시가 적절하게 처리 될 것으로 기대하지만 이것은 분명히 일어나지 않습니다.

+1

다른 캐시에서이 캐시 영역을 사용합니까? 그렇다면 캐시의 용도는 읽기 전용입니까? 특정 지역에는 하나의 사용 유형 만 있어야합니다. – ddango

+0

감사합니다 ddango, 그게 정확한 문제로 보입니다. 새로운 캐시 영역으로 이동하면 해결됩니다. 의견으로 답변을 게시 한 경우 해결책으로 귀하의 답변을 수락 할 것이다 :) –

답변

4

다른 캐시가이 캐시 영역을 사용합니까? 그렇다면 캐시의 용도는 읽기 전용입니까? 특정 지역에는 하나의 사용 유형 만 있어야합니다.

관련 문제