我正在使用Envers来审核数据库中的更改。
现在我有一个依赖的课程,我想审核。由于我无法编辑源代码,因此我无法在注释中添加简单的@Audited
。
我很惊讶似乎没有办法审核实体而是添加注释。有没有办法手动注册实体进行审核?
对不起,我觉得答案会很明显,但到目前为止我找不到解决办法。
答案 0 :(得分:1)
直接无法实现(见How to put envers annotations into XML Mapping Metadata(orm.xml) file)。您可以将此类(即ClassNotAuditable)的审计类(即ClassA)的关系注释为可审计的:
@Audited
public class ClassA{
private ClassNotAuditable instance;
@Audited
public ClassNotAuditable getInstance(){
return instance;
}
}
但是Envers会忽略它,因为要审核的类没有标记为可审计。没有办法将Class标记为可审计但具有anotations。
但你可以尝试一种解决方法。使用您自己的另一个类扩展您要审核的类,并将其标记为Auditable。重写您自己的类的引用以使用此新类。也许这会成功。
@Auditable
public class NewClassAuditable extends ClassNotAuditable{
...
}
@Audited
public class ClassA{
private NewClassAuditable instance;
@Audited
public NewClassAuditable getInstance(){
return instance;
}
}