拼吾爱程序人生

首页 » 其他编程 » Java » 版本化JPA实体
cobra - 2008-8-5 4:36:00
EnversJBoss的一个开源项目,最近它发布了1.0.0 GA版,在Envers的网站上这样阐述其自身的目标:


引用:
。。。简化持久性JPA类的版本化工作。若要对类或属性进行版本管理,只需在对应的类和属性上添加@Versioned注解即可。对于每个版本实体,都有一张表与之相对应,这张表记录了实体所有的更改历史。这样一来,读取或查询历史数据就变得不费吹灰之力。
由于Envers与Hibernate及Hibernate Entity Manager兼容,Hibernate能运行的地方,Envers就能运行。例如,Envers可以独立运行,也可以在应用服务器中运行,还能与JBoss Seam以及Spring协同工作。Envers的当前版本提供的诸多特性中包括: 尤其出色的是,1.0.0 GA版对集合的变化也提供了修订版本管理,之前的预览版与beta版中都没有这项功能,例如


引用:
假设你有一个Person实体和一个Address实体,他们为双向多对一关系(每个人只有一个地址,几个人可以拥有相同的地址)。现在修改其中某个人的地址,那么新、旧地址所对应的persons集合的内容就发生了变化。之前的预览版与beta版都不会为Addresses(只针对Person)做修订版本管理,原因是数据库中的数据并没有发生变化(发生变化的是java beans中的数据)。而现在,所有这三个实体来会有产生一个修订版本而记录在更改历史中。
如果出于某种原因需要关闭这个功能的话,只需要按下列代码修改一下配置就可以了:

在未来的版本中,Envers会支持对任何类型关联的版本管理,不再只局限于一对一或一对多。而且,它将只存储版本间差异,来达到节省空间的目的等等。Envers是一个相当新的项目,目前尚还没引起广泛“追捧”,但它非常值得大家关注。以下资源可以帮助你进一步了解Envers的相关信息:
(作者 Craig Wickesser译者 张龙  出处:http://www.infoq.com/cn/news/2008/08/envers_1_0_0_ga_zh

 您可能对 [Java] 的这些文章也感兴趣:

使用Java Swing 创建一个XML编辑器
用 Java 保存位图文件
在JavaScript程序中整合Java函数
Java布局管理器深入讨论
Enterprise bean的开发
推技术聊天室的实现(下)
推技术聊天室的实现(上)
J2EE概述
从商业角度看J2EE与WINDOWS DNA
XML和J2EE的组合技术
简析J2EE应用程序数据库类设计模式
Java中的两个特殊变量this和super
1
查看完整版本: 版本化JPA实体
Modify by pin5i DZNT_ExpandPackage 2.1.3296 2007-2009 pin5i.com
 Total Unique Visitors: