Khi bạn gắn đánh dấu một phương thức với @Transactional
trong Spring, thực sự xảy ra điều gì?
Khi bạn gắn đánh dấu một phương thức với @Transactional
trong Spring, thực sự xảy ra điều gì?
Khi một phương thức trong Spring được đánh dấu với annotation @Transactional
, điều này báo hiệu cho Spring Framework rằng phương thức đó nên được thực thi trong một giao dịch cơ sở dữ liệu. Dưới đây là những điều cụ thể xảy ra:
Spring sẽ tự động bắt đầu một giao dịch cơ sở dữ liệu mới ngay trước khi phương thức được gọi và cam kết (commit) giao dịch sau khi phương thức hoàn thành mà không có bất kỳ ngoại lệ nào được ném ra. Nếu có một ngoại lệ không được bắt được ném ra từ phương thức, Spring sẽ tự động rollback giao dịch, đảm bảo rằng không có thay đổi nào được thực hiện trong cơ sở dữ liệu trong quá trình thực thi phương thức.
Spring quản lý cách giao dịch được truyền từ một phương thức sang phương thức khác thông qua thuộc tính propagation
của @Transactional
. Ví dụ, nếu một phương thức được đánh dấu @Transactional
gọi một phương thức khác cũng được đánh dấu @Transactional
, bạn có thể kiểm soát liệu phương thức thứ hai có sử dụng giao dịch hiện tại hay bắt đầu một giao dịch mới.
Annotati...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào