Изменения монитора Java в базе данных - Hibernate и envers - PullRequest
1 голос
/ 11 января 2012

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

Я читал о Hibernateenvers, а также AuditEventListener.Хотя мой вопрос заключается в том, что, поскольку мое приложение будет только получать данные, а не устанавливать их, могут ли слушатели Envers прослушивать изменения в таблицах, которые НЕ были внесены моим приложением?

1 Ответ

1 голос
/ 11 января 2012

Обновлено:

Нет, слушатели - это только ловушки в NHibernate, которые только слушают изменения, сделанные Hibernate-сессиями с установленным Enverslisteners.

Вам нужны триггеры или события базы данных,Я сделал подтверждение концепции с Postgresql, используя триггеры listen и notify, которые, кажется, работают при определенных условиях.Хотя для Postgresql используемая архитектура одинакова для каждой базы данных SQL, которая поддерживает какую-то систему уведомлений.

Для Oracle:

  • создайте обратный вызов для изменений см.здесь
  • записать информацию об изменениях в какую-то таблицу
  • таблицу информации об изменениях в вашем приложении, чтобы увидеть, есть ли изменения, и обработать их
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...