【发布时间】:2018-09-14 15:25:26
【问题描述】:
我知道,有一种方法可以降低到低级别 - 获取连接并在单个休眠会话中手动执行两个事务。
但问题是 - 如何通过 @Transactional 注释在同一个 Session 中调用第二个嵌套事务(不使用“低级黑客”或手写自定义事务管理)?
一些可能的代码:
@Service
public class DoubleTransaction {
@Autowired
private SessionFactory sf;
@Autowired
private NestedTeHandler nestedHandler;
@Transactional
void invokeTransaction() {
Session cs = sf.getCurrentSession();
Session nestedCs = nestedHandler.invokeNested(sf);
System.out.println(cs == nestedCs);
}}
@Service
public class NestedTeHandler {
@Transactional
Session invokeNested(SessionFactory sf) {
return sf.getCurrentSession();
}}
【问题讨论】:
-
你可以使用事务管理