Chúng tôi có một hệ thống mà trong đó chúng ta phải sử dụng khóa bi quan trong một thực thể. Chúng tôi đang sử dụng ngủ đông, vì vậy chúng tôi sử dụng LockMode.UPGRADE. Tuy nhiên, nó không khóa."CHỌN ... CHO CẬP NHẬT" không hoạt động cho Hibernate và MySQL
- Các bảng là InnoDB
- Chúng tôi đã kiểm tra rằng khóa công trình một cách chính xác trong cơ sở dữ liệu (5.0.32), do đó lỗi này http://bugs.mysql.com/bug.php?id=18184 dường như không có vấn đề.
- Chúng tôi đã kiểm tra nguồn dữ liệu đó bao gồm thông số
autoCommit = false
. - Chúng tôi đã kiểm tra rằng SQL hibernate (phiên bản 3.2) tạo ra bao gồm "FOR UPDATE".
Cảm ơn,
Chúng tôi đã tìm thấy cùng một vấn đề trong các diễn đàn hibernate, https://forum.hibernate.org/viewtopic.php?f=1&t=996902, nhưng không có câu trả lời. –
Làm thế nào để bạn nói rằng nó không khóa? và kể từ khi ngủ đông đã tạo ra các truy vấn thích hợp, vấn đề là trong cơ sở dữ liệu tôi đoán. – Bozho
Bởi vì khóa bi quan được sử dụng để tạo ra một chuỗi trnasactional và các giá trị trùng lặp đang được khái quát. Sử dụng cùng một SQL trong một phiên tương tác có hiệu quả khóa, do đó, nó có vẻ là một số vấn đề trong cách kết nối được thực hiện hoặc phiên quản lý. –