Spring AuditorAware设置createBy手动

时间:2017-09-06 10:21:21

标签: spring spring-boot spring-security spring-data spring-annotations

在我的存储库中,我有字段,其中注明了@CreatedBy@CreationTimestamp。我使用 spring-security 进行身份验证。一切正常,DB中的字段都填充了正确的用户名 creationTimestamp 。但有时我需要自己设置创建的列,我需要覆盖@CreatedBy注释。如何实现?

1 个答案:

答案 0 :(得分:0)

用户ID可以通过以下方式手动设置:

@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);
}