[hibernate-commits] Hibernate SVN: r14137 - core/trunk/documentation/manual/zh-CN/src/main/docbook/content.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Oct 25 20:57:21 EDT 2007


Author: xhuang at jboss.com
Date: 2007-10-25 20:57:21 -0400 (Thu, 25 Oct 2007)
New Revision: 14137

Modified:
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/architecture.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/association_mapping.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/basic_mapping.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/batch.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/best_practices.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/collection_mapping.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/component_mapping.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/configuration.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/events.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_mappings.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_parentchild.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_weblog.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/filters.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/inheritance_mapping.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/performance.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/persistent_classes.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_criteria.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_hql.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_sql.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/quickstart.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/session_api.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/toolset_guide.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/transactions.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/tutorial.xml
   core/trunk/documentation/manual/zh-CN/src/main/docbook/content/xml.xml
Log:
Remove <feff> characters and match to latest English version

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/architecture.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/architecture.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/architecture.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="architecture">
+<chapter id="architecture">
 
     <title>体系结构(Architecture)</title>
     <sect1 id="architecture-overview" revision="1">

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/association_mapping.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/association_mapping.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/association_mapping.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="associations">
+<chapter id="associations">
 
     <title>关联关系映射</title>
 	

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/basic_mapping.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/basic_mapping.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/basic_mapping.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="mapping">
+<chapter id="mapping">
     <title>对象/关系数据库映射基础(Basic O/R Mapping)</title>
 
     <sect1 id="mapping-declaration" revision="1">
@@ -857,6 +857,171 @@
             </sect3>
 
         </sect2>
