2014-07-10 4 views
2

J'essaie d'avoir un List de String qui fonctionne en MySql dans une classe de domaine Grails.Liste des chaînes dans une classe de domaine Grails

J'ai essayé ce qui suit:

class Catalogue { 

List books 
String book 
static hasMany = [books: book] 

} 

et

class Catalogue { 

List books 

} 

et

class Catalogue { 

String[] books 

} 

et

class Catalogue { 

ArrayList<String> books = new ArrayList<String>() 

} 

Les trois derniers compilent mais l'entrée n'est pas présente dans MySQL. Il n'y a pas de table ou de colonne pour représenter ces données dans MySQL et j'ai essayé de remplir le tableau avec des données. Toujours rien.

Des idées?

Répondre

8

Vous pouvez y parvenir en utilisant hasMany. En outre, vous devez définir books comme List car sans cela vous obtiendrez un Set simple qui ne permet pas de doublons.

class Catalogue { 
    static hasMany = [books: String] 
    List books 
} 
+0

Bien que ce bloc de code peut répondre à la question, il serait préférable que vous fournissiez une petite explication pourquoi il le fait. – PlasmaHH

+1

Cela aiderait si vous amélioriez cette réponse. Le système l'a automatiquement signalé comme étant de mauvaise qualité. – Brian

+0

s'il vous plaît élaborer sur votre réponse pour expliquer ce que le code fait et comment il résout le problème. Cela aidera les autres dans le futur qui verront votre réponse –

0

Créer une classe du livre de domaine:

class Book { 
String title 
String isbn 
... 

String toString(){ 
    return "${title}" 
} 

}

et modifier votre catalogue comme

class Catalogue{ 
    String name 
    .... 
    static hasMany = [books: Book] 
    //etc etc 
} 
+0

'hasMany' statique ne les emplois (voir réponse ci-dessus) – saw303

Questions connexes