Nếu tôi sử dụng @Transactional trong DAO của tôi, tất cả các truy vấn EntityManager của tôi sẽ được đóng gói với cam kết và đóng? Hay tôi cần sử dụng mẫu Spring (mẫu JPA, mẫu Hibernate)? Sự khác nhau giữa việc sử dụng mẫu @Transactional và Spring là gì?Sự khác nhau giữa việc sử dụng mẫu @Transactional và Spring là gì?
Trả lời
Sự khác biệt là sử dụng ranh giới chú thích dựa trên giao dịch (@Transactional
) và TransactionTemplate
là sử dụng TransactionTemplate
cặp vợ chồng bạn cơ sở hạ tầng giao dịch Spring và có nghĩa là bạn sẽ lập trình xử lý thiết lập trạng thái giao dịch nếu giao dịch nên được cuộn lại. Bạn có thể sử dụng phân tích giao dịch dựa trên chú thích với hỗ trợ giao tác Spring hoặc với các giao dịch AspectJ bên ngoài một thùng chứa Spring.
Các lớp mẫu Spring chỉ ở đó để cung cấp API đẹp hơn để thực hiện các hoạt động liên tục - chúng không xử lý các giao dịch. Nếu bạn muốn có các hoạt động giao dịch, bạn cần sử dụng phương pháp chú thích @Transactional hoặc sử dụng TransactionTemplate.
do u có nghĩa là usin @transactional sẽ đóng gói các phương thức dao của tôi với cam kết, đóng hoặc khi sử dụng mẫu giao dịch mùa xuân (jpatemplate, hibernatetemplate)?
Khi bạn sử dụng @transactional với cấu hình Spring thích hợp, Spring sẽ nhận ra rằng phương thức cần một giao dịch và sẽ xử lý việc tạo giao dịch, cam kết và đóng cho bạn.
Giống như skaffman đã nói, @transactional không liên kết trực tiếp với các lớp mẫu. Chúng có thể được sử dụng cho bất kỳ lớp nào có thể cần giao dịch.
- 1. Sự khác nhau giữa Spring BeanFactoryAware và ApplicationContextAware là gì?
- 2. Sự khác nhau giữa ngữ cảnh ứng dụng Spring và vùng chứa Spring là gì?
- 3. Sự khác nhau giữa việc sử dụng tệp extern và #including header là gì?
- 4. Sự khác nhau giữa việc sử dụng onclick của jQuery và thuộc tính onclick là gì?
- 5. Sự khác nhau giữa việc truyền và sử dụng "như" trong C# là gì?
- 6. Sự khác nhau giữa việc sử dụng MD5.Create và MD5CryptoServiceProvider là gì?
- 7. Sự khác nhau giữa việc sử dụng chuyển hướng Django và HttpResponseRedirect là gì?
- 8. Sự khác nhau giữa việc sử dụng int [] [] và int [,] là gì?
- 9. Sự khác nhau giữa Model, ModelMap và ModelAndView là gì?
- 10. Sự khác nhau giữa phương pháp BeanPostProcessor và init/destroy trong Spring là gì?
- 11. Sự khác nhau giữa hai mẫu mã này là gì?
- 12. Sự khác nhau giữa BSTR và _bstr_t là gì?
- 13. Sự khác nhau giữa Phing và PHPUnderControl là gì?
- 14. Sự khác nhau giữa angularjs và dust.js là gì?
- 15. Sự khác nhau giữa "nonce" và "GUID" là gì?
- 16. Sự khác nhau giữa "mutex" và "lock" là gì?
- 17. Sự khác nhau giữa isSaleable() và isAvailable() là gì?
- 18. Sự khác nhau giữa từ điển và mảng là gì?
- 19. Sự khác nhau giữa NSImage và UIImage là gì?
- 20. Sự khác nhau giữa BaseAdapter và ArrayAdapter là gì?
- 21. Sự khác nhau giữa TFS, SVN và GIT là gì?
- 22. Sự khác nhau giữa System.Drawing.Point và System.Windows.Point là gì?
- 23. Sự khác nhau giữa Application.Run() và Form.ShowDialog() là gì?
- 24. Sự khác nhau giữa osql, isql và sqlcmd là gì?
- 25. Sự khác nhau giữa CreateObject và Wscript.CreateObject là gì?
- 26. Sự khác nhau giữa BufRead và BufEnter là gì?
- 27. Sự khác nhau giữa pls_integer và binary_integer là gì?
- 28. Sự khác nhau giữa Request.Url.Query và Request.QueryString là gì?
- 29. Trong Scala, sự khác nhau giữa việc sử dụng `_` và sử dụng một định danh được đặt tên là gì?
- 30. Sự khác nhau giữa static_cast và reinterpret_cast là gì?