+	<sect2 id="mapping-declaration-id-enhanced">
+		<title>Enhanced identifier generators</title>
+		
+		<para>
+			Starting with release 3.2.3, there are 2 new generators which represent a re-thinking of 2 different
+			aspects of identifier generation.  The first aspect is database portability; the second is optimization
+			(not having to query the database for every request for a new identifier value).  These two new
+			generators are intended to take the place of some of the named generators described above (starting
+			in 3.3.x); however, they are included in the current releases and can be referenced by FQN.
+		</para>
+		
+		<para>
+			The first of these new generators is <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal>
+			which is intended firstly as a replacement for the <literal>sequence</literal> generator and secondly as
+			a better portability generator than <literal>native</literal> (because <literal>native</literal>
+			(generally) chooses between <literal>identity</literal> and <literal>sequence</literal> which have
+			largely different semantics which can cause subtle isssues in applications eyeing portability).
+			<literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal> however achieves portability in
+			a different manner.  It chooses between using a table or a sequence in the database to store its
+			incrementing values depending on the capabilities of the dialect being used.  The difference between this
+			and <literal>native</literal> is that table-based and sequence-based storage have the same exact
+			semantic (in fact sequences are exactly what Hibernate tries to emmulate with its table-based
+			generators).  This generator has a number of configuration parameters:
+			<itemizedlist spacing="compact">
+				<listitem>
+					<para>
+						<literal>sequence_name</literal> (optional, defaults to <literal>hibernate_sequence</literal>):
+						The name of the sequence (or table) to be used.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>initial_value</literal> (optional, defaults to <literal>1</literal>): The initial
+						value to be retrieved from the sequence/table.  In sequence creation terms, this is analogous
+						to the clause typical named "STARTS WITH".
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>increment_size</literal> (optional, defaults to <literal>1</literal>): The value by
+						which subsequent calls to the sequence/table should differ.  In sequence creation terms, this
+						is analogous to the clause typical named "INCREMENT BY".
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>force_table_use</literal> (optional, defaults to <literal>false</literal>): Should
+						we force the use of a table as the backing structure even though the dialect might support
+						sequence?
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>value_column</literal> (optional, defaults to <literal>next_val</literal>): Only
+						relevant for table structures!  The name of the column on the table which is used to
+						hold the value.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>optimizer</literal> (optional, defaults to <literal>none</literal>):
+						See <xref linkend="mapping-declaration-id-enhanced-optimizers"/>
+					</para>
+				</listitem>
+			</itemizedlist>
+		</para>
+		<para>
+			The second of these new generators is <literal>org.hibernate.id.enhanced.TableGenerator</literal> which
+			is intended firstly as a replacement for the <literal>table</literal> generator (although it actually
+			functions much more like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>) and secondly
+			as a re-implementation of <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> utilizing the
+			notion of pluggable optimiziers.  Essentially this generator defines a table capable of holding
+			a number of different increment values simultaneously by using multiple distinctly keyed rows.  This
+			generator has a number of configuration parameters:
+			<itemizedlist spacing="compact">
+				<listitem>
+					<para>
+						<literal>table_name</literal> (optional, defaults to <literal>hibernate_sequences</literal>):
+						The name of the table to be used.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>value_column_name</literal> (optional, defaults to <literal>next_val</literal>):
+						The name of the column on the table which is used to hold the value.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>segment_column_name</literal> (optional, defaults to <literal>sequence_name</literal>):
+						The name of the column on the table which is used to hold the "segement key".  This is the
+						value which distinctly identifies which increment value to use.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>segment_value</literal> (optional, defaults to <literal>default</literal>):
+						The "segment key" value for the segment from which we want to pull increment values for
+						this generator.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>segment_value_length</literal> (optional, defaults to <literal>255</literal>):
+						Used for schema generation; the column size to create this segment key column.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>initial_value</literal> (optional, defaults to <literal>1</literal>):
+						The initial value to be retrieved from the table.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>increment_size</literal> (optional, defaults to <literal>1</literal>):
+						The value by which subsequent calls to the table should differ.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>optimizer</literal> (optional, defaults to <literal></literal>):
+						See <xref linkend="mapping-declaration-id-enhanced-optimizers"/>
+					</para>
+				</listitem>
+			</itemizedlist>
+		</para>
+	</sect2>
+	
+	<sect2 id="mapping-declaration-id-enhanced-optimizers">
+		<title>Identifier generator optimization</title>
+		<para>
+			For identifier generators which store values in the database, it is inefficient for them to hit the
+			database on each and every call to generate a new identifier value.  Instead, you'd ideally want to
+			group a bunch of them in memory and only hit the database when you have exhausted your in-memory
+			value group.  This is the role of the pluggable optimizers.  Currently only the two enhanced generators
+			(<xref linkend="mapping-declaration-id-enhanced"/> support this notion.
+			<itemizedlist spacing="compact">
+				<listitem>
+					<para>
+						<literal>none</literal> (generally this is the default if no optimizer was specified):  This
+						says to not perform any optimizations, and hit the database each and every request.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>hilo</literal>: applies a hi/lo algorithm around the database retrieved values.  The
+						values from the database for this optimizer are expected to be sequential.  The values
+						retrieved from the database structure for this optimizer indicates the "group number"; the
+						<literal>increment_size</literal> is multiplied by that value in memory to define a group
+						"hi value".
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>pooled</literal>: like was discussed for <literal>hilo</literal>, this optimizers
+						attempts to minimize the number of hits to the database.  Here, however, we simply store
+						the starting value for the "next group" into the database structure rather than a sequential
+						value in combination with an in-memory grouping algorithm.  <literal>increment_size</literal>
+						here refers to the values coming from the database.
+					</para>
+				</listitem>
+			</itemizedlist>
+		</para>
+	</sect2>
 
         <sect2 id="mapping-declaration-compositeid" revision="3">
             <title>composite-id</title>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/batch.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/batch.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/batch.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="batch">
+<chapter id="batch">
     <title>批量处理(Batch processing)</title>
     <para>
         使用Hibernate将 100 000 条记录插入到数据库的一个很自然的做法可能是这样的

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/best_practices.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/best_practices.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/best_practices.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="best-practices" revision="2">
+<chapter id="best-practices" revision="2">
     <title>最佳实践(Best Practices)</title>
     
     <variablelist spacing="compact">
@@ -30,7 +30,6 @@
                     对所有的实体都标识出自然键,用<literal>&lt;natural-id&gt;</literal>进行映射。实现<literal>equals()</literal>和<literal>hashCode()</literal>,在其中用组成自然键的属性进行比较。
                 </para>
             </listitem>
-            Y00008051221000980   2.7,89,100万
         </varlistentry>
         
         <varlistentry> 

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/collection_mapping.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/collection_mapping.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/collection_mapping.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,21 +1,17 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-    <chapter id="collections">
+<chapter id="collections">
         <title>集合类(Collections)映射</title>
         
 
         <sect1 id="collections-persistent" revision="3">
             <title>持久化集合类(Persistent collections)</title>
             
-            <para id="collections-persistent-translate-comment">
-            (译者注:在阅读本章的时候,以后整个手册的阅读过程中,我们都会面临一个名词方面的问题,那就是“集合”。"Collections"和"Set"在中文里对应都被翻译为“集合”,但是他们的含义很不一样。Collections是一个超集,Set是其中的一种。大部分情况下,本译稿中泛指的未加英文注明的“集合”,都应当理解为“Collections”。在有些二者同时出现,可能造成混淆的地方,我们用“集合类”来特指“Collecions”,“集合(Set)”来指"Set",一般都会在后面的括号中给出英文。希望大家在阅读时联系上下文理解,不要造成误解。
-            与此同时,“元素”一词对应的英文“element”,也有两个不同的含义。其一为集合的元素,是内存中的一个变量;另一含义则是XML文档中的一个标签所代表的元素。也请注意区别。
-            本章中,特别是后半部分是需要反复阅读才能理解清楚的。如果遇到任何疑问,请记住,英文版本的reference是惟一标准的参考资料。)
-            </para>
-
         <para>
-            Hibernate要求持久化集合值字段必须声明为接口,比如:
+		Hibernate要求持久化集合值字段必须声明为接口,比如:(译者注:在阅读本章的时候,以后整个手册的阅读过程中,我们都会面临一个名词方面的问题,那就是“集合”。"Collections"和"Set"在中文里对应都被翻译为“集合”,但是他们的含义很不一样。Collections是一个超集,Set是其中的一种。大部分情况下,本译稿中泛指的未加英文注明的“集合”,都应当理解为“Collections”。在有些二者同时出现,可能造成混淆的地方,我们用“集合类”来特指“Collecions”,“集合(Set)”来指"Set",一般都会在后面的括号中给出英文。希望大家在阅读时联系上下文理解,不要造成误解。
+		与此同时,“元素”一词对应的英文“element”,也有两个不同的含义。其一为集合的元素,是内存中的一个变量;另一含义则是XML文档中的一个标签所代表的元素。也请注意区别。
+            本章中,特别是后半部分是需要反复阅读才能理解清楚的。如果遇到任何疑问,请记住,英文版本的reference是惟一标准的参考资料。)
         </para>
         
         <programlisting><![CDATA[public class Product {
@@ -725,7 +721,7 @@
 </class>
 
 <class name="Item">
-    <id name="id" column="ITEM_ID"/>
+    <id name="id" column="ITEM_ID"/>
     ...
 
     <!-- inverse end -->

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/component_mapping.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/component_mapping.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/component_mapping.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="components">
+<chapter id="components">
   <title>组件(Component)映射</title>
 
   <para>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/configuration.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/configuration.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/configuration.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="session-configuration" revision="1">
+<chapter id="session-configuration" revision="1">
 
     <title>
         配置

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/events.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/events.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/events.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="events">
+<chapter id="events">
     <title>
 	拦截器与事件(Interceptors and events)
 	</title>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_mappings.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_mappings.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_mappings.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="example-mappings">
+<chapter id="example-mappings">
     <title>示例:复杂映射实例</title>
     <para>
         本章展示了一些较为复杂的关系映射。

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_parentchild.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_parentchild.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_parentchild.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="example-parentchild">
+<chapter id="example-parentchild">
     <title>示例:父子关系(Parent Child Relationships)</title>
     <para>
     刚刚接触Hibernate的人大多是从父子关系(parent / child type relationship)的建模入手的。父子关系的建模有两种方法。由于种种原因,最方便的方法是把<literal>Parent</literal>和<literal>Child</literal>都建模成实体类,并创建一个从<literal>Parent</literal>指向<literal>Child</literal>的&lt;one-to-many&gt;关联,对新手来说尤其如此。还有一种方法,就是将<literal>Child</literal>声明为一个<literal>&lt;composite-element&gt;</literal>(组合元素)。 事实上在Hibernate中one to many关联的默认语义远没有composite element贴近parent / child关系的通常语义。下面我们会阐述如何使用<emphasis>带有级联的双向一对多关联(bidirectional one to many association with cascades)</emphasis>去建立有效、优美的parent / child关系。这一点也不难!
@@ -223,14 +223,7 @@
 session.update(parent);
 session.flush();]]></programlisting>
      
-         <para>
-             Well, that's all very well for the case of a generated identifier, but what about assigned identifiers
-             and composite identifiers? This is more difficult, since Hibernate can't use the identifier property to
-             distinguish between a newly instantiated object (with an identifier assigned by the user) and an 
-             object loaded in a previous session. In this case, Hibernate will either use the timestamp or version 
-             property, or will actually query the second-level cache or, worst case, the database, to see if the 
-             row exists.
-         </para>
+
      <para>
          这对于自动生成标识的情况是非常好的,但是自分配的标识和复合标识怎么办呢?这是有点麻烦,因为Hibernate没有办法区分新实例化的对象(标识被用户指定了)和前一个Session装入的对象。在这种情况下,Hibernate会使用timestamp或version属性,或者查询第二级缓存,或者最坏的情况,查询数据库,来确认是否此行存在。</para>
      

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_weblog.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_weblog.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/example_weblog.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="example-weblog">
+<chapter id="example-weblog">
     <title>示例:Weblog 应用程序</title>
     
     <sect1 id="example-weblog-classes">

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/filters.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/filters.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/filters.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="filters">
+<chapter id="filters">
     <title>过滤数据</title>
     <para>
 

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/inheritance_mapping.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/inheritance_mapping.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/inheritance_mapping.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-    <chapter id="inheritance">
+<chapter id="inheritance">
         <title>继承映射(Inheritance Mappings)</title>
 
 	    <sect1 id="inheritance-strategies" revision="3">
@@ -266,7 +266,7 @@
             </sect2>
 
             <sect2 id="inheritance-tableperconcreate-polymorphism">
-     			  <title>Table per concrete class, using implicit polymorphism</title>
+     			  
             <title>每个具体类一张表,使用隐式多态</title>
 
             <para>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/performance.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/performance.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/performance.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="performance">
+<chapter id="performance">
     <title>提升性能
 	</title>
     <sect1 id="performance-fetching" revision="2">
@@ -609,7 +609,7 @@
                 <entry>OSCache</entry>
                 <entry><literal>org.hibernate.cache.OSCacheProvider</literal></entry>
                 <entry>memory, disk</entry>
-                <entry>yes (clustered invalidation)</entry>
+                <entry></entry>
                 <entry>yes</entry>
             </row>
             <row>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/persistent_classes.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/persistent_classes.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/persistent_classes.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="persistent-classes" revision="2">
+<chapter id="persistent-classes" revision="2">
  		<title>持久化类(Persistent Classes)</title>
  		
     <para>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_criteria.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_criteria.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_criteria.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="querycriteria">
+<chapter id="querycriteria">
     <title>
     条件查询(Criteria Queries)
     </title>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_hql.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_hql.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_hql.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="queryhql">
+<chapter id="queryhql">
     <title>HQL: Hibernate查询语言</title>
     <para>
         Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构
@@ -191,6 +191,42 @@
 
         <programlisting><![CDATA[from Cat as cat where cat.mate.name like '%s%']]></programlisting>
 	</sect1>
+	<sect1 id="queryhql-identifier-property">
+		<title>Refering to identifier property</title>
+		
+		<para>
+			There are, generally speaking, 2 ways to refer to an entity's identifier property:
+		</para>
+		<itemizedlist spacing="compact">
+			<listitem>
+				<para>
+					The special property (lowercase) <literal>id</literal> may be used to reference the identifier
+					property of an entity <emphasis>provided that entity does not define a non-identifier property
+						named id</emphasis>.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					If the entity defines a named identifier property, you may use that property name.
+				</para>
+			</listitem>
+		</itemizedlist>
+		
+		<para>
+			References to composite identifier properties follow the same naming rules.  If the
+			entity has a non-identifier property named id, the composite identifier property can only
+			be referenced by its defined named; otherwise, the special <literal>id</literal> property
+			can be used to rerference the identifier property.
+		</para>
+		
+		<para>
+			Note: this has changed significantly starting in version 3.2.2.  In previous versions,
+			<literal>id</literal> <emphasis>always</emphasis> referred to the identifier property no
+			matter what its actual name.  A ramification of that decision was that non-identifier
+			properties named <literal>id</literal> could never be referenced in Hibernate queries.
+		</para>
+	</sect1>
+	
 
     <sect1 id="queryhql-select">
         <title>select子句</title>
@@ -505,6 +541,11 @@
                     逻辑运算符<literal>and, or, not</literal>
                 </para>
             </listitem>
+	    <listitem>
+		    <para>
+			    Parentheses <literal>( )</literal>, indicating grouping
+		    </para>
+            </listitem>
             <listitem>
                 <para>
                     <literal>in</literal>,
@@ -856,32 +897,11 @@
             注意,HQL自查询只可以在select或者where子句中出现。
         </para>
 
-        <para>
-            在select列表中包含一个表达式以上的子查询,你可以使用一个元组构造符(tuple constructors): 
+	<para>
+		Note that subqueries can also utilize <literal>row value constructor</literal> syntax.  See
+		<xref linkend="queryhql-tuple"/> for more details.
         </para>
         
-        <programlisting><![CDATA[from Cat as cat 
-where not ( cat.name, cat.color ) in ( 
-    select cat.name, cat.color from DomesticCat cat 
-)]]></programlisting>
-
-        <para>
-            注意在某些数据库中(不包括Oracle与HSQL),你也可以在其他语境中使用元组构造符,
-            比如查询用户类型的组件与组合:
-        </para>
-
-        <programlisting><![CDATA[from Person where name = ('Gavin', 'A', 'King')]]></programlisting>
-        
-        <para>
-            该查询等价于更复杂的:
-        </para>
-        
-        <programlisting><![CDATA[from Person where name.first = 'Gavin' and name.initial = 'A' and name.last = 'King')]]></programlisting>
-
-        <para>
-            有两个很好的理由使你不应当作这样的事情:首先,它不完全适用于各个数据库平台;其次,查询现在依赖于映射文件中属性的顺序。
-        </para>
-        
     </sect1>
 
     <sect1 id="queryhql-examples">

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_sql.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_sql.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/query_sql.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="querysql" revision="2">
+<chapter id="querysql" revision="2">
     <title>Native SQL查询</title>
     <para>
 		你也可以使用你的数据库的Native SQL语言来查询数据。这对你在要使用数据库的某些特性的时候(比如说在查询提示或者Oracle中的
@@ -460,7 +460,7 @@
     FROM PERSON person WHERE person.NAME LIKE :name
 </sql-query>
 ]]></programlisting>
