Я пытаюсь написать метод DAO для обновления значения в таблице postgres "accounts" всего с двумя столбцами: "id" string "balance" int
public Account setAccountBalance(String id, Integer balance) {
Handle h = dbi.open();
try{
return h.createQuery("UPDATE accounts SET balance=" + balance.intValue() +
" WHERE id=\'" + id +"\';")
.mapTo(Account.class)
.first();
} finally {
h.close();
}
}
Но при выполнении я вижу следующее исключение: org.skife.jdbi.v2.exceptions.NoResultsException: Query не имеет набора результатов, возможно, вы имели в виду обновление? [утверждение: «ОБНОВЛЕНИЕ баланса счетов SET = 20, ГДЕ id = '1';», расположенное: «ОБНОВЛЕНИЕ баланса счетов SET = 20, ГДЕ id = '1';», переписано: «ОБНОВЛЕНИЕ баланса счетов SET = 20, ГДЕ id = ' 1';", аргументы: { позиционный: {}, именованный: {id: '1'}, искатель: []}]
Любая идея, если проблема в синтаксисе запроса или использовании DAO?
createQuery()
) для обновления. - person Mick Mnemonic   schedule 30.12.2017execute()
метод, который, вероятно, работает. По ссылке есть примеры подготовленных операторов (вопросительные знаки в SQL), поэтому вы также можете переключиться на их использование. - person Mick Mnemonic   schedule 30.12.2017