ITEEDU

2.2. 持久化对象标识(Persistent Object Identity )

应用程序可能同时在两个不同的session中存取同一个持久化对象。然而,两个Session实例是不可能共享一个持久化类的实例的。有两种不同的用来辨别对象是否相同的方法。

Persistent Identity,持久化辨别

foo.getId().equals( bar.getId() )

JVM Identity, JVM辨别

foo==bar

对于同一个特定的Session返回的对象来说,这二者是等价的。然而,当程序并行在两个不同的session中访问含义上“相同”(持久化辨别)的商业对象时,两个对象实例从JVM的角度上来看却是“不同”的(JVM辨别)

这种方式把并行访问(应用程序不需要对任何商业对象进行同步,只要求遵循每个Session一个线程的原则)和对象辨别(在应用程序的一个session之中,可以安全的用==来比较对象)的难题留给了Hibernate和数据库。

2.3. JMX集成

JMX是用来管理Java组件的J2EE标准。Hibernate可以被标准的JMX Mbean管理,但是因为大多数程序还没有支持JMX,Hibernate也支持一些非标准的配置方式。

请查阅Hibernate网站,可以得到关于如何在JBOSS中把Hibernate配置成为一个JMX组件的更多信息。

2.4. JCA支持

Hibernate也可以被配置成为一个JCA连接器。更多细节,请参阅网站。