SimpleDB で全件のデータ取得を行う

こちらのユーティリティを使います。

SimpleDB でのデータ取得はデータ容量制限、データ件数制限があるため一度に大きいデータは取得できません。 カーソルの仕組みが用意されているので再帰的に取得します。

  public static ResultList fetch(AmazonSimpleDB sdb,
      ResultList in, String nextToken) {
    String sql = "select * from user limit 100";

    ResultList select =
      SimpleDB.select(sdb, UserItem.class, sql, nextToken);

    if (in == null) {
      in = select;
    } else {
      in.addAll(select);
    }
    if (select.getNextToken() == null) {
      return in;
    }
    return fetch(sdb, in, select.getNextToken());
  }