CQL SELECT завершается ошибкой с prepareStatement

В моем примере приложения следующий фрагмент работает нормально.

SELECT_CQL = "SELECT * FROM " + STREAM_NAME_IN_CASSANDRA + " WHERE '" + CONTEXT_ID_COLUMN + "'=?";
Connection connection = getConnection();
statement = connection.prepareStatement(SELECT_CQL);
statement.setString(1, "123");
resultSet = statement.executeQuery();

Но когда я пытаюсь добавить другой параметр в запрос предложения where, ничего не возвращается!!

SELECT_CQL = "SELECT * FROM " + STREAM_NAME_IN_CASSANDRA + " WHERE '" + CONTEXT_ID_COLUMN + "'=? AND '"+TIMESTAMP_COLUMN+"'=?";
Connection connection = getConnection();
statement = connection.prepareStatement(SELECT_CQL);
statement.setString(1, "123");
statement.setString(2, "1390996577514");
resultSet = statement.executeQuery();

Когда я пытаюсь выполнить точный запрос в терминале cqlsh, он работает нормально.

1 ответ

Решение
statement.setString(2, "1390996577514");

Дважды проверьте тип данных вашего TIMESTAMP_COLUMN и убедитесь, что это строка. В противном случае вам нужно будет использовать соответствующий метод "set". Пример:

statement.setLong(2, 1390996577514L);
Другие вопросы по тегам