【发布时间】:2016-01-13 16:09:35
【问题描述】:
要求为每个审计条目添加用户名列。
经过大量谷歌搜索并浏览了 enverse 文档后,我想出了如何实现它。我已经实现了如下:
实现了一个修订监听器:
@Configurable
public class UserRevisionListener implements RevisionListener
{
public void newRevision(Object revisionEntity)
{
UserRevEntity revision = (UserRevEntity) revisionEntity;
String username = "";
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
Object principal = auth.getPrincipal();
if (principal != null && principal instanceof DepotUser)
username = ((DepotUser) principal).getUsername();
revision.setUsername(username);
}
}
创建实体类:
@Entity
@Table(name = "USER_REV_ENTITY")
@RevisionEntity(UserRevisionListener.class)
public class UserRevEntity extends DefaultRevisionEntity
{
private static final long serialVersionUID = 1L;
private String username;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
}
我引用了一个链接,其中包含相同“Thinking in Software”的示例。
默认审核工作正常。
首先,带有新用户名列的审计修订表应该会自动生成(我认为!)。它没有生成。
所以,我尝试通过创建表并在 UserRevEntity 中添加表映射。但没有运气。
谁能帮我确定问题?
谢谢,提前。
【问题讨论】:
标签: java hibernate hibernate-envers