我正在使用Hibernate Envers,我的客户RevisionEntity是:
@Entity
@RevisionEntity(SimpleListener.class)
@Table(name = "data_rev_info")
public class SimpleRevisionEntity {
@Id
@GeneratedValue
@RevisionNumber
@Column(name = "revision_id")
private long id;
@RevisionTimestamp
@Column(name = "revision_timestamp")
private Date timestamp;
/**
* @return the id
*/
public long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(long id) {
this.id = id;
}
/**
* @return the timestamp
*/
public Date getTimestamp() {
return timestamp;
}
/**
* @param timestamp the timestamp to set
*/
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
}
我可以使用auditReader获取特定修订版ID的审核时间
AuditReader auditReader = AuditReaderFactory.get(em);
Date date = auditReader.getRevisionDate(n);
如果我在SimpleRevisionEntity中添加一个additonal字段,名为actor(type是String),如何使用AuditReader获取此addtional字段? 另外,如果我想查询过去五分钟中生成的审核日志,该怎么做?
答案 0 :(得分:1)
要获取actor
字段的值,您需要找到修订实体。这是一个普通的实体,因此您可以使用Hibernate或使用AuditReader.findRevision(revisionEntityClass, revision)
方法通过id查找它。
至于查询过去5分钟内生成的修订,我会对修订实体进行查询,指定timestamp
列必须是>= NOW()-5 minutes
(当然是伪代码:) )。