问题标签 [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.
hibernate-envers - hibernate envers:获取当前版本的修改实体
在当前事务中,在提交之前,我想查看当前修订的所有更改。我可以通过以下方式获得当前版本:
modifiedBy 和修订号是正确的。然而,ModifiedEntityNames 为空,尽管在此事务中修改了一些实体。ModifiedEntityNames 是映射到 REVCHANGES 表的 ENTITYNAME 列的属性
下面的代码返回一个空集:
在提交之前不能检索修改过的实体吗?
jpa - 使用修订表存储业务数据?
我们在项目中使用 Hibernate Envers 来存储我们所有数据库表的完整修订版。
您是否建议使用这些影子表来检索业务数据(例如实体的创建日期时间/修改日期时间/业务“历史”),或者将业务数据集成到业务实体中会更好(以某种方式复制它)当然,因为影子表还存储例如创建日期时间),只是让 envers 发挥它的魔力?
请记住,从 envers 表中访问和检索有时并不是最有效的。
提前致谢!
c# - 将 NHibernate.Envers 修订信息加入审计实体
在查询实体时,是否有一种简单的方法可以加入实体的最新修订信息?
另一种方法是将属性(使用 Fluent NHibernate)映射到实体,例如entity.LatestRevisionDateTime
属性。
这是必需的,因为我们有一些屏幕显示最新的修改日期时间和修改实体的用户。我们还需要至少一个查询来返回自特定日期以来已修改的实体。如果我们不需要加入内存(更少的数据库往返,更少的内存),这将更容易和更好的性能。
我们正在使用:
- NHibernate 4.0.3.400
- FluentNHibernate 2.0.1.0
- 休眠.Envers 2.0.0
c# - 不是使用 Envers 创建的表,编译时没有错误
我尝试使用以下代码创建表:
但在架构中,我看不到表格。
我尝试使用此处(测试)来实现代码。接下来,我调试和休眠对象:Cfg.NHibernate.Configuration config
在我的项目中我无法捕获映射,在测试中,我看到将创建的映射。
我不知道接下来我需要做什么。
.net - nHibernate Envers 获取已删除修订的历史记录
我使用 Envers 将实体更改存储在数据库中。我将 StoreDataAtDelete 参数配置为 true 并且工作正常。数据库包含历史数据。
但是,当我尝试查询审计数据以获取已删除修订的历史记录状态时,我得到一个空结果。
在数据库中,对于这个版本,审计表中有完整的记录数据。是否有可能获取已删除修订的数据?
c# - NHibernate Envers:基于属性值的审计实体
我对审计有非常特殊的需求。
考虑以下类(为了简单起见,我更改了类的名称并修剪了不必要的代码)
仅当 Orders 属性不为空时,才应审核 Client 实体。
那有可能吗?如果是这样,我会怎么做?
c# - 如何查询具有多对多关系的审计表
我有一个与标签类具有多对多关系的入口类。我正在尝试恢复条目的历史副本。
我试过这样查询:
但是,在尝试访问Tags
属性 orentryRevision
时,出现错误:
NHibernate.LazyInitializationException : Initializing[Unavailable#] - 无法延迟初始化集合,没有会话或会话关闭
当我尝试访问标签时,我已确认会话仍处于打开状态。
我想通过Tag_Entry_AUD
直接查询表以获取可能曾经与此条目相关联的所有标签 ID 来解决此问题,但我不知道该怎么做?是否可以使用 HQL 查询来做到这一点?
hibernate - 列表 java 上的 Hibernate Envers @ElementCollection
我想在一组列表类型上使用@ElementCollection,如下所示:
之后,我看到 Hibernate 生成以下脚本 sql:
如果我使用一组 Set 类型,像这样:
Hibernate 生成以下脚本 sql:
所以,我只看到 Set 类型的集合而不是 List 类型的附加字段“SETORDINAL”。
你能解释一下这个案子吗?我不会将我的所有列表字段都更改为设置。
提前感谢您的回复。
.net - nhibernate envers:审计已经在生产中的实体
我们有一个已经投入生产的应用程序,它正在使用 Envers 进行审计。
现在我们将发布一个更新,在其中我们审计一种新的实体。然而,这个实体已经存在于生产环境中,只是到目前为止还没有经过审计。
我们在包含现有记录的测试环境中进行了尝试,但它在保存时崩溃,因为 Envers 无法找到正在保存的实体的先前版本。
解决这个问题的方法是什么?
例如,如果可以指定对实体进行审计的日期,那就太好了。
nhibernate - Envers 与 Nhibernate - SetEnversProperty
我正在尝试设置 NHibernate.Envers 以使用单独的数据库、模式和表后缀。出于某种原因,我设置的配置更改被忽略。
示例代码
有没有人有什么建议?我不确定我是否遗漏了一些东西来提交配置更改。