Envers不保存审计 - Nhibernate

时间:2013-01-14 17:01:23

标签: nhibernate nhibernate-envers

我有以下envers配置:

        hibernateCfg.SetEnversProperty(ConfigurationKey.DefaultSchema, "audit");
        hibernateCfg.SetEnversProperty(ConfigurationKey.RevisionFieldName, "Rev");
        hibernateCfg.SetEnversProperty(ConfigurationKey.RevisionTypeFieldName, "RevType");
        hibernateCfg.SetEnversProperty(ConfigurationKey.AuditTableSuffix, "_Audit");

        var cfg = new FluentConfiguration();
        cfg.SetRevisionEntity<RevisionInfo>(x => x.Id, x => x.RevisionTimestamp, new RevisionListener());

        cfg.Audit<User>().Exclude(x=>x.Account).Exclude(x=>x.Agentie).Exclude(x=>x.Location).Exclude(x=>x.Produse).Exclude(x=>x.Roles);
        //cfg.Audit<Account>().ExcludeRelationData(x => x.Users);
        //cfg.Audit<Document>();

        hibernateCfg.IntegrateWithEnvers(new EnhancedAuditEventListener(), cfg);

未创建任何审核表,也不保存任何数据。我自己尝试创建表audit.User_Audit,但没有任何改变。我有nhibernate envers 1.30和nhibernate 3.3.1。

我是否需要其他配置才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

我解决了。问题是我有一些来自User(像BrokerUser:User)的派生类,我使用了鉴别器。我添加后:

cfg.Audit<BrokerUser>()
问题解决了。