2012-11-14 29 views

Trả lời

9

@Phiên bản được sử dụng để triển khai Optimistic locking với Hibernate, do đó, không có hai giao dịch nào ghi đè dữ liệu cùng một lúc với xung đột.
Nếu dữ liệu được đọc bởi hai luồng cùng một lúc và cả hai cố gắng cập nhật cùng hàng với các giá trị khác nhau, Hibernate sử dụng trường @Version để kiểm tra xem hàng đã được cập nhật chưa.
Trước khi cam kết, mỗi giao dịch xác minh rằng không có giao dịch nào khác đã sửa đổi dữ liệu của nó. Nếu được sửa đổi, giao dịch cuối cùng sẽ gặp lỗi Làm việc với lỗi dữ liệu cũ.

@Audited được sử dụng để thực hiện auditing functionality trên đơn vị một phần của Hiberate Envers

+0

Cảm ơn câu trả lời và bạn là đúng .. – Kathir

4

@Version - được sử dụng để triển khai khóa lạc quan, xem 2.2.1.2. Versioning for optimistic locking. Khóa lạc quan là hữu ích khi bạn không mong đợi nhiều lần viết đồng thời và không muốn trả giá khóa cơ sở dữ liệu.

@Autidted - xuất phát từ Envers API và có thể được sử dụng để tự động theo dõi thay đổi đối với các thực thể trong bảng kiểm tra riêng biệt. Sử dụng Envers để giữ lịch sử thay đổi của một số thực thể của bạn.

+0

Cảm ơn cho câu trả lời – Kathir

Các vấn đề liên quan