1

私のサンプル アプリでは、次のスニペットは正常に動作します。

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 ターミナル内で正確なクエリを実行すると、正常に動作します。

4

1 に答える 1

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

のデータ型を再TIMESTAMP_COLUMN確認し、それが文字列であることを確認してください。それ以外の場合は、適切な「set」メソッドを使用する必要があります。元:

statement.setLong(2, 1390996577514L);
于 2014-01-30T17:20:15.927 に答える