gpt4 book ai didi

java - Spring - 使用 TransactionManager

转载 作者:行者123 更新时间:2023-11-30 09:49:17 26 4
gpt4 key购买 nike

我有两个事务管理器,很好奇是否有可能获得已使用的那个。

更具体地说,underlyingMethod(..) 如何找出使用了哪个 transactionManager(无需向其发送附加参数“transactionManagerName/Ref”):

@Transactional("transactionManager1")
public void transactionFromFirstTM() {
someClass.underlyingMethod()
}


@Transactional("transactionManager2")
public void transactionFromSecondTM() {
someClass.underlyingMethod()
}

?


好的,我已经使用它从实际的事务管理器中获取 hibernate session :

protected Session getSession() {
Map<Object, Object> resourceMap = TransactionSynchronizationManager.getResourceMap();

Session session = null;
for (Object value : resourceMap.values()) {
if (value instanceof SessionHolder) {
session = ((SessionHolder) value).getSession();
break;
}
}

return session;
}

最佳答案

我不认为你可以,但你不应该对事务管理器做任何事情。 TransactionSynchronizationManager 中提供了对当前事务的一些操作

另一个有用的类是 TransactionAspectUtils .但并不是说两者都只能在内部使用,您不应在代码中的许多地方依赖它们。

关于java - Spring - 使用 TransactionManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5882683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com