Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jdbi3:具有多个dao和@transaction注释的事务_Java_Jdbi_Jdbi3 - Fatal编程技术网

Java Jdbi3:具有多个dao和@transaction注释的事务

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

我必须执行一个涉及多个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能够支持,就会导致异常