📄 architecture.html
字号:
<tt class="literal">Transaction</tt>/<tt class="literal">TransactionFactory</tt> 以及 <tt class="literal">ConnectionProvider</tt> 等API直接跟JTA或JDBC打交道。 </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="architecture-states"></a>3.2. 实例状态</h2></div></div><div></div></div><p> 一个持久化类的实例可能处于三种不同状态中的某一种。 这三种状态的定义则与所谓的<span class="emphasis"><em>持久化上下文(persistence context)</em></span>有关。 Hibernate的<tt class="literal">Session</tt>对象就是这个所谓的持久化上下文: </p><div class="variablelist"><dl><dt><span class="term">瞬态(transient)</span></dt><dd><p> 该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键)。 </p></dd><dt><span class="term">持久(persistent)</span></dt><dd><p> 实例目前与某个持久化上下文有关联。 它拥有持久化标识(相当于主键),并且可能在数据库中有一个对应的行。 对于某一个特定的持久化上下文,Hibernate<span class="emphasis"><em>保证</em></span>持久化标识与Java标识(其值代表对象在内存中的位置)等价。 </p></dd><dt><span class="term">脱管(detached)</span></dt><dd><p> 实例曾经与某个持久化上下文发生过关联,不过那个上下文被关闭了, 或者这个实例是被序列化(serialize)到这个进程来的。 它拥有持久化标识,并且在数据库中可能存在一个对应的行。 对于脱管状态的实例,Hibernate不保证任何持久化标识和Java标识的关系。 </p></dd></dl></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="architecture-jmx"></a>3.3. JMX整合</h2></div></div><div></div></div><p> JMX是管理Java组件(Java components)的J2EE规范。 Hibernate 可以通过一个JMX标准服务来管理。 在这个发行版本中,我们提供了一个MBean接口的实现,即 <tt class="literal">org.hibernate.jmx.HibernateService</tt>。 </p><p> 想要看如何在JBoss应用服务器上将Hibernate部署为一个JMX服务的例子,您可以参考JBoss用户指南。 我们现在说一下在Jboss应用服务器上,使用JMX来部署Hibernate的好处: </p><div class="itemizedlist"><ul type="disc"><li><p> <span class="emphasis"><em>Session管理:</em></span> Hibernate的<tt class="literal">Session</tt>对象的生命周期可以 自动跟一个JTA事务边界绑定。这意味着你无需手工开关<tt class="literal">Session</tt>了, 这项 工作会由JBoss EJB 拦截器来完成。你再也不用担心你的代码中的事务边界了(除非你想利用Hibernate提供 的<tt class="literal">Transaction</tt> API来自己写一个便于移植的的持久层)。 你现在要通过 <tt class="literal">HibernateContext</tt>来操作<tt class="literal">Session</tt>了。 </p></li><li><p> <span class="emphasis"><em>HAR 部署:</em></span> 通常情况下,你会使用JBoss的服务部署描述符(在EAR或/和SAR文件中)来部署Hibernate JMX服务。 这种部署方式支持所有常见的Hibernate <tt class="literal">SessionFactory</tt>的配置选项。 不过,你需在部署描述符中,列出你所有的映射文件的名字。如果你使用HAR部署方式, JBoss 会自动探测出你的HAR文件中所有的映射文件。 </p></li></ul></div><p> 这些选项更多的描述,请参考JBoss 应用程序用户指南。 </p><p> 将Hibernate以部署为JMX服务的另一个好处,是可以查看Hibernate的运行时统计信息。参看 <a href="session-configuration.html#configuration-optional-statistics" title="4.4.6. 
 Hibernate的统计(statistics)机制
 ">第 4.4.6 节 “ Hibernate的统计(statistics)机制 ”</a>. </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="architecture-jca"></a>3.4. 对JCA的支持</h2></div></div><div></div></div><p> Hibernate也可以被配置为一个JCA连接器(JCA connector)。更多信息请参看网站。 请注意,Hibernate对JCA的支持,仍处于实验性质。 </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial.html">上一页</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">上一级</a></td><td width="40%" align="right"> <a accesskey="n" href="session-configuration.html">下一页</a></td></tr><tr><td width="40%" align="left" valign="top">第 2 章 Hibernate入门 </td><td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td><td width="40%" align="right" valign="top"> 第 4 章 配置 </td></tr></table></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -