Играть!Изменения в исторических данных - PullRequest
3 голосов
/ 03 апреля 2012

У меня есть приложение, которое я создаю в Play! Framework с кучей данных, которые я хотел бы отслеживать изменения. В корпоративном решении я бы, вероятно, использовал бы триггеры базы данных, чтобы скопировать изменения в хронологическую таблицу для отслеживания этих изменений. Я не знаком с подобной парадигмой в Play! / JPA, но, возможно, я что-то упускаю. Есть ли достойный способ сделать это, кроме меня, создав копию всех моих сущностей и вручную скопировав данные из старой / неизмененной записи в историческую, а затем сохранив изменения в исходной модели?

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

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

Однако, если вы не настолько озабочены этими проблемами, я бы предложил вам магию EntityListener s, такую ​​как:

  • @ PrePersist
  • @ PreUpdate
  • @ PreRemove
  • @ PostPersist
  • @ PostUpdate
  • @ PostRemove

Здесь вы можете найти примеры использования EntityListener

0 голосов
/ 04 апреля 2012

Если вы используете EclipseLink JPA, вы можете включить поддержку истории.

См, http://wiki.eclipse.org/EclipseLink/Examples/JPA/History

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