Holà, ho un dubbio sull'integrità dei dati quando più utenti operano sulla stessa tabella del database.
JDBC utilizza le transazioni a livello di database, quando il developer vuole eseguire più statement SQL in cascata pone a falso l'autocommit di JDBC e al termine degli statement fà il commit e OK.
Nel caso io abbia due utenti, quindi due sessioni, quando faccio la select del valore corrente della sequenza, una mi restituisce X e l'altro X+1 e va bene.
Nel caso io abbia queste due sessioni X e Y:
X: fà una select sulla tabella
Y: fà una delete di una riga presente nella select di X
Quando X arriva alla riga cancellata, X la vede ancora nella sua sessione ma nella sessione di Y non è presente, che succede ?
X ne leggerà i valori, ma se mai dovesse fare l'update di quella riga ritorna una SQL Exception perchè la vecchia transazione è stata chiusa e ne è stata aperta una nuova con i dati aggiornati ?