2009-11-09 4 views
1

Je souhaite utiliser le champ lastUpdated d'un domaine Grails pour implémenter une vue" quels objets ont été modifiés récemment ". Cependant, mon domaine a une association has-many qui, lorsque quelque chose est ajouté, provoquera la mise à jour de la valeur lastUpdated.Gestion de `lastUpdated` dans un domaine grails

.: par exemple

class Author { 
    string name 
    Date lastUpdated 
    static hasMany = [ books : Book ] 
} 

Ajout d'un nouveau livre (author.addToBooks (newBook)) mettra à jour lastUpdated.

Questions:

  1. Pourquoi lastUpdated pas mis à jour quand on retire un livre?
  2. Existe-t-il un moyen d'empêcher que lastUpdated soit modifié lorsqu'un livre est ajouté à la liste? (Disons qu'un nouveau livre ne compte pas comme un changement à l'auteur dans mon modèle de domaine)

Merci!

Répondre

0

Le numéro 1 ressemble à un bogue (s'il est mis à jour lorsque vous ajoutez un livre, il doit être cohérent et le mettre à jour lorsque vous en supprimez un).

Numéro 2 - Au lieu d'utiliser addToBooks, avez-vous essayé new Book (author: a) .save()? Vous devrez peut-être actualiser l'auteur si vous avez besoin de lister ses livres dans la même action mais il doit arrêter une mise à jour sur l'auteur.

0

Pour obtenir un contrôle plus précis des changements de date, vous pouvez ajouter un événement "beforeUpdate" à votre classe de domaine (voir grails.org/GORM+-+Events). Il semble que ce comportement est prévu: http://jira.codehaus.org/browse/GRAILS-1857

Questions connexes