Grails创建多值映射

Grails创建多值映射,grails,groovy,grails-2.0,Grails,Groovy,Grails 2.0,我有一份客户名单,每个客户都有一个或多个场地 这是两个独立的域类,其中场馆具有客户端id 我想创建一个多值映射,它将客户名称作为键,场地名称作为值 例如: def dataMap=["Client1":["Venue1","Venue2","Venue3"],"Client2":["Venue1","Venue2"]] 域类:客户端 class Client { String name; static hasMany = [venues: Venue]; } 域类:地点 c

我有一份客户名单,每个客户都有一个或多个场地

这是两个独立的域类,其中场馆具有客户端id

我想创建一个多值映射,它将客户名称作为键,场地名称作为值

例如:

def dataMap=["Client1":["Venue1","Venue2","Venue3"],"Client2":["Venue1","Venue2"]]
域类:客户端

 class Client {
    String name;
    static hasMany = [venues: Venue];
}
域类:地点

class Venue {
    String name;
    String addressLine1;
    String addressLine2;
    String City

    static belongsTo = [client: Client];
}

你以前试过什么?你在哪里卡住了

这里有一个简单的方法:

def dataMap = [:]
Client.findAllWhere(/*yourCondition*/).each { client ->
    dataMap[client.name] = client.venues.name
}

与aiolos编写的相同,使用标准Groovy方法
collectEntries()

def dataMap = Client.findAllWhere(/*yourCondition*/).collectEntries { client ->
    [(client.name): client.venues.name]
}