我想在每次交易开始时调用一个方法(调用Postgres函数)。
我不确定从哪里开始,但是我正在使用JpaTransactionManager。
答案 0 :(得分:1)
最好的方法是使用面向方面的编程(AOP)。 AOP将帮助您编写一次方法并定义切入点。 什么是AOP?您可以阅读What's AOP?
答案 1 :(得分:1)
我的解决方法是:
通过将所有调用委派给JPATransactionManager的隐藏本地实例来创建替换JPATransactionManager的类。 该类还可以提供注册观察者的可能性。 在配置Spring-Container时,请使用此新类而不是JPATransactionManager,所有开始的事务调用都应通过该路由进行路由。
根据Transaction-Object的解决方案,如果要确保捕获所有开始调用,则还可以创建一个由TransactionManager返回的事务对象的委托,并由TransactionManager返回此委托-委托。