我想跟踪长时间甚至无休止的交易。
我认为我可以拦截存储库调用,记录某种 ID 和 SQL,并在完成后重新记录 ID。
我实现了EmptyInterceptor
,并添加了
beforeTransactionCompletion(Transaction tx)
和
afterTransactionCompletion(交易tx)
。
如果我使用 intelliJ,在调试时我可以看到事务的 session ID(这样我就知道它何时开始和结束)。
但是,该属性是私有(private)最终属性,没有 GET(并且因为它是最终属性,所以很难使用反射)。
我能做什么?还有其他方法可以获取交易ID吗?
最佳答案
您可以使用反射访问任何属性:https://www.oracle.com/technical-resources/articles/java/javareflection.html
以下是如何访问最终私有(private)变量的示例:
关于java - 追踪长交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59066849/