kwy*_*ibo 5 java transactions jta
我有一个 getStockQuote() 函数,它将从股票市场获取某个符号的当前股票报价。
我的目标是在 JTA 事务中,第一次调用 getStockQuote() 将获取股票报价,但同一事务中的所有后续调用将重用相同的股票报价(例如:它不会尝试获取新报价)。如果不同的事务开始,或者另一个事务同时运行,我希望另一个事务在第一次调用时获取自己的股票报价。
这是为了尽量确保交易内的一致性——以便交易内的所有计算都基于相同的股票价格。
这类似于如何将 JPA 提供程序配置为仅从数据库中获取数据库行一次,并使用缓存的值来后续访问事务中的同一数据库行。
有谁有关于如何实现这一目标的提示吗?
这需要一些测试,但我认为您可以将引用绑定到 aThreadLocal并让您的 bean 实现SessionSynchronization在提交事务后取消绑定引用ThreadLocal(从而实现一种事务范围的上下文)。