2014-01-30 2 views
1

В моем примере приложения следующий снипп отлично работает.CQL SELECT не работает с приготовлениемStatement

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, он отлично работает.

+0

bigint, спасибо, что указал на это. Разработал мою проблему, используя, statement.setLong (2, 1390996577514L); – udarakr

ответ

1
statement.setString(2, "1390996577514"); 

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

statement.setLong(2, 1390996577514L);