背景:

考虑以下模型:

  • 一个 map 可以位于一个或多个Mapsets中。
  • 一个Mapset必须包含一个或多个Maps

  • 我已经像这样建模:
    Map.groovy:
    static belongsTo = [ User, Mapset ]
    static hasMany = [ mapsets : Mapset ]
    
    Mapset.groovy:
    static hasMany = [ maps : Map ]
    

    问题:

    我在Map Controller 中,并且有一个名为set的参数,它指定要从中加载 map 的集合。

    通常,我的地​​图 Controller 会加载 map 并将其显示在分页 View 中,如下所示:
    def maps = Map.createCriteria().list(max: params.max, offset: params.offset, sort: params.sort, order: params.order) { }
    

    但是为了更具选择性,我只想获取属于一个Mapset的 map 。

    问题:

    如何仅使用id = 1加载属于Mapset的 map ?我需要分页参数。

    我想我可以做这样的事情:
    Mapset.get(params.set).maps
    

    但是那又怎样呢?

    最佳答案

    [更新]

    def maps = Map.createCriteria().list(max: params.max, offset: params.offset, sort: params.sort, order: params.order){
       mapsets {
           eq('id', params.set)
       }
    }
    

    09-10 09:37