问题标签 [nhibernate-envers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
675 浏览

hibernate-envers - hibernate envers:获取当前版本的修改实体

在当前事务中,在提交之前,我想查看当前修订的所有更改。我可以通过以下方式获得当前版本:

modifiedBy 和修订号是正确的。然而,ModifiedEntityNames 为空,尽管在此事务中修改了一些实体。ModifiedEntityNames 是映射到 REVCHANGES 表的 ENTITYNAME 列的属性

下面的代码返回一个空集:

在提交之前不能检索修改过的实体吗?

0 投票
1 回答
92 浏览

jpa - 使用修订表存储业务数据?

我们在项目中使用 Hibernate Envers 来存储我们所有数据库表的完整修订版。

您是否建议使用这些影子表来检索业务数据(例如实体的创建日期时间/修改日期时间/业务“历史”),或者将业务数据集成到业务实体中会更好(以某种方式复制它)当然,因为影子表还存储例如创建日期时间),只是让 envers 发挥它的魔力?

请记住,从 envers 表中访问和检索有时并不是最有效的。

提前致谢!

0 投票
1 回答
928 浏览

c# - 将 NHibernate.Envers 修订信息加入审计实体

在查询实体时,是否有一种简单的方法可以加入实体的最新修订信息?

另一种方法是将属性(使用 Fluent NHibernate)映射到实体,例如entity.LatestRevisionDateTime属性。

这是必需的,因为我们有一些屏幕显示最新的修改日期时间和修改实体的用户。我们还需要至少一个查询来返回自特定日期以来已修改的实体。如果我们不需要加入内存(更少的数据库往返,更少的内存),这将更容易和更好的性能。

我们正在使用:

  • NHibernate 4.0.3.400
  • FluentNHibernate 2.0.1.0
  • 休眠.Envers 2.0.0
0 投票
0 回答
153 浏览

c# - 不是使用 Envers 创建的表,编译时没有错误

我尝试使用以下代码创建表:

但在架构中,我看不到表格。

我尝试使用此处(测试)来实现代码。接下来,我调试和休眠对象:Cfg.NHibernate.Configuration config在我的项目中我无法捕获映射,在测试中,我看到将创建的映射。

我不知道接下来我需要做什么。

0 投票
1 回答
221 浏览

.net - nHibernate Envers 获取已删除修订的历史记录

我使用 Envers 将实体更改存储在数据库中。我将 StoreDataAtDelete 参数配置为 true 并且工作正常。数据库包含历史数据。

但是,当我尝试查询审计数据以获取已删除修订的历史记录状态时,我得到一个空结果。

在数据库中,对于这个版本,审计表中有完整的记录数据。是否有可能获取已删除修订的数据?

0 投票
1 回答
571 浏览

c# - NHibernate Envers:基于属性值的审计实体

我对审计有非常特殊的需求。

考虑以下类(为了简单起见,我更改了类的名称并修剪了不必要的代码)

仅当 Orders 属性不为空时,才应审核 Client 实体。

那有可能吗?如果是这样,我会怎么做?

0 投票
1 回答
348 浏览

c# - 如何查询具有多对多关系的审计表

我有一个与标签类具有多对多关系的入口类。我正在尝试恢复条目的历史副本。

我试过这样查询:

但是,在尝试访问Tags属性 orentryRevision时,出现错误:

NHibernate.LazyInitializationException : Initializing[Unavailable#] - 无法延迟初始化集合,没有会话或会话关闭

当我尝试访问标签时,我已确认会话仍处于打开状态。

我想通过Tag_Entry_AUD直接查询表以获取可能曾经与此条目相关联的所有标签 ID 来解决此问题,但我不知道该怎么做?是否可以使用 HQL 查询来做到这一点?

0 投票
0 回答
853 浏览

hibernate - 列表 java 上的 Hibernate Envers @ElementCollection

我想在一组列表类型上使用@ElementCollection,如下所示:

之后,我看到 Hibernate 生成以下脚本 sql:

如果我使用一组 Set 类型,像这样:

Hibernate 生成以下脚本 sql:

所以,我只看到 Set 类型的集合而不是 List 类型的附加字段“SETORDINAL”。

你能解释一下这个案子吗?我不会将我的所有列表字段都更改为设置。

提前感谢您的回复。

0 投票
1 回答
497 浏览

.net - nhibernate envers:审计已经在生产中的实体

我们有一个已经投入生产的应用程序,它正在使用 Envers 进行审计。

现在我们将发布一个更新,在其中我们审计一种新的实体。然而,这个实体已经存在于生产环境中,只是到目前为止还没有经过审计。

我们在包含现有记录的测试环境中进行了尝试,但它在保存时崩溃,因为 Envers 无法找到正在保存的实体的先前版本。

解决这个问题的方法是什么?

例如,如果可以指定对实体进行审计的日期,那就太好了。

0 投票
1 回答
131 浏览

nhibernate - Envers 与 Nhibernate - SetEnversProperty

我正在尝试设置 NHibernate.Envers 以使用单独的数据库、模式和表后缀。出于某种原因,我设置的配置更改被忽略。

示例代码

有没有人有什么建议?我不确定我是否遗漏了一些东西来提交配置更改。