2012-03-29 8 views
7

Voglio sapere se è possibile utilizzare @PrePersist e @PreUpdate con Ebean e Gioca! 2.0. In tal caso, come viene attivata questa funzione. Ho visto che c'era un pull request aggiungendo questa funzione un mese fa, ma non posso farlo funzionare su Play 2.0.È possibile utilizzare @PrePersist e @PreUpdate con eBean e Play! 2.0?

Grazie

+0

Secondo https://github.com/playframework/Play20/pull/113 dovrebbe essere possibile con BeanPersistListener, anche se non so, come configurarlo in Play2. – sealskej

risposta

3

sembra che la strada da percorrere è quello di implementare il BeanPersistController, che offre pre e post-elaborazione delle opzioni.

per configurarlo in gioco, modificare il file application.conf, as such:

ebean.default="models.*,models.adapters.YourPersistController".

4

Non è una risposta diretta, ma è possibile simulare queste caratteristiche sovrascrivendo i metodi di Model classe nel modello, del campione:

public class Post extends Model { 

    // .... 

    @Override 
    public void save() { 
     this.createDate = new Date(); 
     this.modifyDate = new Date(); 
     super.save(); 
    } 

    @Override 
    public void update(Object o) { 
     this.modifyDate = new Date(); 
     super.update(o); 
    } 


} 
1

Sono davvero in ritardo su questo, ma è possibile utilizzare questo: https://gist.github.com/1547244. Sarà necessario registrare questa classe in voi application.conf in questo modo:

ebean.default="models.*, models.sgcore.SGBeanPersistController" 
10

Se il vostro obiettivo è solo l'impostazione campi createdAt o updatedAt, e si sta utilizzando EBean, provare @CreatedTimestamp e @UpdatedTimestamp. Vedi here. Preferirei usare l'approccio di Biesior, ma sembrava fallire su Cascades - i metodi non venivano mai chiamati.

@Column(name="created_at") 
@CreatedTimestamp 
private Date createdAt; 

@Column(name="updated_at") 
@UpdatedTimestamp 
private Date updatedAt; 
Problemi correlati