Tôi có một phương pháp như sau:Làm thế nào để sử dụng giao dịch mùa xuân trong multithread
ClassA.java
@Transactional
public void methodA(){
ExecutorService executorService = Executors.newFixedThreadPool(4);
executorService.execute(new Runnable() {
public void run() {
classB.methodB();
}
});
}
ClassB.java
@Transactional
public void methodB(){
updateDB();
}
các methodB có thể làm việc tốt? Theo hiểu biết của tôi, methodB sẽ đính kèm giao dịch của methodA, nếu methodA thoát trước methodB thì sao? Tôi đoán phương pháp duy nhấtA có thể được giao dịch. Nhưng methodB sẽ không cam kết vì giao dịch đã cam kết trước đó.
Tôi có thể sử dụng @Transactional (propagation = Propagation.REQUIRES_NEW) cho phương thức B không. Điều này có thể cho phép methodB có một giao dịch mới. Nhưng theo tài liệu mùa xuân, việc chuyển giao phương thứcA sẽ tạm dừng khi nó gọi methodB. Tôi cảm thấy rất bối rối ở đây.
Có ai có thể giúp tôi về vấn đề này không? Cảm ơn trước.
chính xác bạn muốn nó làm gì? –