2012-03-29 36 views
7

Quiero saber si es posible usar @PrePersist y @PreUpdate con Ebean y jugar! 2.0. Si es así, ¿cómo se activa esta característica? He visto que hubo un pull request añadiendo esta función hace un mes, pero no puedo hacer que esto funcione en Play 2.0.¿Es posible utilizar @PrePersist y @PreUpdate con eBean y Play! 2.0?

Gracias

+0

Según https://github.com/playframework/Play20/pull/113 debería ser posible con BeanPersistListener, aunque no sé, cómo configurarlo en Play2. – sealskej

Respuesta

3

parece que el camino a seguir es poner en práctica la BeanPersistController, que ofrece opciones de pre y post-proceso.

configurarlo de Juego, modificar el archivo application.conf, as such:

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

4
No

una respuesta directa, pero se puede simular estas características reemplazando métodos de Model clase en su modelo, la muestra:

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

Estoy muy tarde en esto, pero se puede utilizar este: https://gist.github.com/1547244. Usted tendrá que registrarse en esta clase que application.conf así:

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

Si su objetivo es simplemente estableciendo campos createdAt o updatedAt, y está usando Ebean, tratar @CreatedTimestamp y @UpdatedTimestamp. Ver here. Preferiría usar el enfoque de Biesior, pero parecía fallar en Cascades: nunca se llamaron a los métodos.

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

@Column(name="updated_at") 
@UpdatedTimestamp 
private Date updatedAt; 
Cuestiones relacionadas