Автоматически вызывать метод в каждой транзакции JPA - PullRequest
0 голосов
/ 24 октября 2018

Я хочу вызывать метод (который вызывает функцию Postgres) при каждом запуске транзакции.

Я не уверен, с чего начать, но я использую JpaTransactionManager.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Мой подход к этому будет следующим:

Создание класса, который заменяет JPATransactionManager, делегируя все вызовы скрытому локальному экземпляру JPATransactionManager.Этот класс дополнительно может предоставить возможность регистрации наблюдателей.При настройке вашего Spring-Container используйте этот новый класс вместо JPATransactionManager, все начальные Transaction-Calls должны проходить через него.

В зависимости от решения Transaction-Object, если вы хотите быть уверенным, что вы перехватываете все начальные вызовы, вы можете также создать делегат для объекта-транзакции, возвращаемого TransactionManager, и вернуть этот делегат.вашим TransactionManager-Delegate.

0 голосов
/ 24 октября 2018

Наилучшим подходом является использование Аспектно-ориентированного программирования (AOP).АОП поможет вам написать свой метод один раз и определить pointcut.Что такое АОП?Вы можете прочитать Что такое АОП?

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