0

クライアントのリストがあり、各クライアントには1つ以上の会場があります。

これらは、VenueがクライアントIDを持つ2つの別個のドメインクラスです。

クライアント名をキー、会場名を値とする複数値の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

以前に何を試しましたか、どこで立ち往生していますか?

これが1つの簡単なアプローチです:

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