У меня проблема с запросом for update
.У меня есть два метода:
Первый выбирает строки и возвращает карту, содержащую первичный ключ и значение.
public Map<String,String> method1() throws SQLException {
String sql = "select * from table where col1='someValue' for update";
// ... do something and construct map, so map contains {colName, value}
return map;
}
Второй метод берет карту из первого метода, затем обновляетстрока, основанная на значении карты.
public boolean method2(String pk){
String sql = "update tableName set value = 1234 where primaryKey = pk";
// ... execute query and return boolean of if row affected
return booleanValue;
}
В третьем методе будут выполняться методы 1 и 2.
public void method3(){
// execute method1, get value from map
method1();
// some other operations need to be done here...
// pass value to method2 and execute
method(value);
}
Я провел некоторое исследование и обнаружил несколько сообщенийскажем, использование for update
не должно открывать транзакцию слишком долго.
У меня вопрос: стоит ли брать select..for update
и актуальное обновление отдельно?