NHibernate Envers-如何在单独的数据库上审核修订
本文关键字:数据库 Envers- 单独 NHibernate | 更新日期: 2023-09-27 18:01:06
我使用的是Nhibernate Envers,我希望Envers将审计信息保存在一个单独的数据库中,以保持更干净/更易于维护。
我正在使用这个流畅的配置:
var enversCfg = new NHibernate.Envers.Configuration.Fluent.FluentConfiguration()
enversCfg.Audit(GetDomainEntities())
nhCfg.SetEnversProperty(ConfigurationKey.DefaultCatalog, "nhibernate_testAU")
但是当我尝试创建模式时,我会得到一个Hibernate异常(指定的模式名称"nhibernate_testAU"要么不存在,要么你没有使用它的权限。(
值得一提的是,我的后端是SQLServer2005
除了实际创建数据库之外,我还将模式指定为"dbo"。
c.SetEnversProperty(ConfigurationKey.DefaultSchema, "dbo");
c.SetEnversProperty(ConfigurationKey.DefaultCatalog, "MyCatalog_Audit");
此外,我有自己的RevisionEntity类,因此,我需要将目录和模式添加到我的hbm中。
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyAssembly" namespace="MyNamespace">
<class name="MyRevisionEntity" table="REVINFO" catalog="MyCatalog_Audit" schema="dbo">
<id name="Id" column="MyRevisionEntityId">
<generator class="identity"/>
</id>
<property name="AuditDate"></property>
<property name="UserName"></property>
<!--modifiedEntityNames-->
<set name="ModifiedEntityNames" table="REVCHANGES" catalog="MyCatalog_Audit" schema="dbo">
<key column="REV"/>
<element column="ENTITYNAME" type="string"/>
</set>
</class>
</hibernate-mapping>
HTH-
卡盘
您需要手动创建目录/数据库。AFAIK-NH的SchemaExport不会为您创建数据库/目录(或模式(。