标签
作者
我们刚刚发布了全新的Hibernate Annotations模块作为alpha版本。该模块提供了通过JDK 5.0元数据注解(而不是XML映射文件或XDoclet预处理)声明Hibernate O/R映射元数据的功能。我们已经实现了EJB3(JSR-220)在规范早期草案1中定义的O/R元数据注解。这组注解涵盖了所有常见的映射场景。
我们刚刚发布了Hibernate 3.0 beta 1。自从四个月前alpha版本发布以来,我并没有时间列出所有许多的变化,更不用说Hibernate3中所有的新特性了,它已经开发了超过一年。
重新附加未修改的对象
有时,从上一个会话中分离的领域模型对象需要/可以重新附加,而不会触发UPDATE(无论是否有乐观锁)。Hibernate通过提供某种功能来支持这种类型的特性
不要被骗
昨天,另一家供应商的市场声明被发布在TSS上。我通常忽略这些,但关于数据管理,我不得不回复。让我惊讶的是,我们Java开发者对数据管理了解得如此之少。以下是在讨论线程中Maxim Kramarenko做出的声明
歧视
类型 - 不是性别,或种族 - 当我们从SQL查询结果集中读取一行,并确定应该实例化哪个Java类来保存该行数据时,我们进行了类型歧视。任何支持多态查询或关联的ORM解决方案或手写的持久层都需要类型歧视。
墨尔本Hibernate培训
9月20日至22日在墨尔本,我们将首次推出我们新的三天Hibernate课程。该课程经过大幅修订和扩展,包括Hibernate3即将推出的新功能的预览和Hibernate内部结构的概述(如果你需要调试Hibernate应用程序,这将非常有用)。还有空位,如果你动作快的话!这将是我们在澳大利亚运行的最后一次培训,因为我在接下来的六个月左右的时间里将不会在这个国家,或者几乎不会。发送电子邮件至training@jboss.com获取更多信息。(我们还在巴黎有一个即将到来的课程,11月3日至5日。)
Hibernate中的批量处理
在本文开头,我想先说明,我们非常怀疑Java是处理大量数据的合适场所。进一步来说,ORM可能也不是进行批量处理的特别合适的方式。我们认为大多数数据库在这个领域都提供了出色的解决方案:存储过程支持,以及各种导入和导出工具。正因为如此,我们一直没有很好地解释如何使用Hibernate进行批量处理,即使他们真的觉得在Java中必须这样做。在某些时候,我们必须放下自尊,接受许多人实际上正在这样做,并确保他们以正确的方式进行。
在参与一个开源项目并与商业竞争对手竞争的过程中,其中一项乐趣是必须实现用户根本不需要、在实践中可能不会使用的功能,仅仅因为竞争对手试图将他们的无用功能作为竞争优势。很久以前我们就意识到,如果你没有这个功能,就很难告诉人们他们不需要也不应该使用该功能。
上下文日志记录
最近我们与一位客户合作完成了一个大型项目,他们担心Hibernate生成的SQL的可追溯性。他们的问题可能是常见的:假设我在Hibernate日志中看到某些错误(例如,N+1选择问题),我怎么知道哪个业务类产生了这个问题?我在Hibernate日志中唯一有的就是日志消息的来源:org.hibernate.SQL,行号224!
Hibernate3 现已准备好进行公开测试,去获取它!它拥有我们需要的所有(几乎全部)面向对象/关系映射功能,如果它没有,也很容易进行子类化、扩展和实现。