2

私は2つのドメインモデルを持っています:

class Resource{
   String name

   static mapping = {
                 sort name:"asc"
          }
}

class ResourceGroup{
   String groupName

   static hasMany = [resources: Resource]
}

コントローラ:

def resGroups = ResourceGroup.findAll()
render (
        view: "index",
        model: [resourcegroups: resGroups]
)

だからそして今私のgspで:

<g:each in="${resourcegroups}" var="item" status="i">
   ...
   <g:each in="${item.resources}" var="res" status="y">
       <!-- THESE ITEM.RESOURCES ARE UNSORTED! -->
   </g:each>
   ...
</g:each>

私の質問は、この「item.resources」をどのようにソートできるかということです。これは永続的な休止状態のセットです!これはマッピングソート名:'asc'で処理できると思いましたが、機能しません:-(

4

2 に答える 2

1

item.resources.sort { it.name }のために試してみてください"asc"

または。item.resources.sort { it.name }.reverse()_"desc"

于 2014-07-14T13:26:10.057 に答える
0

1対多または多対多の関係でデフォルトの並べ替えを行うことはできません。ここのドキュメントを参照してください。特に、下部にある次の注記に注意してください。

これらのマッピングは、結合テーブルを含むため、デフォルトの単方向の1対多または多対多の関係では機能しません。詳細については、この問題を参照してください。必要なデータをフェッチするには、SortedSetまたはsortパラメーターを使用したクエリの使用を検討してください。

指定したデフォルトの並べ替えでは、実際にはResourceオブジェクトのリストが並べ替えられます(つまり、このようなリストを取得した場合Resource.getAll()、リストは指定した順序で並べ替えられます)。

ドンがここで提案するように、あなたが望むことをするためにタブライブラリを作成することを検討してください。

于 2011-12-09T07:04:28.660 に答える