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.Result
Mapper
Mapper.map
ResultSet
Result
MappingManager manager = new MappingManager(session); Mapperm = 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(); }