2013-03-19 3 views
0

J'ai une liste de clients et chaque client a un ou plusieurs sites.Grails Créer une carte à valeurs multiples

Ce sont deux classes de domaine distincts où VENUE ID client

Je veux créer une valeur multiple MAP qui aura le nom du client en tant que noms clés et lieu que la valeur

exemple:

def dataMap=["Client1":["Venue1","Venue2","Venue3"],"Client2":["Venue1","Venue2"]] 

classe domaine: client

class Client { 
    String name; 
    static hasMany = [venues: Venue]; 
} 

classe Domaine: Lieu

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

    static belongsTo = [client: Client]; 
} 

Répondre

0

Qu'avez-vous essayé avant et où voulez-vous coincé?

Voici une approche simple:

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

La même chose que Aiolos a écrit, avec la méthode standard Groovy collectEntries():

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