0

我有一份客户列表,每个客户都有一个或多个场地。

这是两个单独的域类,其中 Venue 具有客户端 ID

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

例子 :

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];
}
4

2 回答 2

2

与 aiolos 写的一样,使用标准的 Groovy 方法collectEntries()

def dataMap = Client.findAllWhere(/*yourCondition*/).collectEntries { client ->
    [(client.name): client.venues.name]
}
于 2013-03-19T15:21:08.760 回答
0

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

这是一种简单的方法:

def dataMap = [:]
Client.findAllWhere(/*yourCondition*/).each { client ->
    dataMap[client.name] = client.venues.name
}
于 2013-03-19T08:21:38.237 回答