Dans mon référentiel, j'ai des champs, qui sont annotés avec @CreatedBy
et @CreationTimestamp
. J'utilise printemps-sécurité pour l'authentification. Tout fonctionne, les champs dans DB sont remplis avec le nom d'utilisateur correct et créationTimestamp. Mais parfois, je dois définir la colonne créée moi-même, j'ai besoin de remplacer l'annotation @CreatedBy
. Comment y parvenir?Spring AuditorAware set createdBy manuellement
0
A
Répondre
0
ID utilisateur peut être réglé manuellement à l'aide ci-dessous façons:
@PrePersist
protected void onCreate() {
//retrieve userid here and set it.
String userUid = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
setCreatedBy(userUid);
}
@PreUpdate
protected void onUpdate() {
//retrieve userid here and set it.
String userUid = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
setUpdatedBy(userUid);
}
Eh bien, le problème est que le userId est différent à chaque fois. @PrePersist ne prend aucun paramètre. Comment transmettre un paramètre? – JamesLinux