标签
作者
Hibernate开发团队今天发布了Hibernate 3.2.0 GA版本,该版本现已准备好投入生产使用。如果您是从早期版本升级的,请阅读迁移指南。
使用Criteria API的人要么透明地、要么有意识地使用了ResultTransformer。ResultTransformer是一个简单而优雅的接口,允许您转换任何Criteria结果元素。例如,您可以将任何Criteria结果返回为java.util.Map或非实体Bean。
最近在Hibernate的JIRA中打开了一个错误报告,称Hibernate错误地处理了死锁场景。该报告的依据是《/Pro Hibernate 3/》一书中的示例(第9章)。对于那些可能不熟悉术语“死锁”的人来说,其基本含义是两个进程各自持有对方需要完成处理过程所需的资源锁。虽然这种现象不仅限于数据库,但在数据库术语中,其基本思路是第一个进程(P1)对一个给定的行(R1)持有写锁,而第二个进程(P2)对另一个行(R2)持有写锁。现在,为了完成其处理,P1需要获取R2的写锁,但无法这样做,因为P2已经持有其写锁。相反,P2需要获取R1的写锁以完成其处理,但无法做到,因为P1已经持有其写锁。因此,P1和P2都不能完成其处理,因为每个进程都在无限期地等待对方释放所需的锁,而这两个锁都只有在处理完成后才能释放。在这种情况下,这两个进程被认为是死锁的。
Hibernate 3.1.1本周早些时候已发布。这次维护版本专注于错误修复和改进,特别是在以下方面:
Steve刚刚向Hibernate Core提交了一个新的接口和扩展点。我们终于可以将其自定义会话上下文管理插件到Hibernate中。对于已经了解Hibernate 3.0中的getCurrentSession()的人来说,这个新扩展使得在没有JTA环境的情况下也能实现相同的功能。
我最近在TheServerSideJavaSymposium和新英格兰JUG上发表了演讲。涵盖Hibernate 3.0中实现的一些新想法的演示文稿现在已上线
Hibernate 3.0是世界上最复杂的ORXM(对象/关系/XML映射)解决方案。Hibernate3使得Java应用程序与持久数据交互变得比以往任何时候都更容易,允许对实体数据的不同内存表示与关系模式之间的转换进行单一定义,即使在非常复杂的旧模式或历史数据模式以及具有可见性规则的数据的情况下也是如此。Hibernate3还提供了最全面的对象/关系查询功能,包括三个功能齐全的查询工具:Hibernate查询语言、新增强的Hibernate查询API以及增强了对数据库原生SQL方言查询的支持。
我们刚刚发布了Hibernate 3.0 beta 1。由于从四个月前的alpha版本发布以来有很多变化,所以我无法一一列出,更不用说Hibernate3中所有的新特性了,因为它已经开发了一年多。
在与商业竞争对手合作开源项目时,一个乐趣就是不得不实现用户根本不需要、在实际中可能也不会使用的功能,仅仅因为那些竞争对手试图将这些无用的功能作为竞争优势。我们很早就意识到,如果你没有这个功能,就很难告诉人们他们不需要也不应该使用这个功能。