写点什么

版本化 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:45731
用户头像

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

关注

评论

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

量子计算先驱David Schuster的二十年探索之路

qife122

AWS 量子计算

基于深度学习的YOLO框架的7种交通场景识别项目系统【附完整源码+数据集】

程序员Geek

人工智能 yolo

亚马逊ICML 2023论文技术速览

qife122

机器学习

Vibe Coding 时代的开源社区开发新体验

老纪的技术唠嗑局

AI+ OceanBase 开源 cursor MCP

SearchBox:一个神奇的搜索组件,比传统的搜索框 + 下拉框的方式体验好十倍!

OpenTiny社区

开源 前端 OpenTiny UI组件库

Astro机器人流畅运动背后的科技原理

qife122

机器人 轨迹优化

黑龙江等保测评流程优化与效率提升

等保测评

Lombok @Builder失效问题排查与解决方案

qife122

Java maven

YashanDB ROW_NUMBER函数

YashanDB

数据库

亚马逊发布TEACh数据集训练家用机器人

qife122

人工智能 数据集

Golang基础笔记十五之sync

Hunter熊

Go 后端 读写锁 互斥锁 对象池

利用数据绑定让动画更智能:在Rive中创建动态黄金计算器

qife122

rive 动画设计

阶跃星辰端到端语音模型 Step-Audio 2:深度思考+音色切换;11Labs 对话式 AI 增加 WebRTC支持丨日报

声网

黑龙江二级等保与三级等保核心差异解析

等保测评

黑龙江等保合规体系构建与政策依据

等保测评

YashanDB RIGHT函数

YashanDB

数据库

使用监督学习训练图像聚类模型

qife122

监督学习 图像聚类

AWS上实现超大规模模型训练的近线性扩展

qife122

AWS 分布式训练

"端云+多模态"新范式:《移远通信AI大模型技术方案白皮书》正式发布

财见

亚马逊机器人如何应对交通拥堵

qife122

机器人技术 多智能体系统

梦精灵AI产品动态 | 提示词工具新功能预览

龙正哲

亚马逊Q Developer:用自然语言构建机器学习模型

qife122

机器学习 Amazon SageMaker

基于Amazon Translate的深度学习教材自动翻译系统

qife122

机器翻译 Amazon Translate

YashanDB RLIKE_FILTER函数

YashanDB

数据库

华为开发者空间部署FastGPT,构建知识库智能体

华为云开发者联盟

华为云ModelArts AI+ FastGPT DeepSeek v3 华为开发者空间

新鲜出炉|指标平台「实践案例研究报告」等你来领~

Aloudata

数据分析 ETL 指标平台

基于亮数据 MCP 的 Trae 智能体,让规模化 Google 数据实时分析触手可及

阿Q说代码

阿里云正式开源 LoongSuite:打造 AI 时代的高性能低成本可观测采集套件

阿里巴巴云原生

阿里云 开源 云原生 可观测

YashanDB ROUND函数

YashanDB

数据库

YashanDB ROWIDTOCHAR函数

YashanDB

数据库

WAIC看点:可交付AI登场,场景智能、专属知识将兑现下一代AI价值

Fabarta

人工智能 agent AI 智能体 个人智能体

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