NHibernate проблема параллелизма / кэша - PullRequest
1 голос
/ 17 ноября 2009

У меня есть два приложения, работающие на машине, где NHibernate используется в качестве ORM. Одно приложение управляет объектами (операции CRUD), а другое - объектами (получение, обработка, установка статуса и сохранение).

Сначала я позволил приложению обработки обработать объект и установить статус обработанного. Затем я вручную изменяю текстовое свойство в базе данных и сбрасываю статус (чтобы он снова обрабатывался). Ручное редактирование БД предназначено для имитации управляющего приложения. Тогда я начинаю видеть проблемы:

  1. У объекта чтения все еще есть старое текстовое свойство, событие, хотя я изменил его в БД. Я думаю, что здесь кеширование в NHibernate.

  2. Когда я устанавливаю статус объекта как обработанный, он использует все свойства в предложении where при обновлении, что означает, что он не обновляется в базе данных. Это потому, что у него неправильный текст в свойстве. Я думаю, это также связано с кэшированием.

Следствием того, что статус не обновляется, является то, что один и тот же объект (с неправильным текстом) обрабатывается снова и снова ...

Кто-нибудь, кто может помочь мне с тем, как мне настроить NHibernate, чтобы эта проблема исчезла?

1 Ответ

0 голосов
/ 17 ноября 2009

Лучше вызвать refresh метод на объекте, который вы хотите, потому что очистка может иметь нежелательные побочные эффекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...