Управление сущностями в кеше NHibernate 1-го уровня
Как правильно управлять постоянными сущностями в кэше 1-го уровня во время жизни потока / сеанса? На самом деле, существует только один или два постоянных экземпляра в каждом потоке (сеансе), которые должны присутствовать всегда, чтобы ссылаться на них из других (временных) объектов перед сохранением.
Так как мне нужно время от времени очищать кэш сеанса (потому что в противном случае он заполняется и мучительно медленно), я не уверен, должен ли я:
- Изгнать всех сущностей из сессии, кроме тех, которые мне нужны?
- Очистить весь сеанс и перезагрузить необходимые объекты?
- Создать новый сеанс и перезагрузить необходимые объекты?
1 ответ
Решение
Я думаю, что вы должны закрыть предыдущую сессию и открыть новую. Если объекты, которые вы хотите кэшировать, тяжело загружаются для каждого сеанса, вы должны использовать кэширование второго уровня.