2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

版本化 JPA 实体

  • 2008-08-04
  • 本文字数:994 字

    阅读完需:约 3 分钟

Envers JBoss 的一个开源项目,最近它发布了 1.0.0 GA 版,在 Envers 的网站上这样阐述其自身的目标:> 。。。简化持久性JPA 类的版本化工作。若要对类或属性进行版本管理,只需在对应的类和属性上添加@Versioned 注解即可。对于每个版本实体,都有一张表与之相对应,这张表记录了实体所有的更改历史。这样一来,读取或查询历史数据就变得不费吹灰之力。

由于Envers 与Hibernate 及Hibernate Entity Manager 兼容,Hibernate 能运行的地方,Envers 就能运行。例如,Envers 可以独立运行,也可以在应用服务器中运行,还能与JBoss Seam 以及 Spring 协同工作。Envers 的当前版本提供的诸多特性中包括: - 对基本属性(strings, integers, longs…)的版本管理

  • 对基本属性构成的嵌入式组件的版本管理
  • 使用简单的、合成或嵌入式 id 对类进行版本管理
  • 对一对一单向或双向关联关系进行版本管理(单向关系中只针对关系主体的拥有者进行版本管理)
  • 对一对多单向或双向关联关系进行版本化(单向关系中只针对关系主体的拥有者进行版本管理)
  • 支持次级表(secondary tables)
  • 使用“修订实体(revision entity)”跟踪记录每个修订版本
  • 查询历史数据

尤其出色的是,1.0.0 GA 版对集合的变化也提供了修订版本管理,之前的预览版与 beta 版中都没有这项功能,例如: > 假设你有一个Person 实体和一个Address 实体,他们为双向多对一关系(每个人只有一个地址,几个人可以拥有相同的地址)。现在修改其中某个人的地址,那么新、旧地址所对应的persons 集合的内容就发生了变化。之前的预览版与beta 版都不会为Addresses(只针对Person)做修订版本管理,原因是数据库中的数据并没有发生变化(发生变化的是java beans 中的数据)。而现在,所有这三个实体来会有产生一个修订版本而记录在更改历史中。

如果出于某种原因需要关闭这个功能的话,只需要按下列代码修改一下配置就可以了: <property name="org.jboss.envers.revisionOnCollectionChange" value="false"></property>在未来的版本中,Envers 会支持对任何类型关联的版本管理,不再只局限于一对一或一对多。而且,它将只存储版本间差异,来达到节省空间的目的等等。Envers 是一个相当新的项目,目前尚还没引起广泛“追捧”,但它非常值得大家关注。以下资源可以帮助你进一步了解 Envers 的相关信息:

查看英文原文: Versioning JPA Entities

2008-08-04 14:45748
用户头像

发布了 88 篇内容, 共 272.8 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

Apipost自动化测试实战:用户充值系统API零代码高效测试与CI/CD集成全攻略

数据追梦人

【转】 FMEA

虚实的星空

深度解析LLM参数:Top-K、Top-p和温度如何影响输出随机性?

xiaoxi666

AI 大模型

Spine 动画教程:皮肤制作

北桥苏

动画制作 Spine

使用Gone MCP 组件编写MCP Server

大鹏

golang MCP Gone依赖注入

百度电商扩大七项「外贸转内销」专项扶持计划

极客天地

《Operating System Concepts》阅读笔记:p738-p747

codists

操作系统

[方案举例]大量excel联系人号码批量快速导入iPhone苹果手机和安卓手机的通讯录

一码平川

Sentinel源码—ProcessorSlot的执行过程(二)

电子尖叫食人鱼

JavaScript

如何彻底删除Mac应用软件?掌握这些方法,轻松搞定,干净又彻底

阿拉灯神丁

MacBook Mac软件 应用程序卸载 CleanMyMac X中文版 卸载清理软件

清华大学携手蚂蚁集团攻坚安全科技,获得中国电子学会科技进步一等奖

新消费日报

一篇图文详解PID调参细节,实现PID入门到精通

芯动大师

数实融合突破千万级用户!解码珠海万达商管的智慧进化论

新消费日报

秘密任务 3.0:如何通过 JWT 认证确保 WebSockets 安全

数据追梦人

国际知名半导体研究机构SemiAnalysis称:华为云CloudMatrix 384领先英伟达和AMD的产品一代

极客天地

《Operating System Concepts》阅读笔记:p735-p737

codists

操作系统

教你几招判断LED显示屏的好坏

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家 户内led显示屏

在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南

亚马逊云科技 (Amazon Web Services)

基于 LobeChat 构建企业内部 LLM 知识库平台

亚马逊云科技 (Amazon Web Services)

RAG 实战|用 StarRocks + DeepSeek 构建智能问答与企业知识库

StarRocks

数据库 数据检索 StarRocks ;RAG DeepSeek

Hume 推出 Octave TTS 即时模式,250 毫秒响应;客服语音智能体 Sona:简单集成、高度自定义丨日报

声网

[方式举例]快速把电脑excel电子表格联系人号码一键批量导入手机通讯录里

一码平川

征程 6|部署模型尾部 conv 输出 type/layout/scale 解读

地平线开发者

自动驾驶; 算法工具链 地平线征程6

邮件自动回复助手(Rasa/SMTP)实现教程

不在线第一只蜗牛

前端 教程 邮件

通过利益相关者管理提升财务规划的发展可持续性

智达方通

全面预算管理 财务管理 财务转型

Arthas tt(方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测)

刘大猫

Arthas java 阿里监控 tt 时空隧道

CFD专栏丨空调管路流动噪声LBM仿真

Altair RapidMiner

CAE Hypermesh CFD 流体仿真 振动噪声

清华联合蚂蚁斩获电子学会科技进步一等奖 可信AI技术获国家级学会认可

新消费日报

SQL优化的这15招,真香!

量贩潮汐·WholesaleTide

数据库 sql

PIRF 431 - Billionaire Gains.pdf

Echo!!!

English

版本化JPA实体_Java_Craig Wickesser_InfoQ精选文章