SELCT ... FOR UPDATE
giver kun mening i forbindelse med en administreret transaktion, da det kræver, at låse udtages på de valgte rækker.
Som standard bruger JDBC ikke en administreret transaktion, den bruger en implicit oprettet en, der forpligtes, så snart forespørgslen udføres. Dette vil bryde semantikken i SELECT ... FOR UPDATE
, og JDBC-driveren klager.
Tilføj
for at bruge en administreret transaktionconnection.setAutoCommit(false);
før du udfører forespørgslen. Udfør derefter connection.commit()
.