﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-lyndon-随笔分类-java技术</title><link>http://www.blogjava.net/lyndon/category/9686.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 20:20:54 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 20:20:54 GMT</pubDate><ttl>60</ttl><item><title>翻译的Hibernate的Session的javadoc</title><link>http://www.blogjava.net/lyndon/archive/2006/04/07/39924.html</link><dc:creator>博客java</dc:creator><author>博客java</author><pubDate>Fri, 07 Apr 2006 14:04:00 GMT</pubDate><guid>http://www.blogjava.net/lyndon/archive/2006/04/07/39924.html</guid><wfw:comment>http://www.blogjava.net/lyndon/comments/39924.html</wfw:comment><comments>http://www.blogjava.net/lyndon/archive/2006/04/07/39924.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyndon/comments/commentRss/39924.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyndon/services/trackbacks/39924.html</trackback:ping><description><![CDATA[
		<div class="postTitle">
				<a id="viewpost1_TitleUrl" href="/iamtin/archive/2006/03/06/33910.html">
						<font color="#000080">翻译的Hibernate的Session的javadoc</font>
				</a>
				<br />
		</div>
		<div class="postText">Hibernate的透明持久化用起来非常舒服，有时甚至忘记了数据库的存在。我身边的朋友经常会分不清save、saveOrUpdate、update的区别，lock、merge、replicate、refresh、evict甚至不知道是干什么用的。而且关于实体对象的生命周期也有很多概念不清，分不清transient、persistent、detached的区别，只是知道PO、VO这样的通俗叫法。其实这些概念都很简单，Hibernate的javadoc写的都很清楚，只需看看就能明白。所以我花了些时间将Hibernate 3.1.2中session的javadoc部分翻译了一下，旨在让那些因为Hibernate的“透明”而忘记了它基本概念的人们停下来再看看这些概念<img height="19" src="http://www.blogjava.net/Emoticons/74_74.gif" width="19" border="0" /><br /><br /><hr /><!-- ======== START OF CLASS DATA ======== --><h2><font size="-1">org.hibernate</font><br />Interface Session</h2><dl><dt><b>All Superinterfaces:</b></dt><dd><a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html"><font color="#000080">Serializable</font></a></dd></dl><dl><dt><b>All Known Subinterfaces:</b></dt><dd><a title="interface in org.hibernate.event" href="/org/hibernate/event/EventSource.html"><font color="#000080">EventSource</font></a>, <a title="interface in org.hibernate.classic" href="/org/hibernate/classic/Session.html"><font color="#000080">Session</font></a></dd></dl><dl><dt><b>All Known Implementing Classes:</b></dt><dd><a title="class in org.hibernate.impl" href="/org/hibernate/impl/SessionImpl.html"><font color="#000080">SessionImpl</font></a></dd></dl><font color="#000080"><hr /></font><dl><dt>public interface <b>Session</b></dt><dt>extends <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html"><font color="#000080">Serializable</font></a></dt></dl><p>Java应用程序与Hibernate之间的主要运行时接口。它是抽象了持久化服务概念的核心抽象API类。<br /><br /><tt>Session</tt>的生命周期绑定在一个物理的事务（tansaction）上面。（长的事务可能跨越多个数据库事物。）<br /><br /><tt>Session</tt>的主要功能是提供对映射的实体类实例的创建，读取和删除操作。实例可能以下面三种状态存在：<br /><br /><i>自由状态（transient）:</i> 不曾进行持久化，未与任何<tt>Session</tt>相关联<br /><i>持久化状态（persistent）:</i> 仅与一个<tt>Session</tt>相关联<br /><i>游离状态（detached）:</i> 已经进行过持久化，但当前未与任何<tt>Session</tt>相关联<br /><br />游离状态的实例可以通过调用<tt>save()</tt>、<tt>persist()</tt>或者<tt>saveOrUpdate()</tt>方法进行持久化。持久化实例可以通过调用<tt> delete()</tt>变成游离状态。通过<tt>get()</tt>或<tt>load()</tt>方法得到的实例都是持久化状态的。游离状态的实例可以通过调用 <tt>update()</tt>、0<tt>saveOrUpdate()</tt>、<tt>lock()</tt>或者<tt>replicate()</tt>进行持久化。游离或者自由状态下的实例可以通过调用<tt>merge()</tt>方法成为一个新的持久化实例。<br /><br /><tt>save()</tt>和<tt>persist()</tt>将会引发SQL的<tt>INSERT</tt>，<tt>delete()</tt>会引发SQL<tt>DELETE</tt>，而<tt>update()</tt>或<tt>merge()</tt>会引发SQL<tt>UPDATE</tt>。对<i>持久化（persistent）</i>实例的修改在刷新提交的时候会被检测到，它也会引起SQL<tt>UPDATE</tt>。<tt>saveOrUpdate()</tt>或者<tt>replicate()</tt>会引发SQL<tt>INSERT</tt>或者<tt>UPDATE</tt>。<br /><br />其具体实现并不一定是线程安全的。每个线程/事务应该从一个<tt>SessionFactory</tt>获取自己的session实例。<br /><br />如果其持久化对象类是可序列化的，则<tt>Session</tt>实例也是可序列化的。<br /><br />一个典型的事务应该使用下面的形式： </p><pre> Session sess = factory.openSession();
 Transaction tx;
 try {
     tx = sess.beginTransaction();
     //do some work
     ...
     tx.commit();
 }
 catch (Exception e) {
     if (tx!=null) tx.rollback();
     throw e;
 }
 finally {
     sess.close();
 }
 </pre><br />如果<tt>Session</tt>抛出了异常, 事务必须回滚而session会被废弃。在异常发生后<tt>Session</tt>的内部状态可能会与数据库失去同步。 
