そこで気がついたのが、これ。カテゴリデータを保存しているエンティティを、親カテゴリを主キーに、日本語名を副キーに指定して並び替えるクエリ。
Query query = new Query("Category").addSort("japanese").addSort("parent");みたいに、日本語名で並び替えてから、親カテゴリで並び替えればいいと思っていたのが大間違い。
Query query = new Query("Category").addSort("parent").addSort("japanese");という風に
SELECT * FROM Category ORDER BY parent, japaneseと SQL で書くのと同じ順で並べなきゃいけないみたい。
…。って API のリファレンスにも書いてあるじゃないですか。
addSort を初めて呼び出すと、並び替えの主キーとなるプロパティが登録されます。addSort を再び呼び出すと、並び替えの副キーなどが設定されます。ううむ。ちゃんと読んどかないと…。