Java Jdbi3:具有多个dao和@transaction注释的事务
我必须执行一个涉及多个dao中的方法的事务,因此我使用如下方法:Java Jdbi3:具有多个dao和@transaction注释的事务,java,jdbi,jdbi3,Java,Jdbi,Jdbi3,我必须执行一个涉及多个dao中的方法的事务,因此我使用如下方法: jdbi.useHandle(handle -> { handle.useTransaction(h -> { Dao1 dao1 = h.attach(Dao1.class); Dao2 dao2 = h.attach(Dao2.class); dao1.method1(); dao2.meth
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将在执行期间打开一个新事务?如果要在另一个事务中重用DAO方法,请不要使用@transaction注释。这使得性能降低,回滚检查点复杂,如果DBMS能够支持,就会导致异常