-             <literal>&lt;return-property&gt;</literal>也可用于多个字段,它解决了使用<literal>{}</literal>-语法不能细粒度控制多个字段的限制
+<para><literal>&lt;return-property&gt;</literal>也可用于多个字段,它解决了使用<literal>{}</literal>-语法不能细粒度控制多个字段的限制</para>
              <programlisting><![CDATA[<sql-query name="organizationCurrentEmployments">
             <return alias="emp" class="Employment">            
              <return-property name="salary"> 

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/quickstart.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/quickstart.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/quickstart.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="quickstart">
+<chapter id="quickstart">
     <title>在Tomcat中快速上手</title>
 
     <sect1 id="quickstart-intro" revision="2">

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/session_api.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/session_api.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/session_api.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="objectstate">
+<chapter id="objectstate">
   
    	<title>与对象共事</title>
     
@@ -85,7 +85,28 @@
 			你也可以按照EJB3 early draft中定义的语义,使用<literal>persist()</literal>替代<literal>save()</literal>。
         </para>        
         
-        
+	<itemizedlist spacing="compact">
+		<listitem>
+			<para>
+				<literal>persist()</literal> makes a transient instance persistent. 
+				However, it doesn't guarantee that the identifier value will be assigned to 
+				the persistent instance immediately, the assignment might happen at flush time. 
+				<literal>persist()</literal> also guarantees that it will not execute an 
+				<literal>INSERT</literal> statement if it is called outside of transaction 
+				boundaries. This is useful in long-running conversations with an extended 
+				Session/persistence context.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				<literal>save()</literal> does guarantee to return an identifier. If an INSERT 
+				has to be executed to get the identifier ( e.g. "identity" generator, not 
+				"sequence"), this INSERT happens immediately, no matter if you are inside or 
+				outside of a transaction. This is problematic in a long-running conversation  
+				with an extended Session/persistence context.
+			</para>
+		</listitem>
+        </itemizedlist>        
         <para>
             此外,你可以用一个重载版本的<literal>save()</literal>方法。
         </para>
@@ -190,12 +211,13 @@
     </sect1>
 
     <sect1 id="objectstate-querying" revision="1">
-		<title>查询</title>
-        <para>
-			如果不知道所要寻找的对象的持久化标识,那么你需要使用查询。Hibernate支持强大且易于使用的面向对象查询语言(HQL)。
-			如果希望通过编程的方式创建查询,Hibernate提供了完善的按条件(Query By Criteria, QBC)以及按样例(Query By Example, QBE)进行查询的功能。
+	    <title>查询</title>
+	    
+	    <para>
+		    如果不知道所要寻找的对象的持久化标识,那么你需要使用查询。Hibernate支持强大且易于使用的面向对象查询语言(HQL)。
+		    如果希望通过编程的方式创建查询,Hibernate提供了完善的按条件(Query By Criteria, QBC)以及按样例(Query By Example, QBE)进行查询的功能。
 			你也可以用原生SQL(native SQL)描述查询,Hibernate额外提供了将结果集(result set)转化为对象的支持。
-        </para>        
+        </para>
 
         <sect2 id="objectstate-querying-executing"  revision="1">
             <title>执行查询</title>
@@ -277,8 +299,8 @@
 
 while ( kittensAndMothers.hasNext() ) {
     Object[] tuple = (Object[]) kittensAndMothers.next();
-    Cat kitten = (Cat) tuple[0];
-    Cat mother = (Cat) tuple[1];
+    Cat kitten = (Cat) tuple[0];
+    Cat mother = (Cat) tuple[1];
     ....
 }]]></programlisting>
 
