Ошибка неверного синтаксиса SQL: "...right syntax to use near ?"
Имеется запрос, заданный в таком виде:
String GET_BANK_ACCOUNTS_QUERY = "SELECT * FROM bank_account WHERE merchant_id = ?";
Соответственно, выполняется запрос так:
public static List<BankAccount> getMerchantBankAccounts(String id, Connection connection) throws NoBankAccountsFoundException {
try {
PreparedStatement preparedStatement = connection.prepareStatement(GET_BANK_ACCOUNTS_QUERY);
preparedStatement.setString(1,id);
ResultSet set = preparedStatement.executeQuery(GET_BANK_ACCOUNTS_QUERY);
List<BankAccount> list = new ArrayList<>();
while (set.next()) {
StatusCondition status = (set.getString("status").equals("ACTIVE"))?
StatusCondition.ACTIVE: StatusCondition.DELETED;
list.add(new BankAccount(set.getString("id"), set.getString("merchant_id"),
status, set.getString("account_number"),
set.getTimestamp("created_at").toLocalDateTime()));
}
return list;
} catch (SQLException e) {
throw new NoBankAccountsFoundException("Таких аккаунтов не найдено, проверьте id мерчанта");
}
}
При выполнении команды executeQuery()
выбрасывается исключение
...right syntax to use near ?
Данные в БД есть и id
совпадает с столбцом, по которому и стоит условие WHERE
. Подскажите, что может быть не так?