繁体   English   中英

Datastax java 驱动程序 4 上的 GenericDao

[英]GenericDao on Datastax java driver 4

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

您可以在 DAO 上使用@GetEntity注释Row object 转换为您的 POJO。 您还可以将ResultSet转换为 POJO、POJO 的可迭代等 - 取决于 function 的返回值。 以下是文档中的示例:

@Dao
public interface ProductDao {
  @GetEntity
  Product asProduct(Row row);

  @GetEntity
  PagingIterable<Product> asProducts(ResultSet resultSet);

  // ...
}

有关更多详细信息,请参阅文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM