Les objets liés d'une relation m: n peuvent être sélectionnés avec un élément de sélection html dans mon application (peut également être une liste de cases à cocher). Si tous les objets associés sont désélectionnés dans le formulaire d'édition, la liste d'objets des objets connexes doit être effacée. Avec le code d'échafaudage, cela ne fonctionne que si au moins un objet associé reste.Grails: supprime tous les objets associés
Exemple:
class Book {
String name
static hasMany = [authors: Author]
belongsTo = Author
}
class Author {
String name
static hasMany = [books: Book]
}
def b1 = new Book(name: "B1").save()
def b2 = new Book(name: "B2").save()
def author = new Author(name: "Stephen").addToBooks(b1).addToBooks(b2).save()
// How to remove all books from the author?
Après la Grails doc j'appeler removeFrom*
(à l'opposé de addTo*
) sur l'objet de domaine pour tous les objets associés. Mais pour ce faire, je devais comprendre, quels objets sont liés. Existe-t-il un moyen plus simple d'effacer la liste des objets associés? L'association bidirectionnelle serait-elle gérée correctement, si la liste des objets liés serait simplement remplacée par une liste vide?