使用v4 java驱动程序时,是否可以采用以下方法来实现GenericDao?怎么做到的?
public static <T> List<?> retrieve(Class<?> clazz, BoundStatement boundStatement) throws Exception {
List<?> tList = new ArrayList<>();
Result<?> result = null;
MappingManager manager = null;
Session session = CassandraUtil.getSession();
ResultSet resultSet = session.execute(boundStatement);
int totRows = resultSet.getAvailableWithoutFetching();
if (totRows > 0) {
manager = new MappingManager(session);
Mapper<?> m = manager.mapper(clazz);
result = (Result<?>) m.map(resultSet);
tList = result.all();
}
return tList;
}通过在整个应用程序中使用GenericDao,这种方法提供了巨大的生产力。
我正在评估移动到javadriver的V4的变化,但我遇到了困难,因为似乎不可能用java驱动程序V4做同样的事情。
谢谢
IPVP
发布于 2020-05-06 00:26:44
您可以使用@GetEntity annotation on DAO将Row对象转换为您的POJO。你也可以将ResultSet转换成POJO,POJO的迭代式等等--这取决于函数的返回值。以下是文档中的示例:
@Dao
public interface ProductDao {
@GetEntity
Product asProduct(Row row);
@GetEntity
PagingIterable<Product> asProducts(ResultSet resultSet);
// ...
}有关更多详细信息,请参阅文档。
https://stackoverflow.com/questions/61298743
复制相似问题