Asakusa Framework : GroupSortのハマりやすいところ
Asakusa Frameworkシリーズ、お次はGroupSortです。
これまでの記事はこちらです。
- Asakusa Frameworkのススメ - TEPPEI STUDIO
- Asakusa Framework : はじめの一歩 - TEPPEI STUDIO
- Asakusa Framework : DMDLのハマりやすいところ - TEPPEI STUDIO
- Asakusa Framework : MasterJoinのハマりやすいところ - TEPPEI STUDIO
GroupSortも、MasterJoinに並んで頻繁に利用される演算子のひとつだと思います。
Listのアウトプットもできる!
これはねぇ、やられましたよ。
分からんよ、これは、という感じです。
/** * レコードHogeを名前ごとに年齢の若い順に並べ、先頭と末尾だけをそれぞれ結果に流す。 * @param hogeList グループごとのリスト * @param first グループごとの先頭要素 * @param last グループごとの末尾要素 */ @GroupSort public void firstLast( @Key(group = "name", order = "age ASC") List<Hoge> hogeList, Result<Hoge> first, Result<Hoge> last) { first.add(hogeList.get(0)); last.add(hogeList.get(hogeList.size() - 1)); }
公式ドキュメントで上記のような実装例を見せられたら、Resultは単一レコードしか返せないと思いません??
できるんです、これが。
こんな感じです。
@GroupSort public void firstLast( @Key(group = "name") List<Hoge> hogeList, Result<Hoge> result) { result.add(hogeList.get(0); result.add(hogeList.get(1); result.add(hogeList.get(2); }
これで、hogeList一件あたりで、resultは3件返る処理を実装できます。
やー、良かった。でも分かりにくい。