我使用spring-data-cassandra-1.2.1.RELEASE来运行Cassandra数据库。事情一切顺利。但最近几天我遇到了问题,当我使用代码获取数据时:
public UserInfoCassandra selectUserInfo(String passport) {
Select select = QueryBuilder.select().from("userinfo");
select.setConsistencyLevel(ConsistencyLevel.QUORUM);
select.where(QueryBuilder.eq("passport", passport));
UserInfoCassandra userinfo = operations.selectOne(select,
UserInfoCassandra.class);
return userinfo;
}
userinfo中有很多属性,但我只获得了两个护照和uid属性。 我调试了方法,得到了从db获取的数据是正确的,所有属性都准备好了。但是当它们转换为java对象时,有些消失了..转换代码:
protected <T> T selectOne(Select query, CassandraConverterRowCallback<T> readRowCallback) {
ResultSet resultSet = query(query);
Iterator<Row> iterator = resultSet.iterator();
if (iterator.hasNext()) {
Row row = iterator.next();
T result = readRowCallback.doWith(row);
if (iterator.hasNext()) {
throw new DuplicateKeyException("found two or more results in query " + query);
}
return result;
}
return null;
}
行数据是正确的,但结果是错误的,谁可以提供帮助?
答案 0 :(得分:0)
很可能是你的实体类和它对应的关系模型不匹配。