Spring Boot

Giao dịch Spring

Quản lý giao dịch với @Transactional, propagation, isolation, rollback, PlatformTransactionManager

30 câu hỏi phỏng vấn·
Senior
1

Vai trò chính của annotation @Transactional trong Spring là gì?

Câu trả lời

@Transactional cho biết một phương thức nên được thực thi trong ngữ cảnh giao dịch, đảm bảo tính nguyên tử của các thao tác cơ sở dữ liệu. Spring tự động tạo một AOP proxy bao quanh lớp để xử lý việc bắt đầu, commit và rollback giao dịch. Cách tiếp cận khai báo này đơn giản hóa đáng kể việc quản lý giao dịch so với lập trình thủ công bằng TransactionTemplate hoặc PlatformTransactionManager.

2

Loại propagation mặc định cho @Transactional là gì?

Câu trả lời

Propagation.REQUIRED là loại propagation mặc định. Với chiến lược này, Spring sẽ tham gia vào một giao dịch hiện có nếu có, hoặc tạo một giao dịch mới nếu không. Đây là hành vi phổ biến và trực quan nhất cho hầu hết các trường hợp sử dụng, đảm bảo luôn có một giao dịch hiện diện cho các thao tác cơ sở dữ liệu.

3

Điều gì xảy ra nếu một RuntimeException được ném ra trong một phương thức @Transactional?

Câu trả lời

Theo mặc định, Spring tự động rollback giao dịch khi một RuntimeException (hoặc Error) được ném ra. Điều này đảm bảo các thay đổi trên cơ sở dữ liệu được hoàn tác trong trường hợp xảy ra lỗi không mong muốn. Ngược lại, các checked exception (kế thừa từ Exception nhưng không phải RuntimeException) không kích hoạt rollback theo mặc định, trừ khi được chỉ định rõ ràng bằng rollbackFor.

4

Annotation @Transactional có thể được áp dụng ở đâu?

5

Propagation.REQUIRES_NEW có hành vi như thế nào?

+27 câu hỏi phỏng vấn

Các chủ đề phỏng vấn Spring Boot khác

Nắm vững Spring Boot cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí