使用astyanax将cassandra查询结果转换为pojo

kxeu7u2r  于 2021-06-15  发布在  Cassandra
关注(0)|答案(3)|浏览(424)

我正在使用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两个星期。
非常感谢你的帮助。

5rgfhyps

5rgfhyps1#

你可以试试阿基里斯:https://github.com/doanduyhai/achilles,一个符合jpa的cassandra实体管理器
现在有一个完整的实现,通过hector使用thrift api。
正在使用datastax java驱动程序实现cql3。测试版将在几个月后推出(2013年7月至8月)
cql3很好,但它的级别仍然太低,因为您需要自己从resultset中提取数据。这就像回到只有jdbc模板可用的时代。
阿喀琉斯在那里填补空白。

dkqlctbz

dkqlctbz2#

我建议您使用一些像playorm这样的库,使用这些库可以轻松地对您的实体执行crud操作。请参阅下面的示例,了解如何创建用户对象,然后通过

User user1 = mgr.find(User.class, email);

假设email是您的nosqlid(cassandra中的主键或行键)。

gcxthw6b

gcxthw6b3#

我使用com.netflix.astyanax.mapping.mapping和com.netflix.astyanax.mapping.mappingcache就是为了这个目的。

相关问题