CassandraPageRequest的序列化

CassandraPageRequest的序列化,cassandra,spring-data,spring-data-cassandra,Cassandra,Spring Data,Spring Data Cassandra,我在我的项目中使用SpringDataCassandra,我希望提供类似分页的功能(没有随机访问,没有特定的页面选择-只是前向抓取)。我能够通过本PR中描述的方法实现此效果: 但是,我想序列化Slice.nextPageable()函数返回的可分页对象,以便通过REST接口公开此功能。这可能吗?解决方案是强制将可分页对象强制转换为CassandraPageRequest,然后使用.getPagingState检索所需对象。序列化之后,可以从字符串创建PagingState并添加页面大小以创建P

我在我的项目中使用SpringDataCassandra,我希望提供类似分页的功能(没有随机访问,没有特定的页面选择-只是前向抓取)。我能够通过本PR中描述的方法实现此效果:


但是,我想序列化
Slice.nextPageable()
函数返回的可分页对象,以便通过REST接口公开此功能。这可能吗?

解决方案是强制将可分页对象强制转换为CassandraPageRequest,然后使用.getPagingState检索所需对象。序列化之后,可以从字符串创建PagingState并添加页面大小以创建PageRequest。有点棘手,没有记录,但有效。记得检查下一页是否存在,以及Pageable是否真的是CassandraPageRequest。示例代码如下:

// Serialize pageabele
if (isNull(pageable) || pageable.isUnpaged() || !(pageable instanceof 
    CassandraPageRequest)) {
        return null;
}

final CassandraPageRequest cassandraPageRequest = ((CassandraPageRequest) 
pageable);
if (isNull(cassandraPageRequest.getPagingState())) {
    return null;
}

return cassandraPageRequest.getPagingState().toString();

// Create request from serialized object
CassandraPageRequest.of(PageRequest.of(0, pageSize),
        PagingState.fromString(serializedPagingState));
这里还有一个关于SpringData Jira的问题。

解决方案是强制将可分页对象强制转换为CassandraPageRequest,然后使用.getPagingState检索所需对象。序列化之后,可以从字符串创建PagingState并添加页面大小以创建PageRequest。有点棘手,没有记录,但有效。记得检查下一页是否存在,以及Pageable是否真的是CassandraPageRequest。示例代码如下:

// Serialize pageabele
if (isNull(pageable) || pageable.isUnpaged() || !(pageable instanceof 
    CassandraPageRequest)) {
        return null;
}

final CassandraPageRequest cassandraPageRequest = ((CassandraPageRequest) 
pageable);
if (isNull(cassandraPageRequest.getPagingState())) {
    return null;
}

return cassandraPageRequest.getPagingState().toString();

// Create request from serialized object
CassandraPageRequest.of(PageRequest.of(0, pageSize),
        PagingState.fromString(serializedPagingState));
这里还有一个关于SpringData Jira的问题。

我不熟悉spring,但可以在文档中查找类似“分页状态”的内容。我在python项目中使用分页状态值来公开REST上的分页功能。我在python项目中使用分页状态值来公开REST上的分页功能。