@@ -520,16 +542,16 @@
 				如果你选择使用Hibernate的API, 你必须把SQL别名用大括号包围起来:
             </para>            
 
-            <programlisting><![CDATA[List cats = session.createSQLQuery("SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM<10")
-    .addEntity("cat", Cat.class)
-.list();]]></programlisting>
-                
-            <programlisting><![CDATA[List cats = session.createSQLQuery(
-    "SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, " +
-           "{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... " +
-    "FROM CAT {cat} WHERE ROWNUM<10")
-    .addEntity("cat", Cat.class)
-.list()]]></programlisting>
+            <programlisting><![CDATA[List cats = session.createSQLQuery("SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM<10")
+    .addEntity("cat", Cat.class)
+.list();]]></programlisting>
+                
+            <programlisting><![CDATA[List cats = session.createSQLQuery(
+    "SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, " +
+           "{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... " +
+    "FROM CAT {cat} WHERE ROWNUM<10")
+    .addEntity("cat", Cat.class)
+.list()]]></programlisting>
 
             <para>
                 和Hibernate查询一样,SQL查询也可以包含命名参数和占位参数。

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/toolset_guide.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/toolset_guide.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/toolset_guide.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -185,12 +185,6 @@
                             <entry><literal>foreign-key</literal></entry>
                             <entry><literal>foreign_key_name</literal></entry>
                             <entry>
