0
要求是爲每個審計條目添加用戶名列。Hibernate envers添加審計列(用戶名)
經過googling很多,並通過有效的文檔,我想出瞭如何實現它。
實施了修訂聽衆:
@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中添加表格映射。但沒有運氣。
任何人都可以幫助我找出問題嗎?
謝謝,提前。