Bom dia pessoal,
Eu consegui colocar o hibernate envers para funcionar em uma aplicação swing, porém estou com dificuldades para fazer com que o meu RevisionListener seja chamado, alguém sabe o que devo fazer?
Detalhe importante: Eu utilizo mapeamentos com HBM para minhas classes bean.
import javax.persistence.Entity;
import javax.persistence.Table;
import org.hibernate.envers.DefaultRevisionEntity;
import org.hibernate.envers.RevisionEntity;
@Entity
@RevisionEntity(AuditListener.class)
@Table(name = "revinfo")
public class AuditEntity extends DefaultRevisionEntity {
private static final long serialVersionUID = 1L;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
[code]public class AuditListener implements RevisionListener {
protected Logger log = Logger.getLogger(this.getClass());
@Override
public void newRevision(Object revisionEntity) {
log.debug("#####################################################################################");
AuditEntity revision = (AuditEntity) revisionEntity;
revision.setUsername("username"); // For testing
}
}[/code]
Hibernate.cfg.xml
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="org.hibernate.envers.store_data_at_delete">true</property>
<property name="org.hibernate.envers.track_entities_changed_in_revision">true</property>
<listener class="org.hibernate.envers.event.RevisionListener" type="post-insert"/>
<listener class="org.hibernate.envers.event.RevisionListener" type="post-update"/>
<listener class="org.hibernate.envers.event.RevisionListener" type="post-delete"/>
<listener class="org.hibernate.envers.event.RevisionListener" type="pre-collection-update"/>
<listener class="org.hibernate.envers.event.RevisionListener" type="pre-collection-remove"/>
<listener class="org.hibernate.envers.event.RevisionListener" type="post-collection-recreate"/>