[英]Does Jdbi3 guarantee rollback on transaction for every type of Exception?
[英]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.