1

私はGrailsに比較的慣れていません。私は次のものを持っています

class House {
    Integer number
    Integer maxResidents

    static belongsTo = [town: Town]
} 

class Town {
    String name

    static hasMany = [houses: House]
}

ハウスが最も多い町を 5 つ取得したいと考えています。基準を作成する可能性を見てきましたが、今は対処できません。誰かがサポートできますか?ありがとうございました!

4

1 に答える 1

1

双方向の関連付けがあるため、次のクエリでこれを行うことができますHouse

def result = House.withCriteria {
  projections {
    groupProperty("town", "town")
    rowCount("numHouses")
  }
  order("numHouses", "desc")
  maxResults(5)
}

これにより、結果のリストが返されます。各結果resには、町がres[0]で、家の数がres[1]です。各結果をアクセスできるマップにしたい場合は、追加する必要がres.townありますres.numHouses

resultTransformer(AliasToEntityMapResultTransformer.INSTANCE)

行の後(ファイルの上部にmaxResultsある適切なものとともに)。import

于 2013-02-20T09:23:02.980 に答える