Ho una classe dominio padre che ha un hasMany
di un'altra classe di dominio. Le classi di dominio padre e figlio hanno entrambi i campi lastUpdated
e dateCreated
. Il mio problema è che quando aggiorno una classe di dominio figlio, ho bisogno che la classe del dominio genitore rifletta quella modifica e aggiorni anche il suo campo lastUpdated
.Aggiornamento del campo "lastUpdated" nella classe Dominio padre in Grails
Esiste qualche mappatura o altra configurazione tra padre e figlio che Grails fornisce che implementerebbe questa funzione?
Aggiornamento
ho aggiunto le seguenti righe alla classe dominio figlio:
def beforeUpdate = {
parent.lastUpdated = new Date()
}
ho dovuto anche per assicurarsi nel controller che quando ho aggiornato un bambino, ho avuto anche per risparmiare il genitore pure per mantenere il nuovo campo lastUpdated
. Questo sembra funzionare bene, ma mi piacerebbe comunque sapere se c'è una mappatura o qualcosa di simile che farebbe questo.
"Nel controllore dovevo anche assicurarmi che, quando aggiornavo un bambino, dovevo salvare anche il genitore" <--- Penso che non sia necessario ... provare a rimuovere il save() su il genitore e guarda se funziona anche senza di esso –
Con Grails 2.2.0, la tecnica di beforeUpdate funziona. Il salvataggio del genitore non è necessario e non avrai alcun doppio comportamento di salvataggio. Quindi non hai bisogno di alcuna formula, solo l'ascoltatore. – Guillaume