SELCT ... FOR UPDATE
má smysl pouze v kontextu spravované transakce, protože vyžaduje odstranění zámků na vybraných řádcích.
Ve výchozím nastavení JDBC nepoužívá spravovanou transakci, používá implicitně vytvořenou transakci, která se potvrdí, jakmile je dotaz vykonán. Tím narušíte sémantiku SELECT ... FOR UPDATE
a ovladač JDBC si stěžuje.
Chcete-li použít spravovanou transakci, přidejte
connection.setAutoCommit(false);
než provedete dotaz. Poté spusťte connection.commit()
.