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