Comment faire pour configurer l'Audit via Java Config au Printemps de Données (et le Ressort des Données de Repos)?

Je suis en train d'utiliser le Printemps des Données, des capacités de vérification (en combinaison avec le Printemps de Démarrage et de Données du Printemps de Repos), mais la vérification des champs ne sont pas définies sur enregistrer. Tous les jets de sauvegarde le résultat dans une contrainte exception d'essayer de sauver un nul "Créé Par."

Selon la printemps de données docs, je devrais être en mesure de placer la vérification appropriée des annotations (@CreatedDate/etc) sur mon Entité, et de faire un AuditorAware<> à la disposition du contexte de l'application. Je sais que mon auditeur conscient de haricot est créé à partir de fixer un point d'arrêt dans le débogueur.

Mes questions sont:

1) Est-il nécessaire pour moi de créer un AuditingEntityListener, ou dois-je m'attendre à être à condition d'avoir @EnableJpaAuditing? (il n'est pas clair dans la doc java config)

2) Est-il autre configuration dans le code ci-dessous que je suis absent de mettre en place automatique d'audit?

3) je suis d'appeler le code de création d'un POSTE de Printemps de Données Reste, il y a les avertissements spéciaux à l'aide de cette fonctionnalités d'audit en combinaison avec les Données du Printemps Reste?

@Entity
public class Tag implements Serializable {

    //... other fields omitted...

    @CreatedDate
    @Temporal(TemporalType.TIMESTAMP)
    private Date created = new Date();

    @CreatedBy
    @Basic(optional = false)
    @Column(name = "CREATED_BY", nullable = false, length = 24)
    private String createdBy = "";

    @LastModifiedDate
    @Basic(optional = false)
    @Column(nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date updated = new Date();

    @LastModifiedBy
    @Basic(optional = false)
    @Column(name = "UPDATED_BY", nullable = false, length = 24)
    private String updatedBy = "";

    //... getters and setters were generated ...

Et de la configuration:

@EnableJpaAuditing
@Configuration
public class AuditingConfig {

    @Bean
    public AuditorAware<String> createAuditorProvider() {
        return new SecurityAuditor();
    }

    @Bean
    public AuditingEntityListener createAuditingListener() {
        return new AuditingEntityListener();
    }

    public static class SecurityAuditor implements AuditorAware<String> {
        @Override
        public String getCurrentAuditor() {
            Authentication auth = SecurityContextHolder.getContext().getAuthentication();
            String username = auth.getName();
            return username;
        }
    }

}

Toute aide est très appréciée, merci!

InformationsquelleAutor Jay | 2015-04-26