userName을 사용하여 ColumnFamily의 키로 사용자 이름과 비밀번호를 보유했습니다.Hector의 SliceQuery에서 cassandra DB 용 API가 HInvalidRequestException을 throw 함 : InvalidRequestException (이유 : Key가 비어 있지 않음)
column_metadata = 비교기와 함께 = UTF8Type 열 군을 생성 TestUserInfo [{COLUMN_NAME : 이름, validation_class : UTF8Type}, { COLUMN_NAME : 암호 validation_class : UTF8Type}];
다음 코드는 키가 db에있을 때 올바르게 작동합니다. 반면 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();
}
내가 잘못 가고있는 곳을 말해 줄 수 있습니까? 아니면 이것은 예상 된 행동입니까? 그렇다면 어떻게 빈 결과를 확인할 수 있습니까? DB에서 로그인 정보를 확인하고 있다고 가정 해보십시오. 그렇다면 userName (Key)가 db가 아닌 경우 빈 결과를 가져와야합니까?
감사합니다.