如何在Hibernate rev Entity中注入当前用户

时间:2012-08-01 02:30:19

标签: spring hibernate spring-data hibernate-envers

我在我的项目中使用了Spring 3.1,JPA 2和Spring Data JPA(Hibenrate 4.1),并使用Hibernate Envers(Hibernate 4附带)来审计一些属性,我想将当前登录的用户存储在相关的rev中表,如何实现?感谢。

1 个答案:

答案 0 :(得分:3)

您需要创建自定义Envers列表器,如下所示

public class CustomEnversListener implements RevisionListener {
@Override
    public void newRevision(Object revisionEntity) {
       CustomRevisionEntity customRevisionEntity = (customRevisionEntity)revisionEntity;
       Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
       customRevisionEntity.setUsername(authentication.getName());
    }
}

有关详细信息,请查看hibernate wiki