我在数据层使用JDBI,它不使用spring。 在项目中,我调用了一个标有@Transaction
的方法,该方法本身用@Transaction
注释。
@Transaction
public void updateEmployee(Employee employee) {
employeeDao.update(employee);
departmentDao.updateDepartment(employee.getDepartment())
}
@Transaction
public void updateDepartment(Department department) {
...
}
我知道 Spring 的@transaction
传播是如何工作的,但在 JDBI 的情况下它是如何工作的? 默认传播级别是什么?如果需要,如何更改它?
如文档 https://jdbi.org/#_transactions 中所建议的,我们可以以编程方式管理事务。但想知道基于注释的配置中的行为。
在 JDBI 中,没有REQUIRED_NEW
的概念。这两个调用将在同一事务中运行,
以下文本来自JDBI邮件组:
目前没有停放事务并自动启动单独的内部事务的概念,当然,使用两个句柄手动执行此操作非常简单。
https://groups.google.com/d/msgid/jdbi/CAHjY6CVkSN%2BJ_KpEG_T1NXf%2B%2BwwOK7GxXz72ofs%2Bf_wONmL_Rw%40mail.gmail.com。