我必须执行一个涉及多个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将在执行过程中打开一个新事务?
发布于 2021-01-29 14:58:13
如果您想在另一个事务中重用DAO方法,请不要使用@Transaction注释。这使得回滚的性能和复杂的检查点,如果DBMS可以支持,它会导致异常。
https://stackoverflow.com/questions/61550009
复制相似问题