def getRowsByPartitionKeyId(
id:I,
pagingStateOption:Option[PagingState]
): (Option[List[M]], Option[PagingState]) = {
val resultSet = session.execute(pagingStateOption match {
case Some(pagingState: PagingState) =>
whereClause.setFetchSize(1).setPagingState(pagingState)
case None =>
whereClause.setFetchSize(1)
})
val it = resultSet.iterator();//resultSet is an iterator
val newPagingState:PagingState = resultSet.getExecutionInfo.getPagingState
if (it.hasNext) {
val resultSetAsList:List[Row] = asScalaIterator(it).toList
val resultSetAsModelList = rowToModel(resultSetAsList.head)
Tuple2(Some(List(resultSetAsModelList)),Some(pagingState))
} else {
Tuple2(None, None)
}
}
Я просто направляю вас на правильный путь, не давая вам код, так как вы делаете домашнюю работу:
Вы можете создать код с функцией, определенной как [ 110].
В следующей строке вы можете сделать код с возвратом списка, поэтому сделайте его в списке при индексации, как [yourlist[0],yourlist[3],yourlist[5]]
.
Таким образом, код может быть решен с помощью одной очень короткой строки в функции. (включая объявление функции это будет 2 короткие строки).