У меня есть имя пользователя и пароль в качестве столбцов ColumnFamily с ключом userName.
создать семейство столбцов TestUserInfo с компаратором = UTF8Type с column_metadata = [{column_name: username, validation_class:UTF8Type}, {column_name: password, validation_class:UTF8Type}];
Следующий код отлично работает, когда ключ присутствует в файле db. Принимая во внимание, что выдает me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:Key может быть не пустым) , когда ключ отсутствует.
SliceQuery<String, String, String> sliceQuery = HFactory.createSliceQuery(cassandraDBObject.getKeyspace(), StringSerializer.get(), StringSerializer.get(), StringSerializer.get());
sliceQuery.setColumnFamily("TestUserInfo");
sliceQuery.setKey(userName);
sliceQuery.setColumnNames("username", "password");
String userNameFromDB = null;
String passwordFromDB = null;
try {
[Error here -->] QueryResult<ColumnSlice<String, String>> queryResult = sliceQuery.execute();
ColumnSlice<String, String> resultCol = queryResult.get();
System.out.println(resultCol);
userNameFromDB = resultCol.getColumnByName("username").getValue();
passwordFromDB = resultCol.getColumnByName("password").getValue();
} catch (Exception e) {
e.printStackTrace();
}
Можете ли вы сказать мне, где я ошибаюсь? Или это ожидаемое поведение? Если да, то как я могу проверить пустые результаты? Скажем, я проверяю информацию для входа в db. Тогда, если имя пользователя (ключ) не находится в БД, мне нужно получить пустой результат, верно?
Спасибо!