chúng tôi đang sử dụng ngủ đông với khóa lạc quan. Tất cả các thực thể của chúng tôi đều có chú thích @version.chiến lược cập nhật tốt nhất trên hibernate stalestateException
Điều này làm việc tốt, nếu người dùng cố gắng lưu một đối tượng cũ, chúng tôi sẽ nhận được một nhận định rõ ràng. Trong trường hợp của chúng tôi, chúng tôi muốn cung cấp cho người dùng màn hình thông báo để hủy thay đổi hoặc ghi đè các giá trị hiện tại trong cơ sở dữ liệu.
Trường hợp sử dụng phổ biến này cho các trường hợp ngoại lệ cũ. Câu hỏi của tôi liên quan đến trường hợp sử dụng này. Chiến lược tốt nhất là gì nếu người dùng quyết định ghi đè hàng cơ sở dữ liệu hiện tại bằng các thay đổi của mình? Tôi đã đi qua các hướng dẫn tham khảo ngủ đông và các trang web khác nhau nhưng tất cả những gì được đề cập có thực tế là bạn phải bắt stalestateexception mình và sau đó programmaticaly xử lý ghi đè dữ liệu. Tôi tự hỏi nếu hibernate có một số tiện ích để đơn giản hóa chiến lược này, điều đơn giản nhất tôi có thể thực hiện nếu người dùng quyết định ghi đè dữ liệu của mình là truy xuất phiên bản cuối cùng của thực thể từ cơ sở dữ liệu, sau đó sao chép tất cả các trường đã thay đổi sang đối tượng này và sau đó lưu đối tượng đã thay đổi trở lại cơ sở dữ liệu. Nhưng tôi không thể ngừng tự hỏi nếu không có một giải pháp thanh lịch hơn.
Trong một số trường hợp, chúng tôi thực sự tạo một 'hợp nhất ui'. Nhưng có một số trường hợp sử dụng trong đó dữ liệu không quan trọng đủ để chỉ được ghi đè, tôi đã tự hỏi nếu có một số phương pháp mặc định cho điều này hoặc nếu bạn chỉ cần có để viết các thuật toán chính mình. –
Không phải là tôi biết tôi sợ. –
Đó là một câu hỏi hay. Tôi đã dành khá nhiều thời gian suy nghĩ về cách tốt nhất để giải quyết tình huống này! –