将Cassandra列转换为java对象时丢失属性

时间:2016-03-01 04:00:13

标签: spring-data-cassandra

我使用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;
}

行数据是正确的,但结果是错误的,谁可以提供帮助?

1 个答案:

答案 0 :(得分:0)

很可能是你的实体类和它对应的关系模型不匹配。