2016-03-01 42 views
0

我使用spring-data-cassandra-1.2.1.RELEASE来操作Cassandra数据库。事情时,我使用的代码。但最近几天我有一个问题,都顺利获得数据:当将Cassandra列转换为java对象时丢失属性

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; 
} 

有用户信息中的许多特性,但我只获得两个护照和uid属性。 我调试到方法,得到了从数据库获取数据是正确的,所有性能ready.but将它们转换为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

我认为错误的模型是由hibernate或mongo创建的......但是这个项目很复杂,而且很难调试出错类的地方。 – MarsYoung

相关问题