当前位置:  开发笔记 > 编程语言 > 正文

将Cassandra BoundStatement的ResultSet映射/转换/转换为使用Object-mapping API构建的Java classe的最有效方法是什么?

如何解决《将CassandraBoundStatement的ResultSet映射/转换/转换为使用Object-mappingAPI构建的Javaclasse的最有效方法是什么?》经验,为你挑选了1个好方法。

DataStax Java中是否存在用于Apache Cassandra的内置方法,以将来自BoundStatement的ResultSet映射到使用Object-mapping API构建的域对象Java类?

我是一个从Mapper + Accessor方法转向BoundStatement方法的新手,并希望继续使用使用Object-mapping API构建的域对象的Java类,因此我在转移到BoundStatement时对DAO方法的实现进行了微小的更改. .我希望以通用方式执行此操作,并避免迭代每个ResultSet行并为每个域对象逐个执行row.get.

使用Mapper + Accessor方法时,Result.all()可以很好地完成.找不到类似于BoundStatement方法的任何内容.

谢谢

IPVP



1> Andy Tolbert..:

您可以通过实例化对象,然后使用来完成映射ResultSet到a .下面是一个示例,取自java驱动程序的测试,该测试从定期执行的查询中获取并将其映射到a ,然后遍历Result以访问每个映射的Post:com.datastax.driver.mapping.ResultMapperMapper.mapResultSetResult

MappingManager manager = new MappingManager(session);

Mapper m = manager.mapper(Post.class);
...
// Retrieve posts with a projection query that only retrieves some of the fields
ResultSet rs = session.execute("select user_id, post_id, title from posts where user_id = " + u1.getUserId());

Result result = m.map(rs);
for (Post post : result) {
    assertThat(post.getUserId()).isEqualTo(u1.getUserId());
    assertThat(post.getPostId()).isNotNull();
    assertThat(post.getTitle()).isNotNull();

    assertThat(post.getDevice()).isNull();
    assertThat(post.getTags()).isNull();
}

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有