"Chọn ... để cập nhật" được hỗ trợ trong Hibernate qua LockMode.UPGRADE mà bạn có thể đặt trong đó, chẳng hạn như NamedQuery .
Tuy nhiên, việc sử dụng ứng dụng / khóa hàng bảng thủ công có một số hạn chế (đặc biệt là khi kết nối cơ sở dữ liệu bị hỏng giữa một nửa giao dịch) và quy trình cập nhật của bạn có thể thực hiện mà không có nó:
- Bắt đầu giao dịch.
- cập nhật tập hợp bảng state ='PENDING', server_id =1 where state ='IN PROGRESS';
- Giao dịch cam kết
- chọn từ bảng trong đó state ='PENDING' và server_id =1;
- [hồ sơ quy trình]
Mỗi máy chủ phải có một số duy nhất để điều này hoạt động, nhưng nó sẽ ít bị lỗi hơn và bạn để DBMS làm những gì nó được cho là tốt:cô lập (xem ACID ).