我必须执行一个涉及多个 dao 中的方法的事务,所以我使用的是类似的东西:
jdbi.useHandle(handle -> {
handle.useTransaction(h -> {
Dao1 dao1 = h.attach(Dao1.class);
Dao2 dao2 = h.attach(Dao2.class);
dao1.method1();
dao2.method2();
});
});
但是如果例如在Dao1
method1 中用 注释@Transaction
,例如:
public interface Dao1 {
@SqlUpdate
@Transaction
public void method1();
}
上面的句柄部分会在同一个事务中执行这两种方法吗?还是method1会在执行过程中开启一个新事务?