Grails创建多值图

时间:2013-03-19 08:02:17

标签: grails groovy grails-2.0

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

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

我想创建一个多值MAP,其客户名称为Key,Venue名称为值

示例:

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

你以前尝试过什么,你在哪里停留?

这是一个简单的方法:

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