2010-07-08 4 views
0

데이터 접근을 벗어난 객체들을위한 캐싱 레이어를 직접 작성했습니다. 여기 내 추리는 내 데이터 액세스 레이어가 바로 그걸 할 수 있기를 바랍니다. 데이터 액세스. 캐싱에 대해 걱정할 필요가 없으며 데이터베이스에서 데이터를 가져와야 할 때만 해당 레이어로 이동하려고합니다. 아마도 이것은 사물에 대해 생각하는 올바른 방법이 아닙니다. 내가 길을 잃었다면 알려주십시오.NHibernate에있는 객체들과 물건들 캐쉬하기

어쨌든, 지금까지 적어도 한 가지 문제가 있습니다. 하나의 시나리오에서, 나는 하나의 요청으로 NHibernate로부터 객체를로드하고 그것을 캐시에 고정시킨다. 다음 요청에서 캐시에서 해당 객체를 가져 와서 수정하고 NHibernate로 다시 저장하여 저장합니다. 분명히 NHibernate는 "Illegal attempt to associate a collection with two open sessions" 예외가있는이 특정 인스턴스에서 작동합니다.

제가 궁금한 점은이 작업을 수행하기 위해 알아야 할 것이 있습니까? 아니면 그냥 NHibernate에 내장 된 2 수준 캐시를 사용해야합니까?

답변

2

자 NHibernate는 이유로 캐싱을 가지고 .. 사용 :

당신은 당신이 그것을 직접 만들 수 싼 다음 당신에게 더 많은 유연성을 제공 두 번째 레벨 캐시 공급자에 대한 꽤 몇 가지 옵션이 있습니다 찾을 수 있습니다 . 여러 시스템에서 서비스를 실행해야한다고 판단한 경우 완벽한 예제는 memcache와 같습니다.

+0

감사합니다. 예, memchached는 내가 지원하기를 바랬던 것입니다. 이제는 그것에 대해 생각해 보았습니다. DB가 나오지 않거나 NHibernate에서 나오지 않는 데이터를 캐싱 할 시나리오가 없습니다. –

관련 문제