SELCT ... FOR UPDATE
heeft alleen zin in de context van een beheerde transactie, omdat de vergrendelingen op de geselecteerde rijen moeten worden verwijderd.
Standaard gebruikt JDBC geen beheerde transactie, maar een impliciet gemaakte transactie die wordt vastgelegd zodra de query wordt uitgevoerd. Dit verbreekt de semantiek van SELECT ... FOR UPDATE
, en de JDBC-driver klaagt.
Om een beheerde transactie te gebruiken, voegt u
. toeconnection.setAutoCommit(false);
voordat u de query uitvoert. Voer daarna connection.commit()
. uit .