-                                                                specifies the name of the foreign key constraint generated
-                                for an association, for a <literal>&lt;one-to-one&gt;</literal>, 
-                                <literal>&lt;many-to-one&gt;</literal>, <literal>&lt;key&gt;</literal>, 
-                                or <literal>&lt;many-to-many&gt;</literal> mapping element. Note that
-                                <literal>inverse="true"</literal> sides will not be considered
-                                by <literal>SchemaExport</literal>.
                                 指明一个外键的名字,它是为关联生成的,或者<literal>&lt;one-to-one&gt;</literal>,<literal>&lt;many-to-one&gt;</literal>, <literal>&lt;key&gt;</literal>, 或者<literal>&lt;many-to-many&gt;</literal>映射元素。注意<literal>inverse="true"</literal>在<literal>SchemaExport</literal>时会被忽略。
 
                             </entry>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/transactions.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/transactions.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/transactions.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="transactions" revision="2">
+<chapter id="transactions" revision="2">
 	<title>事务和并发</title>
 	<para>
 			Hibernate的事务和并发控制很容易掌握。Hibernate直接使用JDBC连接和JTA资源,不添加任何附加锁定

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/tutorial.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/tutorial.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/tutorial.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="tutorial">
+<chapter id="tutorial">
     <title>
 		Hibernate入门
 	</title>

Modified: core/trunk/documentation/manual/zh-CN/src/main/docbook/content/xml.xml
===================================================================
--- core/trunk/documentation/manual/zh-CN/src/main/docbook/content/xml.xml	2007-10-26 00:48:48 UTC (rev 14136)
+++ core/trunk/documentation/manual/zh-CN/src/main/docbook/content/xml.xml	2007-10-26 00:57:21 UTC (rev 14137)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter id="xml">
+<chapter id="xml">
     <title>XML映射</title>
     <para><emphasis>
         注意这是Hibernate 3.0的一个实验性的特性。这一特性仍在积极开发中。




More information about the hibernate-commits mailing list