我正在使用cassandra和astyanax客户机开发一个springweb应用程序。我想将从cassandra查询检索到的结果数据转换为pojo,但不知道哪个库或astyanaxapi支持这种转换。
例如,我有 User
具有一些基本性质的柱族(cf)( username, password, email
)其他相关的附加信息可以添加到此cf中。然后我使用operationresult>从该cf中获取一个用户行,以保存返回的数据,如下所示:
OperationResult<ColumnList<String>> columns = getKeyspace().prepareQuery(getColumnFamily()).getRow(rowKey).execute();
接下来我要做的是将“列”填充到 User
对象。在这里,我有两个问题,你能帮我解决这个问题吗
1/保存从用户cf检索到的相应数据的用户类的最佳结构是什么?我的建议是:
public class User {
String userName, password, email; // Basic properties
Map<String, Object> additionalInfo;
}
2/如何使用泛型方法将cassandra数据转换为这个pojo(以便它可以应用于Map了pojo的每个cf)?
我很抱歉,如果我的问题中有一些愚蠢的东西,因为我刚刚接触了nosql概念和cassandra以及astyanax两个星期。
非常感谢你的帮助。
3条答案
按热度按时间5rgfhyps1#
你可以试试阿基里斯:https://github.com/doanduyhai/achilles,一个符合jpa的cassandra实体管理器
现在有一个完整的实现,通过hector使用thrift api。
正在使用datastax java驱动程序实现cql3。测试版将在几个月后推出(2013年7月至8月)
cql3很好,但它的级别仍然太低,因为您需要自己从resultset中提取数据。这就像回到只有jdbc模板可用的时代。
阿喀琉斯在那里填补空白。
dkqlctbz2#
我建议您使用一些像playorm这样的库,使用这些库可以轻松地对您的实体执行crud操作。请参阅下面的示例,了解如何创建用户对象,然后通过
假设email是您的nosqlid(cassandra中的主键或行键)。
gcxthw6b3#
我使用com.netflix.astyanax.mapping.mapping和com.netflix.astyanax.mapping.mappingcache就是为了这个目的。