maxcount 10 の jsp で検索結果を表示する必要があり、ページネーション機能として前後にトラバースするページネーションが必要です。
Dynamodb には lastevaluatedkey がありますが、lastevaluatedKeyによって次の結果セットに移動することはできますが、前のページに戻ることは役に立ちません。
誰でもこれについて助けてください。
Java SPRING と DynamoDB をスタックとして使用しています。
ありがとうサティア
maxcount 10 の jsp で検索結果を表示する必要があり、ページネーション機能として前後にトラバースするページネーションが必要です。
Dynamodb には lastevaluatedkey がありますが、lastevaluatedKeyによって次の結果セットに移動することはできますが、前のページに戻ることは役に立ちません。
誰でもこれについて助けてください。
Java SPRING と DynamoDB をスタックとして使用しています。
ありがとうサティア
レイの答えに基づいて、これが私がやったことです。 sortId
ソートキーです。
// query a page of items and create prev and next cursor
// cursor idea from this article: https://hackernoon.com/guys-were-doing-pagination-wrong-f6c18a91b232
async function queryCursor( cursor) {
const cursor1 = JSON.parse(JSON.stringify(cursor));
const pageResult = await queryPage( cursor1.params, cursor1.pageItems);
const result = {
Items: pageResult.Items,
Count: pageResult.Count
};
if ( cursor.params.ScanIndexForward) {
if (pageResult.LastEvaluatedKey) {
result.nextCursor = JSON.parse(JSON.stringify(cursor));
result.nextCursor.params.ExclusiveStartKey = pageResult.LastEvaluatedKey;
}
if ( cursor.params.ExclusiveStartKey) {
result.prevCursor = JSON.parse(JSON.stringify(cursor));
result.prevCursor.params.ScanIndexForward = !cursor.params.ScanIndexForward;
result.prevCursor.params.ExclusiveStartKey.sortId = pageResult.Items[0].sortId;
}
} else {
if (pageResult.LastEvaluatedKey) {
result.prevCursor = JSON.parse(JSON.stringify(cursor));
result.prevCursor.params.ExclusiveStartKey = pageResult.LastEvaluatedKey;
}
if ( cursor.params.ExclusiveStartKey) {
result.nextCursor = JSON.parse(JSON.stringify(cursor));
result.nextCursor.params.ScanIndexForward = !cursor.params.ScanIndexForward;
result.nextCursor.params.ExclusiveStartKey.sortId = pageResult.Items[0].sortId;
}
}
return result;
}
セッション変数、クエリ文字列、または後でアクセスできる同様のものに前のキーの記録を保持し、前に戻りたいときにそのキーを使用してクエリを実行する必要があります。Dynamo はそれを追跡しません。