在查询实体时,有没有一种简单的方法可以连接实体的最新修订信息?
另一种方法是将属性(使用Fluent NHibernate)映射到实体,例如entity.LatestRevisionDateTime
属性。
这是必需的,因为我们有一些屏幕显示最新的修改日期时间和修改实体的用户。我们还要求至少有一个查询返回自特定日期以来已修改的实体。如果我们不需要加入内存(更少的DB往返,更少的内存),这将更容易,性能也会更好。
我们正在使用:
- NHibernate 4.0.3.400
- FluentHibernate 2.0.1.0
- Hibernate Envers 2.0.0
要在一条语句中获取实体和修订信息,可以使用
session.Auditer().CreateQuery()
.ForHistoryOf<YourEntityType, YourRevisionType>()
.Add([some filters])
.Results()
为了将最新/当前实体与修订对象放在一起,我认为这是有效的(AFK因此无法验证)
session.Auditer().CreateQuery()
.ForHistoryOf<YourEntityType, YourRevisionType>()
.Add(AuditEntity.RevisionNumber().Maximize().ComputeAggregationInInstanceContext())
.Results()