2015-07-13 3 views
0

Как работает метод вызова функции jpa? , они уведомляются только при выполнении отдельных операций jpa, таких как em.merge() и em.create()? или они будут уведомлены, если я использую em.createQuery().executeUpdate()? (также для namedQueries)уведомление методов обратного вызова объекта после массового запроса в jpa

Могу ли я использовать их вместо реальных триггеров базы данных?

+0

Если мой ответ в порядке, вы можете отметить его также как принято. Это покажет, что ваш вопрос больше не нужен. –

ответ

2

Я не нашел прямого оператора, но из приведенной ниже цитаты (JPA 2.1 spec, Chapter 4.10 Bulk Update and Delete Operations), я понимаю, что в BULK-обновлении или удалении слушатели не вызывают, потому что контекст персистентности не будет отображаться измененные объекты:

[В массовом обновлении или наливе удалить] контекст инерционности не синхронизирован с результатом объемного обновления или удаления.

Так что ответ: только в отдельных операциях JPA будут изменены слушатели.

Слушатель не совпадает с триггером базы данных: ограничение слушателей JPA заключается в том, что вы не должны изменять отношения или другие объекты внутри них (хотя некоторые поставщики JPA могут это поддержать).

Смежные вопросы