跟踪修订的属性名称

本文关键字:属性 跟踪 | 更新日期: 2023-09-27 18:34:28

我目前正在尝试在 MVC 应用程序中实现修订历史记录屏幕。我需要能够使用 Envers 检索在每个修订版中更改的字段的名称。所以我在这里遵循指示:http://envers.bitbucket.org/#envers-tracking-modified-entities-revchanges

我正在使用第二个选项,因为我们有一个自定义修订实体。它看起来像这样:

[RevisionEntity(typeof(MyRevisionListener))]
public class RevisionEntity : DefaultTrackingModifiedEntitiesRevisionEntity
{
    public virtual Person User { get; set; }
}

如您所见,我继承自 DefaultTrackingModifiedEntitiesRevisionEntity,以确保该类具有保存修改后的实体名称的属性。

根据文档,这应该创建一个名为RevChanges的表,其中存储此信息参考修订表:

Envers 提供了一种简单的机制来创建 REVCHANGE 表,该 存储已修改的持久对象的实体名称。单条记录 封装修订标识符(REVINFO 表的外键( 和一个字符串值。

我从未看到创建此表。我尝试自己创建这样一个表以及一个相关的类并连接映射,但我不明白 Envers 如何在不以某种方式配置的情况下将数据放入该表中。我只是得到一个异常,说当在新类型上调用 get 方法时,对象与目标类型不同。

我怎样才能让它工作?

跟踪修订的属性名称

如果使用自定义修订实体,则需要像映射普通字体一样映射它。

http://envers.bitbucket.org/#revisionlog