Musíte použít pesimistické zamykání, kterého lze dosáhnout pomocí
setLockMode(String alias, LockMode lockMode)
na dotaz a použijte LockMode.UPGRADE
.
To však jistě zabije škálovatelnost a výkon, pokud na této tabulce děláte hodně přístupu. Je lepší použít sekvenci nebo jinou strategií je vytvořit službu pro přidělování čísel (např. SSB), která zachytí 100 čísel najednou, aktualizuje databázi a rozdá je. To vám ušetří 198 přístupů k databázi.
AKTUALIZACE:
Budete také muset mírně upravit design stolu. Je lepší mít jeden řádek se známým ID a číslo, které zvyšujete, uložit do jiného sloupce. Pak byste měli aktualizovat řádek spíše než odstraňovat starý řádek a přidávat nový. V opačném případě nebude strategie zamykání řádků fungovat.
AKTUALIZACE 2:
OP zjistil, že následující funguje:
session.get(class.Class, id, lockOption)