События жизненного цикла объекта JPA против триггера базы данных - PullRequest
0 голосов
/ 29 декабря 2011

Я новичок в JPA.Я пытаюсь понять, как использовать JPA Entity Lifecycle Events в качестве замены для триггеров базы данных.

Это, конечно, более или менее то же самое, за исключением того, что, например, в триггере базы данных «перед обновлением» (Postgresql), у вас всегда есть старые и новые записи, которые содержат значения до и после обновления.

Мне не удалось найти документацию по этому вопросу для JPA.Документация Javadoc не говорит много о PreUpdate аннотации.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 декабря 2011

События жизненного цикла определены в JPA.Это PerPersist, PostPersist, PreRemove, PostRemove, PreUpdate, PostUpdate и PostLoad.Вы аннотируете методы в своем классе сущности с помощью соответствующей аннотации (одна из приведенных выше).Подпись метода

void someMethodName()

Может иметь любой модификатор доступа.Существует ряд ограничений на то, что вы можете делать внутри обратного вызова, таких как вызов методов в менеджере сущностей.

В частности, на PreUpdate: PreUpdate гарантированно будет вызываться в какой-то момент перед обновлением базы данных, но говоритничего, когда.

0 голосов
/ 29 декабря 2011

JPA является только спецификацией, и для изучения жизненного цикла я думаю, что мы должны быть конкретны для

реализации. EJB Entity Beans / Hibernate Entity Beans и т. Д., Которые имеют свои

модели жизненного цикла.

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