2010-01-27 2 views
5

Ho una classe di dominio che ha due date in esso e voglio uno di loro popolato con l'ora corrente quando viene creato un record per l'oggetto, come un timestamp creare ...Come inizializzare un campo Data in un oggetto di dominio Grails per agire come un timestamp?

class Contact { 
    Date initiatedDate 
    Date acceptedDate 
} 

E 'sufficiente solo per un oggetto nuovo Date su uno di essi e rendere l'altra annullabile fino al momento in cui ho bisogno di riempirlo, un po 'come questo ...

class Contact { 

    static constraints = 
    { 
     acceptedDate(nullable:true) 
    } 

    Date initiatedDate = new Date() 
    Date acceptedDate 
} 

sto sperimentando, ma vorrei sapere se questo è il modo giusto per farlo o se c'è qualcosa di più Grailsy o GORMy che dovrei fare, ad esempio, in uno 012 Funzioneo modificando la definizione dell'oggetto dominio per impostarne una predefinita, come ad esempio id e version.

Grazie

risposta

9

quello che hai scritto dovrebbe funzionare, ma è possibile utilizzare la funzione di GORM auto-timestamping con la semplice aggiunta di un campo:

class Contact { 
    Date dateCreated 
} 

Se si desidera mantenere i propri nomi per i campi della same grails docs mostra anche come utilizzare gli eventi GORM per impostare i campi su salvataggio o aggiornamento.

HTH

+0

questo è esattamente il genere di cosa GORMy che stavo cercando, grazie – Simon