finderとpageを使って、並べ替えされたデータベースのうち最初(最後)の数行をArrayListで得る。
finderは次のようにmodelクラスで定義されてるとする。
public static final Finder<Long,ModelClass> find = new Finder<Long,ModelClass>(Long.class, ModelClass.class);
createDateは次のように定義されているとする。
@CreatedTimestamp public Date createDate;
作成日付の降順に並べ替えて、全てのカラムを取得
find.orderBy("createDate desc").findList();
descは降順の意味。省略した場合は古い順に並べ替える。
新しいカラム100行を、新しい順に取得
find.orderBy("createDate desc").findPagingList(100).getPage(0).getList();
PagingListによって、100行ごとにページ分けをし、そのうち1ページ目(インデックスは0)のリストを取得している。
カラム数が500行以上になったとき、超えた分のカラムを古い順に取得
int cols = ModelClass.find.findRowCount(); List<ModelClass> list = null; if (cols > 500) { int over = cols - 500; list = find.orderBy("createDate").findPagingList(over).getPage(0).getList(); }
findRowCountでカラム数を取得できる。
500を超えた行数分だけの行が入るPageを作り、その1ページ目のリストを取得している。