Tenemos un sistema en el que debemos usar el bloqueo pesimista en una entidad. Estamos utilizando hibernate, entonces usamos LockMode.UPGRADE. Sin embargo, no se bloquea."SELECCIONAR ... PARA ACTUALIZAR" no funciona para Hibernate y MySQL
- Las tablas InnoDB son
- Hemos comprobado que las obras de bloqueo correctamente en la base de datos (5.0.32), por lo que este error http://bugs.mysql.com/bug.php?id=18184 parece haber ningún problema.
- Hemos comprobado que la fuente de datos incluye el parámetro
autoCommit = false
. - Hemos comprobado que el SQL hibernate (versión 3.2) genera incluye "PARA ACTUALIZAR".
Gracias,
Hemos encontrado el mismo problema en los foros de hibernación, https://forum.hibernate.org/viewtopic.php?f=1&t=996902, pero no hay respuestas. –
¿Cómo se dice que no se bloquea? y dado que hibernate ha generado la consulta adecuada, el problema está en la base de datos, supongo. – Bozho
Porque el bloqueo pesimista se usa para generar una secuencia trnasactional y se duplican los valores duplicados. El uso del mismo SQL en una sesión interactiva se bloquea efectivamente, por lo que parece haber algún problema en la forma en que se realiza la conexión o en la sesión administrada. –