Debe usar el bloqueo pesimista, que se puede lograr
setLockMode(String alias, LockMode lockMode)
en la consulta y use LockMode.UPGRADE
.
Consulte Consulta.setLockMode
Sin embargo, esto ciertamente matará la escalabilidad y el rendimiento si está accediendo mucho a esta tabla. Es mejor usar una secuencia u otra estrategia es crear un servicio para asignar números (por ejemplo, un SSB) que tome 100 números a la vez, actualice la base de datos y los distribuya. Eso le ahorra 198 accesos a la base de datos.
ACTUALIZAR:
También tendrá que modificar ligeramente el diseño de su mesa. Es mejor tener una sola fila con una identificación conocida y almacenar el número que está incrementando en otra columna. Luego, debe actualizar la fila en lugar de eliminar la fila anterior y agregar una nueva. De lo contrario, la estrategia de bloqueo de filas no funcionará.
ACTUALIZACIÓN2:
OP encontró que lo siguiente funcionó:
session.get(class.Class, id, lockOption)