Tôi muốn hiểu việc sử dụng giao dịch mùa xuân với Hỗ trợ tuyên truyền. Các tài liệu java đề cập rằng nếu phương thức có @Transactional(propagation = Propagation.SUPPORTS)
được gọi từ bên trong một giao dịch, nó hỗ trợ giao dịch nhưng nếu không có giao dịch nào tồn tại, thì phương thức này được thực hiện không giao dịch.Giao dịch mùa xuân với sự hỗ trợ Tuyên truyền
Đây không phải là hành vi của các giao dịch mùa xuân không phân biệt Propagation.SUPPORTS
?
public class ServiceBean {
@Transactional(propagation = Propagation.SUPPORTS)
public void methodWithSupportsTx() {
//perform some database operations
}
}
public class OtherServiceBean {
@Transactional(propagation = Propagation.REQUIRED)
public void methodWithRequiredTx() {
//perform some database operations
serviceBean.methodWithSupportsTx();
}
}
Trong ví dụ mã trên, bất kể methodWithSupportsTx()
có @Transactional(propagation = Propagation.SUPPORTS)
chú thích nó sẽ được thực hiện trong một giao dịch tùy thuộc vào việc methodWithRequiredTx()
có @Transactional
chú thích, phải không?
Vì vậy, nhu cầu/sử dụng có mức độ tuyên truyền SUPPORTS là gì?
Tôi không nghĩ vậy. Một lỗi chỉ được ném khi mức lan truyền KHÔNG BAO GIỜ. PROPAGATION.SUPPORTS cũng không tạo giao dịch mới. –