Đảm bảo DAO của bạn được bao bọc trong một giao dịch (ví dụ:bằng cách sử dụng Bộ phận chặn của Spring cho Giao dịch). Sau đó, cùng một kết nối sẽ được sử dụng cho cả hai cuộc gọi.
Thậm chí tốt hơn là có các giao dịch cao hơn một cấp, ở lớp dịch vụ.
Cập nhật: Nếu bạn xem qua JavaDoc của DataSourceUtils.getConnection()
mà bạn đã tham chiếu đến trong bản cập nhật của mình, bạn sẽ thấy rằng nó có được kết nối được liên kết với chuỗi hiện tại:
Theo điều này, nó sẽ hoạt động giống như bạn đã thiết lập nó. Tôi đã sử dụng mẫu này nhiều lần và chưa bao giờ gặp phải bất kỳ vấn đề nào như bạn mô tả ...
Cũng vui lòng xem chuỗi này, ai đó đang giải quyết các vấn đề tương tự ở đó: Các giao dịch khai báo Spring Jdbc được tạo nhưng không thực hiện bất kỳ điều gì