比较“旧”和“新”的Hibernate对象用于记录集合时不能正常工作。
创始人
2024-12-15 18:00:40
0

使用 Hibernate Envers 进行对象历史记录,其中包含了比较旧和新对象的功能,并且可以正确处理集合的变化。

示例代码:

首先,需要在 Hibernate 中配置 Envers:








然后,创建实体类并添加 @Audited 注解:

@Entity
@Audited
public class Entity {
  @Id
  private Long id;

  @OneToMany(mappedBy = "entity")
  private List items;
}

最后,可以使用 Envers 进行比较和查询历史记录:

AuditReader reader = AuditReaderFactory.get(entityManager);
Entity oldEntity = reader.find(Entity.class, id, oldRevision);
Entity newEntity = reader.find(Entity.class, id, newRevision);
List oldItems = reader.createQuery()
  .forRevisionsOfEntity(Item.class, false, true)
  .add(AuditEntity.revisionNumber().eq(oldRevision))
  .add(AuditEntity.relatedId("entity.id").eq(id))
  .getResultList();
List newItems = reader.createQuery()
  .forRevisionsOfEntity(Item.class, false, true)
  .add(AuditEntity.revisionNumber().eq(newRevision))
  .add(AuditEntity.relatedId("entity.id").eq(id))
  .getResultList();

相关内容

热门资讯

五分钟了解!wepoke辅助插... 五分钟了解!wepoke辅助插件(透视)竟然真的有挂(详细代打ai辅助教程);亲真的是有正版授权,小...
德州免费辅助神器app!聚星扑... 德州免费辅助神器app!聚星扑克这个平台靠谱(黑科技辅助挂)果真真的有挂(详细代打辅助教程);亲们利...
九分钟了解!微扑克发牌机制(黑... 九分钟了解!微扑克发牌机制(黑科技)原来真的有挂(详细透视脚本教程)1、点击下载安装,微扑克wpk插...
智星德州菠萝开挂!德州最新辅助... 智星德州菠萝开挂!德州最新辅助器(黑科技)其实真的有挂(详细ai辅助教程);亲真的是有正版授权,小编...
5分钟了解!微扑克线上代打工具... 5分钟了解!微扑克线上代打工具(黑科技)原来是真的有挂(详细辅助透视脚本教程),亲,有的,ai轻松简...
wepoke ai辅助!aap... wepoke ai辅助!aapoker软件app(黑科技辅助挂)确实真的有挂(详细ai辅助教程);科...
六分钟了解!wepoke中牌率... 六分钟了解!wepoke中牌率(透明挂)的确是真的有挂(详细辅助黑科技教程) 科技详细教程;7574...
微扑克ai辅助工具!德扑之星玩... 微扑克ai辅助工具!德扑之星玩的是啥(软件透明该)原来真的有挂(详细透视辅助教程);(需添加指定薇7...
2分钟了解!德扑ai智能机器人... 2分钟了解!德扑ai智能机器人平台安装(透视)竟然真的有挂(详细辅助透视脚本教程)是一款可以让一直输...
wpk真的有外挂!扑克时间软件... wpk真的有外挂!扑克时间软件(辅助挂)确实真的有挂(详细辅助软件教程);大神普及一款德州ai内幕,...