如何将 Cassandra Row 解析为 Java POJO 类型



我正在使用datastax cassandra。我正在尝试将 cassandra 结果解析为 java 类型,并在响应中作为 json 返回。这里每一行的类型都是 VendorToken.class(带有 vendorId、vendorName 字段(如何使用jackson ObjectMapper将一行解析为VendorToken.class类型?

ResultSet results = getToken(vendorId);
for(Row row : results) {
    System.out.println(row);   // Output is: Row[vendorId, testVendorName]
}

或者有没有其他方法可以解析为 json?我想以 json 格式返回给用户。 请帮忙。

只需使用对象映射器即可完成此类操作 - 它不在驱动程序核心中,因此需要向构建文件再添加一个依赖项。 之后,您可以将POJO类直接映射到Cassandra表中/从Cassandra表中映射。

@Table(name = "t4", keyspace = "test")
public class Test4Data {
    @PartitionKey
    int id;
    @ClusteringColumn
    @Column(name = "c")
    int clCol;
    @Column(name = "t")
    String text;
// ... getters/setters, etc.
}
MappingManager manager = new MappingManager(session);
Mapper<Test4Data> mapper = manager.mapper(Test4Data.class);
Test4Data test4Data = mapper.get(0, 1);
// output as JSON, etc.

如果需要处理多个条目,例如仅按分区键查询等,则需要使用访问器,如下所示:

@Accessor
public interface UserAccessor {
    @Query("SELECT * FROM user")
    Result<User> getAll();
}
UserAccessor userAccessor = manager.createAccessor(UserAccessor.class);
Result<User> users = userAccessor.getAll();

然后迭代结果...

附言但是你可以使用SELECT JSON ...(doc,示例(直接从Cassandra获取JSON,尽管你对日期/时间的格式控制较少。

相关内容

  • 没有找到相关文章

最新更新