JPA, когда база данных модифицируется извне - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть простое веб-приложение с базой данных с двумя таблицами.

Администраторы могут изменить первую таблицу вручную непосредственно из сценария SQL (например, с помощью PHPMyAdmin), и мое веб-приложение должно записать во вторые таблицы некоторые данные после этого редактирования.

Могу ли я это сделать?

1 Ответ

0 голосов
/ 28 февраля 2012

Вы можете использовать аннотацию @PrePersist: http://docs.oracle.com/javaee/5/api/javax/persistence/PrePersist.html

 public final class SampleBusinessProcess {

    @PrePersist
    private void preperist(final MyObject obj) {
      entityManager.store(new Object2());
    }

 }

Это сохранит второй объект в другой таблице, если первый будет изменен.

редактирование: Триггер не может запустить JPA-код. Это не часть JPA.

Триггер в базе данных Oracle может запустить фрагмент кода Java как java-триггер.

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

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