У меня есть имя пользователя и пароль в качестве столбцов семейства ColumnFeally с именем пользователя.
создать семейство столбцов TestUserInfo с компаратором = UTF8Type с
column_metadata = [{имя_ столбца: имя пользователя, класс_ валидации: UTF8Type},
{column_name: пароль, класс_ валидации: UTF8Type}];
Следующий код отлично работает, когда ключ присутствует в БД. Принимая во внимание, что выдает me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException (почему: ключ не может быть пустым) , если ключ отсутствует.
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();
}
Можете ли вы сказать мне, где я иду не так? Или это ожидаемое поведение? Если так, то как я могу проверить пустые результаты? Скажем, я проверяю информацию для входа в базу данных. Тогда, если userName (Key) не находится в БД, тогда мне нужно получить пустой результат, верно?
Спасибо!