繁体   English   中英

Jdbi3:具有多个dao和@Transaction注解的事务

[英]Jdbi3: transaction with more than one dao and @Transaction annotation

我必须执行一个涉及多个 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会在执行过程中开启一个新事务?

如果您想在另一个事务中重用 DAO 方法,请不要使用 @Transaction 注释。 这会导致性能下降和回滚检查点复杂,如果 DBMS 可以支持,则会导致异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM