Проблема кэша/удаления NHibernate?

Я использую NHibernate и указал регион кэша в моей конфигурации NHibernate:

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

У меня есть определение объекта (UserDefinedGroup) который установлен использовать этот регион кэша в режиме чтения-записи:

<class name="UserDefinedGroup" table="Message_Groups">
    <cache region="HalfHour" usage="read-write" />
    ...
</class>

У меня также есть запрос HQL, который установлен использовать кэш запроса, поскольку он возвращает большое количество экземпляров UserDefinedGroup:

var results = Session.CreateQuery("from UserDefinedGroup order by Name")
                .SetCacheable(true)
                .SetCacheRegion("HalfHour")
                .List<UserDefinedGroup>();

Однако, когда я пытаюсь удалить экземпляр UserDefinedGroup Я получаю следующую ошибку даже при том, что объект установлен использовать кэш чтения/записи.

ReadOnlyCache: не Может записать в объект только для чтения Cristal. Модель. UserDefinedGroups. UserDefinedGroup

Я полностью упускаю суть или неправильно понимаю NHibernate, кэширующийся здесь? Я ожидал бы, что это для выполнения удаления и кэша заботится о себе соответственно, но ясно этого не происходит.

5
задан Mark Embling 22 March 2010 в 15:57
поделиться

1 ответ

Используется ли эта область кэша другими объектами? Если да, то существуют ли случаи использования кеша только для чтения? В конкретном регионе должен быть только один тип использования.

4
ответ дан 15 December 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: