Я не очень хорошо знаком с базами данных и тем, что они предлагают за пределами операций CRUD.
Мои исследования привели меня к триггерам. В принципе, похоже, что триггеры предлагают такую функциональность:
(из Wikipedia)
Обычно три события запуска приводят к срабатыванию триггеров:
- Событие INSERT (когда новая запись вставляется в базу данных).
- Событие UPDATE (при изменении записи).
- Событие DELETE (по мере удаления записи).
Мой вопрос: есть ли способ, которым я могу быть уведомлен на Java (желательно, включая данные, которые были изменены) базой данных, когда запись обновляется/удаляется/вставляется с помощью какой-либо семантики триггеров?
Какие могут быть альтернативные решения этой проблемы? Как я могу прослушивать события базы данных?
Основная причина, по которой я хочу сделать это, - это такой сценарий:
У меня есть 5 клиентских приложений в разных процессах/существующих на разных компьютерах. Все они имеют общую базу данных (Postgres в этом случае).
Предположим, что один клиент меняет запись в БД, в которой заинтересованы все 5 клиентов. Я пытаюсь подумать о способах "уведомлять" об изменениях клиентов (желательно с прикрепленными данными ) вместо них запрашивает данные на некотором интервале.