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



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

行数据是对的,但结果是错的,谁能帮忙?

很可能您的实体类及其相应的关系模型不匹配。

相关内容

  • 没有找到相关文章

最新更新