<p></p><p></p><dl><dt><b>Author:</b></dt><dd>Gavin King 
</dd><dt><b>See Also:</b></dt><dd><a title="interface in org.hibernate" href="/org/hibernate/SessionFactory.html"><code><font color="#000080">SessionFactory</font></code></a></dd></dl><hr /><br /><table cellspacing="0" cellpadding="3" width="100%" summary="" border="1"><tbody><tr class="TableHeadingColor" bgcolor="#ccccff"><td colspan="2"><font size="+2"><b>Method Summary</b></font></td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Transaction.html">Transaction</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#beginTransaction()">beginTransaction</a></b>()</code><br />          开始一个工作单元并且返回相关联的<tt>事务（Transaction）</tt>对象。 </td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#cancelQuery()">cancelQuery</a></b>()</code><br />          终止执行当前查询。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#clear()">clear</a></b>()</code><br />          完整的清除这个session。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.sql" href="http://java.sun.com/j2se/1.3/docs/api/java/sql/Connection.html">Connection</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#close()">close</a></b>()</code><br />          停止这个<tt>Session</tt>，通过中断JDBC连接并且清空（cleaning up）它。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.sql" href="http://java.sun.com/j2se/1.3/docs/api/java/sql/Connection.html">Connection</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#connection()">connection</a></b>()</code><br />          获取这个Session的JDBC连接。<br /><br />如果这个session使用了积极的collection释放策略（如CMT-容器控制事务的环境下），关闭这个调用的连接的职责应该由当前应用程序负责。 </td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> boolean</code></font></td><td><code><b><a href="/org/hibernate/Session.html#contains(java.lang.Object)">contains</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          检查这个对象实例是否与当前的<tt>Session</tt>关联（即是否为Persistent状态）。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Criteria.html">Criteria</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#createCriteria(java.lang.Class)">createCriteria</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Class.html">Class</a> persistentClass)</code><br />          为给定的实体类或它的超类创建一个新的<tt>Criteria</tt>实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Criteria.html">Criteria</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#createCriteria(java.lang.Class, java.lang.String)">createCriteria</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Class.html">Class</a> persistentClass, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> alias)</code><br />          根据给定的实体类或者它的超类创建一个新的<tt>Criteria</tt>实例，并赋予它（实体类）一个别名。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Criteria.html">Criteria</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#createCriteria(java.lang.String)">createCriteria</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName)</code><br />          根据给定的实体的名称（name），创建一个新的<tt>Criteria</tt>实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Criteria.html">Criteria</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#createCriteria(java.lang.String, java.lang.String)">createCriteria</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> alias)</code><br />          根据给定的实体的名称（name），创建一个新的<tt>Criteria</tt>实例，并赋予它（实体类）一个别名</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Query.html">Query</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#createFilter(java.lang.Object, java.lang.String)">createFilter</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> collection, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> queryString)</code><br />          根据给定的collection和过滤字符串（查询条件）创建一个新的<tt>Query</tt>实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Query.html">Query</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#createQuery(java.lang.String)">createQuery</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> queryString)</code><br />          根据给定的HQL查询条件创建一个新的<tt>Query</tt>实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/SQLQuery.html">SQLQuery</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#createSQLQuery(java.lang.String)">createSQLQuery</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> queryString)</code><br />          根据给定的SQL查询条件创建一个新的<tt>SQLQuery</tt>实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#delete(java.lang.Object)">delete</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          从数据库中移除持久化（persistent）对象的实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#delete(java.lang.String, java.lang.Object)">delete</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          从数据库中移除持久化（persistent）对象的实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#disableFilter(java.lang.String)">disableFilter</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> filterName)</code><br />          禁用当前session的名称过滤器。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.sql" href="http://java.sun.com/j2se/1.3/docs/api/java/sql/Connection.html">Connection</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#disconnect()">disconnect</a></b>()</code><br />          断开<tt>Session</tt>与当前的JDBC连接。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Filter.html">Filter</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#enableFilter(java.lang.String)">enableFilter</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> filterName)</code><br />          打开当前session的名称过滤器。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#evict(java.lang.Object)">evict</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          将当前对象实例从session缓存中清除。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#flush()">flush</a></b>()</code><br />          强制提交刷新（flush）<tt>Session</tt>。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#get(java.lang.Class, java.io.Serializable)">get</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Class.html">Class</a> clazz, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id)</code><br />          根据给定标识和实体类返回持久化对象的实例，如果没有符合条件的持久化对象实例则返回null。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#get(java.lang.Class, java.io.Serializable, org.hibernate.LockMode)">get</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Class.html">Class</a> clazz, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id, <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a> lockMode)</code><br />          根据给定标识和实体类返回持久化对象的实例，如果没有符合条件的持久化对象实例则返回null。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#get(java.lang.String, java.io.Serializable)">get</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id)</code><br />          返回与给定的实体命名和标识匹配的持久化实例，如果没有对应的持久化实例则返回null。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#get(java.lang.String, java.io.Serializable, org.hibernate.LockMode)">get</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id, <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a> lockMode)</code><br />          返回与给定的实体类和标识所匹配的持久化实例，如果没有对应的持久化实例则返回null。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class in org.hibernate" href="/org/hibernate/CacheMode.html">CacheMode</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getCacheMode()">getCacheMode</a></b>()</code><br />          得到当前的缓存模式。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getCurrentLockMode(java.lang.Object)">getCurrentLockMode</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          检测给定对象当前的锁定级别。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Filter.html">Filter</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getEnabledFilter(java.lang.String)">getEnabledFilter</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> filterName)</code><br />          根据名称获取一个当前允许的过滤器（filter）。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class in org.hibernate" href="/org/hibernate/EntityMode.html">EntityMode</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getEntityMode()">getEntityMode</a></b>()</code><br />          获取这个session有效的实体模式。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getEntityName(java.lang.Object)">getEntityName</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          返回一个持久化对象的实体名称。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class in org.hibernate" href="/org/hibernate/FlushMode.html">FlushMode</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getFlushMode()">getFlushMode</a></b>()</code><br />          获得当前的刷新提交（flush）模式。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getIdentifier(java.lang.Object)">getIdentifier</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          获取给定的实体对象实例在<tt>Session</tt>的缓存中的标识，如果该实例是自由状态（Transient）的或者与其它<tt>Session</tt>关联则抛出一个异常。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Query.html">Query</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getNamedQuery(java.lang.String)">getNamedQuery</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> queryName)</code><br />          从映射文件中根据给定的查询的名称字符串获取一个<tt>Query（查询）</tt>实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Session.html">Session</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getSession(org.hibernate.EntityMode)">getSession</a></b>(<a title="class in org.hibernate" href="/org/hibernate/EntityMode.html">EntityMode</a> entityMode)</code><br />          根据给定的实体模式（Entity Mode）开始一个新的有效的Session。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/SessionFactory.html">SessionFactory</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getSessionFactory()">getSessionFactory</a></b>()</code><br />          获取创建这个session的<tt>SessionFactory</tt>实例。 </td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate.stat" href="/org/hibernate/stat/SessionStatistics.html">SessionStatistics</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getStatistics()">getStatistics</a></b>()</code><br />          获取这个session的统计信息。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="interface in org.hibernate" href="/org/hibernate/Transaction.html">Transaction</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#getTransaction()">getTransaction</a></b>()</code><br />          获取与这个session关联的<tt>Transaction（事务）</tt>实例。 instance associated with this session.</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> boolean</code></font></td><td><code><b><a href="/org/hibernate/Session.html#isConnected()">isConnected</a></b>()</code><br />          检查当前<tt>Session</tt>是否处于连接状态。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> boolean</code></font></td><td><code><b><a href="/org/hibernate/Session.html#isDirty()">isDirty</a></b>()</code><br />          当前<tt>Session</tt>是否包含需要与数据库同步的（数据状态）变化 ？如果我们刷新提交（flush）这个session是否会有SQL执行？</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> boolean</code></font></td><td><code><b><a href="/org/hibernate/Session.html#isOpen()">isOpen</a></b>()</code><br />          检查当前<tt>Session</tt>是否仍然打开。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#load(java.lang.Class, java.io.Serializable)">load</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Class.html">Class</a> theClass, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id)</code><br />          在符合条件的实例存在的情况下，根据给定的实体类和标识返回持久化状态的实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#load(java.lang.Class, java.io.Serializable, org.hibernate.LockMode)">load</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Class.html">Class</a> theClass, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id, <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a> lockMode)</code><br />          在符合条件的实例存在的情况下，根据给定的实体类、标识及指定的锁定等级返回持久化状态的实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#load(java.lang.Object, java.io.Serializable)">load</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id)</code><br />          将与给定的标示对应的持久化状态（值）复制到给定的自由状态（trasient）实例上。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#load(java.lang.String, java.io.Serializable)">load</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id)</code><br />          在符合条件的实例存在的情况下，根据给定的实体类和标识返回持久化状态的实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#load(java.lang.String, java.io.Serializable, org.hibernate.LockMode)">load</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a> id, <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a> lockMode)</code><br />          在符合条件的实例存在的情况下，根据给定的实体类、标识及指定的锁定等级返回持久化状态的实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#lock(java.lang.Object, org.hibernate.LockMode)">lock</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object, <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a> lockMode)</code><br />          从给定的对象上获取指定的锁定级别。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#lock(java.lang.String, java.lang.Object, org.hibernate.LockMode)">lock</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object, <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a> lockMode)</code><br />          从给定的对象上获取指定的锁定级别。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#merge(java.lang.Object)">merge</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          将给定的对象的状态复制到具有相同标识的持久化对象上。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#merge(java.lang.String, java.lang.Object)">merge</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          将给定的对象的状态复制到具有相同标识的持久化对象上。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#persist(java.lang.Object)">persist</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          将一个自由状态（transient）的实例持久化。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#persist(java.lang.String, java.lang.Object)">persist</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          将一个自由状态（transient）的实例持久化。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#reconnect()">reconnect</a></b>()</code><br />          <b>不推荐的。</b> <i>手工的重新连接只应用于应用程序提供连接的情况，在这种情况下或许应该使用<a href="/org/hibernate/Session.html#reconnect(java.sql.Connection)"><code>reconnect(java.sql.Connection)</code></a>。</i></td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#reconnect(java.sql.Connection)">reconnect</a></b>(<a title="class or interface in java.sql" href="http://java.sun.com/j2se/1.3/docs/api/java/sql/Connection.html">Connection</a> connection)</code><br />          重新连接到给定的JDBC连接。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#refresh(java.lang.Object)">refresh</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          从数据库中重新读取给定实例的状态。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#refresh(java.lang.Object, org.hibernate.LockMode)">refresh</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object, <a title="class in org.hibernate" href="/org/hibernate/LockMode.html">LockMode</a> lockMode)</code><br />          根据指定的<tt>锁定模式（LockMode）</tt>，从数据库中重新读取给定实例的状态。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#replicate(java.lang.Object, org.hibernate.ReplicationMode)">replicate</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object, <a title="class in org.hibernate" href="/org/hibernate/ReplicationMode.html">ReplicationMode</a> replicationMode)</code><br />          使用当前的标识值持久化给定的游离状态（Transient）的实体。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#replicate(java.lang.String, java.lang.Object, org.hibernate.ReplicationMode)">replicate</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object, <a title="class in org.hibernate" href="/org/hibernate/ReplicationMode.html">ReplicationMode</a> replicationMode)</code><br />          使用当前的标识值持久化给定的游离状态（Transient）的实体。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#save(java.lang.Object)">save</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          首先为给定的自由状态（Transient）的对象（根据配置）生成一个标识并赋值，然后将其持久化。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> <a title="class or interface in java.io" href="http://java.sun.com/j2se/1.3/docs/api/java/io/Serializable.html">Serializable</a></code></font></td><td><code><b><a href="/org/hibernate/Session.html#save(java.lang.String, java.lang.Object)">save</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          首先为给定的自由状态（Transient）的对象（根据配置）生成一个标识并赋值，然后将其持久化。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#saveOrUpdate(java.lang.Object)">saveOrUpdate</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          根据给定的实例的标识属性的值（注：可以指定unsaved-value。一般默认null。）来决定执行 <tt>save()</tt> 或<tt>update()</tt>操作。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#saveOrUpdate(java.lang.String, java.lang.Object)">saveOrUpdate</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          根据给定的实例的标识属性的值（注：可以指定unsaved-value。一般默认null。）来决定执行 <tt>save()</tt> 或<tt>update()</tt>操作。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#setCacheMode(org.hibernate.CacheMode)">setCacheMode</a></b>(<a title="class in org.hibernate" href="/org/hibernate/CacheMode.html">CacheMode</a> cacheMode)</code><br />          设置刷新提交模式。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#setFlushMode(org.hibernate.FlushMode)">setFlushMode</a></b>(<a title="class in org.hibernate" href="/org/hibernate/FlushMode.html">FlushMode</a> flushMode)</code><br />          设置刷新提交模式。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#setReadOnly(java.lang.Object, boolean)">setReadOnly</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> entity, boolean readOnly)</code><br />          将一个未经更改的持久化对象设置为只读模式，或者将一个只读对象标记为可以修改的模式。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#update(java.lang.Object)">update</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          根据给定的detached（游离状态）对象实例的标识更新对应的持久化实例。</td></tr><tr class="TableRowColor" bgcolor="white"><td valign="top" align="right" width="1%"><font size="-1"><code> void</code></font></td><td><code><b><a href="/org/hibernate/Session.html#update(java.lang.String, java.lang.Object)">update</a></b>(<a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html">String</a> entityName, <a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</a> object)</code><br />          根据给定的detached（游离状态）对象实例的标识更新对应的持久化实例。</td></tr></tbody></table>  </div>
		<p>from:http://www.blogjava.net/iamtin/archive/2006/03/06/33910.html<!-- ============ FIELD DETAIL =========== --><!-- ========= CONSTRUCTOR DETAIL ======== --></p>
<img src ="http://www.blogjava.net/lyndon/aggbug/39924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyndon/" target="_blank">博客java</a> 2006-04-07 22:04 <a href="http://www.blogjava.net/lyndon/archive/2006/04/07/39924.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>