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!
Vous devez vous connecter pour publier un commentaire.
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)
Réponse: Non, vous n'avez pas besoin de définir
AuditingEntityListener
bean. Au lieu de cela, vous devez spécifier@EntityListeners(AuditingEntityListener.class)
sur votre domaine classe.par exemple
2) Est-il autre configuration dans le code ci-dessous que je suis absent de mettre en place automatique d'audit?
Réponse: Autres paramètres de configuration, l'air très bien.
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?
Réponse: je ne pense pas. Essayez avec au-dessus de changement proposé. Il devrait fonctionner.
@EntityListeners(EntityFooValidationListener)
Ai-je besoin pour s'assurer que mon auditeur s'étendAuditingEntityListener
, déclarer à la fois ou tout autre chose?