Du måste använda pessimistisk låsning, vilket kan uppnås genom
setLockMode(String alias, LockMode lockMode)
på frågan och använd LockMode.UPGRADE
.
Men detta kommer säkerligen att döda skalbarhet och prestanda om du gör mycket åtkomst på det här bordet. Du är bättre att antingen använda en sekvens eller en annan strategi är att skapa en tjänst för att tilldela nummer (t.ex. en SSB) som tar 100 nummer åt gången, uppdaterar databasen och delar ut dem. Det sparar dig 198 databasåtkomster.
UPPDATERING:
Du måste också ändra din bordsdesign något. Det är bättre att ha en enda rad med ett känt ID och att lagra numret du ökar i en annan kolumn. Då bör du uppdatera raden istället för att ta bort den gamla raden och lägga till en ny. Annars fungerar inte radlåsningsstrategin.
UPPDATERING 2:
OP fann att följande fungerade:
session.get(class.Class, id, lockOption)