use*_*041 4 java cassandra datastax-java-driver
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
您可以通过实例化对象,然后使用来完成映射ResultSet到a .下面是一个示例,取自java驱动程序的测试,该测试从定期执行的查询中获取并将其映射到a ,然后遍历Result以访问每个映射的Post:com.datastax.driver.mapping.ResultMapperMapper.mapResultSetResult<Post>
MappingManager manager = new MappingManager(session);
Mapper<Post> 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<Post> 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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3476 次 |
| 最近记录: |