Whats sự khác biệt giữa tuôn ra và cam kết trong Hibernate?Whats sự khác biệt giữa tuôn ra và cam kết trong Hibernate?
Trả lời
Quá trình đồng bộ hóa trạng thái kết nối JDBC với trạng thái của các đối tượng được giữ trong bộ nhớ được gọi là tuôn ra.
này xảy ra ở những điểm sau đây tùy thuộc vào các thiết lập FlushMode:
- trước một số hành truy vấn khi FlushMode.AUTO (Đây là mặc định).
- từ org.hibernate.Transaction.commit() khi FlushMode.COMMIT
- từ Session.Flush()
Sự khác biệt chính là khi FlushMode được thiết lập để COMMIT, cam kết() flushes phiên và cũng kết thúc đơn vị công việc và bạn không thể khôi phục lại giao dịch khi mà flush() chỉ là một đồng bộ hóa bình thường của phiên làm việc.
More info
Flushing là quá trình đồng bộ hóa các cửa hàng khăng khăng tiềm ẩn với nhà nước persistable giữ trong bộ nhớ.
Tuyên bố trên sẽ gây nhầm lẫn cho một số người có thể nhận được câu hỏi tiếp theo (nghĩa là phát hiện khác biệt sau khi đọc câu nói trên).
Tuôn ra giống như thực sự thực thi câu lệnh nhưng không cam kết. Ví dụ: - bạn mở bất kỳ công cụ thực thi sql nào như oracle SQLdeveloper
, mở một phiên và báo cáo cập nhật lửa. Mở phiên sql mới, bạn sẽ không thấy cập nhật cho đến khi và trừ khi bạn cam kết trong phiên đầu tiên. Vì vậy, truy vấn đã được thực hiện trong phiên oracle cụ thể nhưng không cam kết.
Khi bạn gọi lưu (hoặc cập nhật) hibernate, nó không có nghĩa là truy vấn cơ bản được thực hiện cùng một lúc. Nó thường thực hiện khi cam kết được thực hiện một cách rõ ràng hoặc kết thúc giao dịch. Nhưng có những tình huống (như để có một ID được gán cho đối tượng tạm thời, để kiểm soát kích thước của phiên ngủ đông như trong các cập nhật hàng loạt nếu không bạn có thể thoát khỏi ngoại lệ mem), nơi bạn muốn thực hiện truy vấn nhưng không thực hiện nó. Flush giúp đây
Vì vậy, tuôn ra giống như thực hiện một tuyên bố với tự động cam kết sai? –
Có chính xác bạn đã đúng. –
- 1. Whats sự khác biệt giữa persist() và save() trong Hibernate?
- 2. Sự khác biệt giữa 'cam kết' và 'sửa đổi'
- 3. Whats sự khác biệt giữa Run và Do trong Rx?
- 4. Whats sự khác biệt giữa ContentControl.Template và ContentControl.ContentTemplate
- 5. Whats sự khác biệt giữa Keyboard.Focus (mục) và item.Focus()?
- 6. Whats là sự khác biệt giữa AutoResetEvent và Mutex
- 7. JavaScript: Whats sự khác biệt giữa 'tài liệu' và 'HTML'
- 8. Whats sự khác biệt giữa Exception's. ToString() và .Message?
- 9. Whats sự khác biệt giữa UInt8 và uint8_t
- 10. Whats là sự khác biệt giữa actionbar và tabhost/tabactivity
- 11. Whats sự khác biệt giữa HttpRuntime.Cache và Session?
- 12. Whats sự khác biệt giữa std :: condition_variable và std :: condition_variable_any?
- 13. Whats sự khác biệt giữa kết thúc() và finishActivity (int requestCode) trong android
- 14. Hiển thị sự khác biệt giữa các cam kết
- 15. Sự khác biệt giữa FlushMode.AUTO và FlushMode.ALWAYS trong Hibernate?
- 16. sự giống nhau và khác biệt giữa jpa và hibernate
- 17. git tạo ra cam kết từ sự khác biệt giữa hai chi nhánh
- 18. Hibernate: Sự khác biệt giữa session.get và session.load
- 19. Git, thêm thay đổi để cam kết, sự khác biệt giữa cờ thêm và cờ cam kết
- 20. Whats sự khác biệt giữa làm trong khi và trong khi trong VB.NET?
- 21. Whats sự khác biệt giữa thread_posixs và thread_win32 trong cổng gcc của windows?
- 22. Whats sự khác biệt giữa các đặc tả JPA và JDO?
- 23. Sự khác biệt giữa $ @ và $! trong perl
- 24. sự khác biệt giữa PrintWriter và OutputStream
- 25. Sự khác biệt giữa = và: =
- 26. Whats sự khác biệt giữa parens và ngoặc trong "yêu cầu"?
- 27. Sự khác biệt giữa cam kết đọc và đọc lặp lại
- 28. Sự khác biệt giữa Cam kết và Cập nhật là gì?
- 29. Sự khác biệt giữa cam kết git và thư mục làm việc?
- 30. Sự khác nhau giữa Hibernate và Hibernate JPA
** Bạn đã cố gắng hiểu điều gì? ** –
Tôi không thể tin rằng phiếu bầu của tôi để đóng câu hỏi này bị từ chối. làm thế nào đến đây là một câu hỏi hợp lệ stackOverflow? – kommradHomer