U moet pessimistische vergrendeling gebruiken, wat kan worden bereikt door
setLockMode(String alias, LockMode lockMode)
op de query en gebruik LockMode.UPGRADE
.
Dit zal echter zeker de schaalbaarheid en prestaties doden als je veel toegang hebt tot deze tafel. U kunt beter een reeks gebruiken of een andere strategie is om een service te creëren om nummers toe te wijzen (bijvoorbeeld een SSB) die 100 nummers tegelijk pakt, de database bijwerkt en deze uitdeelt. Dat bespaart u 198 databasetoegangen.
BIJWERKEN:
U zult ook uw tafelontwerp enigszins moeten wijzigen. Het is beter om een enkele rij met een bekende ID te hebben en het nummer dat u verhoogt in een andere kolom op te slaan. Dan moet u de rij bijwerken in plaats van de oude rij te verwijderen en een nieuwe toe te voegen. Anders werkt de rijvergrendelingsstrategie niet.
UPDATE2:
OP ontdekte dat het volgende werkte:
session.get(class.Class, id, lockOption)