[jboss-cvs] JBossAS SVN: r97060 - projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 26 23:13:00 EST 2009
Author: xhuang at jboss.com
Date: 2009-11-26 23:12:59 -0500 (Thu, 26 Nov 2009)
New Revision: 97060
Modified:
projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_weblog.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/filters.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/xml.po
Log:
update
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po 2009-11-27 03:48:07 UTC (rev 97059)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po 2009-11-27 04:12:59 UTC (rev 97060)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-09-15 07:03+0000\n"
-"PO-Revision-Date: 2009-11-20 18:35+1000\n"
+"PO-Revision-Date: 2009-11-27 13:54+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -162,15 +162,15 @@
#. Tag: programlisting
#: example_parentchild.xml:137
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/>]]>"
-msgstr "<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/>"
+msgstr "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/>]]>"
#. Tag: para
#: example_parentchild.xml:139
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You also need to add the <literal>parent</literal> property to the <literal>Child</literal> class."
-msgstr "ï¼æ们è¿éè¦ä¸ºç±» <literal>Child</literal> æ·»å <literal>parent</literal> å±æ§ï¼"
+msgstr "ä½ è¿éè¦ä¸ºç±» <literal>Child</literal> æ·»å <literal>parent</literal> å±æ§ã"
#. Tag: para
#: example_parentchild.xml:143
@@ -336,7 +336,7 @@
#. Tag: programlisting
#: example_parentchild.xml:202
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
"Child c = (Child) p.getChildren().iterator().next();\n"
@@ -344,11 +344,11 @@
"c.setParent(null);\n"
"session.flush();]]>"
msgstr ""
-"Parent p = (Parent) session.load(Parent.class, pid);\n"
+"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
"Child c = (Child) p.getChildren().iterator().next();\n"
"p.getChildren().remove(c);\n"
"c.setParent(null);\n"
-"session.flush();"
+"session.flush();]]>"
#. Tag: para
#: example_parentchild.xml:204
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_weblog.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_weblog.po 2009-11-27 03:48:07 UTC (rev 97059)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_weblog.po 2009-11-27 04:12:59 UTC (rev 97060)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-09-15 07:03+0000\n"
-"PO-Revision-Date: 2009-11-20 17:35+1000\n"
+"PO-Revision-Date: 2009-11-27 13:54+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@
#: example_weblog.xml:29
#, no-c-format
msgid "Example: Weblog Application"
-msgstr "示ä¾ï¼Weblog åºç¨ç¨åº"
+msgstr "示ä¾ï¼Weblog åºç¨ç¨åº "
#. Tag: title
#: example_weblog.xml:32
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/filters.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/filters.po 2009-11-27 03:48:07 UTC (rev 97059)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/filters.po 2009-11-27 04:12:59 UTC (rev 97060)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-09-15 07:03+0000\n"
-"PO-Revision-Date: 2007-02-26 10:59+1000\n"
+"PO-Revision-Date: 2009-11-27 13:53+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -22,17 +22,9 @@
#. Tag: para
#: filters.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate3 provides an innovative new approach to handling data with "
-"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
-"named, parameterized filter that can be enabled or disabled for a particular "
-"Hibernate session."
-msgstr ""
-"Hibernate3 æä¾äºä¸ç§åæ°çæ¹å¼æ¥å¤çå
·æâæ¾æ§ï¼visibilityï¼âè§åçæ°æ®ï¼é£å°±"
-"æ¯ä½¿ç¨<emphasis>Hibernate filter</emphasis>ã<emphasis>Hibernate filter</"
-"emphasis> æ¯å
¨å±ææçãå
·æååãå¯ä»¥å¸¦åæ°çè¿æ»¤å¨ï¼ 对äºæ个ç¹å®ç "
-"Hibernate session æ¨å¯ä»¥éæ©æ¯å¦å¯ç¨ï¼æç¦ç¨ï¼æ个è¿æ»¤å¨ã"
+#, no-c-format
+msgid "Hibernate3 provides an innovative new approach to handling data with \"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, named, parameterized filter that can be enabled or disabled for a particular Hibernate session."
+msgstr "Hibernate3 æä¾äºä¸ç§åæ°çæ¹å¼æ¥å¤çå
·æâæ¾æ§ï¼visibilityï¼âè§åçæ°æ®ï¼é£å°±æ¯ä½¿ç¨<emphasis>Hibernate è¿æ»¤å¨</emphasis>ã<emphasis>Hibernate è¿æ»¤å¨</emphasis>æ¯å
¨å±ææçãå
·æååãå¯ä»¥å¸¦åæ°çè¿æ»¤å¨ï¼å¯¹äºæ个ç¹å®ç Hibernate session æ¨å¯ä»¥éæ©æ¯å¦å¯ç¨ï¼æç¦ç¨ï¼æ个è¿æ»¤å¨ã"
#. Tag: title
#: filters.xml:38
@@ -42,149 +34,99 @@
#. Tag: para
#: filters.xml:40
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate3 has the ability to pre-define filter criteria and attach those "
-"filters at both a class level and a collection level. A filter criteria "
-"allows you to define a restriction clause similar to the existing \"where\" "
-"attribute available on the class and various collection elements. These "
-"filter conditions, however, can be parameterized. The application can then "
-"decide at runtime whether certain filters should be enabled and what their "
-"parameter values should be. Filters can be used like database views, but "
-"they are parameterized inside the application."
-msgstr ""
-"Hibernate3 æ°å¢äºå¯¹æ个类æè
éå使ç¨é¢å
å®ä¹çè¿æ»¤å¨æ¡ä»¶ï¼filter criteriaï¼"
-"çåè½ãè¿æ»¤å¨æ¡ä»¶ç¸å½äºå®ä¹ä¸ä¸ª é常类似äºç±»ååç§éåä¸çâwhereâå±æ§ç约æ"
-"åå¥ï¼ä½æ¯è¿æ»¤å¨æ¡ä»¶å¯ä»¥å¸¦åæ°ã åºç¨ç¨åºå¯ä»¥å¨è¿è¡æ¶å³å®æ¯å¦å¯ç¨ç»å®çè¿æ»¤"
-"å¨ï¼ä»¥å使ç¨ä»ä¹æ ·çåæ°å¼ãè¿æ»¤å¨çç¨æ³å¾åæ°æ®åºè§å¾ï¼åªä¸è¿æ¯å¨åºç¨ç¨åºä¸"
-"ç¡®å®ä½¿ç¨ä»ä¹æ ·çåæ°çã"
+#, no-c-format
+msgid "Hibernate3 has the ability to pre-define filter criteria and attach those filters at both a class level and a collection level. A filter criteria allows you to define a restriction clause similar to the existing \"where\" attribute available on the class and various collection elements. These filter conditions, however, can be parameterized. The application can then decide at runtime whether certain filters should be enabled and what their parameter values should be. Filters can be used like database views, but they are parameterized inside the application."
+msgstr "Hibernate3 æ°å¢äºå¯¹æ个类æè
éå使ç¨é¢å
å®ä¹çè¿æ»¤å¨æ¡ä»¶ï¼filter criteriaï¼çåè½ãè¿æ»¤å¨æ¡ä»¶ç¸å½äºå®ä¹ä¸ä¸ª é常类似äºç±»ååç§éåä¸çâwhereâå±æ§ç约æåå¥ï¼ä½æ¯è¿æ»¤å¨æ¡ä»¶å¯ä»¥å¸¦åæ°ã åºç¨ç¨åºå¯ä»¥å¨è¿è¡æ¶å³å®æ¯å¦å¯ç¨ç»å®çè¿æ»¤å¨ï¼ä»¥å使ç¨ä»ä¹æ ·çåæ°å¼ãè¿æ»¤å¨çç¨æ³å¾åæ°æ®åºè§å¾ï¼åªä¸è¿æ¯å¨åºç¨ç¨åºä¸ç¡®å®ä½¿ç¨ä»ä¹æ ·çåæ°çã "
#. Tag: para
#: filters.xml:50
#, no-c-format
-msgid ""
-"In order to use filters, they must first be defined and then attached to the "
-"appropriate mapping elements. To define a filter, use the <literal><"
-"filter-def/></literal> element within a <literal><hibernate-mapping/"
-"></literal> element:"
-msgstr ""
-"è¦ä½¿ç¨è¿æ»¤å¨ï¼å¿
é¡»é¦å
å¨ç¸åºçæ å°èç¹ä¸å®ä¹ãèå®ä¹ä¸ä¸ªè¿æ»¤å¨ï¼è¦ç¨å°ä½äº "
-"<literal><hibernate-mapping/></literal> èç¹ä¹å
ç <literal><filter-"
-"def/></literal> èç¹ï¼"
+msgid "In order to use filters, they must first be defined and then attached to the appropriate mapping elements. To define a filter, use the <literal><filter-def/></literal> element within a <literal><hibernate-mapping/></literal> element:"
+msgstr "è¦ä½¿ç¨è¿æ»¤å¨ï¼å¿
é¡»é¦å
å¨ç¸åºçæ å°èç¹ä¸å®ä¹ãèå®ä¹ä¸ä¸ªè¿æ»¤å¨ï¼è¦ç¨å°ä½äº <literal><hibernate-mapping/></literal> èç¹ä¹å
ç <literal><filter-def/></literal> èç¹ï¼"
#. Tag: programlisting
#: filters.xml:56
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<filter-def name=\"myFilter\">\n"
" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
"</filter-def>]]>"
msgstr ""
-"<filter-def name=\"myFilter\">\n"
-" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
-"</filter-def>"
+"<![CDATA[<filter-def name=\"myFilter\">\n"
+" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+"</filter-def>]]>"
#. Tag: para
#: filters.xml:58
-#, fuzzy, no-c-format
+#, no-c-format
msgid "This filter can then be attached to a class:"
-msgstr "å®ä¹å¥½ä¹åï¼å°±å¯ä»¥å¨æ个类ä¸ä½¿ç¨è¿ä¸ªè¿æ»¤å¨ï¼"
+msgstr "å®ä¹å¥½ä¹åï¼å°±å¯ä»¥å¨æ个类ä¸ä½¿ç¨è¿ä¸ªè¿æ»¤å¨ï¼ "
#. Tag: programlisting
#: filters.xml:62
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<class name=\"myClass\" ...>\n"
" ...\n"
-" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
-"\"/>\n"
+" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
"</class>]]>"
msgstr ""
-"<class name=\"myClass\" ...>\n"
+"<![CDATA[<class name=\"myClass\" ...>\n"
" ...\n"
-" <filter name=\"myFilter\" condition=\":myFilterParam = "
-"MY_FILTERED_COLUMN\"/>\n"
-"</class>"
+" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
+"</class>]]>"
#. Tag: para
#: filters.xml:64
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Or, to a collection:"
-msgstr "ä¹å¯ä»¥å¨æ个éå使ç¨å®ï¼"
+msgstr "æè
ä¹å¯ä»¥å¨æ个éå使ç¨å®ï¼"
#. Tag: programlisting
#: filters.xml:68
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<set ...>\n"
-" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
-"\"/>\n"
+" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
"</set>]]>"
msgstr ""
-"<set ...>\n"
-" <filter name=\"myFilter\" condition=\":myFilterParam = "
-"MY_FILTERED_COLUMN\"/>\n"
-"</set>"
+"<![CDATA[<set ...>\n"
+" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
+"</set>]]>"
#. Tag: para
#: filters.xml:70
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Or, to both or multiples of each at the same time."
-msgstr ""
-"å¯ä»¥å¨å¤ä¸ªç±»æéåä¸ä½¿ç¨æ个è¿æ»¤å¨ï¼æ个类æè
éåä¸ä¹å¯ä»¥ä½¿ç¨å¤ä¸ªè¿æ»¤å¨ã"
+msgstr "æè
å¨åæ¶å¯ä»¥ä½¿ç¨å¤ä¸ªè¿æ»¤å¨ã"
#. Tag: para
#: filters.xml:74
-#, fuzzy, no-c-format
-msgid ""
-"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
-"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
-"literal>, and <literal>disableFilter(String filterName)</literal>. By "
-"default, filters are <emphasis>not</emphasis> enabled for a given session. "
-"Filters must be enabled through use of the <literal>Session.enableFilter()</"
-"literal> method, which returns an instance of the <literal>Filter</literal> "
-"interface. If you used the simple filter defined above, it would look like "
-"this:"
-msgstr ""
-"<literal>Session</literal> 对象ä¸ä¼ç¨å°çæ¹æ³æï¼<literal>enableFilter"
-"(String filterName)</literal>ï¼<literal>getEnabledFilter(String filterName)</"
-"literal>ï¼å <literal>disableFilter(String filterName)</literal>ãSession ä¸"
-"é»è®¤æ¯<emphasis>ä¸</emphasis>å¯ç¨è¿æ»¤å¨çï¼å¿
é¡»éè¿ <literal>Session."
-"enabledFilter()</literal> æ¹æ³æ¾å¼çå¯ç¨ã 该æ¹æ³è¿å被å¯ç¨ç "
-"<literal>Filter</literal> çå®ä¾ã以ä¸æå®ä¹çè¿æ»¤å¨ä¸ºä¾ï¼"
+#, no-c-format
+msgid "The methods on <literal>Session</literal> are: <literal>enableFilter(String filterName)</literal>, <literal>getEnabledFilter(String filterName)</literal>, and <literal>disableFilter(String filterName)</literal>. By default, filters are <emphasis>not</emphasis> enabled for a given session. Filters must be enabled through use of the <literal>Session.enableFilter()</literal> method, which returns an instance of the <literal>Filter</literal> interface. If you used the simple filter defined above, it would look like this:"
+msgstr "<literal>Session</literal> 对象ä¸ä¼ç¨å°çæ¹æ³æï¼<literal>enableFilter(String filterName)</literal>ï¼<literal>getEnabledFilter(String filterName)</literal>ï¼å <literal>disableFilter(String filterName)</literal>ãSession ä¸é»è®¤æ¯<emphasis>ä¸</emphasis>å¯ç¨è¿æ»¤å¨çï¼å¿
é¡»éè¿ <literal>Session.enabledFilter()</literal> æ¹æ³æ¾å¼çå¯ç¨ã该æ¹æ³è¿å被å¯ç¨ç <literal>Filter</literal> çå®ä¾ã以ä¸æå®ä¹çè¿æ»¤å¨ä¸ºä¾ï¼"
#. Tag: programlisting
#: filters.xml:83
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
-"\"some-value\");]]>"
-msgstr ""
-"session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-"
-"value\");"
+#, no-c-format
+msgid "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-value\");]]>"
+msgstr "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-value\");]]>"
#. Tag: para
#: filters.xml:85
-#, fuzzy, no-c-format
-msgid ""
-"Methods on the org.hibernate.Filter interface do allow the method-chaining "
-"common to much of Hibernate."
-msgstr ""
-"注æï¼org.hibernate.Filter çæ¹æ³å
许é¾å¼æ¹æ³è°ç¨ãï¼ç±»ä¼¼ä¸é¢ä¾åä¸å¯ç¨ "
-"Filter ä¹åè®¾å® Filter åæ°è¿ä¸ªâæ¹æ³é¾âï¼ Hibernate çå
¶ä»é¨åä¹å¤§å¤æè¿ä¸ªç¹"
-"æ§ã"
+#, no-c-format
+msgid "Methods on the org.hibernate.Filter interface do allow the method-chaining common to much of Hibernate."
+msgstr "注æï¼org.hibernate.Filter çæ¹æ³å
许é¾å¼æ¹æ³è°ç¨ãï¼ç±»ä¼¼ä¸é¢ä¾åä¸å¯ç¨ Filter ä¹åè®¾å® Filter åæ°è¿ä¸ªâæ¹æ³é¾âï¼ Hibernate çå
¶ä»é¨åä¹å¤§å¤æè¿ä¸ªç¹æ§ã "
#. Tag: para
#: filters.xml:89
-#, fuzzy, no-c-format
-msgid ""
-"The following is a full example, using temporal data with an effective "
-"record date pattern:"
-msgstr "ä¸é¢æ¯ä¸ä¸ªæ¯è¾å®æ´çä¾åï¼ä½¿ç¨äºè®°å½çææ¥æ模å¼è¿æ»¤ææ¶æçæ°æ®ï¼"
+#, no-c-format
+msgid "The following is a full example, using temporal data with an effective record date pattern:"
+msgstr "ä¸é¢æ¯ä¸ä¸ªæ¯è¾å®æ´çä¾åï¼ä½¿ç¨äºè®°å½çææ¥æ模å¼è¿æ»¤ææ¶æçæ°æ®ï¼ "
#. Tag: programlisting
#: filters.xml:93
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<filter-def name=\"effectiveDate\">\n"
" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
@@ -192,16 +134,12 @@
"\n"
"<class name=\"Employee\" ...>\n"
"...\n"
-" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/"
-">\n"
-" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt"
-"\"/>\n"
-" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/"
-">\n"
+" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/>\n"
+" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt\"/>\n"
+" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/>\n"
"...\n"
" <!--\n"
-" Note that this assumes non-terminal records have an eff_end_dt set "
-"to\n"
+" Note that this assumes non-terminal records have an eff_end_dt set to\n"
" a max db date for simplicity-sake\n"
" -->\n"
" <filter name=\"effectiveDate\"\n"
@@ -214,135 +152,93 @@
" <key column=\"dept_id\"/>\n"
" <one-to-many class=\"Employee\"/>\n"
" <filter name=\"effectiveDate\"\n"
-" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
-">\n"
+" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
" </set>\n"
"</class>]]>"
msgstr ""
-"<filter-def name=\"effectiveDate\">\n"
-" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
-"</filter-def>\n"
+"<![CDATA[<filter-def name=\"effectiveDate\">\n"
+" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+"</filter-def>\n"
"\n"
-"<class name=\"Employee\" ...>\n"
+"<class name=\"Employee\" ...>\n"
"...\n"
-" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
-"\"/>\n"
-" <property name=\"effectiveStartDate\" type=\"date\" column="
-"\"eff_start_dt\"/>\n"
-" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
-"\"/>\n"
+" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/>\n"
+" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt\"/>\n"
+" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/>\n"
"...\n"
-" <!--\n"
-" Note that this assumes non-terminal records have an eff_end_dt set "
-"to\n"
+" <!--\n"
+" Note that this assumes non-terminal records have an eff_end_dt set to\n"
" a max db date for simplicity-sake\n"
-" -->\n"
-" <filter name=\"effectiveDate\"\n"
-" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
-">\n"
-"</class>\n"
+" -->\n"
+" <filter name=\"effectiveDate\"\n"
+" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
+"</class>\n"
"\n"
-"<class name=\"Department\" ...>\n"
+"<class name=\"Department\" ...>\n"
"...\n"
-" <set name=\"employees\" lazy=\"true\">\n"
-" <key column=\"dept_id\"/>\n"
-" <one-to-many class=\"Employee\"/>\n"
-" <filter name=\"effectiveDate\"\n"
-" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
-">\n"
-" </set>\n"
-"</class>"
+" <set name=\"employees\" lazy=\"true\">\n"
+" <key column=\"dept_id\"/>\n"
+" <one-to-many class=\"Employee\"/>\n"
+" <filter name=\"effectiveDate\"\n"
+" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
+" </set>\n"
+"</class>]]>"
#. Tag: para
#: filters.xml:95
-#, fuzzy, no-c-format
-msgid ""
-"In order to ensure that you are provided with currently effective records, "
-"enable the filter on the session prior to retrieving employee data:"
-msgstr ""
-"å®ä¹å¥½åï¼å¦ææ³è¦ä¿è¯ååçé½æ¯ç®åå¤äºçææçè®°å½ï¼åªéå¨è·åéåæ°æ®çæ"
-"ä½ä¹åå
å¼å¯è¿æ»¤å¨å³å¯ï¼"
+#, no-c-format
+msgid "In order to ensure that you are provided with currently effective records, enable the filter on the session prior to retrieving employee data:"
+msgstr "å®ä¹å¥½åï¼å¦ææ³è¦ä¿è¯ååçé½æ¯ç®åå¤äºçææçè®°å½ï¼åªéå¨è·åéåæ°æ®çæä½ä¹åå
å¼å¯è¿æ»¤å¨å³å¯ï¼ "
#. Tag: programlisting
#: filters.xml:100
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[Session session = ...;\n"
-"session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
-"());\n"
-"List results = session.createQuery(\"from Employee as e where e.salary > :"
-"targetSalary\")\n"
+"session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date());\n"
+"List results = session.createQuery(\"from Employee as e where e.salary > :targetSalary\")\n"
" .setLong(\"targetSalary\", new Long(1000000))\n"
" .list();\n"
"]]>"
msgstr ""
-"Session session = ...;\n"
-"session.enabledFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
-"());\n"
-"List results = session.createQuery(\"from Employee as e where e.salary > :"
-"targetSalary\")\n"
+"<![CDATA[Session session = ...;\n"
+"session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date());\n"
+"List results = session.createQuery(\"from Employee as e where e.salary > :targetSalary\")\n"
" .setLong(\"targetSalary\", new Long(1000000))\n"
-" .list();"
+" .list();\n"
+"]]>"
#. Tag: para
#: filters.xml:102
-#, fuzzy, no-c-format
-msgid ""
-"Even though a salary constraint was mentioned explicitly on the results in "
-"the above HQL, because of the enabled filter, the query will return only "
-"currently active employees who have a salary greater than one million "
-"dollars."
-msgstr ""
-"å¨ä¸é¢ç HQL ä¸ï¼è½ç¶æ们ä»
ä»
æ¾å¼ç使ç¨äºä¸ä¸ªèªæ°´æ¡ä»¶ï¼ä½å 为å¯ç¨äºè¿æ»¤å¨ï¼æ¥"
-"询å°ä»
è¿åé£äºç®åéç¨å
³ç³»å¤äºçææçï¼å¹¶ä¸èªæ°´é«äºä¸ç¾ä¸ç¾å
çéåçæ°æ®ã"
+#, no-c-format
+msgid "Even though a salary constraint was mentioned explicitly on the results in the above HQL, because of the enabled filter, the query will return only currently active employees who have a salary greater than one million dollars."
+msgstr "å¨ä¸é¢ç HQL ä¸ï¼è½ç¶æ们ä»
ä»
æ¾å¼ç使ç¨äºä¸ä¸ªèªæ°´æ¡ä»¶ï¼ä½å 为å¯ç¨äºè¿æ»¤å¨ï¼æ¥è¯¢å°ä»
è¿åé£äºç®åéç¨å
³ç³»å¤äºçææçï¼å¹¶ä¸èªæ°´é«äºä¸ç¾ä¸ç¾å
çéåçæ°æ®ã "
#. Tag: para
#: filters.xml:108
-#, fuzzy, no-c-format
-msgid ""
-"If you want to use filters with outer joining, either through HQL or load "
-"fetching, be careful of the direction of the condition expression. It is "
-"safest to set this up for left outer joining. Place the parameter first "
-"followed by the column name(s) after the operator."
-msgstr ""
-"注æï¼å¦æä½ æç®å¨ä½¿ç¨å¤è¿æ¥ï¼æè
éè¿ HQL æ load fetchingï¼çåæ¶ä½¿ç¨è¿æ»¤"
-"å¨ï¼è¦æ³¨ææ¡ä»¶è¡¨è¾¾å¼çæ¹åï¼å·¦è¿æ¯å³ï¼ãæå®å
¨çæ¹å¼æ¯ä½¿ç¨å·¦å¤è¿æ¥ï¼left "
-"outer joiningï¼ã并ä¸é常æ¥è¯´ï¼å
ååæ°ï¼ç¶åæ¯æä½ç¬¦ï¼æååæ°æ®åºå段åã"
+#, no-c-format
+msgid "If you want to use filters with outer joining, either through HQL or load fetching, be careful of the direction of the condition expression. It is safest to set this up for left outer joining. Place the parameter first followed by the column name(s) after the operator."
+msgstr "注æï¼å¦æä½ æç®å¨ä½¿ç¨å¤è¿æ¥ï¼æè
éè¿ HQL æ load fetchingï¼çåæ¶ä½¿ç¨è¿æ»¤å¨ï¼è¦æ³¨ææ¡ä»¶è¡¨è¾¾å¼çæ¹åï¼å·¦è¿æ¯å³ï¼ãæå®å
¨çæ¹å¼æ¯ä½¿ç¨å·¦å¤è¿æ¥ï¼left outer joiningï¼ã并ä¸é常æ¥è¯´ï¼å
ååæ°ï¼ç¶åæ¯æä½ç¬¦ï¼æååæ°æ®åºå段åã"
#. Tag: para
#: filters.xml:115
-#, fuzzy, no-c-format
-msgid ""
-"After being defined, a filter might be attached to multiple entities and/or "
-"collections each with its own condition. This can be problematic when the "
-"conditions are the same each time. Using <literal><filter-def/></"
-"literal> allows you to definine a default condition, either as an attribute "
-"or CDATA:"
-msgstr ""
-"å¨ Filter å®ä¹ä¹å,å®å¯è½è¢«éå å°å¤ä¸ªå®ä½å/æéåç±»,æ¯ä¸ªé½æèªå·±çæ¡ä»¶ãåè¥"
-"è¿äºæ¡ä»¶é½æ¯ä¸æ ·çï¼æ¯æ¬¡é½è¦å®ä¹å°±æ¾å¾å¾ç¹çãå æ¤ï¼<literal><filter-def/"
-"></literal> 被ç¨æ¥å®ä¹ä¸ä¸ªé»è®¤æ¡ä»¶ï¼å®å¯è½ä½ä¸ºå±æ§æè
CDATA åºç°ï¼"
+#, no-c-format
+msgid "After being defined, a filter might be attached to multiple entities and/or collections each with its own condition. This can be problematic when the conditions are the same each time. Using <literal><filter-def/></literal> allows you to definine a default condition, either as an attribute or CDATA:"
+msgstr "å¨ Filter å®ä¹ä¹å,å®å¯è½è¢«éå å°å¤ä¸ªå®ä½å/æéåç±»,æ¯ä¸ªé½æèªå·±çæ¡ä»¶ãåè¥è¿äºæ¡ä»¶é½æ¯ä¸æ ·çï¼æ¯æ¬¡é½è¦å®ä¹å°±æ¾å¾å¾ç¹çãå æ¤ï¼<literal><filter-def/></literal> 被ç¨æ¥å®ä¹ä¸ä¸ªé»è®¤æ¡ä»¶ï¼å®å¯è½ä½ä¸ºå±æ§æè
CDATA åºç°ï¼ "
#. Tag: programlisting
#: filters.xml:122
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
-"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-"
-"def>\n"
+"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-def>\n"
"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
msgstr ""
-"<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
-"filter-def>\n"
-"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>"
+"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-def>\n"
+"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
#. Tag: para
#: filters.xml:124
-#, fuzzy, no-c-format
-msgid ""
-"This default condition will be used whenever the filter is attached to "
-"something without specifying a condition. This means you can give a specific "
-"condition as part of the attachment of the filter that overrides the default "
-"condition in that particular case."
-msgstr ""
-"å½è¿ä¸ª filter 被éå å°ä»»ä½ç®çå°ï¼èå没ææææ¡ä»¶æ¶ï¼è¿ä¸ªæ¡ä»¶å°±ä¼è¢«ä½¿ç¨ã注"
-"æï¼æ¢å¥è¯è¯´ï¼ä½ å¯ä»¥éè¿ç» filter éå ç¹å«çæ¡ä»¶æ¥éè½½é»è®¤æ¡ä»¶ã"
+#, no-c-format
+msgid "This default condition will be used whenever the filter is attached to something without specifying a condition. This means you can give a specific condition as part of the attachment of the filter that overrides the default condition in that particular case."
+msgstr "å½è¿ä¸ª filter 被éå å°ä»»ä½ç®çå°ï¼èå没ææææ¡ä»¶æ¶ï¼è¿ä¸ªç¼ºçæ¡ä»¶å°±ä¼è¢«ä½¿ç¨ã注æï¼æ¢å¥è¯è¯´ï¼ä½ å¯ä»¥éè¿ç» filter éå ç¹å«çæ¡ä»¶æ¥éè½½é»è®¤æ¡ä»¶ã"
+
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po 2009-11-27 03:48:07 UTC (rev 97059)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po 2009-11-27 04:12:59 UTC (rev 97060)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-09-15 07:03+0000\n"
-"PO-Revision-Date: 2007-02-26 10:59+1000\n"
+"PO-Revision-Date: 2009-11-27 14:11+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -16,64 +16,33 @@
#. Tag: title
#: transactions.xml:29
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Transactions and Concurrency"
-msgstr "äºå¡å并å"
+msgstr "äºå¡å并å "
#. Tag: para
#: transactions.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"The most important point about Hibernate and concurrency control is that it "
-"is easy to understand. Hibernate directly uses JDBC connections and JTA "
-"resources without adding any additional locking behavior. It is recommended "
-"that you spend some time with the JDBC, ANSI, and transaction isolation "
-"specification of your database management system."
-msgstr ""
-"Hibernate çäºå¡å并åæ§å¶å¾å®¹æææ¡ãHibernate ç´æ¥ä½¿ç¨ JDBC è¿æ¥å JTA èµ"
-"æºï¼ä¸æ·»å ä»»ä½éå éå®è¡ä¸ºãæ们强çæ¨èä½ è±ç¹æ¶é´äºè§£ JDBC ç¼ç¨ï¼ANSI SQL æ¥"
-"询è¯è¨åä½ ä½¿ç¨çæ°æ®åºç³»ç»çäºå¡é离è§èã"
+#, no-c-format
+msgid "The most important point about Hibernate and concurrency control is that it is easy to understand. Hibernate directly uses JDBC connections and JTA resources without adding any additional locking behavior. It is recommended that you spend some time with the JDBC, ANSI, and transaction isolation specification of your database management system."
+msgstr "Hibernate çäºå¡å并åæ§å¶å¾å®¹æææ¡ãHibernate ç´æ¥ä½¿ç¨ JDBC è¿æ¥å JTA èµæºï¼ä¸æ·»å ä»»ä½éå éå®è¡ä¸ºãæ们强çæ¨èä½ è±ç¹æ¶é´äºè§£ JDBC ç¼ç¨ï¼ANSI SQL æ¥è¯¢è¯è¨åä½ ä½¿ç¨çæ°æ®åºç³»ç»çäºå¡é离è§èã "
#. Tag: para
#: transactions.xml:38
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate does not lock objects in memory. Your application can expect the "
-"behavior as defined by the isolation level of your database transactions. "
-"Through <literal>Session</literal>, which is also a transaction-scoped "
-"cache, Hibernate provides repeatable reads for lookup by identifier and "
-"entity queries and not reporting queries that return scalar values."
-msgstr ""
-"Hibernate ä¸éå®å
åä¸ç对象ãä½ çåºç¨ç¨åºä¼æç
§ä½ çæ°æ®åºäºå¡çé离级å«è§å®"
-"çé£æ ·è¿ä½ã幸äºæäº <literal>Session</literal>ï¼ä½¿å¾ Hibernate éè¿æ è¯ç¬¦æ¥"
-"æ¾ï¼åå®ä½æ¥è¯¢ï¼ä¸æ¯è¿åæ éå¼çæ¥è¡¨æ¥è¯¢ï¼æä¾äºå¯éå¤ç读åï¼Repeatable "
-"readsï¼åè½ï¼<literal>Session</literal> åæ¶ä¹æ¯äºå¡èå´å
çç¼åï¼cacheï¼ã"
+#, no-c-format
+msgid "Hibernate does not lock objects in memory. Your application can expect the behavior as defined by the isolation level of your database transactions. Through <literal>Session</literal>, which is also a transaction-scoped cache, Hibernate provides repeatable reads for lookup by identifier and entity queries and not reporting queries that return scalar values."
+msgstr "Hibernate ä¸éå®å
åä¸ç对象ãä½ çåºç¨ç¨åºä¼æç
§ä½ çæ°æ®åºäºå¡çé离级å«è§å®çé£æ ·è¿ä½ã幸äºæäº <literal>Session</literal>ï¼ä½¿å¾ Hibernate éè¿æ è¯ç¬¦æ¥æ¾ï¼åå®ä½æ¥è¯¢ï¼ä¸æ¯è¿åæ éå¼çæ¥è¡¨æ¥è¯¢ï¼æä¾äºå¯éå¤ç读åï¼Repeatable readsï¼åè½ï¼<literal>Session</literal> åæ¶ä¹æ¯äºå¡èå´å
çç¼åï¼cacheï¼ã "
#. Tag: para
#: transactions.xml:46
-#, fuzzy, no-c-format
-msgid ""
-"In addition to versioning for automatic optimistic concurrency control, "
-"Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> "
-"syntax, a (minor) API for pessimistic locking of rows. Optimistic "
-"concurrency control and this API are discussed later in this chapter."
-msgstr ""
-"é¤äºå¯¹èªå¨ä¹è§å¹¶åæ§å¶æä¾çæ¬ç®¡çï¼é对è¡çº§æ²è§éå®ï¼Hibernate ä¹æä¾äºè¾
å©"
-"çï¼è¾å°çï¼APIï¼å®ä½¿ç¨äº <literal>SELECT FOR UPDATE</literal> ç SQL è¯æ³ã"
-"æ¬ç« åé¢ä¼è®¨è®ºä¹è§å¹¶åæ§å¶åè¿ä¸ªAPIã"
+#, no-c-format
+msgid "In addition to versioning for automatic optimistic concurrency control, Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> syntax, a (minor) API for pessimistic locking of rows. Optimistic concurrency control and this API are discussed later in this chapter."
+msgstr "é¤äºå¯¹èªå¨ä¹è§å¹¶åæ§å¶æä¾çæ¬ç®¡çï¼é对è¡çº§æ²è§éå®ï¼Hibernate ä¹æä¾äºè¾
å©çï¼è¾å°çï¼APIï¼å®ä½¿ç¨äº <literal>SELECT FOR UPDATE</literal> ç SQL è¯æ³ãæ¬ç« åé¢ä¼è®¨è®ºä¹è§å¹¶åæ§å¶åè¿ä¸ªAPIã "
#. Tag: para
#: transactions.xml:53
-#, fuzzy, no-c-format
-msgid ""
-"The discussion of concurrency control in Hibernate begins with the "
-"granularity of <literal>Configuration</literal>, <literal>SessionFactory</"
-"literal>, and <literal>Session</literal>, as well as database transactions "
-"and long conversations."
-msgstr ""
-"æä»¬ä» <literal>Configuration</literal>å±ã<literal>SessionFactory</literal> "
-"å±ï¼å <literal>Session</literal> å±å¼å§è®¨è®º Hibernate ç并è¡æ§å¶ãæ°æ®åºäºå¡"
-"ååºç¨ç¨åºçé¿äºå¡ã"
+#, no-c-format
+msgid "The discussion of concurrency control in Hibernate begins with the granularity of <literal>Configuration</literal>, <literal>SessionFactory</literal>, and <literal>Session</literal>, as well as database transactions and long conversations."
+msgstr "æä»¬ä» <literal>Configuration</literal>å±ã<literal>SessionFactory</literal> å±ï¼å <literal>Session</literal> å±å¼å§è®¨è®º Hibernate ç并è¡æ§å¶ãæ°æ®åºäºå¡ååºç¨ç¨åºçé¿äºå¡ã "
#. Tag: title
#: transactions.xml:60
@@ -83,61 +52,27 @@
#. Tag: para
#: transactions.xml:62
-#, fuzzy, no-c-format
-msgid ""
-"A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
-"object, intended to be shared by all application threads. It is created "
-"once, usually on application startup, from a <literal>Configuration</"
-"literal> instance."
-msgstr ""
-"<literal>SessionFactory</literal> 对象çå建代价å¾æè´µï¼å®æ¯çº¿ç¨å®å
¨ç对象ï¼"
-"å®ä¸ºææçåºç¨ç¨åºçº¿ç¨æå
±äº«ãå®åªå建ä¸æ¬¡ï¼é常æ¯å¨åºç¨ç¨åºå¯å¨çæ¶åï¼ç±ä¸"
-"个 <literal>Configuraion</literal> çå®ä¾æ¥å建ã"
+#, no-c-format
+msgid "A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe object, intended to be shared by all application threads. It is created once, usually on application startup, from a <literal>Configuration</literal> instance."
+msgstr "<literal>SessionFactory</literal> 对象çå建代价å¾æè´µï¼å®æ¯çº¿ç¨å®å
¨ç对象ï¼å®ä¸ºææçåºç¨ç¨åºçº¿ç¨æå
±äº«ãå®åªå建ä¸æ¬¡ï¼é常æ¯å¨åºç¨ç¨åºå¯å¨çæ¶åï¼ç±ä¸ä¸ª <literal>Configuraion</literal> çå®ä¾æ¥å建ã "
#. Tag: para
#: transactions.xml:68
-#, fuzzy, no-c-format
-msgid ""
-"A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
-"should be used once and then discarded for: a single request, a conversation "
-"or a single unit of work. A <literal>Session</literal> will not obtain a "
-"JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, "
-"unless it is needed. It will not consume any resources until used."
-msgstr ""
-"<literal>Session</literal> 对象çå建代价æ¯è¾å°ï¼æ¯é线ç¨å®å
¨çï¼å¯¹äºå个请"
-"æ±ï¼å个ä¼è¯ãå个ç å·¥ä½åå
èè¨ï¼å®åªè¢«ä½¿ç¨ä¸æ¬¡ï¼ç¶å就丢å¼ãåªæå¨éè¦çæ¶"
-"åï¼ä¸ä¸ª <literal>Session</literal> 对象 æä¼è·åä¸ä¸ª JDBC ç "
-"<literal>Connection</literal>ï¼æä¸ä¸ª<literal>Datasource</literal>ï¼å¯¹è±¡ï¼å "
-"æ¤åè¥ä¸ä½¿ç¨çæ¶åå®ä¸æ¶è´¹ä»»ä½èµæºã"
+#, no-c-format
+msgid "A <literal>Session</literal> is an inexpensive, non-threadsafe object that should be used once and then discarded for: a single request, a conversation or a single unit of work. A <literal>Session</literal> will not obtain a JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, unless it is needed. It will not consume any resources until used."
+msgstr "<literal>Session</literal> 对象çå建代价æ¯è¾å°ï¼æ¯é线ç¨å®å
¨çï¼å¯¹äºå个请æ±ï¼å个ä¼è¯ãå个ç å·¥ä½åå
èè¨ï¼å®åªè¢«ä½¿ç¨ä¸æ¬¡ï¼ç¶å就丢å¼ãåªæå¨éè¦çæ¶åï¼ä¸ä¸ª <literal>Session</literal> 对象 æä¼è·åä¸ä¸ª JDBC ç <literal>Connection</literal>ï¼æä¸ä¸ª<literal>Datasource</literal>ï¼å¯¹è±¡ï¼å æ¤åè¥ä¸ä½¿ç¨çæ¶åå®ä¸æ¶è´¹ä»»ä½èµæºã "
#. Tag: para
#: transactions.xml:76
-#, fuzzy, no-c-format
-msgid ""
-"In order to reduce lock contention in the database, a database transaction "
-"has to be as short as possible. Long database transactions will prevent your "
-"application from scaling to a highly concurrent load. It is not recommended "
-"that you hold a database transaction open during user think time until the "
-"unit of work is complete."
-msgstr ""
-"æ¤å¤æ们è¿è¦èèæ°æ®åºäºå¡ãæ°æ®åºäºå¡åºè¯¥å°½å¯è½ççï¼éä½æ°æ®åºä¸çéäºç¨ã"
-"æ°æ®åºé¿äºå¡ä¼é»æ¢ä½ çåºç¨ç¨åºæ©å±å°é«ç并åè´è½½ãå æ¤ï¼åè¥å¨ç¨æ·æèæé´è®©"
-"æ°æ®åºäºå¡å¼çï¼ç´å°æ´ä¸ªå·¥ä½åå
å®ææå
³éè¿ä¸ªäºå¡ï¼è¿ç»ä¸æ¯ä¸ä¸ªå¥½ç设计ã"
+#, no-c-format
+msgid "In order to reduce lock contention in the database, a database transaction has to be as short as possible. Long database transactions will prevent your application from scaling to a highly concurrent load. It is not recommended that you hold a database transaction open during user think time until the unit of work is complete."
+msgstr "æ¤å¤æ们è¿è¦èèæ°æ®åºäºå¡ãæ°æ®åºäºå¡åºè¯¥å°½å¯è½ççï¼éä½æ°æ®åºä¸çéäºç¨ãæ°æ®åºé¿äºå¡ä¼é»æ¢ä½ çåºç¨ç¨åºæ©å±å°é«ç并åè´è½½ãå æ¤ï¼åè¥å¨ç¨æ·æèæé´è®©æ°æ®åºäºå¡å¼çï¼ç´å°æ´ä¸ªå·¥ä½åå
å®ææå
³éè¿ä¸ªäºå¡ï¼è¿ç»ä¸æ¯ä¸ä¸ªå¥½ç设计ã "
#. Tag: para
#: transactions.xml:84
-#, fuzzy, no-c-format
-msgid ""
-"What is the scope of a unit of work? Can a single Hibernate "
-"<literal>Session</literal> span several database transactions, or is this a "
-"one-to-one relationship of scopes? When should you open and close a "
-"<literal>Session</literal> and how do you demarcate the database transaction "
-"boundaries? These questions are addressed in the following sections."
-msgstr ""
-"ä¸ä¸ªæä½åå
ï¼Unit of workï¼çèå´æ¯å¤å¤§ï¼å个ç Hibernate <literal>Session</"
-"literal> è½è·¨è¶å¤ä¸ªæ°æ®åºäºå¡åï¼è¿æ¯ä¸ä¸ª <literal>Session</literal> çä½ç¨è"
-"å´å¯¹åºä¸ä¸ªæ°æ®åºäºå¡çèå´ï¼åºè¯¥ä½æ¶æå¼ <literal>Session</literal>ï¼ä½æ¶å
³"
-"é <literal>Session</literal>ï¼ä½ åå¦ä½ååæ°æ®åºäºå¡çè¾¹çå¢ï¼"
+#, no-c-format
+msgid "What is the scope of a unit of work? Can a single Hibernate <literal>Session</literal> span several database transactions, or is this a one-to-one relationship of scopes? When should you open and close a <literal>Session</literal> and how do you demarcate the database transaction boundaries? These questions are addressed in the following sections."
+msgstr "ä¸ä¸ªæä½åå
ï¼Unit of workï¼çèå´æ¯å¤å¤§ï¼å个ç Hibernate <literal>Session</literal> è½è·¨è¶å¤ä¸ªæ°æ®åºäºå¡åï¼è¿æ¯ä¸ä¸ª <literal>Session</literal> çä½ç¨èå´å¯¹åºä¸ä¸ªæ°æ®åºäºå¡çèå´ï¼åºè¯¥ä½æ¶æå¼ <literal>Session</literal>ï¼ä½æ¶å
³é <literal>Session</literal>ï¼ä½ åå¦ä½ååæ°æ®åºäºå¡çè¾¹çå¢ï¼æ们å°å¨åç»ç« è解å³è¿äºé®é¢ã"
#. Tag: title
#: transactions.xml:92
@@ -148,134 +83,38 @@
#. Tag: para
#: transactions.xml:94
#, no-c-format
-msgid ""
-"First, let's define a unit of work. A unit of work is a design pattern "
-"described by Martin Fowler as <quote> [maintaining] a list of objects "
-"affected by a business transaction and coordinates the writing out of "
-"changes and the resolution of concurrency problems. </quote><citation>PoEAA</"
-"citation> In other words, its a series of operations we wish to carry out "
-"against the database together. Basically, it is a transaction, though "
-"fulfilling a unit of work will often span multiple physical database "
-"transactions (see <xref linkend=\"transactions-basics-apptx\"/>). So really "
-"we are talking about a more abstract notion of a transaction. The term "
-"\"business transaction\" is also sometimes used in lieu of unit of work."
-msgstr ""
+msgid "First, let's define a unit of work. A unit of work is a design pattern described by Martin Fowler as <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> In other words, its a series of operations we wish to carry out against the database together. Basically, it is a transaction, though fulfilling a unit of work will often span multiple physical database transactions (see <xref linkend=\"transactions-basics-apptx\"/>). So really we are talking about a more abstract notion of a transaction. The term \"business transaction\" is also sometimes used in lieu of unit of work."
+msgstr "é¦å
ï¼è®©æ们å®ä¹ä¸ä¸ªå·¥ä½åå
ï¼unit of workï¼ãå·¥ä½åå
æ¯ä¸ä¸ªè®¾è®¡æ¨¡å¼ï¼Martin Fowler æå®æ述为 <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> æ¢å¥è¯è¯´ï¼å®æ¯æ们å¸æ对æ°æ®åºæ§è¡çä¸ç³»åæä½ãåºæ¬ä¸ï¼å®æ¯ä¸ä¸ªäºå¡ï¼è½ç¶å®æä¸ä¸ªå·¥ä½åå
ç»å¸¸å°è·¨è¶å¤ä¸ªç©çæ°æ®åºäºå¡ï¼è¯·åè <xref linkend=\"transactions-basics-apptx\"/>ï¼ãæ以ï¼å®é
ä¸æ们å¨è®¨è®ºä¸ä¸ªæ´æ½è±¡çäºå¡æ¦å¿µãæ¯è¯ \"business transaction\" ææ¶ä¹åå·¥ä½åå
ä¸èµ·ä½¿ç¨ã"
#. Tag: para
#: transactions.xml:111
-#, fuzzy, no-c-format
-msgid ""
-"Do not use the <emphasis>session-per-operation</emphasis> antipattern: do "
-"not open and close a <literal>Session</literal> for every simple database "
-"call in a single thread. The same is true for database transactions. "
-"Database calls in an application are made using a planned sequence; they are "
-"grouped into atomic units of work. This also means that auto-commit after "
-"every single SQL statement is useless in an application as this mode is "
-"intended for ad-hoc SQL console work. Hibernate disables, or expects the "
-"application server to disable, auto-commit mode immediately. Database "
-"transactions are never optional. All communication with a database has to "
-"occur inside a transaction. Auto-commit behavior for reading data should be "
-"avoided, as many small transactions are unlikely to perform better than one "
-"clearly defined unit of work. The latter is also more maintainable and "
-"extensible."
-msgstr ""
-"é¦å
ï¼å«ç¨ <emphasis>session-per-operation</emphasis> è¿ç§å模å¼äºï¼ä¹å°±æ¯"
-"说ï¼å¨å个线ç¨ä¸ï¼ ä¸è¦å 为ä¸æ¬¡ç®åçæ°æ®åºè°ç¨ï¼å°±æå¼åå
³éä¸æ¬¡ "
-"<literal>Session</literal>ï¼æ°æ®åºäºå¡ä¹æ¯å¦æ¤ã åºç¨ç¨åºä¸çæ°æ®åºè°ç¨æ¯æç
§"
-"计å好ç次åºï¼åç»ä¸ºååçæä½åå
ãï¼æ³¨æï¼è¿ä¹æå³çï¼åºç¨ç¨ åºä¸ï¼å¨å个"
-"ç SQL è¯å¥åéä¹åï¼èªå¨äºå¡æ交ï¼auto-commitï¼æ¨¡å¼å¤±æäºãè¿ç§æ¨¡å¼ä¸é¨ä¸ºSQL"
-"æ§å¶å°æä½è®¾è®¡çã Hibernate ç¦æ¢ç«å³èªå¨äºå¡æ交模å¼ï¼æè
ææåºç¨æå¡å¨ç¦æ¢"
-"ç«å³èªå¨äºå¡æ交模å¼ãï¼æ°æ®åºäºå¡ç»ä¸æ¯å¯æå¯æ çï¼ä»»ä½ä¸æ°æ®åºä¹é´çé讯é½"
-"å¿
é¡»å¨æ个äºå¡ä¸è¿è¡ï¼ä¸ç®¡ä½ æ¯å¨è¯»è¿æ¯å¨åæ°æ®ã对读æ°æ®èè¨ï¼åºè¯¥é¿å
auto-"
-"commit è¡ä¸ºï¼å 为å¾å¤å°çäºå¡æ¯ä¸ä¸ªæ¸
æ°å®ä¹çå·¥ä½åå
æ§è½å·®ãåè
ä¹æ´å®¹æç»´æ¤"
-"åæ©å±ã"
+#, no-c-format
+msgid "Do not use the <emphasis>session-per-operation</emphasis> antipattern: do not open and close a <literal>Session</literal> for every simple database call in a single thread. The same is true for database transactions. Database calls in an application are made using a planned sequence; they are grouped into atomic units of work. This also means that auto-commit after every single SQL statement is useless in an application as this mode is intended for ad-hoc SQL console work. Hibernate disables, or expects the application server to disable, auto-commit mode immediately. Database transactions are never optional. All communication with a database has to occur inside a transaction. Auto-commit behavior for reading data should be avoided, as many small transactions are unlikely to perform better than one clearly defined unit of work. The latter is also more maintainable and extensible."
+msgstr "é¦å
ï¼å«ç¨ <emphasis>session-per-operation</emphasis> è¿ç§å模å¼äºï¼ä¹å°±æ¯è¯´ï¼å¨å个线ç¨ä¸ï¼ ä¸è¦å 为ä¸æ¬¡ç®åçæ°æ®åºè°ç¨ï¼å°±æå¼åå
³éä¸æ¬¡ <literal>Session</literal>ï¼æ°æ®åºäºå¡ä¹æ¯å¦æ¤ã åºç¨ç¨åºä¸çæ°æ®åºè°ç¨æ¯æç
§è®¡å好ç次åºï¼åç»ä¸ºååçæä½åå
ãï¼æ³¨æï¼è¿ä¹æå³çï¼åºç¨ç¨ åºä¸ï¼å¨å个ç SQL è¯å¥åéä¹åï¼èªå¨äºå¡æ交ï¼auto-commitï¼æ¨¡å¼å¤±æäºãè¿ç§æ¨¡å¼ä¸é¨ä¸ºSQLæ§å¶å°æä½è®¾è®¡çã Hibernate ç¦æ¢ç«å³èªå¨äºå¡æ交模å¼ï¼æè
ææåºç¨æå¡å¨ç¦æ¢ç«å³èªå¨äºå¡æ交模å¼ãï¼æ°æ®åºäºå¡ç»ä¸æ¯å¯æå¯æ çï¼ä»»ä½ä¸æ°æ®åºä¹é´çé讯é½å¿
é¡»å¨æ个äºå¡ä¸è¿è¡ï¼ä¸ç®¡ä½ æ¯å¨è¯»è¿æ¯å¨åæ°æ®ã对读æ°æ®èè¨ï¼åºè¯¥é¿å
auto-commit è¡ä¸ºï¼å 为å¾å¤å°çäºå¡æ¯ä¸ä¸ªæ¸
æ°å®ä¹çå·¥ä½åå
æ§è½å·®ãåè
ä¹æ´å®¹æç»´æ¤åæ©å±ã "
#. Tag: para
#: transactions.xml:126
-#, fuzzy, no-c-format
-msgid ""
-"The most common pattern in a multi-user client/server application is "
-"<emphasis>session-per-request</emphasis>. In this model, a request from the "
-"client is sent to the server, where the Hibernate persistence layer runs. A "
-"new Hibernate <literal>Session</literal> is opened, and all database "
-"operations are executed in this unit of work. On completion of the work, and "
-"once the response for the client has been prepared, the session is flushed "
-"and closed. Use a single database transaction to serve the clients request, "
-"starting and committing it when you open and close the <literal>Session</"
-"literal>. The relationship between the two is one-to-one and this model is a "
-"perfect fit for many applications."
-msgstr ""
-"å¨å¤ç¨æ·ç client/server åºç¨ç¨åºä¸ï¼æ常ç¨ç模å¼æ¯ <emphasis>æ¯ä¸ªè¯·æ±ä¸ä¸ªä¼"
-"è¯ï¼session-per-requestï¼</emphasis>ã å¨è¿ç§æ¨¡å¼ä¸ï¼æ¥èªå®¢æ·ç«¯ç请æ±è¢«åéå°"
-"æå¡å¨ç«¯ï¼å³ Hibernate æä¹
åå±è¿è¡çå°æ¹ï¼ï¼ä¸ä¸ªæ°ç Hibernate "
-"<literal>Session</literal> 被æå¼ï¼å¹¶ä¸æ§è¡è¿ä¸ªæä½åå
ä¸ææçæ°æ®åºæä½ãä¸"
-"æ¦æä½å®æï¼åæ¶å¯¹å®¢æ·ç«¯çååºä¹åå¤å°±ç»ªï¼ï¼session 被åæ¥ï¼ç¶åå
³éãä½ ä¹å¯"
-"以使ç¨å 个æ°æ®åºäºå¡æ¥å¤ç客æ·ç«¯è¯·æ±ï¼å¨ä½ æå¼ <literal>Session</literal> ä¹"
-"åå¯å¨äºå¡ï¼å¨ä½ å
³é <literal>Session</literal> ä¹åæ交äºå¡ãä¼è¯å请æ±ä¹é´"
-"çå
³ç³»æ¯ä¸å¯¹ä¸çå
³ç³»ï¼è¿ç§æ¨¡å¼å¯¹ äºå¤§å¤æ°åºç¨ç¨åºæ¥è¯´æ¯å¾æ£çã"
+#, no-c-format
+msgid "The most common pattern in a multi-user client/server application is <emphasis>session-per-request</emphasis>. In this model, a request from the client is sent to the server, where the Hibernate persistence layer runs. A new Hibernate <literal>Session</literal> is opened, and all database operations are executed in this unit of work. On completion of the work, and once the response for the client has been prepared, the session is flushed and closed. Use a single database transaction to serve the clients request, starting and committing it when you open and close the <literal>Session</literal>. The relationship between the two is one-to-one and this model is a perfect fit for many applications."
+msgstr "å¨å¤ç¨æ·ç client/server åºç¨ç¨åºä¸ï¼æ常ç¨ç模å¼æ¯ <emphasis>æ¯ä¸ªè¯·æ±ä¸ä¸ªä¼è¯ï¼session-per-requestï¼</emphasis>ã å¨è¿ç§æ¨¡å¼ä¸ï¼æ¥èªå®¢æ·ç«¯ç请æ±è¢«åéå°æå¡å¨ç«¯ï¼å³ Hibernate æä¹
åå±è¿è¡çå°æ¹ï¼ï¼ä¸ä¸ªæ°ç Hibernate <literal>Session</literal> 被æå¼ï¼å¹¶ä¸æ§è¡è¿ä¸ªæä½åå
ä¸ææçæ°æ®åºæä½ãä¸æ¦æä½å®æï¼åæ¶å¯¹å®¢æ·ç«¯çååºä¹åå¤å°±ç»ªï¼ï¼session 被åæ¥ï¼ç¶åå
³éãä½ ä¹å¯ä»¥ä½¿ç¨å 个æ°æ®åºäºå¡æ¥å¤ç客æ·ç«¯è¯·æ±ï¼å¨ä½ æå¼ <literal>Session</literal> ä¹åå¯å¨äºå¡ï¼å¨ä½ å
³é <literal>Session</literal> ä¹åæ交äºå¡ãä¼è¯å请æ±ä¹é´çå
³ç³»æ¯ä¸å¯¹ä¸çå
³ç³»ï¼è¿ç§æ¨¡å¼å¯¹ äºå¤§å¤æ°åºç¨ç¨åºæ¥è¯´æ¯å¾æ£çã "
#. Tag: para
#: transactions.xml:138
-#, fuzzy, no-c-format
-msgid ""
-"The challenge lies in the implementation. Hibernate provides built-in "
-"management of the \"current session\" to simplify this pattern. Start a "
-"transaction when a server request has to be processed, and end the "
-"transaction before the response is sent to the client. Common solutions are "
-"<literal>ServletFilter</literal>, AOP interceptor with a pointcut on the "
-"service methods, or a proxy/interception container. An EJB container is a "
-"standardized way to implement cross-cutting aspects such as transaction "
-"demarcation on EJB session beans, declaratively with CMT. If you use "
-"programmatic transaction demarcation, for ease of use and code portability "
-"use the Hibernate <literal>Transaction</literal> API shown later in this "
-"chapter."
-msgstr ""
-"å®ç°ææ¯çæ£çææãHibernate å
ç½®äºå¯¹\"å½å sessionï¼current sessionï¼\" ç"
-"管çï¼ç¨äºç®åæ¤æ¨¡å¼ãä½ è¦åçä¸åå°±æ¯å¨æå¡å¨ç«¯è¦å¤ç请æ±çæ¶åï¼å¼å¯äºå¡ï¼"
-"å¨ååºåéç»å®¢æ·ä¹åç»æäºå¡ãä½ å¯ä»¥ç¨ä»»ä½æ¹å¼æ¥å®æè¿ä¸æä½ï¼é常çæ¹æ¡æ "
-"<literal>ServletFilter</literal>ï¼å¨ service æ¹æ³ä¸è¿è¡ pointcut ç AOP æ¦æª"
-"å¨ï¼æè
proxy/interception 容å¨ãEJB 容å¨æ¯å®ç°æ¨ªåè¯¸å¦ EJB session bean ä¸"
-"çäºå¡åçï¼ç¨ CMT 对äºå¡è¿è¡å£°æçæ¹é¢çæ åæ段ãåè¥ä½ å³å®ä½¿ç¨ç¼ç¨å¼çäºå¡"
-"åçï¼è¯·åèæ¬ç« åé¢è®²å°ç Hibernate <literal>Transaction</literal> APIï¼è¿å¯¹"
-"æç¨æ§å代ç å¯ç§»æ¤æ§é½æ好å¤ã"
+#, no-c-format
+msgid "The challenge lies in the implementation. Hibernate provides built-in management of the \"current session\" to simplify this pattern. Start a transaction when a server request has to be processed, and end the transaction before the response is sent to the client. Common solutions are <literal>ServletFilter</literal>, AOP interceptor with a pointcut on the service methods, or a proxy/interception container. An EJB container is a standardized way to implement cross-cutting aspects such as transaction demarcation on EJB session beans, declaratively with CMT. If you use programmatic transaction demarcation, for ease of use and code portability use the Hibernate <literal>Transaction</literal> API shown later in this chapter."
+msgstr "å®ç°ææ¯çæ£çææãHibernate å
ç½®äºå¯¹\"å½å sessionï¼current sessionï¼\" ç管çï¼ç¨äºç®åæ¤æ¨¡å¼ãä½ è¦åçä¸åå°±æ¯å¨æå¡å¨ç«¯è¦å¤ç请æ±çæ¶åï¼å¼å¯äºå¡ï¼å¨ååºåéç»å®¢æ·ä¹åç»æäºå¡ãä½ å¯ä»¥ç¨ä»»ä½æ¹å¼æ¥å®æè¿ä¸æä½ï¼é常çæ¹æ¡æ <literal>ServletFilter</literal>ï¼å¨ service æ¹æ³ä¸è¿è¡ pointcut ç AOP æ¦æªå¨ï¼æè
proxy/interception 容å¨ãEJB 容å¨æ¯å®ç°æ¨ªåè¯¸å¦ EJB session bean ä¸çäºå¡åçï¼ç¨ CMT 对äºå¡è¿è¡å£°æçæ¹é¢çæ åæ段ãåè¥ä½ å³å®ä½¿ç¨ç¼ç¨å¼çäºå¡åçï¼è¯·åèæ¬ç« åé¢è®²å°ç Hibernate <literal>Transaction</literal> APIï¼è¿å¯¹æç¨æ§å代ç å¯ç§»æ¤æ§é½æ好å¤ã "
#. Tag: para
#: transactions.xml:150
-#, fuzzy, no-c-format
-msgid ""
-"Your application code can access a \"current session\" to process the "
-"request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
-"You will always get a <literal>Session</literal> scoped to the current "
-"database transaction. This has to be configured for either resource-local or "
-"JTA environments, see <xref linkend=\"architecture-current-session\"/>."
-msgstr ""
-"å¨ä»»ä½æ¶é´ï¼ä»»ä½å°æ¹ï¼ä½ çåºç¨ä»£ç å¯ä»¥éè¿ç®åçè°ç¨<literal>sessionFactory."
-"getCurrentSession()</literal> æ¥è®¿é®\"å½å session\"ï¼ç¨äºå¤ç请æ±ãä½ æ»æ¯ä¼"
-"å¾å°å½åæ°æ®åºäºå¡èå´å
ç <literal>Session</literal>ãå¨ä½¿ç¨æ¬å°èµæºæ JTA "
-"ç¯å¢æ¶ï¼å¿
é¡»é
ç½®å®ï¼è¯·åè§ <xref linkend=\"Architecture-Contextual_Sessions"
-"\"/>ã"
+#, no-c-format
+msgid "Your application code can access a \"current session\" to process the request by calling <literal>sessionFactory.getCurrentSession()</literal>. You will always get a <literal>Session</literal> scoped to the current database transaction. This has to be configured for either resource-local or JTA environments, see <xref linkend=\"architecture-current-session\"/>."
+msgstr "å¨ä»»ä½æ¶é´ï¼ä»»ä½å°æ¹ï¼ä½ çåºç¨ä»£ç å¯ä»¥éè¿ç®åçè°ç¨<literal>sessionFactory.getCurrentSession()</literal> æ¥è®¿é®\"å½å session\"ï¼ç¨äºå¤ç请æ±ãä½ æ»æ¯ä¼å¾å°å½åæ°æ®åºäºå¡èå´å
ç <literal>Session</literal>ãå¨ä½¿ç¨æ¬å°èµæºæ JTA ç¯å¢æ¶ï¼å¿
é¡»é
ç½®å®ï¼è¯·åè§ <xref linkend=\"architecture-current-session\"/>ã"
#. Tag: para
#: transactions.xml:158
-#, fuzzy, no-c-format
-msgid ""
-"You can extend the scope of a <literal>Session</literal> and database "
-"transaction until the \"view has been rendered\". This is especially useful "
-"in servlet applications that utilize a separate rendering phase after the "
-"request has been processed. Extending the database transaction until view "
-"rendering, is achieved by implementing your own interceptor. However, this "
-"will be difficult if you rely on EJBs with container-managed transactions. A "
-"transaction will be completed when an EJB method returns, before rendering "
-"of any view can start. See the Hibernate website and forum for tips and "
-"examples relating to this <emphasis>Open Session in View</emphasis> pattern."
-msgstr ""
-"ææ¶ï¼å° <literal>Session</literal> åæ°æ®åºäºå¡çè¾¹ç延伸å°\"å±ç¤ºå±è¢«æ¸²æå"
-"\"ä¼å¸¦æ¥ä¾¿å©ãæäº serlvet åºç¨ç¨åºå¨å¯¹è¯·æ±è¿è¡å¤çåï¼æ个åç¬ç渲ææï¼è¿ç§"
-"延伸对è¿ç§ç¨åºç¹å«æç¨ãåè¥ä½ å®ç°ä½ èªå·±çæ¦æªå¨ï¼æäºå¡è¾¹ç延伸å°å±ç¤ºå±æ¸²æ"
-"ç»æåé常容æãç¶èï¼åè¥ä½ ä¾èµæ容å¨ç®¡çäºå¡ç EJBï¼è¿å°±ä¸å¤ªå®¹æäºï¼å 为äº"
-"å¡ä¼å¨ EJB æ¹æ³è¿ååç»æï¼èé£æ¯å¨ä»»ä½å±ç¤ºå±æ¸²æå¼å§ä¹åãè¯·è®¿é® Hibernate "
-"ç½ç«å论åï¼ä½ å¯ä»¥æ¾å° <emphasis>Open Session in View</emphasis> è¿ä¸æ¨¡å¼çæ"
-"示å示ä¾ã"
+#, no-c-format
+msgid "You can extend the scope of a <literal>Session</literal> and database transaction until the \"view has been rendered\". This is especially useful in servlet applications that utilize a separate rendering phase after the request has been processed. Extending the database transaction until view rendering, is achieved by implementing your own interceptor. However, this will be difficult if you rely on EJBs with container-managed transactions. A transaction will be completed when an EJB method returns, before rendering of any view can start. See the Hibernate website and forum for tips and examples relating to this <emphasis>Open Session in View</emphasis> pattern."
+msgstr "ææ¶ï¼å° <literal>Session</literal> åæ°æ®åºäºå¡çè¾¹ç延伸å°\"å±ç¤ºå±è¢«æ¸²æå\"ä¼å¸¦æ¥ä¾¿å©ãæäº serlvet åºç¨ç¨åºå¨å¯¹è¯·æ±è¿è¡å¤çåï¼æ个åç¬ç渲ææï¼è¿ç§å»¶ä¼¸å¯¹è¿ç§ç¨åºç¹å«æç¨ãåè¥ä½ å®ç°ä½ èªå·±çæ¦æªå¨ï¼æäºå¡è¾¹ç延伸å°å±ç¤ºå±æ¸²æç»æåé常容æãç¶èï¼åè¥ä½ ä¾èµæ容å¨ç®¡çäºå¡ç EJBï¼è¿å°±ä¸å¤ªå®¹æäºï¼å 为äºå¡ä¼å¨ EJB æ¹æ³è¿ååç»æï¼èé£æ¯å¨ä»»ä½å±ç¤ºå±æ¸²æå¼å§ä¹åãè¯·è®¿é® Hibernate ç½ç«å论åï¼ä½ å¯ä»¥æ¾å° <emphasis>Open Session in View</emphasis> è¿ä¸æ¨¡å¼çæ示å示ä¾ã "
#. Tag: title
#: transactions.xml:173
@@ -285,151 +124,63 @@
#. Tag: para
#: transactions.xml:175
-#, fuzzy, no-c-format
-msgid ""
-"The session-per-request pattern is not the only way of designing units of "
-"work. Many business processes require a whole series of interactions with "
-"the user that are interleaved with database accesses. In web and enterprise "
-"applications, it is not acceptable for a database transaction to span a user "
-"interaction. Consider the following example:"
-msgstr ""
-"session-per-request 模å¼ä¸ä»
ä»
æ¯ä¸ä¸ªå¯ä»¥ç¨æ¥è®¾è®¡æä½åå
çæç¨æ¦å¿µãå¾å¤ä¸å¡"
-"å¤çé½é è¦ä¸ç³»åå®æ´çä¸ç¨æ·ä¹é´ç交äºï¼èè¿äºç¨æ·æ¯æ对æ°æ®åºæ交å访é®çç¨"
-"æ·ãå¨åºäº web çåºç¨åä¼ä¸åºç¨ä¸ï¼è·¨ç¨æ·äº¤äºçæ°æ®åºäºå¡æ¯æ æ³æ¥åçãèèä¸"
-"é¢çä¾åï¼"
+#, no-c-format
+msgid "The session-per-request pattern is not the only way of designing units of work. Many business processes require a whole series of interactions with the user that are interleaved with database accesses. In web and enterprise applications, it is not acceptable for a database transaction to span a user interaction. Consider the following example:"
+msgstr "session-per-request 模å¼ä¸ä»
ä»
æ¯ä¸ä¸ªå¯ä»¥ç¨æ¥è®¾è®¡æä½åå
çæç¨æ¦å¿µãå¾å¤ä¸å¡å¤çé½é è¦ä¸ç³»åå®æ´çä¸ç¨æ·ä¹é´ç交äºï¼èè¿äºç¨æ·æ¯æ对æ°æ®åºæ交å访é®çç¨æ·ãå¨åºäº web çåºç¨åä¼ä¸åºç¨ä¸ï¼è·¨ç¨æ·äº¤äºçæ°æ®åºäºå¡æ¯æ æ³æ¥åçãèèä¸é¢çä¾åï¼ "
#. Tag: para
#: transactions.xml:185
-#, fuzzy, no-c-format
-msgid ""
-"The first screen of a dialog opens. The data seen by the user has been "
-"loaded in a particular <literal>Session</literal> and database transaction. "
-"The user is free to modify the objects."
-msgstr ""
-"å¨çé¢ç第ä¸å±ï¼æå¼å¯¹è¯æ¡ï¼ç¨æ·æçå°çæ°æ®æ¯è¢«ä¸ä¸ªç¹å®ç <literal>Session</"
-"literal> åæ°æ® åºäºå¡è½½å
¥ï¼loadï¼çãç¨æ·å¯ä»¥éæä¿®æ¹å¯¹è¯æ¡ä¸çæ°æ®å¯¹è±¡ã"
+#, no-c-format
+msgid "The first screen of a dialog opens. The data seen by the user has been loaded in a particular <literal>Session</literal> and database transaction. The user is free to modify the objects."
+msgstr "å¨çé¢ç第ä¸å±ï¼æå¼å¯¹è¯æ¡ï¼ç¨æ·æçå°çæ°æ®æ¯è¢«ä¸ä¸ªç¹å®ç <literal>Session</literal> åæ°æ® åºäºå¡è½½å
¥ï¼loadï¼çãç¨æ·å¯ä»¥éæä¿®æ¹å¯¹è¯æ¡ä¸çæ°æ®å¯¹è±¡ã "
#. Tag: para
#: transactions.xml:192
-#, fuzzy, no-c-format
-msgid ""
-"The user clicks \"Save\" after 5 minutes and expects their modifications to "
-"be made persistent. The user also expects that they were the only person "
-"editing this information and that no conflicting modification has occurred."
-msgstr ""
-"5 åéåï¼ç¨æ·ç¹å»âä¿åâï¼æææååºçä¿®æ¹è¢«æä¹
åï¼åæ¶ä»ä¹ææèªå·±æ¯å¯ä¸ä¿®"
-"æ¹è¿ä¸ªä¿¡æ¯ç人ï¼ä¸ä¼åºç°ä¿®æ¹å²çªã"
+#, no-c-format
+msgid "The user clicks \"Save\" after 5 minutes and expects their modifications to be made persistent. The user also expects that they were the only person editing this information and that no conflicting modification has occurred."
+msgstr "5 åéåï¼ç¨æ·ç¹å»âä¿åâï¼æææååºçä¿®æ¹è¢«æä¹
åï¼åæ¶ä»ä¹ææèªå·±æ¯å¯ä¸ä¿®æ¹è¿ä¸ªä¿¡æ¯ç人ï¼ä¸ä¼åºç°ä¿®æ¹å²çªã "
#. Tag: para
#: transactions.xml:200
-#, fuzzy, no-c-format
-msgid ""
-"From the point of view of the user, we call this unit of work a long-running "
-"<emphasis>conversation</emphasis> or <emphasis>application transaction</"
-"emphasis>. There are many ways to implement this in your application."
-msgstr ""
-"ä»ç¨æ·çè§åº¦æ¥çï¼æ们æè¿ä¸ªæä½åå
称为é¿æ¶é´è¿è¡ç<emphasis>对è¯</emphasis>"
-"ï¼conversationï¼ï¼æè
<emphasis>åºç¨äºå¡</emphasis>ï¼application "
-"transactionï¼ã å¨ä½ çåºç¨ç¨åºä¸ï¼å¯ä»¥æå¾å¤ç§æ¹æ³æ¥å®ç°å®ã"
+#, no-c-format
+msgid "From the point of view of the user, we call this unit of work a long-running <emphasis>conversation</emphasis> or <emphasis>application transaction</emphasis>. There are many ways to implement this in your application."
+msgstr "ä»ç¨æ·çè§åº¦æ¥çï¼æ们æè¿ä¸ªæä½åå
称为é¿æ¶é´è¿è¡ç<emphasis>对è¯</emphasis>ï¼conversationï¼ï¼æè
<emphasis>åºç¨äºå¡</emphasis>ï¼application transactionï¼ãå¨ä½ çåºç¨ç¨åºä¸ï¼å¯ä»¥æå¾å¤ç§æ¹æ³æ¥å®ç°å®ã"
#. Tag: para
#: transactions.xml:206
-#, fuzzy, no-c-format
-msgid ""
-"A first naive implementation might keep the <literal>Session</literal> and "
-"database transaction open during user think time, with locks held in the "
-"database to prevent concurrent modification and to guarantee isolation and "
-"atomicity. This is an anti-pattern, since lock contention would not allow "
-"the application to scale with the number of concurrent users."
-msgstr ""
-"头ä¸ä¸ªå¹¼ç¨çåæ³æ¯ï¼å¨ç¨æ·æèçè¿ç¨ä¸ï¼ä¿æ <literal>Session</literal> åæ°"
-"æ®åºäºå¡æ¯æå¼çï¼ä¿ææ°æ®åºéå®ï¼ä»¥é»æ¢å¹¶åä¿®æ¹ï¼ä»èä¿è¯æ°æ®åºäºå¡é离级å«"
-"åååæä½ãè¿ç§æ¹å¼å½ç¶æ¯ä¸ä¸ªå模å¼ï¼å 为éäºç¨ä¼å¯¼è´åºç¨ç¨åºæ æ³æ©å±å¹¶åç¨"
-"æ·çæ°ç®ã"
+#, no-c-format
+msgid "A first naive implementation might keep the <literal>Session</literal> and database transaction open during user think time, with locks held in the database to prevent concurrent modification and to guarantee isolation and atomicity. This is an anti-pattern, since lock contention would not allow the application to scale with the number of concurrent users."
+msgstr "头ä¸ä¸ªå¹¼ç¨çåæ³æ¯ï¼å¨ç¨æ·æèçè¿ç¨ä¸ï¼ä¿æ <literal>Session</literal> åæ°æ®åºäºå¡æ¯æå¼çï¼ä¿ææ°æ®åºéå®ï¼ä»¥é»æ¢å¹¶åä¿®æ¹ï¼ä»èä¿è¯æ°æ®åºäºå¡é离级å«åååæä½ãè¿ç§æ¹å¼å½ç¶æ¯ä¸ä¸ªå模å¼ï¼å 为éäºç¨ä¼å¯¼è´åºç¨ç¨åºæ æ³æ©å±å¹¶åç¨æ·çæ°ç®ã "
#. Tag: para
#: transactions.xml:214
-#, fuzzy, no-c-format
-msgid ""
-"You have to use several database transactions to implement the conversation. "
-"In this case, maintaining isolation of business processes becomes the "
-"partial responsibility of the application tier. A single conversation "
-"usually spans several database transactions. It will be atomic if only one "
-"of these database transactions (the last one) stores the updated data. All "
-"others simply read data (for example, in a wizard-style dialog spanning "
-"several request/response cycles). This is easier to implement than it might "
-"sound, especially if you utilize some of Hibernate's features:"
-msgstr ""
-"å¾ææ¾ï¼æ们å¿
须使ç¨å¤ä¸ªæ°æ®åºäºå¡æ¥å®ç°è¿ä¸ªå¯¹è¯ãå¨è¿ä¸ªä¾åä¸ï¼ç»´æ¤ä¸å¡å¤ç"
-"ç äºå¡é离åæäºåºç¨ç¨åºå±çé¨å责任ãä¸ä¸ªå¯¹è¯é常跨è¶å¤ä¸ªæ°æ®åºäºå¡ãå¦æä»
"
-"ä»
åªæä¸ä¸ªæ°æ®åºäºå¡ï¼æåçé£ä¸ªäºå¡ï¼ä¿åæ´æ°è¿çæ°æ®ï¼èææå
¶ä»äºå¡åªæ¯å"
-"纯ç读åæ°æ®ï¼ä¾å¦å¨ä¸ä¸ªè·¨è¶å¤ä¸ªè¯·æ±/ååºå¨æçå导é£æ ¼ç对è¯æ¡ä¸ï¼ï¼é£ä¹åºç¨"
-"ç¨åºäºå¡å°ä¿è¯å
¶ååæ§ãè¿ç§æ¹å¼æ¯å¬èµ·æ¥è¿è¦å®¹æå®ç°ï¼ç¹å«æ¯å½ä½ 使ç¨äº "
-"Hibernate çä¸è¿°ç¹æ§çæ¶åï¼"
+#, no-c-format
+msgid "You have to use several database transactions to implement the conversation. In this case, maintaining isolation of business processes becomes the partial responsibility of the application tier. A single conversation usually spans several database transactions. It will be atomic if only one of these database transactions (the last one) stores the updated data. All others simply read data (for example, in a wizard-style dialog spanning several request/response cycles). This is easier to implement than it might sound, especially if you utilize some of Hibernate's features:"
+msgstr "å¾ææ¾ï¼æ们å¿
须使ç¨å¤ä¸ªæ°æ®åºäºå¡æ¥å®ç°è¿ä¸ªå¯¹è¯ãå¨è¿ä¸ªä¾åä¸ï¼ç»´æ¤ä¸å¡å¤çç äºå¡é离åæäºåºç¨ç¨åºå±çé¨å责任ãä¸ä¸ªå¯¹è¯é常跨è¶å¤ä¸ªæ°æ®åºäºå¡ãå¦æä»
ä»
åªæä¸ä¸ªæ°æ®åºäºå¡ï¼æåçé£ä¸ªäºå¡ï¼ä¿åæ´æ°è¿çæ°æ®ï¼èææå
¶ä»äºå¡åªæ¯å纯ç读åæ°æ®ï¼ä¾å¦å¨ä¸ä¸ªè·¨è¶å¤ä¸ªè¯·æ±/ååºå¨æçå导é£æ ¼ç对è¯æ¡ä¸ï¼ï¼é£ä¹åºç¨ç¨åºäºå¡å°ä¿è¯å
¶ååæ§ãè¿ç§æ¹å¼æ¯å¬èµ·æ¥è¿è¦å®¹æå®ç°ï¼ç¹å«æ¯å½ä½ 使ç¨äº Hibernate çä¸è¿°ç¹æ§çæ¶åï¼ "
#. Tag: para
#: transactions.xml:227
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic "
-"optimistic concurrency control for you. It can automatically detect if a "
-"concurrent modification occurred during user think time. Check for this at "
-"the end of the conversation."
-msgstr ""
-"<emphasis>èªå¨çæ¬å</emphasis> â Hibernate è½å¤èªå¨è¿è¡ä¹è§å¹¶åæ§å¶ï¼å¦æå¨"
-"ç¨æ·æèçè¿ç¨ä¸åç并åä¿®æ¹ï¼Hibernate è½å¤èªå¨æ£æµå°ãä¸è¬æ们åªå¨å¯¹è¯ç»æ"
-"æ¶ææ£æ¥ã"
+#, no-c-format
+msgid "<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic optimistic concurrency control for you. It can automatically detect if a concurrent modification occurred during user think time. Check for this at the end of the conversation."
+msgstr "<emphasis>èªå¨çæ¬å</emphasis>ï¼Hibernate è½å¤èªå¨è¿è¡ä¹è§å¹¶åæ§å¶ï¼å¦æå¨ç¨æ·æèçè¿ç¨ä¸åç并åä¿®æ¹ï¼Hibernate è½å¤èªå¨æ£æµå°ãä¸è¬æ们åªå¨å¯¹è¯ç»ææ¶ææ£æ¥ã"
#. Tag: para
#: transactions.xml:235
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Detached Objects</emphasis>: if you decide to use the "
-"<emphasis>session-per-request</emphasis> pattern, all loaded instances will "
-"be in the detached state during user think time. Hibernate allows you to "
-"reattach the objects and persist the modifications. The pattern is called "
-"<emphasis>session-per-request-with-detached-objects</emphasis>. Automatic "
-"versioning is used to isolate concurrent modifications."
-msgstr ""
-"<emphasis>è±ç®¡å¯¹è±¡</emphasis>ï¼Detached Objectsï¼â å¦æä½ å³å®éç¨åé¢å·²ç»è®¨è®º"
-"è¿ç <emphasis>session-per-request</emphasis> 模å¼ï¼ææè½½å
¥çå®ä¾å¨ç¨æ·æè"
-"çè¿ç¨ä¸é½å¤äºä¸ Session è±ç¦»çç¶æãHibernate å
è®¸ä½ æä¸ Session è±ç¦»ç对象"
-"éæ°å
³èå° Session ä¸ï¼å¹¶ä¸å¯¹ä¿®æ¹è¿è¡æä¹
åï¼è¿ç§æ¨¡å¼è¢«ç§°ä¸º "
-"<emphasis>session-per-request-with-detached-objects</emphasis>ãèªå¨çæ¬å被"
-"ç¨æ¥é离并åä¿®æ¹ã"
+#, no-c-format
+msgid "<emphasis>Detached Objects</emphasis>: if you decide to use the <emphasis>session-per-request</emphasis> pattern, all loaded instances will be in the detached state during user think time. Hibernate allows you to reattach the objects and persist the modifications. The pattern is called <emphasis>session-per-request-with-detached-objects</emphasis>. Automatic versioning is used to isolate concurrent modifications."
+msgstr "<emphasis>è±ç®¡å¯¹è±¡</emphasis>ï¼Detached Objectsï¼ï¼å¦æä½ å³å®éç¨åé¢å·²ç»è®¨è®ºè¿ç <emphasis>session-per-request</emphasis> 模å¼ï¼ææè½½å
¥çå®ä¾å¨ç¨æ·æèçè¿ç¨ä¸é½å¤äºä¸ Session è±ç¦»çç¶æãHibernate å
è®¸ä½ æä¸ Session è±ç¦»ç对象éæ°å
³èå° Session ä¸ï¼å¹¶ä¸å¯¹ä¿®æ¹è¿è¡æä¹
åï¼è¿ç§æ¨¡å¼è¢«ç§°ä¸º <emphasis>session-per-request-with-detached-objects</emphasis>ãèªå¨çæ¬å被ç¨æ¥é离并åä¿®æ¹ã"
#. Tag: para
#: transactions.xml:245
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Extended (or Long) Session</emphasis>: the Hibernate "
-"<literal>Session</literal> can be disconnected from the underlying JDBC "
-"connection after the database transaction has been committed and reconnected "
-"when a new client request occurs. This pattern is known as <emphasis>session-"
-"per-conversation</emphasis> and makes even reattachment unnecessary. "
-"Automatic versioning is used to isolate concurrent modifications and the "
-"<literal>Session</literal> will not be allowed to be flushed automatically, "
-"but explicitly."
-msgstr ""
-"<emphasis>Extended (or Long) Session</emphasis> â Hibernate ç "
-"<literal>Session</literal> å¯ä»¥å¨æ°æ®åºäºå¡æ交ä¹åååºå±ç JDBC è¿æ¥æå¼ï¼å½"
-"ä¸ä¸ªæ°ç客æ·ç«¯è¯·æ±å°æ¥çæ¶åï¼å®åéæ°è¿æ¥ä¸åºå±ç JDBC è¿æ¥ãè¿ç§æ¨¡å¼è¢«ç§°ä¹"
-"为<emphasis>session-per-conversation</emphasis>ï¼è¿ç§æ
åµå¯ è½ä¼é æä¸å¿
è¦ç "
-"Session å JDBC è¿æ¥çéæ°å
³èãèªå¨çæ¬å被ç¨æ¥é离并åä¿®æ¹ï¼"
-"<literal>Session</literal> é常ä¸å
许èªå¨ flushï¼èæ¯æç¡® flushã "
+#, no-c-format
+msgid "<emphasis>Extended (or Long) Session</emphasis>: the Hibernate <literal>Session</literal> can be disconnected from the underlying JDBC connection after the database transaction has been committed and reconnected when a new client request occurs. This pattern is known as <emphasis>session-per-conversation</emphasis> and makes even reattachment unnecessary. Automatic versioning is used to isolate concurrent modifications and the <literal>Session</literal> will not be allowed to be flushed automatically, but explicitly."
+msgstr "<emphasis>Extended (or Long) Session</emphasis>ï¼Hibernate ç <literal>Session</literal> å¯ä»¥å¨æ°æ®åºäºå¡æ交ä¹åååºå±ç JDBC è¿æ¥æå¼ï¼å½ä¸ä¸ªæ°ç客æ·ç«¯è¯·æ±å°æ¥çæ¶åï¼å®åéæ°è¿æ¥ä¸åºå±ç JDBC è¿æ¥ãè¿ç§æ¨¡å¼è¢«ç§°ä¹ä¸º<emphasis>session-per-conversation</emphasis>ï¼è¿ç§æ
åµå¯ è½ä¼é æä¸å¿
è¦ç Session å JDBC è¿æ¥çéæ°å
³èãèªå¨çæ¬å被ç¨æ¥é离并åä¿®æ¹ï¼<literal>Session</literal> é常ä¸å
许èªå¨ flushï¼èæ¯æ¾æ§å° flushã "
#. Tag: para
#: transactions.xml:258
-#, fuzzy, no-c-format
-msgid ""
-"Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
-"<emphasis>session-per-conversation</emphasis> have advantages and "
-"disadvantages. These disadvantages are discussed later in this chapter in "
-"the context of optimistic concurrency control."
-msgstr ""
-"<emphasis>session-per-request-with-detached-objects</emphasis> å "
-"<emphasis>session-per-conversation</emphasis> åæä¼ç¼ºç¹ï¼æ们å¨æ¬ç« åé¢ä¹è§"
-"并åæ§å¶é£é¨ååè¿è¡è®¨è®ºã"
+#, no-c-format
+msgid "Both <emphasis>session-per-request-with-detached-objects</emphasis> and <emphasis>session-per-conversation</emphasis> have advantages and disadvantages. These disadvantages are discussed later in this chapter in the context of optimistic concurrency control."
+msgstr "<emphasis>session-per-request-with-detached-objects</emphasis> å <emphasis>session-per-conversation</emphasis> åæä¼ç¼ºç¹ï¼æ们å¨æ¬ç« åé¢ä¹è§å¹¶åæ§å¶é£é¨ååè¿è¡è®¨è®ºã "
#. Tag: title
#: transactions.xml:267
@@ -439,16 +190,9 @@
#. Tag: para
#: transactions.xml:269
-#, fuzzy, no-c-format
-msgid ""
-"An application can concurrently access the same persistent state in two "
-"different <literal>Session</literal>s. However, an instance of a persistent "
-"class is never shared between two <literal>Session</literal> instances. It "
-"is for this reason that there are two different notions of identity:"
-msgstr ""
-"åºç¨ç¨åºå¯è½å¨ä¸¤ä¸ªä¸åç <literal>Session</literal> ä¸å¹¶å访é®åä¸æä¹
åç¶"
-"æï¼ä½æ¯ï¼ä¸ä¸ªæä¹
åç±»çå®ä¾æ æ³å¨ä¸¤ä¸ª <literal>Session</literal> ä¸å
±äº«ãå "
-"æ¤æ两ç§ä¸åçæ è¯è¯ä¹ï¼"
+#, no-c-format
+msgid "An application can concurrently access the same persistent state in two different <literal>Session</literal>s. However, an instance of a persistent class is never shared between two <literal>Session</literal> instances. It is for this reason that there are two different notions of identity:"
+msgstr "åºç¨ç¨åºå¯è½å¨ä¸¤ä¸ªä¸åç <literal>Session</literal> ä¸å¹¶å访é®åä¸æä¹
åç¶æï¼ä½æ¯ï¼ä¸ä¸ªæä¹
åç±»çå®ä¾æ æ³å¨ä¸¤ä¸ª <literal>Session</literal> ä¸å
±äº«ãå æ¤æ两ç§ä¸åçæ è¯è¯ä¹ï¼ "
#. Tag: term
#: transactions.xml:278
@@ -476,82 +220,21 @@
#. Tag: para
#: transactions.xml:295
-#, fuzzy, no-c-format
-msgid ""
-"For objects attached to a <emphasis>particular</emphasis> <literal>Session</"
-"literal> (i.e., in the scope of a <literal>Session</literal>), the two "
-"notions are equivalent and JVM identity for database identity is guaranteed "
-"by Hibernate. While the application might concurrently access the \"same"
-"\" (persistent identity) business object in two different sessions, the two "
-"instances will actually be \"different\" (JVM identity). Conflicts are "
-"resolved using an optimistic approach and automatic versioning at flush/"
-"commit time."
-msgstr ""
-"对äºé£äºå
³èå° <emphasis>ç¹å®</emphasis> <literal>Session</literal>ï¼ä¹å°±æ¯å¨"
-"å个 <literal>Session</literal> çèå´å
ï¼ä¸ç对象æ¥è¯´ï¼è¿ä¸¤ç§æ è¯çè¯ä¹æ¯ç"
-"ä»·çï¼ä¸æ°æ®åºæ è¯å¯¹åºç JVM æ è¯æ¯ç± Hibernate æ¥ä¿è¯çãä¸è¿ï¼å½åºç¨ç¨åºå¨"
-"两个ä¸åç session ä¸å¹¶å访é®å
·æåä¸æä¹
åæ è¯çä¸å¡å¯¹è±¡å®ä¾çæ¶åï¼è¿ä¸ªä¸å¡"
-"对象ç两个å®ä¾äºå®ä¸æ¯ä¸ç¸åçï¼ä» JVM è¯å«æ¥çï¼ãè¿ç§å²çªå¯ä»¥éè¿å¨åæ¥åæ"
-"交çæ¶å使ç¨èªå¨çæ¬ååä¹è§éå®æ¹æ³æ¥è§£å³ã"
+#, no-c-format
+msgid "For objects attached to a <emphasis>particular</emphasis> <literal>Session</literal> (i.e., in the scope of a <literal>Session</literal>), the two notions are equivalent and JVM identity for database identity is guaranteed by Hibernate. While the application might concurrently access the \"same\" (persistent identity) business object in two different sessions, the two instances will actually be \"different\" (JVM identity). Conflicts are resolved using an optimistic approach and automatic versioning at flush/commit time."
+msgstr "对äºé£äºå
³èå° <emphasis>ç¹å®</emphasis> <literal>Session</literal>ï¼ä¹å°±æ¯å¨å个 <literal>Session</literal> çèå´å
ï¼ä¸ç对象æ¥è¯´ï¼è¿ä¸¤ç§æ è¯çè¯ä¹æ¯çä»·çï¼ä¸æ°æ®åºæ è¯å¯¹åºç JVM æ è¯æ¯ç± Hibernate æ¥ä¿è¯çãä¸è¿ï¼å½åºç¨ç¨åºå¨ä¸¤ä¸ªä¸åç session ä¸å¹¶å访é®å
·æåä¸æä¹
åæ è¯çä¸å¡å¯¹è±¡å®ä¾çæ¶åï¼è¿ä¸ªä¸å¡å¯¹è±¡ç两个å®ä¾äºå®ä¸æ¯ä¸ç¸åçï¼ä» JVM è¯å«æ¥çï¼ãè¿ç§å²çªå¯ä»¥éè¿å¨åæ¥åæ交çæ¶å使ç¨èªå¨çæ¬ååä¹è§éå®æ¹æ³æ¥è§£å³ã "
#. Tag: para
#: transactions.xml:304
-#, fuzzy, no-c-format
-msgid ""
-"This approach leaves Hibernate and the database to worry about concurrency. "
-"It also provides the best scalability, since guaranteeing identity in single-"
-"threaded units of work means that it does not need expensive locking or "
-"other means of synchronization. The application does not need to synchronize "
-"on any business object, as long as it maintains a single thread per "
-"<literal>Session</literal>. Within a <literal>Session</literal> the "
-"application can safely use <literal>==</literal> to compare objects."
-msgstr ""
-"è¿ç§æ¹å¼æå
³äºå¹¶åç头ç¼é®é¢çç»äº Hibernate åæ°æ®åºï¼ç±äºå¨å个线ç¨å
ï¼æä½"
-"åå
ä¸ç对象è¯å«ä¸ éè¦ä»£ä»·æè´µçéå®æå
¶ä»æä¹ä¸çåæ¥ï¼å æ¤å®åæ¶å¯ä»¥æä¾æ"
-"好çå¯ä¼¸ç¼©æ§ãåªè¦å¨å个线ç¨åªææä¸ä¸ª <literal>Session</literal>ï¼åºç¨ç¨åºå°±"
-"ä¸éè¦åæ¥ä»»ä½ä¸å¡å¯¹è±¡ãå¨ <literal>Session</literal> çèå´å
ï¼åºç¨ç¨åºå¯ä»¥"
-"æ¾å¿çä½¿ç¨ <literal>==</literal> è¿è¡å¯¹è±¡æ¯è¾ã"
+#, no-c-format
+msgid "This approach leaves Hibernate and the database to worry about concurrency. It also provides the best scalability, since guaranteeing identity in single-threaded units of work means that it does not need expensive locking or other means of synchronization. The application does not need to synchronize on any business object, as long as it maintains a single thread per <literal>Session</literal>. Within a <literal>Session</literal> the application can safely use <literal>==</literal> to compare objects."
+msgstr "è¿ç§æ¹å¼æå
³äºå¹¶åç头ç¼é®é¢çç»äº Hibernate åæ°æ®åºï¼ç±äºå¨å个线ç¨å
ï¼æä½åå
ä¸ç对象è¯å«ä¸ éè¦ä»£ä»·æè´µçéå®æå
¶ä»æä¹ä¸çåæ¥ï¼å æ¤å®åæ¶å¯ä»¥æä¾æ好çå¯ä¼¸ç¼©æ§ãåªè¦å¨å个线ç¨åªææä¸ä¸ª <literal>Session</literal>ï¼åºç¨ç¨åºå°±ä¸éè¦åæ¥ä»»ä½ä¸å¡å¯¹è±¡ãå¨ <literal>Session</literal> çèå´å
ï¼åºç¨ç¨åºå¯ä»¥æ¾å¿çä½¿ç¨ <literal>==</literal> è¿è¡å¯¹è±¡æ¯è¾ã "
#. Tag: para
#: transactions.xml:313
-#, fuzzy, no-c-format
-msgid ""
-"However, an application that uses <literal>==</literal> outside of a "
-"<literal>Session</literal> might produce unexpected results. This might "
-"occur even in some unexpected places. For example, if you put two detached "
-"instances into the same <literal>Set</literal>, both might have the same "
-"database identity (i.e., they represent the same row). JVM identity, "
-"however, is by definition not guaranteed for instances in a detached state. "
-"The developer has to override the <literal>equals()</literal> and "
-"<literal>hashCode()</literal> methods in persistent classes and implement "
-"their own notion of object equality. There is one caveat: never use the "
-"database identifier to implement equality. Use a business key that is a "
-"combination of unique, usually immutable, attributes. The database "
-"identifier will change if a transient object is made persistent. If the "
-"transient instance (usually together with detached instances) is held in a "
-"<literal>Set</literal>, changing the hashcode breaks the contract of the "
-"<literal>Set</literal>. Attributes for business keys do not have to be as "
-"stable as database primary keys; you only have to guarantee stability as "
-"long as the objects are in the same <literal>Set</literal>. See the "
-"Hibernate website for a more thorough discussion of this issue. Please note "
-"that this is not a Hibernate issue, but simply how Java object identity and "
-"equality has to be implemented."
-msgstr ""
-"ä¸è¿ï¼åºç¨ç¨åºå¨ <literal>Session</literal> çå¤é¢ä½¿ç¨ <literal>==</literal> "
-"è¿è¡å¯¹è±¡æ¯è¾å¯è½ä¼ 导è´æ æ³é¢æçç»æãå¨ä¸äºæ æ³é¢æçåºåï¼ä¾å¦ï¼å¦æä½ æ两"
-"个è±ç®¡å¯¹è±¡å®ä¾æ¾è¿åä¸ä¸ª <literal>Set</literal> çæ¶åï¼å°±å¯è½åçãè¿ä¸¤ä¸ªå¯¹"
-"象å®ä¾å¯è½æåä¸ä¸ªæ°æ®åºæ è¯ï¼ä¹å°±æ¯è¯´ï¼ ä»ä»¬ä»£è¡¨äºè¡¨çåä¸è¡æ°æ®ï¼ï¼ä» JVM "
-"æ è¯çå®ä¹ä¸æ¥è¯´ï¼å¯¹è±ç®¡ç对象èè¨ï¼Hibernate æ æ³ä¿è¯ä»ä»¬ çç JVM æ è¯ä¸"
-"è´ãå¼å人åå¿
é¡»è¦çæä¹
åç±»ç <literal>equals()</literal> æ¹æ³å "
-"<literal>hashCode()</literal> æ¹æ³ï¼ä»èå®ç°èªå®ä¹ç对象ç¸çè¯ä¹ãè¦åï¼ä¸è¦"
-"使ç¨æ°æ®åºæ è¯æ¥å®ç°å¯¹è±¡ç¸çï¼åºè¯¥ä½¿ç¨ä¸å¡é®å¼ï¼ç±å¯ä¸çï¼é常ä¸åçå±æ§ç»"
-"æãå½ä¸ä¸ªç¬æ¶å¯¹è±¡è¢«æä¹
åçæ¶åï¼å®çæ°æ®åºæ è¯ä¼åçæ¹åãå¦æä¸ä¸ªç¬æ¶å¯¹è±¡"
-"ï¼é常ä¹å
æ¬è±ç®¡å¯¹è±¡å®ä¾ï¼è¢«æ¾å
¥ä¸ä¸ª <literal>Set</literal>ï¼æ¹åå®ç "
-"hashcode ä¼å¯¼è´ä¸è¿ä¸ª <literal>Set</literal> çå
³ç³»ä¸æãè½ ç¶ä¸å¡é®å¼çå±æ§"
-"ä¸è±¡æ°æ®åºä¸»é®é£æ ·ç¨³å®ä¸åï¼ä½æ¯ä½ åªéè¦ä¿è¯å¨åä¸ä¸ª <literal>Set</literal> "
-"ä¸ç对象å±æ§ç稳å®æ§å°±è¶³å¤äºãè¯·å° Hibernate ç½ç«å»å¯»æ±è¿ä¸ªé®é¢æ´å¤ç详ç»ç讨"
-"论ã请注æï¼è¿ä¸æ¯ä¸ä¸ªæå
³ Hibernate çé®é¢ï¼èä»
ä»
æ¯ä¸ä¸ªå
³äº Java 对象æ è¯å"
-"å¤çè¡ä¸ºå¦ä½å®ç°çé®é¢ã"
+#, no-c-format
+msgid "However, an application that uses <literal>==</literal> outside of a <literal>Session</literal> might produce unexpected results. This might occur even in some unexpected places. For example, if you put two detached instances into the same <literal>Set</literal>, both might have the same database identity (i.e., they represent the same row). JVM identity, however, is by definition not guaranteed for instances in a detached state. The developer has to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods in persistent classes and implement their own notion of object equality. There is one caveat: never use the database identifier to implement equality. Use a business key that is a combination of unique, usually immutable, attributes. The database identifier will change if a transient object is made persistent. If the transient instance (usually together with detached instances) is held in a <literal>Set</literal>, changing the hashcode bre!
aks the contract of the <literal>Set</literal>. Attributes for business keys do not have to be as stable as database primary keys; you only have to guarantee stability as long as the objects are in the same <literal>Set</literal>. See the Hibernate website for a more thorough discussion of this issue. Please note that this is not a Hibernate issue, but simply how Java object identity and equality has to be implemented."
+msgstr "ä¸è¿ï¼åºç¨ç¨åºå¨ <literal>Session</literal> çå¤é¢ä½¿ç¨ <literal>==</literal> è¿è¡å¯¹è±¡æ¯è¾å¯è½ä¼ 导è´æ æ³é¢æçç»æãå¨ä¸äºæ æ³é¢æçåºåï¼ä¾å¦ï¼å¦æä½ æ两个è±ç®¡å¯¹è±¡å®ä¾æ¾è¿åä¸ä¸ª <literal>Set</literal> çæ¶åï¼å°±å¯è½åçãè¿ä¸¤ä¸ªå¯¹è±¡å®ä¾å¯è½æåä¸ä¸ªæ°æ®åºæ è¯ï¼ä¹å°±æ¯è¯´ï¼ ä»ä»¬ä»£è¡¨äºè¡¨çåä¸è¡æ°æ®ï¼ï¼ä» JVM æ è¯çå®ä¹ä¸æ¥è¯´ï¼å¯¹è±ç®¡ç对象èè¨ï¼Hibernate æ æ³ä¿è¯ä»ä»¬ çç JVM æ è¯ä¸è´ãå¼å人åå¿
é¡»è¦çæä¹
åç±»ç <literal>equals()</literal> æ¹æ³å <literal>hashCode()</literal> æ¹æ³ï¼ä»èå®ç°èªå®ä¹ç对象ç¸çè¯ä¹ãè¦åï¼ä¸è¦ä½¿ç¨æ°æ®åºæ è¯æ¥å®ç°å¯¹è±¡ç¸çï¼åºè¯¥ä½¿ç¨ä¸å¡é®å¼ï¼ç±å¯ä¸çï¼é常ä¸åçå±æ§ç»æãå½ä¸ä¸ªç¬æ¶å¯¹è±¡è¢«æä¹
åçæ¶åï¼å®çæ°æ®åºæ è¯ä¼åçæ¹åãå¦æä¸ä¸ªç¬æ¶å¯¹è±¡ï¼é常ä¹å
æ¬è±ç®¡å¯¹è±¡å®ä¾ï¼è¢«æ¾å
¥ä!
¸ä¸ª <literal>Set</literal>ï¼æ¹åå®ç hashcode ä¼å¯¼è´ä¸è¿ä¸ª <literal>Set</literal> çå
³ç³»ä¸æãè½ ç¶ä¸å¡é®å¼çå±æ§ä¸è±¡æ°æ®åºä¸»é®é£æ ·ç¨³å®ä¸åï¼ä½æ¯ä½ åªéè¦ä¿è¯å¨åä¸ä¸ª <literal>Set</literal> ä¸ç对象å±æ§ç稳å®æ§å°±è¶³å¤äºãè¯·å° Hibernate ç½ç«å»å¯»æ±è¿ä¸ªé®é¢æ´å¤ç详ç»ç讨论ã请注æï¼è¿ä¸æ¯ä¸ä¸ªæå
³ Hibernate çé®é¢ï¼èä»
ä»
æ¯ä¸ä¸ªå
³äº Java 对象æ è¯åå¤çè¡ä¸ºå¦ä½å®ç°çé®é¢ã "
#. Tag: title
#: transactions.xml:334
@@ -561,84 +244,27 @@
#. Tag: para
#: transactions.xml:336
-#, fuzzy, no-c-format
-msgid ""
-"Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> "
-"or <emphasis>session-per-application</emphasis> (there are, however, rare "
-"exceptions to this rule). Some of the following issues might also arise "
-"within the recommended patterns, so ensure that you understand the "
-"implications before making a design decision:"
-msgstr ""
-"å³ä¸è¦ä½¿ç¨åæ¨¡å¼ <emphasis>session-per-user-session</emphasis> æè
"
-"<emphasis> session-per-application</emphasis>ï¼å½ç¶ï¼è¿ä¸ªè§å®å ä¹æ²¡æä¾å¤ï¼ã"
-"请注æï¼ä¸è¿°ä¸äºé®é¢å¯è½ä¹ä¼åºç°å¨æ们æ¨èç模å¼ä¸ï¼å¨ä½ ä½åºæ个设计å³å®ä¹"
-"åï¼è¯·å¡å¿
ç解该模å¼çåºç¨åæã"
+#, no-c-format
+msgid "Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> or <emphasis>session-per-application</emphasis> (there are, however, rare exceptions to this rule). Some of the following issues might also arise within the recommended patterns, so ensure that you understand the implications before making a design decision:"
+msgstr "å³ä¸è¦ä½¿ç¨åæ¨¡å¼ <emphasis>session-per-user-session</emphasis> æè
<emphasis> session-per-application</emphasis>ï¼å½ç¶ï¼è¿ä¸ªè§å®å ä¹æ²¡æä¾å¤ï¼ã请注æï¼ä¸è¿°ä¸äºé®é¢å¯è½ä¹ä¼åºç°å¨æ们æ¨èç模å¼ä¸ï¼å¨ä½ ä½åºæ个设计å³å®ä¹åï¼è¯·å¡å¿
ç解该模å¼çåºç¨åæã "
#. Tag: para
#: transactions.xml:345
-#, fuzzy, no-c-format
-msgid ""
-"A <literal>Session</literal> is not thread-safe. Things that work "
-"concurrently, like HTTP requests, session beans, or Swing workers, will "
-"cause race conditions if a <literal>Session</literal> instance is shared. If "
-"you keep your Hibernate <literal>Session</literal> in your "
-"<literal>HttpSession</literal> (this is discussed later in the chapter), you "
-"should consider synchronizing access to your Http session. Otherwise, a user "
-"that clicks reload fast enough can use the same <literal>Session</literal> "
-"in two concurrently running threads."
-msgstr ""
-"<literal>Session</literal> 对象æ¯é线ç¨å®å
¨çãå¦æä¸ä¸ª <literal>Session</"
-"literal> å®ä¾å
许å
±äº«çè¯ï¼é£äºæ¯æ并åè¿è¡çä¸ä¸ï¼ä¾å¦ HTTP requestï¼"
-"session beans æè
æ¯ Swing workersï¼å°ä¼å¯¼è´åºç°èµæºäºç¨ï¼race conditionï¼ã"
-"å¦æå¨ <literal>HttpSession</literal> ä¸æ Hibernate ç <literal>Session</"
-"literal> çè¯ï¼ç¨å讨论ï¼ï¼ä½ åºè¯¥èèåæ¥è®¿é®ä½ ç Http sessionã å¦åï¼åªè¦ç¨"
-"æ·è¶³å¤å¿«çç¹å»æµè§å¨çâå·æ°âï¼å°±ä¼å¯¼è´ä¸¤ä¸ªå¹¶åè¿è¡çº¿ç¨ä½¿ç¨åä¸ä¸ª "
-"<literal>Session</literal>ã"
+#, no-c-format
+msgid "A <literal>Session</literal> is not thread-safe. Things that work concurrently, like HTTP requests, session beans, or Swing workers, will cause race conditions if a <literal>Session</literal> instance is shared. If you keep your Hibernate <literal>Session</literal> in your <literal>HttpSession</literal> (this is discussed later in the chapter), you should consider synchronizing access to your Http session. Otherwise, a user that clicks reload fast enough can use the same <literal>Session</literal> in two concurrently running threads."
+msgstr "<literal>Session</literal> 对象æ¯é线ç¨å®å
¨çãå¦æä¸ä¸ª <literal>Session</literal> å®ä¾å
许å
±äº«çè¯ï¼é£äºæ¯æ并åè¿è¡çä¸ä¸ï¼ä¾å¦ HTTP requestï¼session beans æè
æ¯ Swing workersï¼å°ä¼å¯¼è´åºç°èµæºäºç¨ï¼race conditionï¼ãå¦æå¨ <literal>HttpSession</literal> ä¸æ Hibernate ç <literal>Session</literal> çè¯ï¼ç¨å讨论ï¼ï¼ä½ åºè¯¥èèåæ¥è®¿é®ä½ ç Http sessionã å¦åï¼åªè¦ç¨æ·è¶³å¤å¿«çç¹å»æµè§å¨çâå·æ°âï¼å°±ä¼å¯¼è´ä¸¤ä¸ªå¹¶åè¿è¡çº¿ç¨ä½¿ç¨åä¸ä¸ª <literal>Session</literal>ã "
#. Tag: para
#: transactions.xml:356
-#, fuzzy, no-c-format
-msgid ""
-"An exception thrown by Hibernate means you have to rollback your database "
-"transaction and close the <literal>Session</literal> immediately (this is "
-"discussed in more detail later in the chapter). If your <literal>Session</"
-"literal> is bound to the application, you have to stop the application. "
-"Rolling back the database transaction does not put your business objects "
-"back into the state they were at the start of the transaction. This means "
-"that the database state and the business objects will be out of sync. "
-"Usually this is not a problem, because exceptions are not recoverable and "
-"you will have to start over after rollback anyway."
-msgstr ""
-"ä¸ä¸ªç± Hibernate æåºçå¼å¸¸æå³çä½ å¿
é¡»ç«å³åæ»æ°æ®åºäºå¡ï¼å¹¶ç«å³å
³é "
-"<literal>Session</literal>ï¼ç¨åä¼å±å¼è®¨è®ºï¼ãå¦æä½ ç <literal>Session</"
-"literal> ç»å®å°ä¸ä¸ªåºç¨ç¨åºä¸ï¼ä½ å¿
é¡»åæ¢è¯¥åºç¨ç¨åºãåæ»æ°æ®åºäºå¡å¹¶ä¸ä¼æä½ "
-"çä¸å¡å¯¹è±¡éåå°äºå¡å¯å¨æ¶åçç¶æãè¿æå³çæ°æ®åºç¶æåä¸å¡å¯¹è±¡ç¶æä¸åæ¥ã"
-"é常æ
åµä¸ï¼è¿ä¸æ¯ä»ä¹é®é¢ï¼å 为å¼å¸¸æ¯ä¸å¯æ¢å¤çï¼ä½ å¿
é¡»å¨åæ»ä¹åéæ°å¼å§æ§"
-"è¡ã"
+#, no-c-format
+msgid "An exception thrown by Hibernate means you have to rollback your database transaction and close the <literal>Session</literal> immediately (this is discussed in more detail later in the chapter). If your <literal>Session</literal> is bound to the application, you have to stop the application. Rolling back the database transaction does not put your business objects back into the state they were at the start of the transaction. This means that the database state and the business objects will be out of sync. Usually this is not a problem, because exceptions are not recoverable and you will have to start over after rollback anyway."
+msgstr "ä¸ä¸ªç± Hibernate æåºçå¼å¸¸æå³çä½ å¿
é¡»ç«å³åæ»æ°æ®åºäºå¡ï¼å¹¶ç«å³å
³é <literal>Session</literal>ï¼ç¨åä¼å±å¼è®¨è®ºï¼ãå¦æä½ ç <literal>Session</literal> ç»å®å°ä¸ä¸ªåºç¨ç¨åºä¸ï¼ä½ å¿
é¡»åæ¢è¯¥åºç¨ç¨åºãåæ»æ°æ®åºäºå¡å¹¶ä¸ä¼æä½ çä¸å¡å¯¹è±¡éåå°äºå¡å¯å¨æ¶åçç¶æãè¿æå³çæ°æ®åºç¶æåä¸å¡å¯¹è±¡ç¶æä¸åæ¥ãé常æ
åµä¸ï¼è¿ä¸æ¯ä»ä¹é®é¢ï¼å 为å¼å¸¸æ¯ä¸å¯æ¢å¤çï¼ä½ å¿
é¡»å¨åæ»ä¹åéæ°å¼å§æ§è¡ã "
#. Tag: para
#: transactions.xml:368
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>Session</literal> caches every object that is in a persistent "
-"state (watched and checked for dirty state by Hibernate). If you keep it "
-"open for a long time or simply load too much data, it will grow endlessly "
-"until you get an OutOfMemoryException. One solution is to call <literal>clear"
-"()</literal> and <literal>evict()</literal> to manage the <literal>Session</"
-"literal> cache, but you should consider a Stored Procedure if you need mass "
-"data operations. Some solutions are shown in <xref linkend=\"batch\"/>. "
-"Keeping a <literal>Session</literal> open for the duration of a user session "
-"also means a higher probability of stale data."
-msgstr ""
-"<literal>Session</literal> ç¼åäºå¤äºæä¹
åç¶æçæ¯ä¸ªå¯¹è±¡ï¼Hibernate ä¼çè§å"
-"æ£æ¥èæ°æ®ï¼ã è¿æå³çï¼å¦æä½ è®© <literal>Session</literal> æå¼å¾é¿ä¸æ®µæ¶"
-"é´ï¼ææ¯ä»
ä»
è½½å
¥äºè¿å¤çæ°æ®ï¼ <literal>Session</literal> å ç¨çå
åä¼ä¸ç´å¢"
-"é¿ï¼ç´å°æåº OutOfMemoryException å¼å¸¸ãè¿ä¸ª é®é¢çä¸ä¸ªè§£å³æ¹æ³æ¯è°ç¨ "
-"<literal>clear()</literal> å <literal>evict()</literal> æ¥ç®¡ç "
-"<literal>Session</literal> çç¼åï¼ä½æ¯å¦æä½ éè¦å¤§æ¹éæ°æ®æä½çè¯ï¼æ好èè"
-"使ç¨åå¨è¿ç¨ãå¨<xref linkend=\"Batch_processing\"/>ä¸æä¸äºè§£å³æ¹æ¡ãå¨ç¨æ·"
-"ä¼è¯æé´ä¸ç´ä¿æ <literal>Session</literal> æå¼ä¹æå³çåºç°èæ°æ®çå¯è½æ§å¾"
-"é«ã"
+#, no-c-format
+msgid "The <literal>Session</literal> caches every object that is in a persistent state (watched and checked for dirty state by Hibernate). If you keep it open for a long time or simply load too much data, it will grow endlessly until you get an OutOfMemoryException. One solution is to call <literal>clear()</literal> and <literal>evict()</literal> to manage the <literal>Session</literal> cache, but you should consider a Stored Procedure if you need mass data operations. Some solutions are shown in <xref linkend=\"batch\"/>. Keeping a <literal>Session</literal> open for the duration of a user session also means a higher probability of stale data."
+msgstr "<literal>Session</literal> ç¼åäºå¤äºæä¹
åç¶æçæ¯ä¸ªå¯¹è±¡ï¼Hibernate ä¼çè§åæ£æ¥èæ°æ®ï¼ã è¿æå³çï¼å¦æä½ è®© <literal>Session</literal> æå¼å¾é¿ä¸æ®µæ¶é´ï¼ææ¯ä»
ä»
è½½å
¥äºè¿å¤çæ°æ®ï¼ <literal>Session</literal> å ç¨çå
åä¼ä¸ç´å¢é¿ï¼ç´å°æåº OutOfMemoryException å¼å¸¸ãè¿ä¸ª é®é¢çä¸ä¸ªè§£å³æ¹æ³æ¯è°ç¨ <literal>clear()</literal> å <literal>evict()</literal> æ¥ç®¡ç <literal>Session</literal> çç¼åï¼ä½æ¯å¦æä½ éè¦å¤§æ¹éæ°æ®æä½çè¯ï¼æ好èè使ç¨åå¨è¿ç¨ãå¨<xref linkend=\"Batch_processing\"/>ä¸æä¸äºè§£å³æ¹æ¡ãå¨ç¨æ·ä¼è¯æé´ä¸ç´ä¿æ <literal>Session</literal> æå¼ä¹æå³çåºç°èæ°æ®çå¯è½æ§å¾é«ã "
#. Tag: title
#: transactions.xml:386
@@ -648,69 +274,27 @@
#. Tag: para
#: transactions.xml:388
-#, fuzzy, no-c-format
-msgid ""
-"Database, or system, transaction boundaries are always necessary. No "
-"communication with the database can occur outside of a database transaction "
-"(this seems to confuse many developers who are used to the auto-commit "
-"mode). Always use clear transaction boundaries, even for read-only "
-"operations. Depending on your isolation level and database capabilities this "
-"might not be required, but there is no downside if you always demarcate "
-"transactions explicitly. Certainly, a single database transaction is going "
-"to perform better than many small transactions, even for reading data."
-msgstr ""
-"æ°æ®åºï¼æè
ç³»ç»ï¼äºå¡ç声ææ»æ¯å¿
é¡»çãå¨æ°æ®åºäºå¡ä¹å¤ï¼å°±æ æ³åæ°æ®åºé讯"
-"ï¼è¿å¯è½ä¼è®©é£äºä¹ æ¯äºèªå¨æ交äºå¡æ¨¡å¼çå¼å人åæå°è¿·æï¼ãæ°¸è¿ä½¿ç¨æ¸
æ°çäº"
-"å¡å£°æï¼å³ä½¿åªè¯»æä½ä¹æ¯å¦æ¤ãè¿è¡ æ¾å¼çäºå¡å£°æ并ä¸æ»æ¯éè¦çï¼è¿åå³äºä½ ç"
-"äºå¡é离级å«åæ°æ®åºçè½åï¼ä½ä¸ç®¡æä¹è¯´ï¼å£°æäºå¡æ»å½æçæ 害ãå½ç¶ï¼ä¸ä¸ªå"
-"ç¬çæ°æ®åºäºå¡æ»æ¯æ¯å¾å¤çç¢çäºå¡æ§è½æ´å¥½ï¼å³æ¶å¯¹è¯»æ°æ®èè¨ä¹æ¯ä¸æ ·ã"
+#, no-c-format
+msgid "Database, or system, transaction boundaries are always necessary. No communication with the database can occur outside of a database transaction (this seems to confuse many developers who are used to the auto-commit mode). Always use clear transaction boundaries, even for read-only operations. Depending on your isolation level and database capabilities this might not be required, but there is no downside if you always demarcate transactions explicitly. Certainly, a single database transaction is going to perform better than many small transactions, even for reading data."
+msgstr "æ°æ®åºï¼æè
ç³»ç»ï¼äºå¡ç声ææ»æ¯å¿
é¡»çãå¨æ°æ®åºäºå¡ä¹å¤ï¼å°±æ æ³åæ°æ®åºé讯ï¼è¿å¯è½ä¼è®©é£äºä¹ æ¯äºèªå¨æ交äºå¡æ¨¡å¼çå¼å人åæå°è¿·æï¼ãæ°¸è¿ä½¿ç¨æ¸
æ°çäºå¡å£°æï¼å³ä½¿åªè¯»æä½ä¹æ¯å¦æ¤ãè¿è¡ æ¾å¼çäºå¡å£°æ并ä¸æ»æ¯éè¦çï¼è¿åå³äºä½ çäºå¡é离级å«åæ°æ®åºçè½åï¼ä½ä¸ç®¡æä¹è¯´ï¼å£°æäºå¡æ»å½æçæ 害ãå½ç¶ï¼ä¸ä¸ªåç¬çæ°æ®åºäºå¡æ»æ¯æ¯å¾å¤çç¢çäºå¡æ§è½æ´å¥½ï¼å³æ¶å¯¹è¯»æ°æ®èè¨ä¹æ¯ä¸æ ·ã "
#. Tag: para
#: transactions.xml:398
-#, fuzzy, no-c-format
-msgid ""
-"A Hibernate application can run in non-managed (i.e., standalone, simple "
-"Web- or Swing applications) and managed J2EE environments. In a non-managed "
-"environment, Hibernate is usually responsible for its own database "
-"connection pool. The application developer has to manually set transaction "
-"boundaries (begin, commit, or rollback database transactions) themselves. A "
-"managed environment usually provides container-managed transactions (CMT), "
-"with the transaction assembly defined declaratively (in deployment "
-"descriptors of EJB session beans, for example). Programmatic transaction "
-"demarcation is then no longer necessary."
-msgstr ""
-"ä¸ä¸ª Hibernate åºç¨ç¨åºå¯ä»¥è¿è¡å¨éæ管ç¯å¢ä¸ï¼ä¹å°±æ¯ç¬ç«è¿è¡çåºç¨ç¨åºï¼ç®"
-"å Web åºç¨ç¨åºï¼æè
Swingå¾å½¢æ¡é¢åºç¨ç¨åºï¼ï¼ä¹å¯ä»¥è¿è¡å¨æ管ç J2EE ç¯å¢"
-"ä¸ãå¨ä¸ä¸ªéæ管ç¯å¢ä¸ï¼Hibernate é常èªå·±è´è´£ç®¡çæ°æ®åºè¿æ¥æ± ãåºç¨ç¨åºå¼å"
-"人åå¿
é¡»æ工设置äºå¡å£°æï¼æ¢å¥è¯è¯´ï¼å°±æ¯æå·¥å¯ å¨ï¼æ交ï¼æè
åæ»æ°æ®åºäºå¡ã"
-"ä¸ä¸ªæ管çç¯å¢é常æä¾äºå®¹å¨ç®¡çäºå¡ï¼CMTï¼ï¼ä¾å¦äºå¡è£
é
éè¿å¯å£°æçæ¹å¼å®ä¹"
-"å¨ EJB session beans çé¨ç½²æ述符ä¸ãå¯ç¼ç¨å¼äºå¡å£°æä¸åéè¦ï¼å³ä½¿æ¯ "
-"<literal>Session</literal> çåæ¥ä¹å¯ä»¥èªå¨å®æã"
+#, no-c-format
+msgid "A Hibernate application can run in non-managed (i.e., standalone, simple Web- or Swing applications) and managed J2EE environments. In a non-managed environment, Hibernate is usually responsible for its own database connection pool. The application developer has to manually set transaction boundaries (begin, commit, or rollback database transactions) themselves. A managed environment usually provides container-managed transactions (CMT), with the transaction assembly defined declaratively (in deployment descriptors of EJB session beans, for example). Programmatic transaction demarcation is then no longer necessary."
+msgstr "ä¸ä¸ª Hibernate åºç¨ç¨åºå¯ä»¥è¿è¡å¨éæ管ç¯å¢ä¸ï¼ä¹å°±æ¯ç¬ç«è¿è¡çåºç¨ç¨åºï¼ç®å Web åºç¨ç¨åºï¼æè
Swingå¾å½¢æ¡é¢åºç¨ç¨åºï¼ï¼ä¹å¯ä»¥è¿è¡å¨æ管ç J2EE ç¯å¢ä¸ãå¨ä¸ä¸ªéæ管ç¯å¢ä¸ï¼Hibernate é常èªå·±è´è´£ç®¡çæ°æ®åºè¿æ¥æ± ãåºç¨ç¨åºå¼å人åå¿
é¡»æ工设置äºå¡å£°æï¼æ¢å¥è¯è¯´ï¼å°±æ¯æå·¥å¯ å¨ï¼æ交ï¼æè
åæ»æ°æ®åºäºå¡ãä¸ä¸ªæ管çç¯å¢é常æä¾äºå®¹å¨ç®¡çäºå¡ï¼CMTï¼ï¼ä¾å¦äºå¡è£
é
éè¿å¯å£°æçæ¹å¼å®ä¹å¨ EJB session beans çé¨ç½²æ述符ä¸ãå¯ç¼ç¨å¼äºå¡å£°æä¸åéè¦ï¼å³ä½¿æ¯ <literal>Session</literal> çåæ¥ä¹å¯ä»¥èªå¨å®æã "
#. Tag: para
#: transactions.xml:408
-#, fuzzy, no-c-format
-msgid ""
-"However, it is often desirable to keep your persistence layer portable "
-"between non-managed resource-local environments, and systems that can rely "
-"on JTA but use BMT instead of CMT. In both cases use programmatic "
-"transaction demarcation. Hibernate offers a wrapper API called "
-"<literal>Transaction</literal> that translates into the native transaction "
-"system of your deployment environment. This API is actually optional, but we "
-"strongly encourage its use unless you are in a CMT session bean."
-msgstr ""
-"让æä¹
å±å
·å¤å¯ç§»æ¤æ§æ¯äººä»¬ççæ³,è¿ç§ç§»æ¤åçå¨éæ管çæ¬å°èµæºç¯å¢ï¼ä¸ä¾èµ "
-"JTA ä½æ¯ä½¿ç¨ BMT èé CMT çç³»ç»ä¹é´ãå¨ä¸¤ç§æ
åµä¸ä½ é½å¯ä»¥ä½¿ç¨ç¼ç¨å¼çäºå¡ç®¡"
-"çãHibernate æä¾äºä¸å¥ç§°ä¸º <literal>Transaction</literal> çå°è£
APIï¼ ç¨æ¥"
-"æä½ çé¨ç½²ç¯å¢ä¸çæ¬å°äºå¡ç®¡çç³»ç»è½¬æ¢å° Hibernate äºå¡ä¸ãè¿ä¸ª API æ¯å¯é"
-"çï¼ä½æ¯æ们强çæ¨èä½ ä½¿ç¨ï¼é¤éä½ ç¨ CMT session beanã"
+#, no-c-format
+msgid "However, it is often desirable to keep your persistence layer portable between non-managed resource-local environments, and systems that can rely on JTA but use BMT instead of CMT. In both cases use programmatic transaction demarcation. Hibernate offers a wrapper API called <literal>Transaction</literal> that translates into the native transaction system of your deployment environment. This API is actually optional, but we strongly encourage its use unless you are in a CMT session bean."
+msgstr "让æä¹
å±å
·å¤å¯ç§»æ¤æ§æ¯äººä»¬ççæ³,è¿ç§ç§»æ¤åçå¨éæ管çæ¬å°èµæºç¯å¢ï¼ä¸ä¾èµ JTA ä½æ¯ä½¿ç¨ BMT èé CMT çç³»ç»ä¹é´ãå¨ä¸¤ç§æ
åµä¸ä½ é½å¯ä»¥ä½¿ç¨ç¼ç¨å¼çäºå¡ç®¡çãHibernate æä¾äºä¸å¥ç§°ä¸º <literal>Transaction</literal> çå°è£
APIï¼ ç¨æ¥æä½ çé¨ç½²ç¯å¢ä¸çæ¬å°äºå¡ç®¡çç³»ç»è½¬æ¢å° Hibernate äºå¡ä¸ãè¿ä¸ª API æ¯å¯éçï¼ä½æ¯æ们强çæ¨èä½ ä½¿ç¨ï¼é¤éä½ ç¨ CMT session beanã "
#. Tag: para
#: transactions.xml:417
-#, fuzzy, no-c-format
-msgid ""
-"Ending a <literal>Session</literal> usually involves four distinct phases:"
-msgstr "é常æ
åµä¸ï¼ç»æ <literal>Session</literal> å
å«äºå个ä¸åçé¶æ®µï¼"
+#, no-c-format
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr "é常æ
åµä¸ï¼ç»æ <literal>Session</literal> å
å«äºå个ä¸åçé¶æ®µï¼ "
#. Tag: para
#: transactions.xml:423
@@ -738,14 +322,9 @@
#. Tag: para
#: transactions.xml:444
-#, fuzzy, no-c-format
-msgid ""
-"We discussed Flushing the session earlier, so we will now have a closer look "
-"at transaction demarcation and exception handling in both managed and non-"
-"managed environments."
-msgstr ""
-"session çåæ¥ï¼flushï¼å·åºï¼åé¢å·²ç»è®¨è®ºè¿äºï¼æ们ç°å¨è¿ä¸æ¥èå¯å¨æ管åéæ"
-"管ç¯å¢ä¸çäºå¡å£°æåå¼å¸¸å¤çã"
+#, no-c-format
+msgid "We discussed Flushing the session earlier, so we will now have a closer look at transaction demarcation and exception handling in both managed and non-managed environments."
+msgstr "session çåæ¥ï¼flushï¼å·åºï¼åé¢å·²ç»è®¨è®ºè¿äºï¼æ们ç°å¨è¿ä¸æ¥èå¯å¨æ管åéæ管ç¯å¢ä¸çäºå¡å£°æåå¼å¸¸å¤çã "
#. Tag: title
#: transactions.xml:451
@@ -755,19 +334,13 @@
#. Tag: para
#: transactions.xml:453
-#, fuzzy, no-c-format
-msgid ""
-"If a Hibernate persistence layer runs in a non-managed environment, database "
-"connections are usually handled by simple (i.e., non-DataSource) connection "
-"pools from which Hibernate obtains connections as needed. The session/"
-"transaction handling idiom looks like this:"
-msgstr ""
-"å¦æ Hibernat æä¹
å±è¿è¡å¨ä¸ä¸ªéæ管ç¯å¢ä¸ï¼æ°æ®åºè¿æ¥éå¸¸ç± Hibernate çç®å"
-"ï¼å³é DataSourceï¼è¿æ¥æ± æºå¶ æ¥å¤çãsession/transaction å¤çæ¹å¼å¦ä¸æ示ï¼"
+#, no-c-format
+msgid "If a Hibernate persistence layer runs in a non-managed environment, database connections are usually handled by simple (i.e., non-DataSource) connection pools from which Hibernate obtains connections as needed. The session/transaction handling idiom looks like this:"
+msgstr "å¦æ Hibernat æä¹
å±è¿è¡å¨ä¸ä¸ªéæ管ç¯å¢ä¸ï¼æ°æ®åºè¿æ¥éå¸¸ç± Hibernate çç®åï¼å³é DataSourceï¼è¿æ¥æ± æºå¶ æ¥å¤çãsession/transaction å¤çæ¹å¼å¦ä¸æç¤ºï¼ "
#. Tag: programlisting
#: transactions.xml:460
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// Non-managed environment idiom\n"
"Session sess = factory.openSession();\n"
@@ -788,7 +361,7 @@
" sess.close();\n"
"}]]>"
msgstr ""
-"// Non-managed environment idiom\n"
+"<![CDATA[// Non-managed environment idiom\n"
"Session sess = factory.openSession();\n"
"Transaction tx = null;\n"
"try {\n"
@@ -805,40 +378,23 @@
"}\n"
"finally {\n"
" sess.close();\n"
-"}"
+"}]]>"
#. Tag: para
#: transactions.xml:462
-#, fuzzy, no-c-format
-msgid ""
-"You do not have to <literal>flush()</literal> the <literal>Session</literal> "
-"explicitly: the call to <literal>commit()</literal> automatically triggers "
-"the synchronization depending on the <xref linkend=\"objectstate-flushing\"/"
-"> for the session. A call to <literal>close()</literal> marks the end of a "
-"session. The main implication of <literal>close()</literal> is that the JDBC "
-"connection will be relinquished by the session. This Java code is portable "
-"and runs in both non-managed and JTA environments."
-msgstr ""
-"ä½ ä¸éè¦æ¾å¼ <literal>flush()</literal> <literal>Session</literal> â 对 "
-"<literal>commit()</literal> çè°ç¨ä¼èªå¨è§¦å session çåæ¥ï¼åå³äº session "
-"ç <xref linkend=\"objectstate-flushing\">FlushMode</xref>ï¼ãè°ç¨ "
-"<literal>close()</literal> æ å¿ session çç»æã<literal>close()</literal> æ¹"
-"æ³éè¦çæ示æ¯ï¼<literal>session</literal> éæ¾äº JDBC è¿æ¥ãè¿æ®µ Java 代ç å¨"
-"éæ管ç¯å¢ä¸å JTA ç¯å¢ä¸é½å¯ä»¥è¿è¡ã"
+#, no-c-format
+msgid "You do not have to <literal>flush()</literal> the <literal>Session</literal> explicitly: the call to <literal>commit()</literal> automatically triggers the synchronization depending on the <xref linkend=\"objectstate-flushing\"/> for the session. A call to <literal>close()</literal> marks the end of a session. The main implication of <literal>close()</literal> is that the JDBC connection will be relinquished by the session. This Java code is portable and runs in both non-managed and JTA environments."
+msgstr "ä½ ä¸éè¦æ¾å¼ <literal>flush()</literal> <literal>Session</literal> â 对 <literal>commit()</literal> çè°ç¨ä¼èªå¨è§¦å session çåæ¥ï¼åå³äº session ç <xref linkend=\"objectstate-flushing\">FlushMode</xref>ï¼ãè°ç¨ <literal>close()</literal> æ å¿ session çç»æã<literal>close()</literal> æ¹æ³éè¦çæ示æ¯ï¼<literal>session</literal> éæ¾äº JDBC è¿æ¥ãè¿æ®µ Java 代ç å¨éæ管ç¯å¢ä¸å JTA ç¯å¢ä¸é½å¯ä»¥è¿è¡ã "
#. Tag: para
#: transactions.xml:471
-#, fuzzy, no-c-format
-msgid ""
-"As outlined earlier, a much more flexible solution is Hibernate's built-in "
-"\"current session\" context management:"
-msgstr ""
-"æ´å çµæ´»çæ¹æ¡æ¯ Hibernate å
ç½®ç \"current session\" ä¸ä¸æ管çï¼åæå·²ç»è®²"
-"è¿ï¼"
+#, no-c-format
+msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
+msgstr "æ´å çµæ´»çæ¹æ¡æ¯ Hibernate å
ç½®ç \"current session\" ä¸ä¸æ管çï¼åæå·²ç»è®²è¿ï¼ "
#. Tag: programlisting
#: transactions.xml:476
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
"try {\n"
@@ -854,7 +410,7 @@
" throw e; // or display error message\n"
"}]]>"
msgstr ""
-"// Non-managed environment idiom with getCurrentSession()\n"
+"<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
"try {\n"
" factory.getCurrentSession().beginTransaction();\n"
"\n"
@@ -866,41 +422,19 @@
"catch (RuntimeException e) {\n"
" factory.getCurrentSession().getTransaction().rollback();\n"
" throw e; // or display error message\n"
-"}"
+"}]]>"
#. Tag: para
#: transactions.xml:478
-#, fuzzy, no-c-format
-msgid ""
-"You will not see these code snippets in a regular application; fatal "
-"(system) exceptions should always be caught at the \"top\". In other words, "
-"the code that executes Hibernate calls in the persistence layer, and the "
-"code that handles <literal>RuntimeException</literal> (and usually can only "
-"clean up and exit), are in different layers. The current context management "
-"by Hibernate can significantly simplify this design by accessing a "
-"<literal>SessionFactory</literal>. Exception handling is discussed later in "
-"this chapter."
-msgstr ""
-"ä½ å¾å¯è½ä»æªå¨ä¸ä¸ªé常çåºç¨ç¨åºçä¸å¡ä»£ç ä¸è§è¿è¿æ ·ç代ç çæï¼è´å½çï¼ç³»"
-"ç»ï¼å¼å¸¸åºè¯¥æ»æ¯ å¨åºç¨ç¨åºâ顶å±â被æè·ãæ¢å¥è¯è¯´ï¼æ§è¡ Hibernate è°ç¨ç代ç "
-"ï¼å¨æä¹
å±ï¼åå¤ç <literal>RuntimeException</literal> å¼å¸¸ç代ç ï¼é常åªè½æ¸
"
-"çåéåºåºç¨ç¨åºï¼åºè¯¥å¨ä¸å çåºç¨ç¨åºé»è¾å±ãHibernate çå½åä¸ä¸æ管çå¯ä»¥"
-"æ大å°ç®åè¿ä¸è®¾è®¡ï¼ä½ ææçä¸åå°±æ¯ <literal>SessionFactory</literal>ãå¼å¸¸"
-"å¤çå°å¨æ¬ç« ç¨åè¿è¡è®¨è®ºã"
+#, no-c-format
+msgid "You will not see these code snippets in a regular application; fatal (system) exceptions should always be caught at the \"top\". In other words, the code that executes Hibernate calls in the persistence layer, and the code that handles <literal>RuntimeException</literal> (and usually can only clean up and exit), are in different layers. The current context management by Hibernate can significantly simplify this design by accessing a <literal>SessionFactory</literal>. Exception handling is discussed later in this chapter."
+msgstr "ä½ å¾å¯è½ä»æªå¨ä¸ä¸ªé常çåºç¨ç¨åºçä¸å¡ä»£ç ä¸è§è¿è¿æ ·ç代ç çæï¼è´å½çï¼ç³»ç»ï¼å¼å¸¸åºè¯¥æ»æ¯ å¨åºç¨ç¨åºâ顶å±â被æè·ãæ¢å¥è¯è¯´ï¼æ§è¡ Hibernate è°ç¨ç代ç ï¼å¨æä¹
å±ï¼åå¤ç <literal>RuntimeException</literal> å¼å¸¸ç代ç ï¼é常åªè½æ¸
çåéåºåºç¨ç¨åºï¼åºè¯¥å¨ä¸å çåºç¨ç¨åºé»è¾å±ãHibernate çå½åä¸ä¸æ管çå¯ä»¥æ大å°ç®åè¿ä¸è®¾è®¡ï¼ä½ ææçä¸åå°±æ¯ <literal>SessionFactory</literal>ãå¼å¸¸å¤çå°å¨æ¬ç« ç¨åè¿è¡è®¨è®ºã "
#. Tag: para
#: transactions.xml:488
-#, fuzzy, no-c-format
-msgid ""
-"You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</"
-"literal>, which is the default, and for the second example select <literal>"
-"\"thread\"</literal> as your <literal>hibernate."
-"current_session_context_class</literal>."
-msgstr ""
-"请注æï¼ä½ åºè¯¥éæ© <literal>org.hibernate.transaction."
-"JDBCTransactionFactory</literal> ï¼è¿æ¯é»è®¤é项ï¼ï¼å¯¹ç¬¬äºä¸ªä¾åæ¥è¯´ï¼"
-"<literal>hibernate.current_session_context_class</literal>åºè¯¥æ¯ <literal>"
-"\"thread\"</literal>"
+#, no-c-format
+msgid "You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</literal>, which is the default, and for the second example select <literal>\"thread\"</literal> as your <literal>hibernate.current_session_context_class</literal>."
+msgstr "请注æï¼ä½ åºè¯¥éæ© <literal>org.hibernate.transaction.JDBCTransactionFactory</literal> ï¼è¿æ¯é»è®¤é项ï¼ï¼å¯¹ç¬¬äºä¸ªä¾åæ¥è¯´ï¼<literal>hibernate.current_session_context_class</literal>åºè¯¥æ¯ <literal>\"thread\"</literal>ã"
#. Tag: title
#: transactions.xml:497
@@ -910,34 +444,19 @@
#. Tag: para
#: transactions.xml:499
-#, fuzzy, no-c-format
-msgid ""
-"If your persistence layer runs in an application server (for example, behind "
-"EJB session beans), every datasource connection obtained by Hibernate will "
-"automatically be part of the global JTA transaction. You can also install a "
-"standalone JTA implementation and use it without EJB. Hibernate offers two "
-"strategies for JTA integration."
-msgstr ""
-"å¦æä½ çæä¹
å±è¿è¡å¨ä¸ä¸ªåºç¨æå¡å¨ä¸ï¼ä¾å¦ï¼å¨ EJB session beans çåé¢ï¼ï¼"
-"Hibernate è·åçæ¯ä¸ªæ°æ®æºè¿æ¥å°èªå¨æ为å
¨å± JTA äºå¡çä¸é¨åãä½ å¯ä»¥å®è£
ä¸ä¸ª"
-"ç¬ç«ç JTA å®ç°ï¼ä½¿ç¨å®èä¸ä½¿ç¨ EJBãHibernate æä¾äºä¸¤ç§çç¥è¿è¡ JTA éæã"
+#, no-c-format
+msgid "If your persistence layer runs in an application server (for example, behind EJB session beans), every datasource connection obtained by Hibernate will automatically be part of the global JTA transaction. You can also install a standalone JTA implementation and use it without EJB. Hibernate offers two strategies for JTA integration."
+msgstr "å¦æä½ çæä¹
å±è¿è¡å¨ä¸ä¸ªåºç¨æå¡å¨ä¸ï¼ä¾å¦ï¼å¨ EJB session beans çåé¢ï¼ï¼Hibernate è·åçæ¯ä¸ªæ°æ®æºè¿æ¥å°èªå¨æ为å
¨å± JTA äºå¡çä¸é¨åãä½ å¯ä»¥å®è£
ä¸ä¸ªç¬ç«ç JTA å®ç°ï¼ä½¿ç¨å®èä¸ä½¿ç¨ EJBãHibernate æä¾äºä¸¤ç§çç¥è¿è¡ JTA éæã "
#. Tag: para
#: transactions.xml:506
-#, fuzzy, no-c-format
-msgid ""
-"If you use bean-managed transactions (BMT), Hibernate will tell the "
-"application server to start and end a BMT transaction if you use the "
-"<literal>Transaction</literal> API. The transaction management code is "
-"identical to the non-managed environment."
-msgstr ""
-"å¦æä½ ä½¿ç¨ bean 管çäºå¡ï¼BMTï¼ï¼å¯ä»¥éè¿ä½¿ç¨ Hibernate ç "
-"<literal>Transaction</literal> API æ¥åè¯åºç¨æå¡å¨å¯å¨åç»æ BMT äºå¡ãå "
-"æ¤ï¼äºå¡ç®¡ç代ç åå¨éæ管ç¯å¢ä¸æ¯ä¸æ ·çã"
+#, no-c-format
+msgid "If you use bean-managed transactions (BMT), Hibernate will tell the application server to start and end a BMT transaction if you use the <literal>Transaction</literal> API. The transaction management code is identical to the non-managed environment."
+msgstr "å¦æä½ ä½¿ç¨ bean 管çäºå¡ï¼BMTï¼ï¼å¯ä»¥éè¿ä½¿ç¨ Hibernate ç <literal>Transaction</literal> API æ¥åè¯åºç¨æå¡å¨å¯å¨åç»æ BMT äºå¡ãå æ¤ï¼äºå¡ç®¡ç代ç åå¨éæ管ç¯å¢ä¸æ¯ä¸æ ·çã "
#. Tag: programlisting
#: transactions.xml:512
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// BMT idiom\n"
"Session sess = factory.openSession();\n"
@@ -958,7 +477,7 @@
" sess.close();\n"
"}]]>"
msgstr ""
-"// BMT idiom\n"
+"<![CDATA[// BMT idiom\n"
"Session sess = factory.openSession();\n"
"Transaction tx = null;\n"
"try {\n"
@@ -975,23 +494,17 @@
"}\n"
"finally {\n"
" sess.close();\n"
-"}"
+"}]]>"
#. Tag: para
#: transactions.xml:514
-#, fuzzy, no-c-format
-msgid ""
-"If you want to use a transaction-bound <literal>Session</literal>, that is, "
-"the <literal>getCurrentSession()</literal> functionality for easy context "
-"propagation, use the JTA <literal>UserTransaction</literal> API directly:"
-msgstr ""
-"å¦æä½ å¸æ使ç¨ä¸äºå¡ç»å®ç <literal>Session</literal>ï¼ä¹å°±æ¯ä½¿ç¨ "
-"<literal>getCurrentSession()</literal> æ¥ç®åä¸ä¸æ管çï¼ä½ å°ä¸å¾ä¸ç´æ¥ä½¿ç¨ "
-"JTA <literal>UserTransaction</literal> APIã"
+#, no-c-format
+msgid "If you want to use a transaction-bound <literal>Session</literal>, that is, the <literal>getCurrentSession()</literal> functionality for easy context propagation, use the JTA <literal>UserTransaction</literal> API directly:"
+msgstr "å¦æä½ å¸æ使ç¨ä¸äºå¡ç»å®ç <literal>Session</literal>ï¼ä¹å°±æ¯ä½¿ç¨ <literal>getCurrentSession()</literal> æ¥ç®åä¸ä¸æ管çï¼ä½ å°ä¸å¾ä¸ç´æ¥ä½¿ç¨ JTA <literal>UserTransaction</literal> APIã "
#. Tag: programlisting
#: transactions.xml:520
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// BMT idiom with getCurrentSession()\n"
"try {\n"
@@ -1011,7 +524,7 @@
" throw e; // or display error message\n"
"}]]>"
msgstr ""
-"// BMT idiom with getCurrentSession()\n"
+"<![CDATA[// BMT idiom with getCurrentSession()\n"
"try {\n"
" UserTransaction tx = (UserTransaction)new InitialContext()\n"
" .lookup(\"java:comp/UserTransaction\");\n"
@@ -1027,21 +540,17 @@
"catch (RuntimeException e) {\n"
" tx.rollback();\n"
" throw e; // or display error message\n"
-"}"
+"}]]>"
#. Tag: para
#: transactions.xml:522
-#, fuzzy, no-c-format
-msgid ""
-"With CMT, transaction demarcation is completed in session bean deployment "
-"descriptors, not programmatically. The code is reduced to:"
-msgstr ""
-"å¨ CMT æ¹å¼ä¸ï¼äºå¡å£°ææ¯å¨ session bean çé¨ç½²æ述符ä¸ï¼èä¸éè¦ç¼ç¨ãå æ¤ï¼"
-"代ç 被ç®å为:"
+#, no-c-format
+msgid "With CMT, transaction demarcation is completed in session bean deployment descriptors, not programmatically. The code is reduced to:"
+msgstr "å¨ CMT æ¹å¼ä¸ï¼äºå¡å£°ææ¯å¨ session bean çé¨ç½²æ述符ä¸ï¼èä¸éè¦ç¼ç¨ãå æ¤ï¼ä»£ç 被ç®å为ï¼"
#. Tag: programlisting
#: transactions.xml:527
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// CMT idiom\n"
" Session sess = factory.getCurrentSession();\n"
@@ -1050,76 +559,30 @@
" ...\n"
"]]>"
msgstr ""
-"// CMT idiom\n"
+"<![CDATA[// CMT idiom\n"
" Session sess = factory.getCurrentSession();\n"
"\n"
" // do some work\n"
-" ..."
+" ...\n"
+"]]>"
#. Tag: para
#: transactions.xml:529
-#, fuzzy, no-c-format
-msgid ""
-"In a CMT/EJB, even rollback happens automatically. An unhandled "
-"<literal>RuntimeException</literal> thrown by a session bean method tells "
-"the container to set the global transaction to rollback. <emphasis>You do "
-"not need to use the Hibernate <literal>Transaction</literal> API at all with "
-"BMT or CMT, and you get automatic propagation of the \"current\" Session "
-"bound to the transaction.</emphasis>"
-msgstr ""
-"å¨ CMT/EJB ä¸çè³ä¼èªå¨ rollbackï¼å 为åè¥ææªæè·ç "
-"<literal>RuntimeException</literal> ä» session bean æ¹æ³ä¸æåºï¼è¿å°±ä¼éç¥å®¹"
-"å¨æå
¨å±äºå¡åæ»ã<emphasis>è¿å°±æå³çï¼å¨ BMT æè
CMT ä¸ï¼ä½ æ ¹æ¬å°±ä¸éè¦ä½¿"
-"ç¨ Hibernate <literal>Transaction</literal> APIï¼ä½ èªå¨å¾å°äºç»å®å°äºå¡çâå½"
-"åâ Sessionã </emphasis>"
+#, no-c-format
+msgid "In a CMT/EJB, even rollback happens automatically. An unhandled <literal>RuntimeException</literal> thrown by a session bean method tells the container to set the global transaction to rollback. <emphasis>You do not need to use the Hibernate <literal>Transaction</literal> API at all with BMT or CMT, and you get automatic propagation of the \"current\" Session bound to the transaction.</emphasis>"
+msgstr "å¨ CMT/EJB ä¸çè³ä¼èªå¨ rollbackï¼å 为åè¥ææªæè·ç <literal>RuntimeException</literal> ä» session bean æ¹æ³ä¸æåºï¼è¿å°±ä¼éç¥å®¹å¨æå
¨å±äºå¡åæ»ã<emphasis>è¿å°±æå³çï¼å¨ BMT æè
CMT ä¸ï¼ä½ æ ¹æ¬å°±ä¸éè¦ä½¿ç¨ Hibernate <literal>Transaction</literal> APIï¼ä½ èªå¨å¾å°äºç»å®å°äºå¡çâå½åâ Sessionã</emphasis>"
#. Tag: para
#: transactions.xml:537
-#, fuzzy, no-c-format
-msgid ""
-"When configuring Hibernate's transaction factory, choose <literal>org."
-"hibernate.transaction.JTATransactionFactory</literal> if you use JTA "
-"directly (BMT), and <literal>org.hibernate.transaction."
-"CMTTransactionFactory</literal> in a CMT session bean. Remember to also set "
-"<literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that "
-"your <literal>hibernate.current_session_context_class</literal> is either "
-"unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
-msgstr ""
-"注æï¼å½ä½ é
ç½® Hibernate ç transaction factory çæ¶åï¼å¨ç´æ¥ä½¿ç¨ JTA çæ¶å"
-"ï¼BMTï¼ï¼ä½ åºè¯¥éæ© <literal>org.hibernate.transaction."
-"JTATransactionFactory</literal>ï¼å¨ CMT session bean ä¸éæ© <literal>org."
-"hibernate.transaction.CMTTransactionFactory</literal>ãè®°å¾ä¹è¦è®¾ç½® "
-"<literal>hibernate.transaction.manager_lookup_class</literal>ãè¿æï¼ç¡®è®¤ä½ "
-"ç <literal>hibernate.current_session_context_class</literal> æªè®¾ç½®ï¼ä¸ºäºå"
-"ä¸å
¼å®¹ï¼ï¼æè
设置为 <literal>\"jta\"</literal>ã"
+#, no-c-format
+msgid "When configuring Hibernate's transaction factory, choose <literal>org.hibernate.transaction.JTATransactionFactory</literal> if you use JTA directly (BMT), and <literal>org.hibernate.transaction.CMTTransactionFactory</literal> in a CMT session bean. Remember to also set <literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that your <literal>hibernate.current_session_context_class</literal> is either unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
+msgstr "注æï¼å½ä½ é
ç½® Hibernate ç transaction factory çæ¶åï¼å¨ç´æ¥ä½¿ç¨ JTA çæ¶åï¼BMTï¼ï¼ä½ åºè¯¥éæ© <literal>org.hibernate.transaction.JTATransactionFactory</literal>ï¼å¨ CMT session bean ä¸éæ© <literal>org.hibernate.transaction.CMTTransactionFactory</literal>ãè®°å¾ä¹è¦è®¾ç½® <literal>hibernate.transaction.manager_lookup_class</literal>ãè¿æï¼ç¡®è®¤ä½ ç <literal>hibernate.current_session_context_class</literal> æªè®¾ç½®ï¼ä¸ºäºåä¸å
¼å®¹ï¼ï¼æè
设置为 <literal>\"jta\"</literal>ã "
#. Tag: para
#: transactions.xml:546
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>getCurrentSession()</literal> operation has one downside in a "
-"JTA environment. There is one caveat to the use of <literal>after_statement</"
-"literal> connection release mode, which is then used by default. Due to a "
-"limitation of the JTA spec, it is not possible for Hibernate to "
-"automatically clean up any unclosed <literal>ScrollableResults</literal> or "
-"<literal>Iterator</literal> instances returned by <literal>scroll()</"
-"literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> "
-"release the underlying database cursor by calling <literal>ScrollableResults."
-"close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly "
-"from a <literal>finally</literal> block. Most applications can easily avoid "
-"using <literal>scroll()</literal> or <literal>iterate()</literal> from the "
-"JTA or CMT code.)"
-msgstr ""
-"<literal>getCurrentSession()</literal>å¨ JTA ç¯å¢ä¸æä¸ä¸ªå¼ç«¯ã对 "
-"<literal>after_statement</literal> è¿æ¥éæ¾æ¹å¼æä¸ä¸ªè¦åï¼è¿æ¯è¢«é»è®¤ä½¿ç¨çã"
-"å 为 JTA è§èçä¸ä¸ªå¾æè ¢çéå¶ï¼Hibernate ä¸å¯è½èªå¨æ¸
çä»»ä½æªå
³éç "
-"<literal>ScrollableResults</literal> æè
<literal>Iterator</literal>ï¼å®ä»¬æ¯"
-"ç± <literal>scroll()</literal> æ <literal>iterate()</literal> 产ççãä½ "
-"<emphasis>must</emphasis> éè¿å¨ <literal>finally</literal> åä¸ï¼æ¾å¼è°ç¨ "
-"<literal>ScrollableResults.close()</literal> æè
<literal>Hibernate.close"
-"(Iterator)</literal> æ¹æ³æ¥éæ¾åºå±æ°æ®åºæ¸¸æ ãï¼å½ç¶ï¼å¤§é¨åç¨åºå®å
¨å¯ä»¥å¾å®¹"
-"æçé¿å
å¨ JTA æ CMT 代ç ä¸åºç° <literal>scroll()</literal> æ "
-"<literal>iterate()</literal>ãï¼"
+#, no-c-format
+msgid "The <literal>getCurrentSession()</literal> operation has one downside in a JTA environment. There is one caveat to the use of <literal>after_statement</literal> connection release mode, which is then used by default. Due to a limitation of the JTA spec, it is not possible for Hibernate to automatically clean up any unclosed <literal>ScrollableResults</literal> or <literal>Iterator</literal> instances returned by <literal>scroll()</literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> release the underlying database cursor by calling <literal>ScrollableResults.close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly from a <literal>finally</literal> block. Most applications can easily avoid using <literal>scroll()</literal> or <literal>iterate()</literal> from the JTA or CMT code.)"
+msgstr "<literal>getCurrentSession()</literal>å¨ JTA ç¯å¢ä¸æä¸ä¸ªå¼ç«¯ã对 <literal>after_statement</literal> è¿æ¥éæ¾æ¹å¼æä¸ä¸ªè¦åï¼è¿æ¯è¢«é»è®¤ä½¿ç¨çãå 为 JTA è§èçä¸ä¸ªå¾æè ¢çéå¶ï¼Hibernate ä¸å¯è½èªå¨æ¸
çä»»ä½æªå
³éç <literal>ScrollableResults</literal> æè
<literal>Iterator</literal>ï¼å®ä»¬æ¯ç± <literal>scroll()</literal> æ <literal>iterate()</literal> 产ççãä½ <emphasis>must</emphasis> éè¿å¨ <literal>finally</literal> åä¸ï¼æ¾å¼è°ç¨ <literal>ScrollableResults.close()</literal> æè
<literal>Hibernate.close(Iterator)</literal> æ¹æ³æ¥éæ¾åºå±æ°æ®åºæ¸¸æ ãï¼å½ç¶ï¼å¤§é¨åç¨åºå®å
¨å¯ä»¥å¾å®¹æçé¿å
å¨ JTA æ CMT 代ç ä¸åºç° <literal>scroll()</literal> æ <literal>iterate()</literal>ãï¼ "
#. Tag: title
#: transactions.xml:562
@@ -1129,124 +592,51 @@
#. Tag: para
#: transactions.xml:564
-#, fuzzy, no-c-format
-msgid ""
-"If the <literal>Session</literal> throws an exception, including any "
-"<literal>SQLException</literal>, immediately rollback the database "
-"transaction, call <literal>Session.close()</literal> and discard the "
-"<literal>Session</literal> instance. Certain methods of <literal>Session</"
-"literal> will <emphasis>not</emphasis> leave the session in a consistent "
-"state. No exception thrown by Hibernate can be treated as recoverable. "
-"Ensure that the <literal>Session</literal> will be closed by calling "
-"<literal>close()</literal> in a <literal>finally</literal> block."
-msgstr ""
-"å¦æ <literal>Session</literal> æåºå¼å¸¸ ï¼å
æ¬ä»»ä½ <literal>SQLException</"
-"literal>ï¼ï¼ä½ åºè¯¥ç«å³åæ»æ°æ®åºäºå¡ï¼è°ç¨ <literal>Session.close()</"
-"literal> ï¼ä¸¢å¼è¯¥ <literal>Session</literal> å®ä¾ã<literal>Session</"
-"literal> çæäºæ¹æ³å¯è½ä¼å¯¼è´ session å¤äºä¸ä¸è´çç¶æãææç± Hibernate æåº"
-"çå¼å¸¸é½è§ä¸ºä¸å¯ä»¥æ¢å¤çãç¡®ä¿å¨ <literal>finally</literal> 代ç åä¸è°ç¨ "
-"<literal>close()</literal> æ¹æ³ï¼ä»¥å
³éæ <literal>Session</literal>ã"
+#, no-c-format
+msgid "If the <literal>Session</literal> throws an exception, including any <literal>SQLException</literal>, immediately rollback the database transaction, call <literal>Session.close()</literal> and discard the <literal>Session</literal> instance. Certain methods of <literal>Session</literal> will <emphasis>not</emphasis> leave the session in a consistent state. No exception thrown by Hibernate can be treated as recoverable. Ensure that the <literal>Session</literal> will be closed by calling <literal>close()</literal> in a <literal>finally</literal> block."
+msgstr "å¦æ <literal>Session</literal> æåºå¼å¸¸ï¼å
æ¬ä»»ä½ <literal>SQLException</literal>ï¼ï¼ä½ åºè¯¥ç«å³åæ»æ°æ®åºäºå¡ï¼è°ç¨ <literal>Session.close()</literal> ï¼ä¸¢å¼è¯¥ <literal>Session</literal> å®ä¾ã<literal>Session</literal> çæäºæ¹æ³å¯è½ä¼å¯¼è´ session å¤äºä¸ä¸è´çç¶æãææç± Hibernate æåºçå¼å¸¸é½è§ä¸ºä¸å¯ä»¥æ¢å¤çãç¡®ä¿å¨ <literal>finally</literal> 代ç åä¸è°ç¨ <literal>close()</literal> æ¹æ³ï¼ä»¥å
³éæ <literal>Session</literal>ã"
#. Tag: para
#: transactions.xml:575
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>HibernateException</literal>, which wraps most of the errors "
-"that can occur in a Hibernate persistence layer, is an unchecked exception. "
-"It was not in older versions of Hibernate. In our opinion, we should not "
-"force the application developer to catch an unrecoverable exception at a low "
-"layer. In most systems, unchecked and fatal exceptions are handled in one of "
-"the first frames of the method call stack (i.e., in higher layers) and "
-"either an error message is presented to the application user or some other "
-"appropriate action is taken. Note that Hibernate might also throw other "
-"unchecked exceptions that are not a <literal>HibernateException</literal>. "
-"These are not recoverable and appropriate action should be taken."
-msgstr ""
-"<literal>HibernateException</literal> æ¯ä¸ä¸ªéæ£æ¥æå¼å¸¸ï¼è¿ä¸åäº Hibernate "
-"èççæ¬ï¼ï¼ å®å°è£
äº Hibernate æä¹
å±å¯è½åºç°ç大å¤æ°é误ãæ们çè§ç¹æ¯ï¼ä¸"
-"åºè¯¥å¼ºè¿«åºç¨ç¨åºå¼å人å å¨åºå±æè·æ æ³æ¢å¤çå¼å¸¸ãå¨å¤§å¤æ°è½¯ä»¶ç³»ç»ä¸ï¼éæ£æ¥"
-"æå¼å¸¸åè´å½å¼å¸¸é½æ¯å¨ç¸åºæ¹æ³è°ç¨ çå æ ç顶å±è¢«å¤ççï¼ä¹å°±æ¯è¯´ï¼å¨è½¯ä»¶ä¸é¢"
-"çé»è¾å±ï¼ï¼å¹¶ä¸æä¾ä¸ä¸ªé误信æ¯ç»åºç¨è½¯ä»¶çç¨æ· ï¼æè
éåå
¶ä»æäºç¸åºçæ"
-"ä½ï¼ã请注æï¼Hibernate ä¹æå¯è½æåºå
¶ä»å¹¶ä¸å±äº "
-"<literal>HibernateException</literal> çéæ£æ¥æå¼å¸¸ãè¿äºå¼å¸¸åæ ·ä¹æ¯æ æ³æ¢"
-"å¤çï¼åºè¯¥ éåæäºç¸åºçæä½å»å¤çã"
+#, no-c-format
+msgid "The <literal>HibernateException</literal>, which wraps most of the errors that can occur in a Hibernate persistence layer, is an unchecked exception. It was not in older versions of Hibernate. In our opinion, we should not force the application developer to catch an unrecoverable exception at a low layer. In most systems, unchecked and fatal exceptions are handled in one of the first frames of the method call stack (i.e., in higher layers) and either an error message is presented to the application user or some other appropriate action is taken. Note that Hibernate might also throw other unchecked exceptions that are not a <literal>HibernateException</literal>. These are not recoverable and appropriate action should be taken."
+msgstr "<literal>HibernateException</literal> æ¯ä¸ä¸ªéæ£æ¥æå¼å¸¸ï¼è¿ä¸åäº Hibernate èççæ¬ï¼ï¼å®å°è£
äº Hibernate æä¹
å±å¯è½åºç°ç大å¤æ°é误ãæ们çè§ç¹æ¯ï¼ä¸åºè¯¥å¼ºè¿«åºç¨ç¨åºå¼å人å å¨åºå±æè·æ æ³æ¢å¤çå¼å¸¸ãå¨å¤§å¤æ°è½¯ä»¶ç³»ç»ä¸ï¼éæ£æ¥æå¼å¸¸åè´å½å¼å¸¸é½æ¯å¨ç¸åºæ¹æ³è°ç¨ çå æ ç顶å±è¢«å¤ççï¼ä¹å°±æ¯è¯´ï¼å¨è½¯ä»¶ä¸é¢çé»è¾å±ï¼ï¼å¹¶ä¸æä¾ä¸ä¸ªé误信æ¯ç»åºç¨è½¯ä»¶çç¨æ· ï¼æè
éåå
¶ä»æäºç¸åºçæä½ï¼ã请注æï¼Hibernate ä¹æå¯è½æåºå
¶ä»å¹¶ä¸å±äº <literal>HibernateException</literal> çéæ£æ¥æå¼å¸¸ãè¿äºå¼å¸¸åæ ·ä¹æ¯æ æ³æ¢å¤çï¼åºè¯¥ éåæäºç¸åºçæä½å»å¤çã"
#. Tag: para
#: transactions.xml:587
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
-"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
-"will attempt to convert the exception into a more meaningful subclass of "
-"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
-"literal> is always available via <literal>JDBCException.getCause()</"
-"literal>. Hibernate converts the <literal>SQLException</literal> into an "
-"appropriate <literal>JDBCException</literal> subclass using the "
-"<literal>SQLExceptionConverter</literal> attached to the "
-"<literal>SessionFactory</literal>. By default, the "
-"<literal>SQLExceptionConverter</literal> is defined by the configured "
-"dialect. However, it is also possible to plug in a custom implementation. "
-"See the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
-"class for details. The standard <literal>JDBCException</literal> subtypes "
-"are:"
-msgstr ""
-"å¨åæ°æ®åºè¿è¡äº¤äºæ¶ï¼Hibernate ææè·ç <literal>SQLException</literal> å°è£
"
-"为 Hibernate ç <literal>JDBCException</literal>ãäºå®ä¸ï¼Hibernate å°è¯æå¼"
-"常转æ¢ä¸ºæ´æå®é
å«ä¹ç <literal>JDBCException</literal> å¼å¸¸çåç±»ãåºå±ç "
-"<literal>SQLException</literal> å¯ä»¥éè¿ <literal>JDBCException.getCause()</"
-"literal> æ¥å¾å°ãHibernate éè¿ä½¿ç¨å
³èå° <literal>SessionFactory</literal> "
-"ä¸ç <literal>SQLExceptionConverter</literal> æ¥æ <literal>SQLException</"
-"literal> 转æ¢ä¸ºä¸ä¸ªå¯¹åºç <literal>JDBCException</literal> å¼å¸¸çåç±»ãé»è®¤æ
"
-"åµä¸ï¼<literal>SQLExceptionConverter</literal> å¯ä»¥éè¿é
ç½® dialect é项æ"
-"å®ï¼æ¤å¤ï¼ä¹å¯ä»¥ä½¿ç¨ç¨æ·èªå®ä¹çå®ç°ç±»ï¼åè javadocs "
-"<literal>SQLExceptionConverterFactory</literal> ç±»æ¥äºè§£è¯¦æ
ï¼ãæ åç "
-"<literal>JDBCException</literal> åç±»åæ¯ï¼"
+#, no-c-format
+msgid "Hibernate wraps <literal>SQLException</literal>s thrown while interacting with the database in a <literal>JDBCException</literal>. In fact, Hibernate will attempt to convert the exception into a more meaningful subclass of <literal>JDBCException</literal>. The underlying <literal>SQLException</literal> is always available via <literal>JDBCException.getCause()</literal>. Hibernate converts the <literal>SQLException</literal> into an appropriate <literal>JDBCException</literal> subclass using the <literal>SQLExceptionConverter</literal> attached to the <literal>SessionFactory</literal>. By default, the <literal>SQLExceptionConverter</literal> is defined by the configured dialect. However, it is also possible to plug in a custom implementation. See the javadocs for the <literal>SQLExceptionConverterFactory</literal> class for details. The standard <literal>JDBCException</literal> subtypes are:"
+msgstr "å¨åæ°æ®åºè¿è¡äº¤äºæ¶ï¼Hibernate ææè·ç <literal>SQLException</literal> å°è£
为 Hibernate ç <literal>JDBCException</literal>ãäºå®ä¸ï¼Hibernate å°è¯æå¼å¸¸è½¬æ¢ä¸ºæ´æå®é
å«ä¹ç <literal>JDBCException</literal> å¼å¸¸çåç±»ãåºå±ç <literal>SQLException</literal> å¯ä»¥éè¿ <literal>JDBCException.getCause()</literal> æ¥å¾å°ãHibernate éè¿ä½¿ç¨å
³èå° <literal>SessionFactory</literal> ä¸ç <literal>SQLExceptionConverter</literal> æ¥æ <literal>SQLException</literal> 转æ¢ä¸ºä¸ä¸ªå¯¹åºç <literal>JDBCException</literal> å¼å¸¸çåç±»ãé»è®¤æ
åµä¸ï¼<literal>SQLExceptionConverter</literal> å¯ä»¥éè¿é
ç½® dialect é项æå®ï¼æ¤å¤ï¼ä¹å¯ä»¥ä½¿ç¨ç¨æ·èªå®ä¹çå®ç°ç±»ï¼åè javadocs <literal>SQLExceptionConverterFactory</literal> ç±»æ¥äºè§£è¯¦æ
ï¼ãæ åç <literal>JDBCException</literal> åç±»åæ¯ï¼ "
#. Tag: para
#: transactions.xml:603
-#, fuzzy, no-c-format
-msgid ""
-"<literal>JDBCConnectionException</literal>: indicates an error with the "
-"underlying JDBC communication."
-msgstr ""
-"<literal>JDBCConnectionException</literal> â ææåºå±ç JDBC é讯åºç°é误"
+#, no-c-format
+msgid "<literal>JDBCConnectionException</literal>: indicates an error with the underlying JDBC communication."
+msgstr "<literal>JDBCConnectionException</literal>ï¼ææåºå±ç JDBC é讯åºç°é误ã"
#. Tag: para
#: transactions.xml:609
-#, fuzzy, no-c-format
-msgid ""
-"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
-"problem with the issued SQL."
-msgstr ""
-"<literal>SQLGrammarException</literal> â ææåéç SQL è¯å¥çè¯æ³æè
æ ¼å¼é"
-"误"
+#, no-c-format
+msgid "<literal>SQLGrammarException</literal>: indicates a grammar or syntax problem with the issued SQL."
+msgstr "<literal>SQLGrammarException</literal>ï¼ææåéç SQL è¯å¥çè¯æ³æè
æ ¼å¼é误ã"
#. Tag: para
#: transactions.xml:615
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ConstraintViolationException</literal>: indicates some form of "
-"integrity constraint violation."
-msgstr ""
-"<literal>ConstraintViolationException</literal> â æææç§ç±»åç约æè¿ä¾é误"
+#, no-c-format
+msgid "<literal>ConstraintViolationException</literal>: indicates some form of integrity constraint violation."
+msgstr "<literal>ConstraintViolationException</literal>ï¼æææç§ç±»åç约æè¿ä¾é误"
#. Tag: para
#: transactions.xml:621
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
-"lock level necessary to perform the requested operation."
-msgstr ""
-"<literal>LockAcquisitionException</literal> â ææäºå¨æ§è¡è¯·æ±æä½æ¶ï¼è·åæ"
-"éçé级å«æ¶åºç°çé误ã"
+#, no-c-format
+msgid "<literal>LockAcquisitionException</literal>: indicates an error acquiring a lock level necessary to perform the requested operation."
+msgstr "<literal>LockAcquisitionException</literal>ï¼ææäºå¨æ§è¡è¯·æ±æä½æ¶ï¼è·åæéçé级å«æ¶åºç°çé误ã"
#. Tag: para
#: transactions.xml:627
-#, fuzzy, no-c-format
-msgid ""
-"<literal>GenericJDBCException</literal>: a generic exception which did not "
-"fall into any of the other categories."
-msgstr "<literal>GenericJDBCException</literal> â ä¸å±äºä»»ä½å
¶ä»ç§ç±»çåçå¼å¸¸"
+#, no-c-format
+msgid "<literal>GenericJDBCException</literal>: a generic exception which did not fall into any of the other categories."
+msgstr "<literal>GenericJDBCException</literal>ï¼ä¸å±äºä»»ä½å
¶ä»ç§ç±»çåçå¼å¸¸ã"
#. Tag: title
#: transactions.xml:637
@@ -1256,29 +646,13 @@
#. Tag: para
#: transactions.xml:639
-#, fuzzy, no-c-format
-msgid ""
-"An important feature provided by a managed environment like EJB, that is "
-"never provided for non-managed code, is transaction timeout. Transaction "
-"timeouts ensure that no misbehaving transaction can indefinitely tie up "
-"resources while returning no response to the user. Outside a managed (JTA) "
-"environment, Hibernate cannot fully provide this functionality. However, "
-"Hibernate can at least control data access operations, ensuring that "
-"database level deadlocks and queries with huge result sets are limited by a "
-"defined timeout. In a managed environment, Hibernate can delegate "
-"transaction timeout to JTA. This functionality is abstracted by the "
-"Hibernate <literal>Transaction</literal> object."
-msgstr ""
-"EJB è¿æ ·çæ管ç¯å¢æä¸é¡¹æ为éè¦çç¹æ§ï¼èå®ä»æªå¨éæ管ç¯å¢ä¸æä¾è¿ï¼é£å°±æ¯"
-"äºå¡è¶
æ¶ãå¨åºç°é误çäºå¡è¡ä¸ºçæ¶åï¼è¶
æ¶å¯ä»¥ç¡®ä¿ä¸ä¼æ éæèµ·èµæºã对ç¨æ·æ²¡"
-"æ交代ãå¨æ管ï¼JTAï¼ç¯å¢ä¹å¤ï¼Hibernate æ æ³å®å
¨æä¾è¿ä¸åè½ãä½æ¯ï¼"
-"Hiberante è³å°å¯ä»¥æ§å¶æ°æ®è®¿é®ï¼ç¡®ä¿æ°æ®åºçº§å«çæ»éï¼åè¿å巨大ç»æéçæ¥è¯¢"
-"被éå®å¨ä¸ä¸ªè§å®çæ¶é´å
ãå¨æ管ç¯å¢ä¸ï¼Hibernate ä¼æäºå¡è¶
æ¶è½¬äº¤ç» JTAãè¿"
-"ä¸åè½éè¿ Hibernate <literal>Transaction</literal> 对象è¿è¡æ½è±¡ã"
+#, no-c-format
+msgid "An important feature provided by a managed environment like EJB, that is never provided for non-managed code, is transaction timeout. Transaction timeouts ensure that no misbehaving transaction can indefinitely tie up resources while returning no response to the user. Outside a managed (JTA) environment, Hibernate cannot fully provide this functionality. However, Hibernate can at least control data access operations, ensuring that database level deadlocks and queries with huge result sets are limited by a defined timeout. In a managed environment, Hibernate can delegate transaction timeout to JTA. This functionality is abstracted by the Hibernate <literal>Transaction</literal> object."
+msgstr "EJB è¿æ ·çæ管ç¯å¢æä¸é¡¹æ为éè¦çç¹æ§ï¼èå®ä»æªå¨éæ管ç¯å¢ä¸æä¾è¿ï¼é£å°±æ¯äºå¡è¶
æ¶ãå¨åºç°é误çäºå¡è¡ä¸ºçæ¶åï¼è¶
æ¶å¯ä»¥ç¡®ä¿ä¸ä¼æ éæèµ·èµæºã对ç¨æ·æ²¡æ交代ãå¨æ管ï¼JTAï¼ç¯å¢ä¹å¤ï¼Hibernate æ æ³å®å
¨æä¾è¿ä¸åè½ãä½æ¯ï¼Hiberante è³å°å¯ä»¥æ§å¶æ°æ®è®¿é®ï¼ç¡®ä¿æ°æ®åºçº§å«çæ»éï¼åè¿å巨大ç»æéçæ¥è¯¢è¢«éå®å¨ä¸ä¸ªè§å®çæ¶é´å
ãå¨æ管ç¯å¢ä¸ï¼Hibernate ä¼æäºå¡è¶
æ¶è½¬äº¤ç» JTAãè¿ä¸åè½éè¿ Hibernate <literal>Transaction</literal> 对象è¿è¡æ½è±¡ã "
#. Tag: programlisting
#: transactions.xml:652
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[\n"
"Session sess = factory.openSession();\n"
@@ -1300,6 +674,7 @@
" sess.close();\n"
"}]]>"
msgstr ""
+"<![CDATA[\n"
"Session sess = factory.openSession();\n"
"try {\n"
" //set transaction timeout to 3 seconds\n"
@@ -1317,17 +692,13 @@
"}\n"
"finally {\n"
" sess.close();\n"
-"}"
+"}]]>"
#. Tag: para
#: transactions.xml:654
-#, fuzzy, no-c-format
-msgid ""
-"<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
-"transaction timeouts must be defined declaratively."
-msgstr ""
-"注æ <literal>setTimeout()</literal> ä¸åºè¯¥å¨ CMT bean ä¸è°ç¨ï¼æ¤æ¶äºå¡è¶
æ¶å¼"
-"åºè¯¥æ¯è¢«å£°æå¼å®ä¹çã"
+#, no-c-format
+msgid "<literal>setTimeout()</literal> cannot be called in a CMT bean, where transaction timeouts must be defined declaratively."
+msgstr "注æ <literal>setTimeout()</literal> ä¸åºè¯¥å¨ CMT bean ä¸è°ç¨ï¼æ¤æ¶äºå¡è¶
æ¶å¼åºè¯¥æ¯è¢«å£°æå¼å®ä¹çã "
#. Tag: title
#: transactions.xml:664
@@ -1337,21 +708,9 @@
#. Tag: para
#: transactions.xml:666
-#, fuzzy, no-c-format
-msgid ""
-"The only approach that is consistent with high concurrency and high "
-"scalability, is optimistic concurrency control with versioning. Version "
-"checking uses version numbers, or timestamps, to detect conflicting updates "
-"and to prevent lost updates. Hibernate provides three possible approaches to "
-"writing application code that uses optimistic concurrency. The use cases we "
-"discuss are in the context of long conversations, but version checking also "
-"has the benefit of preventing lost updates in single database transactions."
-msgstr ""
-"å¯ä¸è½å¤åæ¶ä¿æé«å¹¶ååé«å¯ä¼¸ç¼©æ§çæ¹æ³å°±æ¯ä½¿ç¨å¸¦çæ¬åçä¹è§å¹¶åæ§å¶ãçæ¬"
-"æ£æ¥ä½¿ç¨çæ¬å·ã æè
æ¶é´æ³æ¥æ£æµæ´æ°å²çªï¼å¹¶ä¸é²æ¢æ´æ°ä¸¢å¤±ï¼ãHibernate 为使"
-"ç¨ä¹è§å¹¶åæ§å¶ç代ç æä¾äºä¸ç§å¯ è½çæ¹æ³ï¼åºç¨ç¨åºå¨ç¼åè¿äºä»£ç æ¶ï¼å¯ä»¥éç¨"
-"å®ä»¬ãæ们已ç»å¨åé¢åºç¨ç¨åºå¯¹è¯é£é¨åå±ç¤ºäº ä¹è§å¹¶åæ§å¶çåºç¨åºæ¯ï¼æ¤å¤ï¼å¨"
-"å个æ°æ®åºäºå¡èå´å
ï¼çæ¬æ£æ¥ä¹æä¾äºé²æ¢æ´æ°ä¸¢å¤±ç好å¤ã"
+#, no-c-format
+msgid "The only approach that is consistent with high concurrency and high scalability, is optimistic concurrency control with versioning. Version checking uses version numbers, or timestamps, to detect conflicting updates and to prevent lost updates. Hibernate provides three possible approaches to writing application code that uses optimistic concurrency. The use cases we discuss are in the context of long conversations, but version checking also has the benefit of preventing lost updates in single database transactions."
+msgstr "å¯ä¸è½å¤åæ¶ä¿æé«å¹¶ååé«å¯ä¼¸ç¼©æ§çæ¹æ³å°±æ¯ä½¿ç¨å¸¦çæ¬åçä¹è§å¹¶åæ§å¶ãçæ¬æ£æ¥ä½¿ç¨çæ¬å·ã æè
æ¶é´æ³æ¥æ£æµæ´æ°å²çªï¼å¹¶ä¸é²æ¢æ´æ°ä¸¢å¤±ï¼ãHibernate 为使ç¨ä¹è§å¹¶åæ§å¶ç代ç æä¾äºä¸ç§å¯ è½çæ¹æ³ï¼åºç¨ç¨åºå¨ç¼åè¿äºä»£ç æ¶ï¼å¯ä»¥éç¨å®ä»¬ãæ们已ç»å¨åé¢åºç¨ç¨åºå¯¹è¯é£é¨åå±ç¤ºäº ä¹è§å¹¶åæ§å¶çåºç¨åºæ¯ï¼æ¤å¤ï¼å¨å个æ°æ®åºäºå¡èå´å
ï¼çæ¬æ£æ¥ä¹æä¾äºé²æ¢æ´æ°ä¸¢å¤±ç好å¤ã "
#. Tag: title
#: transactions.xml:677
@@ -1361,24 +720,13 @@
#. Tag: para
#: transactions.xml:679
-#, fuzzy, no-c-format
-msgid ""
-"In an implementation without much help from Hibernate, each interaction with "
-"the database occurs in a new <literal>Session</literal> and the developer is "
-"responsible for reloading all persistent instances from the database before "
-"manipulating them. The application is forced to carry out its own version "
-"checking to ensure conversation transaction isolation. This approach is the "
-"least efficient in terms of database access. It is the approach most similar "
-"to entity EJBs."
-msgstr ""
-"æªè½å
åå©ç¨ Hibernate åè½çå®ç°ä»£ç ä¸ï¼æ¯æ¬¡åæ°æ®åºäº¤äºé½éè¦ä¸ä¸ªæ°ç "
-"<literal>Session</literal>ï¼èä¸å¼å人åå¿
é¡»å¨æ¾ç¤ºæ°æ®ä¹åä»æ°æ®åºä¸éæ°è½½å
¥"
-"ææçæä¹
å对象å®ä¾ãè¿ç§æ¹å¼è¿«ä½¿åºç¨ç¨åºèªå·±å®ç°çæ¬æ£æ¥æ¥ç¡®ä¿å¯¹è¯äºå¡çé"
-"离ï¼ä»æ°æ®è®¿é®çè§åº¦æ¥è¯´æ¯æä½æçãè¿ç§ä½¿ç¨æ¹å¼å entity EJB æç¸ä¼¼ã"
+#, no-c-format
+msgid "In an implementation without much help from Hibernate, each interaction with the database occurs in a new <literal>Session</literal> and the developer is responsible for reloading all persistent instances from the database before manipulating them. The application is forced to carry out its own version checking to ensure conversation transaction isolation. This approach is the least efficient in terms of database access. It is the approach most similar to entity EJBs."
+msgstr "æªè½å
åå©ç¨ Hibernate åè½çå®ç°ä»£ç ä¸ï¼æ¯æ¬¡åæ°æ®åºäº¤äºé½éè¦ä¸ä¸ªæ°ç <literal>Session</literal>ï¼èä¸å¼å人åå¿
é¡»å¨æ¾ç¤ºæ°æ®ä¹åä»æ°æ®åºä¸éæ°è½½å
¥ææçæä¹
å对象å®ä¾ãè¿ç§æ¹å¼è¿«ä½¿åºç¨ç¨åºèªå·±å®ç°çæ¬æ£æ¥æ¥ç¡®ä¿å¯¹è¯äºå¡çé离ï¼ä»æ°æ®è®¿é®çè§åº¦æ¥è¯´æ¯æä½æçãè¿ç§ä½¿ç¨æ¹å¼å entity EJB æç¸ä¼¼ã "
#. Tag: programlisting
#: transactions.xml:688
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// foo is an instance loaded by a previous Session\n"
"session = factory.openSession();\n"
@@ -1386,68 +734,41 @@
"\n"
"int oldVersion = foo.getVersion();\n"
"session.load( foo, foo.getKey() ); // load the current state\n"
-"if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException"
-"();\n"
+"if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException();\n"
"foo.setProperty(\"bar\");\n"
"\n"
"t.commit();\n"
"session.close();]]>"
msgstr ""
-"// foo is an instance loaded by a previous Session\n"
+"<![CDATA[// foo is an instance loaded by a previous Session\n"
"session = factory.openSession();\n"
"Transaction t = session.beginTransaction();\n"
"\n"
"int oldVersion = foo.getVersion();\n"
"session.load( foo, foo.getKey() ); // load the current state\n"
-"if ( oldVersion!=foo.getVersion ) throw new StaleObjectStateException();\n"
+"if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException();\n"
"foo.setProperty(\"bar\");\n"
"\n"
"t.commit();\n"
-"session.close();"
+"session.close();]]>"
#. Tag: para
#: transactions.xml:690
#, no-c-format
-msgid ""
-"The <literal>version</literal> property is mapped using <literal><"
-"version></literal>, and Hibernate will automatically increment it during "
-"flush if the entity is dirty."
-msgstr ""
-"<literal>version</literal> å±æ§ä½¿ç¨ <literal><version></literal> æ¥æ "
-"å°ï¼å¦æ对象æ¯èæ°æ®ï¼å¨åæ¥çæ¶åï¼Hibernate ä¼èªå¨å¢å çæ¬å·ã"
+msgid "The <literal>version</literal> property is mapped using <literal><version></literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
+msgstr "<literal>version</literal> å±æ§ä½¿ç¨ <literal><version></literal> æ¥æ å°ï¼å¦æ对象æ¯èæ°æ®ï¼å¨åæ¥çæ¶åï¼Hibernate ä¼èªå¨å¢å çæ¬å·ã"
#. Tag: para
#: transactions.xml:696
-#, fuzzy, no-c-format
-msgid ""
-"If you are operating in a low-data-concurrency environment, and do not "
-"require version checking, you can use this approach and skip the version "
-"check. In this case, <emphasis>last commit wins</emphasis> is the default "
-"strategy for long conversations. Be aware that this might confuse the users "
-"of the application, as they might experience lost updates without error "
-"messages or a chance to merge conflicting changes."
-msgstr ""
-"å½ç¶ï¼å¦æä½ çåºç¨æ¯å¨ä¸ä¸ªä½æ°æ®å¹¶åç¯å¢ä¸ï¼å¹¶ä¸éè¦çæ¬æ£æ¥çè¯ï¼ä½ ç
§æ ·å¯ä»¥"
-"使ç¨è¿ç§æ¹å¼ï¼åªä¸è¿è·³è¿çæ¬æ£æ¥å°±æ¯äºãå¨è¿ç§æ
åµä¸ï¼<emphasis>æææ交çæ"
-"</emphasis> ï¼<emphasis>last commit wins</emphasis>ï¼å°±æ¯ä½ çé¿å¯¹è¯çé»è®¤å¤ç"
-"çç¥ã请记ä½è¿ç§çç¥å¯è½ä¼è®©åºç¨è½¯ä»¶çç¨æ·æå°å°æï¼å 为ä»ä»¬æå¯è½ä¼ç¢°ä¸æ´æ°"
-"丢失æå´æ²¡æåºéä¿¡æ¯ï¼æè
éè¦å并æ´æ¹å²çªçæ
åµã"
+#, no-c-format
+msgid "If you are operating in a low-data-concurrency environment, and do not require version checking, you can use this approach and skip the version check. In this case, <emphasis>last commit wins</emphasis> is the default strategy for long conversations. Be aware that this might confuse the users of the application, as they might experience lost updates without error messages or a chance to merge conflicting changes."
+msgstr "å½ç¶ï¼å¦æä½ çåºç¨æ¯å¨ä¸ä¸ªä½æ°æ®å¹¶åç¯å¢ä¸ï¼å¹¶ä¸éè¦çæ¬æ£æ¥çè¯ï¼ä½ ç
§æ ·å¯ä»¥ä½¿ç¨è¿ç§æ¹å¼ï¼åªä¸è¿è·³è¿çæ¬æ£æ¥å°±æ¯äºãå¨è¿ç§æ
åµä¸ï¼<emphasis>æææ交çæ</emphasis> ï¼<emphasis>last commit wins</emphasis>ï¼å°±æ¯ä½ çé¿å¯¹è¯çé»è®¤å¤ççç¥ã请记ä½è¿ç§çç¥å¯è½ä¼è®©åºç¨è½¯ä»¶çç¨æ·æå°å°æï¼å 为ä»ä»¬æå¯è½ä¼ç¢°ä¸æ´æ°ä¸¢å¤±æå´æ²¡æåºéä¿¡æ¯ï¼æè
éè¦å并æ´æ¹å²çªçæ
åµã "
#. Tag: para
#: transactions.xml:705
-#, fuzzy, no-c-format
-msgid ""
-"Manual version checking is only feasible in trivial circumstances and not "
-"practical for most applications. Often not only single instances, but "
-"complete graphs of modified objects, have to be checked. Hibernate offers "
-"automatic version checking with either an extended <literal>Session</"
-"literal> or detached instances as the design paradigm."
-msgstr ""
-"å¾ææ¾ï¼æå·¥è¿è¡çæ¬æ£æ¥åªéåäºæäºè½¯ä»¶è§æ¨¡é常å°çåºç¨åºæ¯ï¼å¯¹äºå¤§å¤æ°è½¯ä»¶"
-"åºç¨åºæ¯æ¥è¯´å¹¶ä¸ç°å®ãé常æ
åµä¸ï¼ä¸ä»
æ¯å个对象å®ä¾éè¦è¿è¡çæ¬æ£æ¥ï¼æ´ä¸ªè¢«"
-"ä¿®æ¹è¿çå
³è对象å¾ä¹é½éè¦è¿è¡çæ¬æ£æ¥ãä½ä¸ºæ å设计èä¾ï¼Hibernate 使ç¨æ©å±"
-"å¨æç <literal>Session</literal> çæ¹å¼ï¼æè
è±ç®¡å¯¹è±¡å®ä¾çæ¹å¼æ¥æä¾èªå¨ç"
-"æ¬æ£æ¥ã"
+#, no-c-format
+msgid "Manual version checking is only feasible in trivial circumstances and not practical for most applications. Often not only single instances, but complete graphs of modified objects, have to be checked. Hibernate offers automatic version checking with either an extended <literal>Session</literal> or detached instances as the design paradigm."
+msgstr "å¾ææ¾ï¼æå·¥è¿è¡çæ¬æ£æ¥åªéåäºæäºè½¯ä»¶è§æ¨¡é常å°çåºç¨åºæ¯ï¼å¯¹äºå¤§å¤æ°è½¯ä»¶åºç¨åºæ¯æ¥è¯´å¹¶ä¸ç°å®ãé常æ
åµä¸ï¼ä¸ä»
æ¯å个对象å®ä¾éè¦è¿è¡çæ¬æ£æ¥ï¼æ´ä¸ªè¢«ä¿®æ¹è¿çå
³è对象å¾ä¹é½éè¦è¿è¡çæ¬æ£æ¥ãä½ä¸ºæ å设计èä¾ï¼Hibernate 使ç¨æ©å±å¨æç <literal>Session</literal> çæ¹å¼ï¼æè
è±ç®¡å¯¹è±¡å®ä¾çæ¹å¼æ¥æä¾èªå¨çæ¬æ£æ¥ã "
#. Tag: title
#: transactions.xml:716
@@ -1457,43 +778,22 @@
#. Tag: para
#: transactions.xml:718
-#, fuzzy, no-c-format
-msgid ""
-"A single <literal>Session</literal> instance and its persistent instances "
-"that are used for the whole conversation are known as <emphasis>session-per-"
-"conversation</emphasis>. Hibernate checks instance versions at flush time, "
-"throwing an exception if concurrent modification is detected. It is up to "
-"the developer to catch and handle this exception. Common options are the "
-"opportunity for the user to merge changes or to restart the business "
-"conversation with non-stale data."
-msgstr ""
-"å个 <literal>Session</literal> å®ä¾åå®æå
³èçæææä¹
å对象å®ä¾é½è¢«ç¨äºæ´"
-"个对è¯ï¼è¿è¢«ç§°ä¸º <emphasis>session-per-conversation</emphasis>ãHibernate å¨"
-"åæ¥çæ¶åè¿è¡å¯¹è±¡å®ä¾ççæ¬æ£æ¥ï¼å¦ææ£æµå°å¹¶åä¿®æ¹åæåºå¼å¸¸ãç±å¼å人åæ¥"
-"å³å®æ¯å¦éè¦æè·åå¤çè¿ä¸ªå¼å¸¸ï¼é常çææ©æ¯ç»ç¨æ· æä¾ä¸ä¸ªå并æ´æ¹ï¼æè
å¨æ "
-"èæ°æ®æ
åµä¸éæ°è¿è¡ä¸å¡å¯¹è¯çæºä¼ï¼ã"
+#, no-c-format
+msgid "A single <literal>Session</literal> instance and its persistent instances that are used for the whole conversation are known as <emphasis>session-per-conversation</emphasis>. Hibernate checks instance versions at flush time, throwing an exception if concurrent modification is detected. It is up to the developer to catch and handle this exception. Common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data."
+msgstr "å个 <literal>Session</literal> å®ä¾åå®æå
³èçæææä¹
å对象å®ä¾é½è¢«ç¨äºæ´ä¸ªå¯¹è¯ï¼è¿è¢«ç§°ä¸º <emphasis>session-per-conversation</emphasis>ãHibernate å¨åæ¥çæ¶åè¿è¡å¯¹è±¡å®ä¾ççæ¬æ£æ¥ï¼å¦ææ£æµå°å¹¶åä¿®æ¹åæåºå¼å¸¸ãç±å¼å人åæ¥å³å®æ¯å¦éè¦æè·åå¤çè¿ä¸ªå¼å¸¸ï¼é常çææ©æ¯ç»ç¨æ· æä¾ä¸ä¸ªå并æ´æ¹ï¼æè
å¨æ èæ°æ®æ
åµä¸éæ°è¿è¡ä¸å¡å¯¹è¯çæºä¼ï¼ã "
#. Tag: para
#: transactions.xml:727
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>Session</literal> is disconnected from any underlying JDBC "
-"connection when waiting for user interaction. This approach is the most "
-"efficient in terms of database access. The application does not version "
-"check or reattach detached instances, nor does it have to reload instances "
-"in every database transaction."
-msgstr ""
-"å¨çå¾
ç¨æ·äº¤äºçæ¶åï¼ <literal>Session</literal> æå¼åºå±ç JDBC è¿æ¥ãè¿ç§"
-"æ¹å¼ä»¥æ°æ®åºè®¿é®çè§åº¦æ¥è¯´æ¯æé«æçæ¹å¼ãåºç¨ç¨åºä¸éè¦å
³å¿çæ¬æ£æ¥æè±ç®¡å¯¹"
-"象å®ä¾çéæ°å
³èï¼å¨æ¯ä¸ªæ°æ®åºäºå¡ä¸ï¼åºç¨ç¨åºä¹ä¸éè¦è½½å
¥è¯»å对象å®ä¾ã"
+#, no-c-format
+msgid "The <literal>Session</literal> is disconnected from any underlying JDBC connection when waiting for user interaction. This approach is the most efficient in terms of database access. The application does not version check or reattach detached instances, nor does it have to reload instances in every database transaction."
+msgstr "å¨çå¾
ç¨æ·äº¤äºçæ¶åï¼ <literal>Session</literal> æå¼åºå±ç JDBC è¿æ¥ãè¿ç§æ¹å¼ä»¥æ°æ®åºè®¿é®çè§åº¦æ¥è¯´æ¯æé«æçæ¹å¼ãåºç¨ç¨åºä¸éè¦å
³å¿çæ¬æ£æ¥æè±ç®¡å¯¹è±¡å®ä¾çéæ°å
³èï¼å¨æ¯ä¸ªæ°æ®åºäºå¡ä¸ï¼åºç¨ç¨åºä¹ä¸éè¦è½½å
¥è¯»å对象å®ä¾ã "
#. Tag: programlisting
#: transactions.xml:735
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// foo is an instance loaded earlier by the old session\n"
-"Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, "
-"start transaction\n"
+"Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, start transaction\n"
"\n"
"foo.setProperty(\"bar\");\n"
"\n"
@@ -1501,112 +801,50 @@
"t.commit(); // Also return JDBC connection\n"
"session.close(); // Only for last transaction in conversation]]>"
msgstr ""
-"// foo is an instance loaded earlier by the old session\n"
-"Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, "
-"start transaction\n"
+"<![CDATA[// foo is an instance loaded earlier by the old session\n"
+"Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, start transaction\n"
"\n"
"foo.setProperty(\"bar\");\n"
"\n"
"session.flush(); // Only for last transaction in conversation\n"
"t.commit(); // Also return JDBC connection\n"
-"session.close(); // Only for last transaction in conversation"
+"session.close(); // Only for last transaction in conversation]]>"
#. Tag: para
#: transactions.xml:736
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>foo</literal> object knows which <literal>Session</literal> it "
-"was loaded in. Beginning a new database transaction on an old session "
-"obtains a new connection and resumes the session. Committing a database "
-"transaction disconnects a session from the JDBC connection and returns the "
-"connection to the pool. After reconnection, to force a version check on data "
-"you are not updating, you can call <literal>Session.lock()</literal> with "
-"<literal>LockMode.READ</literal> on any objects that might have been updated "
-"by another transaction. You do not need to lock any data that you "
-"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
-"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
-"last database transaction cycle is allowed to actually persist all "
-"modifications made in this conversation. Only this last database transaction "
-"will include the <literal>flush()</literal> operation, and then "
-"<literal>close()</literal> the session to end the conversation."
-msgstr ""
-"<literal>foo</literal> 对象ç¥éå®æ¯å¨åªä¸ª <literal>Session</literal> ä¸è¢«è£
å
¥"
-"çãå¨ä¸ä¸ªæ§ session ä¸å¼å¯ä¸ä¸ªæ°çæ°æ®åºäºå¡ï¼ä¼å¯¼è´ session è·åä¸ä¸ªæ°çè¿"
-"æ¥ï¼å¹¶æ¢å¤ session çåè½ãå°æ°æ®åºäºå¡æ交ï¼ä½¿å¾ session ä» JDBC è¿æ¥æå¼ï¼"
-"并å°æ¤è¿æ¥äº¤è¿ç»è¿æ¥æ± ãå¨éæ°è¿æ¥ä¹åï¼è¦å¼ºå¶å¯¹ä½ 没ææ´æ°çæ°æ®è¿è¡ä¸æ¬¡çæ¬"
-"æ£æ¥ï¼ä½ å¯ä»¥å¯¹ææå¯è½è¢«å
¶ä»äºå¡ä¿®æ¹è¿ç对象ï¼ä½¿ç¨åæ° <literal>LockMode."
-"READ</literal> æ¥è°ç¨ <literal>Session.lock()</literal>ãä½ ä¸ç¨ lock ä»»ä½ä½ "
-"<emphasis>æ£å¨</emphasis>æ´æ°çæ°æ®ãä¸è¬ä½ ä¼å¨æ©å±ç <literal>Session</"
-"literal> ä¸è®¾ç½® <literal>FlushMode.NEVER</literal>ï¼å æ¤åªææåä¸ä¸ªæ°æ®åºäº"
-"å¡å¾ªç¯æä¼çæ£çææ´ä¸ªå¯¹è¯ä¸åççä¿®æ¹åéå°æ°æ®åºãå æ¤ï¼åªæè¿æåä¸æ¬¡æ°æ®"
-"åºäºå¡æä¼å
å« <literal>flush()</literal> æä½ï¼ç¶åå¨æ´ä¸ªå¯¹è¯ç»æåï¼è¿è¦ "
-"<literal>close()</literal> è¿ä¸ª sessionã"
+#, no-c-format
+msgid "The <literal>foo</literal> object knows which <literal>Session</literal> it was loaded in. Beginning a new database transaction on an old session obtains a new connection and resumes the session. Committing a database transaction disconnects a session from the JDBC connection and returns the connection to the pool. After reconnection, to force a version check on data you are not updating, you can call <literal>Session.lock()</literal> with <literal>LockMode.READ</literal> on any objects that might have been updated by another transaction. You do not need to lock any data that you <emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode.MANUAL</literal> on an extended <literal>Session</literal>, so that only the last database transaction cycle is allowed to actually persist all modifications made in this conversation. Only this last database transaction will include the <literal>flush()</literal> operation, and then <literal>close()</literal> the se!
ssion to end the conversation."
+msgstr "<literal>foo</literal> 对象ç¥éå®æ¯å¨åªä¸ª <literal>Session</literal> ä¸è¢«è£
å
¥çãå¨ä¸ä¸ªæ§ session ä¸å¼å¯ä¸ä¸ªæ°çæ°æ®åºäºå¡ï¼ä¼å¯¼è´ session è·åä¸ä¸ªæ°çè¿æ¥ï¼å¹¶æ¢å¤ session çåè½ãå°æ°æ®åºäºå¡æ交ï¼ä½¿å¾ session ä» JDBC è¿æ¥æå¼ï¼å¹¶å°æ¤è¿æ¥äº¤è¿ç»è¿æ¥æ± ãå¨éæ°è¿æ¥ä¹åï¼è¦å¼ºå¶å¯¹ä½ 没ææ´æ°çæ°æ®è¿è¡ä¸æ¬¡çæ¬æ£æ¥ï¼ä½ å¯ä»¥å¯¹ææå¯è½è¢«å
¶ä»äºå¡ä¿®æ¹è¿ç对象ï¼ä½¿ç¨åæ° <literal>LockMode.READ</literal> æ¥è°ç¨ <literal>Session.lock()</literal>ãä½ ä¸ç¨ lock ä»»ä½ä½ <emphasis>æ£å¨</emphasis>æ´æ°çæ°æ®ãä¸è¬ä½ ä¼å¨æ©å±ç <literal>Session</literal> ä¸è®¾ç½® <literal>FlushMode.NEVER</literal>ï¼å æ¤åªææåä¸ä¸ªæ°æ®åºäºå¡å¾ªç¯æä¼çæ£çææ´ä¸ªå¯¹è¯ä¸åççä¿®æ¹åéå°æ°æ®åºãå æ¤ï¼åªæè¿æåä¸æ¬¡æ°æ®åºäºå¡æä¼å
å« <literal>flush()</literal> æä½ï¼ç¶åå¨æ´ä¸ªå¯¹è¯ç»æåï¼!
è¿è¦ <literal>close()</literal> è¿ä¸ª sessionã "
#. Tag: para
#: transactions.xml:751
-#, fuzzy, no-c-format
-msgid ""
-"This pattern is problematic if the <literal>Session</literal> is too big to "
-"be stored during user think time (for example, an <literal>HttpSession</"
-"literal> should be kept as small as possible). As the <literal>Session</"
-"literal> is also the first-level cache and contains all loaded objects, we "
-"can probably use this strategy only for a few request/response cycles. Use a "
-"<literal>Session</literal> only for a single conversation as it will soon "
-"have stale data."
-msgstr ""
-"å¦æå¨ç¨æ·æèçè¿ç¨ä¸ï¼<literal>Session</literal> å 为太大äºèä¸è½ä¿åï¼é£ä¹"
-"è¿ç§æ¨¡å¼æ¯æé®é¢çã举ä¾æ¥è¯´ï¼ä¸ä¸ª <literal>HttpSession</literal> åºè¯¥å°½å¯è½"
-"çå°ãç±äº <literal>Session</literal> æ¯ä¸çº§ç¼åï¼å¹¶ä¸ä¿æäºææ被载å
¥è¿ç对"
-"象ï¼å æ¤æ们åªåºè¯¥å¨é£äºå°éç request/response æ
åµä¸ä½¿ç¨è¿ç§çç¥ãä½ åºè¯¥åª"
-"æä¸ä¸ª <literal>Session</literal> ç¨äºå个对è¯ï¼å 为å®å¾å¿«å°±ä¼åºç°èæ°æ®ã"
+#, no-c-format
+msgid "This pattern is problematic if the <literal>Session</literal> is too big to be stored during user think time (for example, an <literal>HttpSession</literal> should be kept as small as possible). As the <literal>Session</literal> is also the first-level cache and contains all loaded objects, we can probably use this strategy only for a few request/response cycles. Use a <literal>Session</literal> only for a single conversation as it will soon have stale data."
+msgstr "å¦æå¨ç¨æ·æèçè¿ç¨ä¸ï¼<literal>Session</literal> å 为太大äºèä¸è½ä¿åï¼é£ä¹è¿ç§æ¨¡å¼æ¯æé®é¢çã举ä¾æ¥è¯´ï¼ä¸ä¸ª <literal>HttpSession</literal> åºè¯¥å°½å¯è½çå°ãç±äº <literal>Session</literal> æ¯ä¸çº§ç¼åï¼å¹¶ä¸ä¿æäºææ被载å
¥è¿ç对象ï¼å æ¤æ们åªåºè¯¥å¨é£äºå°éç request/response æ
åµä¸ä½¿ç¨è¿ç§çç¥ãä½ åºè¯¥åªæä¸ä¸ª <literal>Session</literal> ç¨äºå个对è¯ï¼å 为å®å¾å¿«å°±ä¼åºç°èæ°æ®ã "
#. Tag: title
#: transactions.xml:762
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
#. Tag: para
#: transactions.xml:763
-#, fuzzy, no-c-format
-msgid ""
-"Earlier versions of Hibernate required explicit disconnection and "
-"reconnection of a <literal>Session</literal>. These methods are deprecated, "
-"as beginning and ending a transaction has the same effect."
-msgstr ""
-"ï¼æ³¨æï¼æ©æç Hibernate çæ¬éè¦æç¡®ç对 <literal>Session</literal> è¿è¡ "
-"disconnect å reconnectãè¿äºæ¹æ³ç°å¨å·²ç»è¿æ¶äºï¼æå¼äºå¡åå
³éäºå¡ä¼èµ·å°åæ ·"
-"çææãï¼"
+#, no-c-format
+msgid "Earlier versions of Hibernate required explicit disconnection and reconnection of a <literal>Session</literal>. These methods are deprecated, as beginning and ending a transaction has the same effect."
+msgstr "注æï¼æ©æç Hibernate çæ¬éè¦æç¡®ç对 <literal>Session</literal> è¿è¡ disconnect å reconnectãè¿äºæ¹æ³ç°å¨å·²ç»è¿æ¶äºï¼æå¼äºå¡åå
³éäºå¡ä¼èµ·å°åæ ·çææã"
#. Tag: para
#: transactions.xml:769
-#, fuzzy, no-c-format
-msgid ""
-"Keep the disconnected <literal>Session</literal> close to the persistence "
-"layer. Use an EJB stateful session bean to hold the <literal>Session</"
-"literal> in a three-tier environment. Do not transfer it to the web layer, "
-"or even serialize it to a separate tier, to store it in the "
-"<literal>HttpSession</literal>."
-msgstr ""
-"æ¤å¤ï¼ä¹è¯·æ³¨æï¼ä½ åºè¯¥è®©ä¸æ°æ®åºè¿æ¥æå¼ç <literal>Session</literal> 对æä¹
"
-"å±ä¿æå
³éç¶æãæ¢å¥è¯è¯´ï¼å¨ä¸å±ç¯å¢ä¸ï¼ä½¿ç¨æç¶æç EJB session bean æ¥æ æ"
-"<literal>Session</literal>ï¼ èä¸è¦æå®ä¼ éå° web å±ï¼çè³æå®åºååå°ä¸ä¸ªå"
-"ç¬çå±ï¼ï¼ä¿åå¨ <literal>HttpSession</literal> ä¸ã"
+#, no-c-format
+msgid "Keep the disconnected <literal>Session</literal> close to the persistence layer. Use an EJB stateful session bean to hold the <literal>Session</literal> in a three-tier environment. Do not transfer it to the web layer, or even serialize it to a separate tier, to store it in the <literal>HttpSession</literal>."
+msgstr "æ¤å¤ï¼ä¹è¯·æ³¨æï¼ä½ åºè¯¥è®©ä¸æ°æ®åºè¿æ¥æå¼ç <literal>Session</literal> 对æä¹
å±ä¿æå
³éç¶æãæ¢å¥è¯è¯´ï¼å¨ä¸å±ç¯å¢ä¸ï¼ä½¿ç¨æç¶æç EJB session bean æ¥æ æ<literal>Session</literal>ï¼ èä¸è¦æå®ä¼ éå° web å±ï¼çè³æå®åºååå°ä¸ä¸ªåç¬çå±ï¼ï¼ä¿åå¨ <literal>HttpSession</literal> ä¸ã "
#. Tag: para
#: transactions.xml:777
-#, fuzzy, no-c-format
-msgid ""
-"The extended session pattern, or <emphasis>session-per-conversation</"
-"emphasis>, is more difficult to implement with automatic current session "
-"context management. You need to supply your own implementation of the "
-"<literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki "
-"for examples."
-msgstr ""
-"æ©å± session 模å¼ï¼æè
被称为<emphasis>æ¯æ¬¡å¯¹è¯ä¸ä¸ªsessionï¼session-per-"
-"conversationï¼</emphasis>ï¼èªå¨ç®¡çå½å session ä¸ä¸æèç¨çæ¶åä¼æ´å°é¾ãä½ "
-"éè¦æä¾ä½ èªå·±ç <literal>CurrentSessionContext</literal> å®ç°ã请åé
"
-"Hibernate Wiki 以è·å¾ç¤ºä¾ã"
+#, no-c-format
+msgid "The extended session pattern, or <emphasis>session-per-conversation</emphasis>, is more difficult to implement with automatic current session context management. You need to supply your own implementation of the <literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki for examples."
+msgstr "æ©å± session 模å¼ï¼æè
被称为<emphasis>æ¯æ¬¡å¯¹è¯ä¸ä¸ªsessionï¼session-per-conversationï¼</emphasis>ï¼èªå¨ç®¡çå½å session ä¸ä¸æèç¨çæ¶åä¼æ´å°é¾ãä½ éè¦æä¾ä½ èªå·±ç <literal>CurrentSessionContext</literal> å®ç°ã请åé
Hibernate Wiki 以è·å¾ç¤ºä¾ã "
#. Tag: title
#: transactions.xml:787
@@ -1617,66 +855,40 @@
#. Tag: para
#: transactions.xml:789
#, no-c-format
-msgid ""
-"Each interaction with the persistent store occurs in a new <literal>Session</"
-"literal>. However, the same persistent instances are reused for each "
-"interaction with the database. The application manipulates the state of "
-"detached instances originally loaded in another <literal>Session</literal> "
-"and then reattaches them using <literal>Session.update()</literal>, "
-"<literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</"
-"literal>."
-msgstr ""
-"è¿ç§æ¹å¼ä¸ï¼ä¸æä¹
ååå¨çæ¯æ¬¡äº¤äºé½åçå¨ä¸ä¸ªæ°ç <literal>Session</"
-"literal> ä¸ãç¶èï¼åä¸æä¹
å对象å®ä¾å¯ä»¥å¨å¤æ¬¡ä¸æ°æ®åºç交äºä¸éç¨ãåºç¨ç¨åº"
-"æ纵è±ç®¡å¯¹è±¡å®ä¾ çç¶æï¼è¿ä¸ªè±ç®¡å¯¹è±¡å®ä¾æåæ¯å¨å¦ä¸ä¸ª <literal>Session</"
-"literal> ä¸è½½å
¥çï¼ç¶åè°ç¨ <literal>Session.update()</literal>ï¼"
-"<literal>Session.saveOrUpdate()</literal>ï¼æè
<literal>Session.merge()</"
-"literal> æ¥éæ°å
³è该对象å®ä¾ã"
+msgid "Each interaction with the persistent store occurs in a new <literal>Session</literal>. However, the same persistent instances are reused for each interaction with the database. The application manipulates the state of detached instances originally loaded in another <literal>Session</literal> and then reattaches them using <literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</literal>."
+msgstr "è¿ç§æ¹å¼ä¸ï¼ä¸æä¹
ååå¨çæ¯æ¬¡äº¤äºé½åçå¨ä¸ä¸ªæ°ç <literal>Session</literal> ä¸ãç¶èï¼åä¸æä¹
å对象å®ä¾å¯ä»¥å¨å¤æ¬¡ä¸æ°æ®åºç交äºä¸éç¨ãåºç¨ç¨åºæ纵è±ç®¡å¯¹è±¡å®ä¾ çç¶æï¼è¿ä¸ªè±ç®¡å¯¹è±¡å®ä¾æåæ¯å¨å¦ä¸ä¸ª <literal>Session</literal> ä¸è½½å
¥çï¼ç¶åè°ç¨ <literal>Session.update()</literal>ï¼<literal>Session.saveOrUpdate()</literal>ï¼æè
<literal>Session.merge()</literal> æ¥éæ°å
³è该对象å®ä¾ã"
#. Tag: programlisting
#: transactions.xml:797
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[// foo is an instance loaded by a previous Session\n"
"foo.setProperty(\"bar\");\n"
"session = factory.openSession();\n"
"Transaction t = session.beginTransaction();\n"
-"session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded "
-"already\n"
+"session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded already\n"
"t.commit();\n"
"session.close();]]>"
msgstr ""
-"// foo is an instance loaded by a previous Session\n"
+"<![CDATA[// foo is an instance loaded by a previous Session\n"
"foo.setProperty(\"bar\");\n"
"session = factory.openSession();\n"
"Transaction t = session.beginTransaction();\n"
-"session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded "
-"already\n"
+"session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded already\n"
"t.commit();\n"
-"session.close();"
+"session.close();]]>"
#. Tag: para
#: transactions.xml:799
-#, fuzzy, no-c-format
-msgid ""
-"Again, Hibernate will check instance versions during flush, throwing an "
-"exception if conflicting updates occurred."
-msgstr ""
-"Hibernate ä¼åä¸æ¬¡å¨åæ¥çæ¶åæ£æ¥å¯¹è±¡å®ä¾ççæ¬ï¼å¦æåçæ´æ°å²çªï¼å°±æåºå¼"
-"常ã"
+#, no-c-format
+msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occurred."
+msgstr "Hibernate ä¼åä¸æ¬¡å¨åæ¥çæ¶åæ£æ¥å¯¹è±¡å®ä¾ççæ¬ï¼å¦æåçæ´æ°å²çªï¼å°±æåºå¼å¸¸ã "
#. Tag: para
#: transactions.xml:804
-#, fuzzy, no-c-format
-msgid ""
-"You can also call <literal>lock()</literal> instead of <literal>update()</"
-"literal>, and use <literal>LockMode.READ</literal> (performing a version "
-"check and bypassing all caches) if you are sure that the object has not been "
-"modified."
-msgstr ""
-"å¦æä½ ç¡®ä¿¡å¯¹è±¡æ²¡æ被修æ¹è¿ï¼ä½ ä¹å¯ä»¥è°ç¨ <literal>lock()</literal> æ¥è®¾ç½® "
-"<literal>LockMode.READ</literal>ï¼ç»è¿ææçç¼åï¼æ§è¡çæ¬æ£æ¥ï¼ï¼ä»èå代 "
-"<literal>update()</literal> æä½ã"
+#, no-c-format
+msgid "You can also call <literal>lock()</literal> instead of <literal>update()</literal>, and use <literal>LockMode.READ</literal> (performing a version check and bypassing all caches) if you are sure that the object has not been modified."
+msgstr "å¦æä½ ç¡®ä¿¡å¯¹è±¡æ²¡æ被修æ¹è¿ï¼ä½ ä¹å¯ä»¥è°ç¨ <literal>lock()</literal> æ¥è®¾ç½® <literal>LockMode.READ</literal>ï¼ç»è¿ææçç¼åï¼æ§è¡çæ¬æ£æ¥ï¼ï¼ä»èå代 <literal>update()</literal> æä½ã "
#. Tag: title
#: transactions.xml:813
@@ -1686,197 +898,93 @@
#. Tag: para
#: transactions.xml:815
-#, fuzzy, no-c-format
-msgid ""
-"You can disable Hibernate's automatic version increment for particular "
-"properties and collections by setting the <literal>optimistic-lock</literal> "
-"mapping attribute to <literal>false</literal>. Hibernate will then no longer "
-"increment versions if the property is dirty."
-msgstr ""
-"对äºç¹å®çå±æ§åéåï¼éè¿ä¸ºå®ä»¬è®¾ç½®æ å°å±æ§ <literal>optimistic-lock</"
-"literal> çå¼ä¸º <literal>false</literal>ï¼æ¥ç¦æ¢ Hibernate ççæ¬èªå¨å¢å ãè¿"
-"æ ·çè¯ï¼å¦æ该å±æ§èæ°æ®ï¼Hibernate å°ä¸åå¢å çæ¬å·ã"
+#, no-c-format
+msgid "You can disable Hibernate's automatic version increment for particular properties and collections by setting the <literal>optimistic-lock</literal> mapping attribute to <literal>false</literal>. Hibernate will then no longer increment versions if the property is dirty."
+msgstr "对äºç¹å®çå±æ§åéåï¼éè¿ä¸ºå®ä»¬è®¾ç½®æ å°å±æ§ <literal>optimistic-lock</literal> çå¼ä¸º <literal>false</literal>ï¼æ¥ç¦æ¢ Hibernate ççæ¬èªå¨å¢å ãè¿æ ·çè¯ï¼å¦æ该å±æ§èæ°æ®ï¼Hibernate å°ä¸åå¢å çæ¬å·ã "
#. Tag: para
#: transactions.xml:822
-#, fuzzy, no-c-format
-msgid ""
-"Legacy database schemas are often static and cannot be modified. Or, other "
-"applications might access the same database and will not know how to handle "
-"version numbers or even timestamps. In both cases, versioning cannot rely on "
-"a particular column in a table. To force a version check with a comparison "
-"of the state of all fields in a row but without a version or timestamp "
-"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
-"<literal><class></literal> mapping. This conceptually only works if "
-"Hibernate can compare the old and the new state (i.e., if you use a single "
-"long <literal>Session</literal> and not session-per-request-with-detached-"
-"objects)."
-msgstr ""
-"éçç³»ç»çæ°æ®åº Schema é常æ¯éæçï¼ä¸å¯ä¿®æ¹çãæè
ï¼å
¶ä»åºç¨ç¨åºä¹å¯è½è®¿"
-"é®åä¸æ°æ®åºï¼æ ¹æ¬æ æ³å¾ç¥å¦ä½å¤ççæ¬å·ï¼çè³æ¶é´æ³ãå¨ä»¥ä¸çææåºæ¯ä¸ï¼å®"
-"ç°çæ¬åä¸è½ä¾é æ°æ®åºè¡¨çæ个ç¹å®åãå¨ <literal><class></literal> ç"
-"æ å°ä¸è®¾ç½® <literal>optimistic-lock=\"all\"</literal> å¯ä»¥å¨æ²¡æçæ¬æè
æ¶é´"
-"æ³å±æ§æ å°çæ
åµä¸å®ç°çæ¬æ£æ¥ï¼æ¤æ¶ Hibernate å°æ¯è¾ä¸è¡è®°å½çæ¯ä¸ªå段çç¶"
-"æã请注æï¼åªæå½ Hibernate è½å¤æ¯è¾æ°æ§ç¶æçæ
åµä¸ï¼è¿ç§æ¹å¼æè½çæï¼ä¹å°±"
-"æ¯è¯´ï¼ä½ å¿
须使ç¨å个é¿çå½å¨æ <literal>Session</literal> 模å¼ï¼èä¸è½ä½¿ç¨ "
-"session-per-request-with-detached-objects 模å¼ã"
+#, no-c-format
+msgid "Legacy database schemas are often static and cannot be modified. Or, other applications might access the same database and will not know how to handle version numbers or even timestamps. In both cases, versioning cannot rely on a particular column in a table. To force a version check with a comparison of the state of all fields in a row but without a version or timestamp property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the <literal><class></literal> mapping. This conceptually only works if Hibernate can compare the old and the new state (i.e., if you use a single long <literal>Session</literal> and not session-per-request-with-detached-objects)."
+msgstr "éçç³»ç»çæ°æ®åº Schema é常æ¯éæçï¼ä¸å¯ä¿®æ¹çãæè
ï¼å
¶ä»åºç¨ç¨åºä¹å¯è½è®¿é®åä¸æ°æ®åºï¼æ ¹æ¬æ æ³å¾ç¥å¦ä½å¤ççæ¬å·ï¼çè³æ¶é´æ³ãå¨ä»¥ä¸çææåºæ¯ä¸ï¼å®ç°çæ¬åä¸è½ä¾é æ°æ®åºè¡¨çæ个ç¹å®åãå¨ <literal><class></literal> çæ å°ä¸è®¾ç½® <literal>optimistic-lock=\"all\"</literal> å¯ä»¥å¨æ²¡æçæ¬æè
æ¶é´æ³å±æ§æ å°çæ
åµä¸å®ç°çæ¬æ£æ¥ï¼æ¤æ¶ Hibernate å°æ¯è¾ä¸è¡è®°å½çæ¯ä¸ªå段çç¶æã请注æï¼åªæå½ Hibernate è½å¤æ¯è¾æ°æ§ç¶æçæ
åµä¸ï¼è¿ç§æ¹å¼æè½çæï¼ä¹å°±æ¯è¯´ï¼ä½ å¿
须使ç¨å个é¿çå½å¨æ <literal>Session</literal> 模å¼ï¼èä¸è½ä½¿ç¨ session-per-request-with-detached-objects 模å¼ã "
#. Tag: para
#: transactions.xml:834
-#, fuzzy, no-c-format
-msgid ""
-"Concurrent modification can be permitted in instances where the changes that "
-"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
-"\"</literal> when mapping the <literal><class></literal>, Hibernate "
-"will only compare dirty fields during flush."
-msgstr ""
-"æäºæ
åµä¸ï¼åªè¦æ´æ¹ä¸åç交éï¼å¹¶åä¿®æ¹ä¹æ¯å
许çãå½ä½ å¨ <literal><"
-"class></literal> çæ å°ä¸è®¾ç½® <literal>optimistic-lock=\"dirty\"</"
-"literal>ï¼Hibernate å¨åæ¥çæ¶åå°åªæ¯è¾æèæ°æ®çå段ã"
+#, no-c-format
+msgid "Concurrent modification can be permitted in instances where the changes that have been made do not overlap. If you set <literal>optimistic-lock=\"dirty\"</literal> when mapping the <literal><class></literal>, Hibernate will only compare dirty fields during flush."
+msgstr "æäºæ
åµä¸ï¼åªè¦æ´æ¹ä¸åç交éï¼å¹¶åä¿®æ¹ä¹æ¯å
许çãå½ä½ å¨ <literal><class></literal> çæ å°ä¸è®¾ç½® <literal>optimistic-lock=\"dirty\"</literal>ï¼Hibernate å¨åæ¥çæ¶åå°åªæ¯è¾æèæ°æ®çå段ã "
#. Tag: para
#: transactions.xml:840
-#, fuzzy, no-c-format
-msgid ""
-"In both cases, with dedicated version/timestamp columns or with a full/dirty "
-"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
-"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
-"to execute the version check and update the information. If you use "
-"transitive persistence to cascade reattachment to associated entities, "
-"Hibernate may execute unnecessary updates. This is usually not a problem, "
-"but <emphasis>on update</emphasis> triggers in the database might be "
-"executed even when no changes have been made to detached instances. You can "
-"customize this behavior by setting <literal>select-before-update=\"true\"</"
-"literal> in the <literal><class></literal> mapping, forcing Hibernate "
-"to <literal>SELECT</literal> the instance to ensure that changes did occur "
-"before updating the row."
-msgstr ""
-"å¨ä»¥ä¸ææåºæ¯ä¸ï¼ä¸ç®¡æ¯ä¸é¨è®¾ç½®ä¸ä¸ªçæ¬/æ¶é´æ³åï¼è¿æ¯è¿è¡å
¨é¨å段/èæ°æ®å"
-"段æ¯è¾ï¼Hibernate é½ä¼é对æ¯ä¸ªå®ä½å¯¹è±¡åéä¸æ¡ <literal>UPDATE</literal>ï¼å¸¦"
-"æç¸åºç <literal>WHERE</literal> è¯å¥ ï¼ç SQL è¯å¥æ¥æ§è¡çæ¬æ£æ¥åæ°æ®æ´"
-"æ°ãå¦æä½ å¯¹å
³èå®ä½ 设置级èå
³ç³»ä½¿ç¨ä¼ ææ§æä¹
åï¼transitive persistenceï¼ï¼"
-"é£ä¹ Hibernate å¯è½ä¼æ§è¡ä¸å¿
è¦çupdateè¯å¥ãè¿é常ä¸æ¯ä¸ªé®é¢ï¼ä½æ¯æ°æ®åºé"
-"é¢å¯¹ <emphasis>on update</emphasis> ç¹ç« ç触åå¨å¯è½å¨è±ç®¡å¯¹è±¡æ²¡æä»»ä½æ´æ¹ç"
-"æ
åµä¸è¢«è§¦åãå æ¤ï¼ä½ å¯ä»¥å¨ <literal><class></literal> çæ å°ä¸ï¼éè¿"
-"设置<literal>select-before-update=\"true\"</literal> æ¥å®å¶è¿ä¸è¡ä¸ºï¼å¼ºå¶ "
-"Hibernate <literal>SELECT</literal> è¿ä¸ªå¯¹è±¡å®ä¾ï¼ä»èä¿è¯ï¼å¨æ´æ°è®°å½ä¹åï¼"
-"对象çç¡®æ¯è¢«ä¿®æ¹è¿ã"
+#, no-c-format
+msgid "In both cases, with dedicated version/timestamp columns or with a full/dirty field comparison, Hibernate uses a single <literal>UPDATE</literal> statement, with an appropriate <literal>WHERE</literal> clause, per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate may execute unnecessary updates. This is usually not a problem, but <emphasis>on update</emphasis> triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting <literal>select-before-update=\"true\"</literal> in the <literal><class></literal> mapping, forcing Hibernate to <literal>SELECT</literal> the instance to ensure that changes did occur before updating the row."
+msgstr "å¨ä»¥ä¸ææåºæ¯ä¸ï¼ä¸ç®¡æ¯ä¸é¨è®¾ç½®ä¸ä¸ªçæ¬/æ¶é´æ³åï¼è¿æ¯è¿è¡å
¨é¨å段/èæ°æ®å段æ¯è¾ï¼Hibernate é½ä¼é对æ¯ä¸ªå®ä½å¯¹è±¡åéä¸æ¡ <literal>UPDATE</literal>ï¼å¸¦æç¸åºç <literal>WHERE</literal> è¯å¥ ï¼ç SQL è¯å¥æ¥æ§è¡çæ¬æ£æ¥åæ°æ®æ´æ°ãå¦æä½ å¯¹å
³èå®ä½ 设置级èå
³ç³»ä½¿ç¨ä¼ ææ§æä¹
åï¼transitive persistenceï¼ï¼é£ä¹ Hibernate å¯è½ä¼æ§è¡ä¸å¿
è¦çupdateè¯å¥ãè¿é常ä¸æ¯ä¸ªé®é¢ï¼ä½æ¯æ°æ®åºéé¢å¯¹ <emphasis>on update</emphasis> ç¹ç« ç触åå¨å¯è½å¨è±ç®¡å¯¹è±¡æ²¡æä»»ä½æ´æ¹çæ
åµä¸è¢«è§¦åãå æ¤ï¼ä½ å¯ä»¥å¨ <literal><class></literal> çæ å°ä¸ï¼éè¿è®¾ç½®<literal>select-before-update=\"true\"</literal> æ¥å®å¶è¿ä¸è¡ä¸ºï¼å¼ºå¶ Hibernate <literal>SELECT</literal> è¿ä¸ªå¯¹è±¡å®ä¾ï¼ä»èä¿è¯ï¼å¨æ´æ°è®°å½ä¹åï¼å¯¹è±¡çç¡®æ¯è¢«ä¿®æ¹è¿ã "
#. Tag: title
#: transactions.xml:858
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Pessimistic locking"
-msgstr "æ²è§éå®ï¼Pessimistic Lockingï¼"
+msgstr "æ²è§éå®ï¼Pessimistic Lockingï¼ "
#. Tag: para
#: transactions.xml:860
-#, fuzzy, no-c-format
-msgid ""
-"It is not intended that users spend much time worrying about locking "
-"strategies. It is usually enough to specify an isolation level for the JDBC "
-"connections and then simply let the database do all the work. However, "
-"advanced users may wish to obtain exclusive pessimistic locks or re-obtain "
-"locks at the start of a new transaction."
-msgstr ""
-"ç¨æ·å
¶å®å¹¶ä¸éè¦è±å¾å¤ç²¾åå»æ
å¿éå®çç¥çé®é¢ãé常æ
åµä¸ï¼åªè¦ä¸º JDBC è¿æ¥"
-"æå®ä¸ä¸é离级å«ï¼ç¶å让æ°æ®åºå»æå®ä¸åå°±å¤äºãç¶èï¼é«çº§ç¨æ·ææ¶åå¸æè¿è¡"
-"ä¸ä¸ªæå®çæ²è§éå®ï¼æè
å¨ä¸ä¸ªæ°çäºå¡å¯å¨çæ¶åï¼éæ°è¿è¡éå®ã"
+#, no-c-format
+msgid "It is not intended that users spend much time worrying about locking strategies. It is usually enough to specify an isolation level for the JDBC connections and then simply let the database do all the work. However, advanced users may wish to obtain exclusive pessimistic locks or re-obtain locks at the start of a new transaction."
+msgstr "ç¨æ·å
¶å®å¹¶ä¸éè¦è±å¾å¤ç²¾åå»æ
å¿éå®çç¥çé®é¢ãé常æ
åµä¸ï¼åªè¦ä¸º JDBC è¿æ¥æå®ä¸ä¸é离级å«ï¼ç¶å让æ°æ®åºå»æå®ä¸åå°±å¤äºãç¶èï¼é«çº§ç¨æ·ææ¶åå¸æè¿è¡ä¸ä¸ªæå®çæ²è§éå®ï¼æè
å¨ä¸ä¸ªæ°çäºå¡å¯å¨çæ¶åï¼éæ°è¿è¡éå®ã "
#. Tag: para
#: transactions.xml:867
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate will always use the locking mechanism of the database; it never "
-"lock objects in memory."
-msgstr "Hibernate æ»æ¯ä½¿ç¨æ°æ®åºçéå®æºå¶ï¼ä»ä¸å¨å
åä¸éå®å¯¹è±¡ï¼"
+#, no-c-format
+msgid "Hibernate will always use the locking mechanism of the database; it never lock objects in memory."
+msgstr "Hibernate æ»æ¯ä½¿ç¨æ°æ®åºçéå®æºå¶ï¼ä»ä¸å¨å
åä¸éå®å¯¹è±¡ã"
#. Tag: para
#: transactions.xml:872
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>LockMode</literal> class defines the different lock levels that "
-"can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
-msgstr ""
-"ç±» <literal>LockMode</literal> å®ä¹äº Hibernate æéçä¸åçéå®çº§å«ãä¸ä¸ªé"
-"å®å¯ä»¥éè¿ä»¥ä¸çæºå¶æ¥è®¾ç½®:"
+#, no-c-format
+msgid "The <literal>LockMode</literal> class defines the different lock levels that can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
+msgstr "ç±» <literal>LockMode</literal> å®ä¹äº Hibernate æéçä¸åçéå®çº§å«ãä¸ä¸ªéå®å¯ä»¥éè¿ä»¥ä¸çæºå¶æ¥è®¾ç½®ï¼"
#. Tag: para
#: transactions.xml:879
#, no-c-format
-msgid ""
-"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
-"updates or inserts a row."
-msgstr ""
-"å½ Hibernate æ´æ°æè
æå
¥ä¸è¡è®°å½çæ¶åï¼éå®çº§å«èªå¨è®¾ç½®ä¸º "
-"<literal>LockMode.WRITE</literal>ã"
+msgid "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate updates or inserts a row."
+msgstr "å½ Hibernate æ´æ°æè
æå
¥ä¸è¡è®°å½çæ¶åï¼éå®çº§å«èªå¨è®¾ç½®ä¸º <literal>LockMode.WRITE</literal>ã"
#. Tag: para
#: transactions.xml:885
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user "
-"request using <literal>SELECT ... FOR UPDATE</literal> on databases which "
-"support that syntax."
-msgstr ""
-"å½ç¨æ·æ¾å¼ç使ç¨æ°æ®åºæ¯æç SQL æ ¼å¼ <literal>SELECT ... FOR UPDATE</"
-"literal> åé SQL çæ¶åï¼éå®çº§å«è®¾ç½®ä¸º <literal>LockMode.UPGRADE</"
-"literal>ã"
+#, no-c-format
+msgid "<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user request using <literal>SELECT ... FOR UPDATE</literal> on databases which support that syntax."
+msgstr "å½ç¨æ·æ¾å¼ç使ç¨æ°æ®åºæ¯æç SQL æ ¼å¼ <literal>SELECT ... FOR UPDATE</literal> åé SQL çæ¶åï¼éå®çº§å«è®¾ç½®ä¸º <literal>LockMode.UPGRADE</literal>ã "
#. Tag: para
#: transactions.xml:891
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit "
-"user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under "
-"Oracle."
-msgstr ""
-"å½ç¨æ·æ¾å¼çä½¿ç¨ Oracle æ°æ®åºç SQL è¯å¥ <literal>SELECT ... FOR UPDATE "
-"NOWAIT</literal> çæ¶åï¼éå®çº§å«è®¾ç½® <literal>LockMode.UPGRADE_NOWAIT</"
-"literal>ã"
+#, no-c-format
+msgid "<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under Oracle."
+msgstr "å½ç¨æ·æ¾å¼çä½¿ç¨ Oracle æ°æ®åºç SQL è¯å¥ <literal>SELECT ... FOR UPDATE NOWAIT</literal> çæ¶åï¼éå®çº§å«è®¾ç½® <literal>LockMode.UPGRADE_NOWAIT</literal>ã "
#. Tag: para
#: transactions.xml:897
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
-"reads data under Repeatable Read or Serializable isolation level. It can be "
-"re-acquired by explicit user request."
-msgstr ""
-"å½ Hibernate å¨âå¯éå¤è¯»âæè
æ¯âåºååâæ°æ®åºé离级å«ä¸è¯»åæ°æ®çæ¶åï¼éå®æ¨¡"
-"å¼èªå¨è®¾ç½®ä¸º <literal>LockMode.READ</literal>ãè¿ç§æ¨¡å¼ä¹å¯ä»¥éè¿ç¨æ·æ¾å¼æå®"
-"è¿è¡è®¾ç½®ã"
+#, no-c-format
+msgid "<literal>LockMode.READ</literal> is acquired automatically when Hibernate reads data under Repeatable Read or Serializable isolation level. It can be re-acquired by explicit user request."
+msgstr "å½ Hibernate å¨âå¯éå¤è¯»âæè
æ¯âåºååâæ°æ®åºé离级å«ä¸è¯»åæ°æ®çæ¶åï¼éå®æ¨¡å¼èªå¨è®¾ç½®ä¸º <literal>LockMode.READ</literal>ãè¿ç§æ¨¡å¼ä¹å¯ä»¥éè¿ç¨æ·æ¾å¼æå®è¿è¡è®¾ç½®ã "
#. Tag: para
#: transactions.xml:904
#, no-c-format
-msgid ""
-"<literal>LockMode.NONE</literal> represents the absence of a lock. All "
-"objects switch to this lock mode at the end of a <literal>Transaction</"
-"literal>. Objects associated with the session via a call to <literal>update()"
-"</literal> or <literal>saveOrUpdate()</literal> also start out in this lock "
-"mode."
-msgstr ""
-"<literal>LockMode.NONE</literal> 代表æ ééå®ãå¨ <literal>Transaction</"
-"literal> ç»ææ¶ï¼ ææç对象é½åæ¢å°è¯¥æ¨¡å¼ä¸æ¥ãä¸ session ç¸å
³èç对象éè¿è°"
-"ç¨ <literal>update()</literal> æè
<literal>saveOrUpdate()</literal> è±ç¦»è¯¥"
-"模å¼ã"
+msgid "<literal>LockMode.NONE</literal> represents the absence of a lock. All objects switch to this lock mode at the end of a <literal>Transaction</literal>. Objects associated with the session via a call to <literal>update()</literal> or <literal>saveOrUpdate()</literal> also start out in this lock mode."
+msgstr "<literal>LockMode.NONE</literal> 代表æ ééå®ãå¨ <literal>Transaction</literal> ç»ææ¶ï¼ ææç对象é½åæ¢å°è¯¥æ¨¡å¼ä¸æ¥ãä¸ session ç¸å
³èç对象éè¿è°ç¨ <literal>update()</literal> æè
<literal>saveOrUpdate()</literal> è±ç¦»è¯¥æ¨¡å¼ã"
#. Tag: para
#: transactions.xml:913
#, no-c-format
-msgid ""
-"The \"explicit user request\" is expressed in one of the following ways:"
+msgid "The \"explicit user request\" is expressed in one of the following ways:"
msgstr "\"æ¾å¼çç¨æ·æå®\"å¯ä»¥éè¿ä»¥ä¸å ç§æ¹å¼ä¹ä¸æ¥è¡¨ç¤ºï¼"
#. Tag: para
#: transactions.xml:919
#, no-c-format
-msgid ""
-"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
-"literal>."
-msgstr ""
-"è°ç¨ <literal>Session.load()</literal> çæ¶åæå®<literal>éå®æ¨¡å¼"
-"ï¼LockModeï¼</literal>ã"
+msgid "A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</literal>."
+msgstr "è°ç¨ <literal>Session.load()</literal> çæ¶åæå®<literal>éå®æ¨¡å¼ï¼LockModeï¼</literal>ã"
#. Tag: para
#: transactions.xml:924
@@ -1893,187 +1001,78 @@
#. Tag: para
#: transactions.xml:935
#, no-c-format
-msgid ""
-"If <literal>Session.load()</literal> is called with <literal>UPGRADE</"
-"literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was "
-"not yet loaded by the session, the object is loaded using "
-"<literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is "
-"called for an object that is already loaded with a less restrictive lock "
-"than the one requested, Hibernate calls <literal>lock()</literal> for that "
-"object."
-msgstr ""
-"å¦æå¨ <literal>UPGRADE</literal> æè
<literal>UPGRADE_NOWAIT</literal> éå®"
-"模å¼ä¸è°ç¨ <literal>Session.load()</literal>ï¼å¹¶ä¸è¦è¯»åç对象å°æªè¢« session "
-"è½½å
¥è¿ï¼é£ä¹å¯¹è±¡éè¿ <literal>SELECT ... FOR UPDATE</literal> è¿æ ·ç SQL è¯å¥"
-"被载å
¥ãå¦æ为ä¸ä¸ªå¯¹è±¡è°ç¨ <literal>load()</literal> æ¹æ³æ¶ï¼è¯¥å¯¹è±¡å·²ç»å¨å¦"
-"ä¸ä¸ªè¾å°éå¶çéå®æ¨¡å¼ä¸è¢«è½½å
¥äºï¼é£ä¹ Hibernate 就对该对象è°ç¨ "
-"<literal>lock()</literal> æ¹æ³ã"
+msgid "If <literal>Session.load()</literal> is called with <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was not yet loaded by the session, the object is loaded using <literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is called for an object that is already loaded with a less restrictive lock than the one requested, Hibernate calls <literal>lock()</literal> for that object."
+msgstr "å¦æå¨ <literal>UPGRADE</literal> æè
<literal>UPGRADE_NOWAIT</literal> éå®æ¨¡å¼ä¸è°ç¨ <literal>Session.load()</literal>ï¼å¹¶ä¸è¦è¯»åç对象å°æªè¢« session è½½å
¥è¿ï¼é£ä¹å¯¹è±¡éè¿ <literal>SELECT ... FOR UPDATE</literal> è¿æ ·ç SQL è¯å¥è¢«è½½å
¥ãå¦æ为ä¸ä¸ªå¯¹è±¡è°ç¨ <literal>load()</literal> æ¹æ³æ¶ï¼è¯¥å¯¹è±¡å·²ç»å¨å¦ä¸ä¸ªè¾å°éå¶çéå®æ¨¡å¼ä¸è¢«è½½å
¥äºï¼é£ä¹ Hibernate 就对该对象è°ç¨ <literal>lock()</literal> æ¹æ³ã"
#. Tag: para
#: transactions.xml:944
-#, fuzzy, no-c-format
-msgid ""
-"<literal>Session.lock()</literal> performs a version number check if the "
-"specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> "
-"or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</"
-"literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR "
-"UPDATE</literal> is used."
-msgstr ""
-"å¦ææå®çéå®æ¨¡å¼æ¯ <literal>READ</literal>ï¼<literal>UPGRADE</literal> æ "
-"<literal>UPGRADE_NOWAIT</literal>ï¼é£ä¹ <literal>Session.lock()</literal> å°±"
-"æ§è¡çæ¬å·æ£æ¥ãï¼å¨ <literal>UPGRADE</literal> æè
"
-"<literal>UPGRADE_NOWAIT</literal> éå®æ¨¡å¼ä¸ï¼æ§è¡ <literal>SELECT ... FOR "
-"UPDATE</literal>è¿æ ·çSQLè¯å¥ãï¼"
+#, no-c-format
+msgid "<literal>Session.lock()</literal> performs a version number check if the specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR UPDATE</literal> is used."
+msgstr "å¦ææå®çéå®æ¨¡å¼æ¯ <literal>READ</literal>ï¼<literal>UPGRADE</literal> æ <literal>UPGRADE_NOWAIT</literal>ï¼é£ä¹ <literal>Session.lock()</literal> å°±æ§è¡çæ¬å·æ£æ¥ãï¼å¨ <literal>UPGRADE</literal> æè
<literal>UPGRADE_NOWAIT</literal> éå®æ¨¡å¼ä¸ï¼æ§è¡ <literal>SELECT ... FOR UPDATE</literal>è¿æ ·çSQLè¯å¥ãï¼"
#. Tag: para
#: transactions.xml:951
-#, fuzzy, no-c-format
-msgid ""
-"If the requested lock mode is not supported by the database, Hibernate uses "
-"an appropriate alternate mode instead of throwing an exception. This ensures "
-"that applications are portable."
-msgstr ""
-"å¦ææ°æ®åºä¸æ¯æç¨æ·è®¾ç½®çéå®æ¨¡å¼ï¼Hibernate å°ä½¿ç¨éå½çæ¿ä»£æ¨¡å¼ï¼èä¸æ¯æ"
-"åºå¼å¸¸ï¼ãè¿ä¸ç¹å¯ä»¥ç¡®ä¿åºç¨ç¨åºçå¯ç§»æ¤æ§ã"
+#, no-c-format
+msgid "If the requested lock mode is not supported by the database, Hibernate uses an appropriate alternate mode instead of throwing an exception. This ensures that applications are portable."
+msgstr "å¦ææ°æ®åºä¸æ¯æç¨æ·è®¾ç½®çéå®æ¨¡å¼ï¼Hibernate å°ä½¿ç¨éå½çæ¿ä»£æ¨¡å¼ï¼èä¸æ¯æåºå¼å¸¸ï¼ãè¿ä¸ç¹å¯ä»¥ç¡®ä¿åºç¨ç¨åºçå¯ç§»æ¤æ§ã "
#. Tag: title
#: transactions.xml:960
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Connection release modes"
-msgstr "è¿æ¥éæ¾æ¨¡å¼ï¼Connection Release Modesï¼"
+msgstr "è¿æ¥éæ¾æ¨¡å¼ï¼Connection Release Modesï¼ "
#. Tag: para
#: transactions.xml:962
-#, fuzzy, no-c-format
-msgid ""
-"One of the legacies of Hibernate 2.x JDBC connection management meant that a "
-"<literal>Session</literal> would obtain a connection when it was first "
-"required and then maintain that connection until the session was closed. "
-"Hibernate 3.x introduced the notion of connection release modes that would "
-"instruct a session how to handle its JDBC connections. The following "
-"discussion is pertinent only to connections provided through a configured "
-"<literal>ConnectionProvider</literal>. User-supplied connections are outside "
-"the breadth of this discussion. The different release modes are identified "
-"by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</"
-"literal>:"
-msgstr ""
-"Hibernate å
³äº JDBC è¿æ¥ç®¡ççæ§ï¼2.xï¼è¡ä¸ºæ¯ï¼<literal>Session</literal> å¨"
-"第ä¸æ¬¡éè¦çæ¶åè·åä¸ä¸ªè¿æ¥ï¼å¨ session å
³éä¹åä¸ç´ä¼ææè¿ä¸ªè¿æ¥ã"
-"Hibernate å¼å
¥äºè¿æ¥éæ¾çæ¦å¿µï¼æ¥åè¯ session å¦ä½å¤çå®ç JDBC è¿æ¥ã注æï¼"
-"ä¸é¢ç讨论åªéç¨äºéç¨é
ç½® <literal>ConnectionProvider</literal> æ¥æä¾è¿æ¥ç"
-"æ
åµï¼ç¨æ·èªå·±æä¾çè¿æ¥ä¸è¿éç讨论æ å
³ãéè¿ <literal>org.hibernate."
-"ConnectionReleaseMode</literal> çä¸åæ举å¼æ¥ä½¿ç¨ä¸ç¨çéæ¾æ¨¡å¼:"
+#, no-c-format
+msgid "One of the legacies of Hibernate 2.x JDBC connection management meant that a <literal>Session</literal> would obtain a connection when it was first required and then maintain that connection until the session was closed. Hibernate 3.x introduced the notion of connection release modes that would instruct a session how to handle its JDBC connections. The following discussion is pertinent only to connections provided through a configured <literal>ConnectionProvider</literal>. User-supplied connections are outside the breadth of this discussion. The different release modes are identified by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</literal>:"
+msgstr "Hibernate å
³äº JDBC è¿æ¥ç®¡ççæ§ï¼2.xï¼è¡ä¸ºæ¯ï¼<literal>Session</literal> å¨ç¬¬ä¸æ¬¡éè¦çæ¶åè·åä¸ä¸ªè¿æ¥ï¼å¨ session å
³éä¹åä¸ç´ä¼ææè¿ä¸ªè¿æ¥ãHibernate å¼å
¥äºè¿æ¥éæ¾çæ¦å¿µï¼æ¥åè¯ session å¦ä½å¤çå®ç JDBC è¿æ¥ã注æï¼ä¸é¢ç讨论åªéç¨äºéç¨é
ç½® <literal>ConnectionProvider</literal> æ¥æä¾è¿æ¥çæ
åµï¼ç¨æ·èªå·±æä¾çè¿æ¥ä¸è¿éç讨论æ å
³ãéè¿ <literal>org.hibernate.ConnectionReleaseMode</literal> çä¸åæ举å¼æ¥ä½¿ç¨ä¸ç¨çéæ¾æ¨¡å¼ï¼"
#. Tag: para
#: transactions.xml:976
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ON_CLOSE</literal>: is the legacy behavior described above. The "
-"Hibernate session obtains a connection when it first needs to perform some "
-"JDBC access and maintains that connection until the session is closed."
-msgstr ""
-"<literal>ON_CLOSE</literal> â åºæ¬ä¸å°±æ¯ä¸é¢æå°çèå¼è¡ä¸ºãHibernate "
-"session å¨ç¬¬ä¸æ¬¡éè¦è¿è¡ JDBC æä½çæ¶åè·åè¿æ¥ï¼ç¶åææå®ï¼ç´å° session å
³"
-"éã"
+#, no-c-format
+msgid "<literal>ON_CLOSE</literal>: is the legacy behavior described above. The Hibernate session obtains a connection when it first needs to perform some JDBC access and maintains that connection until the session is closed."
+msgstr "<literal>ON_CLOSE</literal>ï¼åºæ¬ä¸å°±æ¯ä¸é¢æå°çèå¼è¡ä¸ºãHibernate session å¨ç¬¬ä¸æ¬¡éè¦è¿è¡ JDBC æä½çæ¶åè·åè¿æ¥ï¼ç¶åææå®ï¼ç´å° session å
³éã"
#. Tag: para
#: transactions.xml:983
-#, fuzzy, no-c-format
-msgid ""
-"<literal>AFTER_TRANSACTION</literal>: releases connections after a "
-"<literal>org.hibernate.Transaction</literal> has been completed."
-msgstr ""
-"<literal>AFTER_TRANSACTION</literal> â å¨ <literal>org.hibernate."
-"Transaction</literal> ç»æåéæ¾è¿æ¥ã"
+#, no-c-format
+msgid "<literal>AFTER_TRANSACTION</literal>: releases connections after a <literal>org.hibernate.Transaction</literal> has been completed."
+msgstr "<literal>AFTER_TRANSACTION</literal>ï¼å¨ <literal>org.hibernate.Transaction</literal> ç»æåéæ¾è¿æ¥ã"
#. Tag: para
#: transactions.xml:989
-#, fuzzy, no-c-format
-msgid ""
-"<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): "
-"releases connections after every statement execution. This aggressive "
-"releasing is skipped if that statement leaves open resources associated with "
-"the given session. Currently the only situation where this occurs is through "
-"the use of <literal>org.hibernate.ScrollableResults</literal>."
-msgstr ""
-"<literal>AFTER_STATEMENT</literal>ï¼ä¹è¢«ç§°å积æéæ¾ï¼ â å¨æ¯ä¸æ¡è¯å¥è¢«æ§è¡å"
-"å°±éæ¾è¿æ¥ãä½åè¥è¯å¥çä¸äºä¸ session ç¸å
³çèµæºï¼é£å°±ä¸ä¼è¢«éæ¾ãç®åå¯ä¸ç"
-"è¿ç§æ
形就æ¯ä½¿ç¨ <literal>org.hibernate.ScrollableResults</literal>ã"
+#, no-c-format
+msgid "<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): releases connections after every statement execution. This aggressive releasing is skipped if that statement leaves open resources associated with the given session. Currently the only situation where this occurs is through the use of <literal>org.hibernate.ScrollableResults</literal>."
+msgstr "<literal>AFTER_STATEMENT</literal>ï¼ä¹è¢«ç§°å积æéæ¾ï¼ï¼å¨æ¯ä¸æ¡è¯å¥è¢«æ§è¡åå°±éæ¾è¿æ¥ãä½åè¥è¯å¥çä¸äºä¸ session ç¸å
³çèµæºï¼é£å°±ä¸ä¼è¢«éæ¾ãç®åå¯ä¸çè¿ç§æ
形就æ¯ä½¿ç¨ <literal>org.hibernate.ScrollableResults</literal>ã"
#. Tag: para
#: transactions.xml:999
-#, fuzzy, no-c-format
-msgid ""
-"The configuration parameter <literal>hibernate.connection.release_mode</"
-"literal> is used to specify which release mode to use. The possible values "
-"are as follows:"
-msgstr ""
-"<literal>hibernate.connection.release_mode</literal> é
ç½®åæ°ç¨æ¥æå®ä½¿ç¨åªä¸"
-"ç§éæ¾æ¨¡å¼ãå¯è½çå¼æï¼"
+#, no-c-format
+msgid "The configuration parameter <literal>hibernate.connection.release_mode</literal> is used to specify which release mode to use. The possible values are as follows:"
+msgstr "<literal>hibernate.connection.release_mode</literal> é
ç½®åæ°ç¨æ¥æå®ä½¿ç¨åªä¸ç§éæ¾æ¨¡å¼ãå¯è½çå¼æï¼ "
#. Tag: para
#: transactions.xml:1006
-#, fuzzy, no-c-format
-msgid ""
-"<literal>auto</literal> (the default): this choice delegates to the release "
-"mode returned by the <literal>org.hibernate.transaction.TransactionFactory."
-"getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this "
-"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, "
-"this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this "
-"default behavior as failures due to the value of this setting tend to "
-"indicate bugs and/or invalid assumptions in user code."
-msgstr ""
-"<literal>auto</literal>ï¼é»è®¤ï¼ â è¿ä¸éæ©æéæ¾æ¨¡å¼å§æ´¾ç» <literal>org."
-"hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> æ¹"
-"æ³ã对 JTATransactionFactory æ¥è¯´ï¼å®ä¼è¿å ConnectionReleaseMode."
-"AFTER_STATEMENTï¼å¯¹ãJDBCTransactionFactoryãæ¥è¯´ï¼åæ¯ã"
-"ConnectionReleaseMode.AFTER_TRANSACTIONãå¾å°éè¦ä¿®æ¹è¿ä¸é»è®¤è¡ä¸ºï¼å 为åè¥è®¾"
-"ç½®ä¸å½ï¼å°±ä¼å¸¦æ¥ãbugï¼æè
ç»ç¨æ·ä»£ç 带æ¥è¯¯å¯¼ã"
+#, no-c-format
+msgid "<literal>auto</literal> (the default): this choice delegates to the release mode returned by the <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this default behavior as failures due to the value of this setting tend to indicate bugs and/or invalid assumptions in user code."
+msgstr "<literal>auto</literal>ï¼é»è®¤ï¼ï¼è¿ä¸éæ©æéæ¾æ¨¡å¼å§æ´¾ç» <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> æ¹æ³ã对 JTATransactionFactory æ¥è¯´ï¼å®ä¼è¿å ConnectionReleaseMode.AFTER_STATEMENTï¼å¯¹ãJDBCTransactionFactoryãæ¥è¯´ï¼åæ¯ConnectionReleaseMode.AFTER_TRANSACTIONãå¾å°éè¦ä¿®æ¹è¿ä¸é»è®¤è¡ä¸ºï¼å 为åè¥è®¾ç½®ä¸å½ï¼å°±ä¼å¸¦æ¥ bugï¼æè
ç»ç¨æ·ä»£ç 带æ¥è¯¯å¯¼ã"
#. Tag: para
#: transactions.xml:1016
-#, fuzzy, no-c-format
-msgid ""
-"<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This "
-"setting is left for backwards compatibility, but its use is discouraged."
-msgstr ""
-"<literal>on_close</literal> â ä½¿ç¨ ConnectionReleaseMode.ON_CLOSEãè¿ç§æ¹å¼æ¯"
-"为äºåä¸å
¼å®¹ç,ä½æ¯å·²ç»å®å
¨ä¸è¢«é¼å±ä½¿ç¨äºã"
+#, no-c-format
+msgid "<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This setting is left for backwards compatibility, but its use is discouraged."
+msgstr "<literal>on_close</literal>ï¼ä½¿ç¨ ConnectionReleaseMode.ON_CLOSEãè¿ç§æ¹å¼æ¯ä¸ºäºåä¸å
¼å®¹ç,ä½æ¯å·²ç»å®å
¨ä¸è¢«é¼å±ä½¿ç¨äºã"
#. Tag: para
#: transactions.xml:1022
-#, fuzzy, no-c-format
-msgid ""
-"<literal>after_transaction</literal>: uses ConnectionReleaseMode."
-"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also "
-"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is "
-"considered to be in auto-commit mode, connections will be released as if the "
-"release mode were AFTER_STATEMENT."
-msgstr ""
-"<literal>after_transaction</literal> â ä½¿ç¨ ConnectionReleaseMode."
-"AFTER_TRANSACTIONãè¿ä¸è®¾ç½®ä¸åºè¯¥å¨ JTA ç¯å¢ä¸ä½¿ç¨ãä¹è¦æ³¨æï¼ä½¿ç¨ "
-"ConnectionReleaseMode.AFTER_TRANSACTION çæ¶åï¼åè¥session å¤äº auto-commit "
-"ç¶æï¼è¿æ¥ä¼å AFTER_STATEMENT é£æ ·è¢«éæ¾ã"
+#, no-c-format
+msgid "<literal>after_transaction</literal>: uses ConnectionReleaseMode.AFTER_TRANSACTION. This setting should not be used in JTA environments. Also note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is considered to be in auto-commit mode, connections will be released as if the release mode were AFTER_STATEMENT."
+msgstr "<literal>after_transaction</literal>ï¼ä½¿ç¨ ConnectionReleaseMode.AFTER_TRANSACTIONãè¿ä¸è®¾ç½®ä¸åºè¯¥å¨ JTA ç¯å¢ä¸ä½¿ç¨ãä¹è¦æ³¨æï¼ä½¿ç¨ ConnectionReleaseMode.AFTER_TRANSACTION çæ¶åï¼åè¥session å¤äº auto-commit ç¶æï¼è¿æ¥ä¼å AFTER_STATEMENT é£æ ·è¢«éæ¾ã"
#. Tag: para
#: transactions.xml:1030
-#, fuzzy, no-c-format
-msgid ""
-"<literal>after_statement</literal>: uses ConnectionReleaseMode."
-"AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</"
-"literal> is consulted to see if it supports this setting "
-"(<literal>supportsAggressiveRelease()</literal>). If not, the release mode "
-"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only "
-"safe in environments where we can either re-acquire the same underlying JDBC "
-"connection each time you make a call into <literal>ConnectionProvider."
-"getConnection()</literal> or in auto-commit environments where it does not "
-"matter if we re-establish the same connection."
-msgstr ""
-"<literal>after_statement</literal> â ä½¿ç¨ ConnectionReleaseMode."
-"AFTER_STATEMENTãé¤æ¤ä¹å¤ï¼ä¼æ¥è¯¢é
ç½®ç <literal>ConnectionProvider</"
-"literal>ï¼æ¯å¦å®æ¯æè¿ä¸è®¾ç½®ï¼<literal>supportsAggressiveRelease()</"
-"literal>ï¼ãåè¥ä¸æ¯æï¼éæ¾æ¨¡å¼ä¼è¢«è®¾ç½®ä¸º ConnectionReleaseMode."
-"AFTER_TRANSACTIONãåªæå¨ä½ æ¯æ¬¡è°ç¨ <literal>ConnectionProvider."
-"getConnection()</literal> è·ååºå± JDBC è¿æ¥çæ¶åï¼é½å¯ä»¥ç¡®ä¿¡è·å¾åä¸ä¸ªè¿æ¥"
-"çæ¶åï¼è¿ä¸è®¾ç½®ææ¯å®å
¨çï¼æè
å¨ auto-commit ç¯å¢ä¸ï¼ä½ å¯ä»¥ä¸ç®¡æ¯å¦æ¯æ¬¡é½è·"
-"å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ææ¯å®å
¨çã"
+#, no-c-format
+msgid "<literal>after_statement</literal>: uses ConnectionReleaseMode.AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</literal> is consulted to see if it supports this setting (<literal>supportsAggressiveRelease()</literal>). If not, the release mode is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only safe in environments where we can either re-acquire the same underlying JDBC connection each time you make a call into <literal>ConnectionProvider.getConnection()</literal> or in auto-commit environments where it does not matter if we re-establish the same connection."
+msgstr "<literal>after_statement</literal>ï¼ä½¿ç¨ ConnectionReleaseMode.AFTER_STATEMENTãé¤æ¤ä¹å¤ï¼ä¼æ¥è¯¢é
ç½®ç <literal>ConnectionProvider</literal>ï¼æ¯å¦å®æ¯æè¿ä¸è®¾ç½®ï¼<literal>supportsAggressiveRelease()</literal>ï¼ãåè¥ä¸æ¯æï¼éæ¾æ¨¡å¼ä¼è¢«è®¾ç½®ä¸º ConnectionReleaseMode.AFTER_TRANSACTIONãåªæå¨ä½ æ¯æ¬¡è°ç¨ <literal>ConnectionProvider.getConnection()</literal> è·ååºå± JDBC è¿æ¥çæ¶åï¼é½å¯ä»¥ç¡®ä¿¡è·å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ä¸è®¾ç½®ææ¯å®å
¨çï¼æè
å¨ auto-commit ç¯å¢ä¸ï¼ä½ å¯ä»¥ä¸ç®¡æ¯å¦æ¯æ¬¡é½è·å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ææ¯å®å
¨çã"
+
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/xml.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/xml.po 2009-11-27 03:48:07 UTC (rev 97059)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/xml.po 2009-11-27 04:12:59 UTC (rev 97060)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-09-15 07:03+0000\n"
-"PO-Revision-Date: 2007-02-26 10:59+1000\n"
+"PO-Revision-Date: 2009-11-27 13:57+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -22,11 +22,9 @@
#. Tag: emphasis
#: xml.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"XML Mapping is an experimental feature in Hibernate 3.0 and is currently "
-"under active development."
-msgstr "注æè¿æ¯ Hibernate 3.0 çä¸ä¸ªå®éªæ§çç¹æ§ãè¿ä¸ç¹æ§ä»å¨ç§¯æå¼åä¸ã"
+#, no-c-format
+msgid "XML Mapping is an experimental feature in Hibernate 3.0 and is currently under active development."
+msgstr "注æ XML æ å°åªæ¯ Hibernate 3.0 çä¸ä¸ªå®éªæ§çç¹æ§ãè¿ä¸ç¹æ§ä»å¨ç§¯æå¼åä¸ã"
#. Tag: title
#: xml.xml:37
@@ -36,55 +34,27 @@
#. Tag: para
#: xml.xml:39
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate allows you to work with persistent XML data in much the same way "
-"you work with persistent POJOs. A parsed XML tree can be thought of as "
-"another way of representing the relational data at the object level, instead "
-"of POJOs."
-msgstr ""
-"Hibernate 使å¾ä½ å¯ä»¥ç¨ XML æ°æ®æ¥è¿è¡å·¥ä½ï¼æ°å¦ä½ ç¨æä¹
åç POJO è¿è¡å·¥ä½é£"
-"æ ·ã解æè¿ç XML æ å¯ä»¥è¢«è®¤ä¸ºæ¯ä»£æ¿ POJO çå¦å¤ä¸ç§å¨å¯¹è±¡å±é¢ä¸è¡¨ç¤ºå
³ç³»åæ°"
-"æ®çéå¾."
+#, no-c-format
+msgid "Hibernate allows you to work with persistent XML data in much the same way you work with persistent POJOs. A parsed XML tree can be thought of as another way of representing the relational data at the object level, instead of POJOs."
+msgstr "Hibernate 使å¾ä½ å¯ä»¥ç¨ XML æ°æ®æ¥è¿è¡å·¥ä½ï¼æ°å¦ä½ ç¨æä¹
åç POJO è¿è¡å·¥ä½é£æ ·ã解æè¿ç XML æ å¯ä»¥è¢«è®¤ä¸ºæ¯ä»£æ¿ POJO çå¦å¤ä¸ç§å¨å¯¹è±¡å±é¢ä¸è¡¨ç¤ºå
³ç³»åæ°æ®çéå¾ã"
#. Tag: para
#: xml.xml:46
#, no-c-format
-msgid ""
-"Hibernate supports dom4j as API for manipulating XML trees. You can write "
-"queries that retrieve dom4j trees from the database and have any "
-"modification you make to the tree automatically synchronized to the "
-"database. You can even take an XML document, parse it using dom4j, and write "
-"it to the database with any of Hibernate's basic operations: <literal>persist"
-"(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not "
-"yet supported)."
-msgstr ""
-"Hibernate æ¯æéç¨ dom4j ä½ä¸ºæä½ XML æ ç APIãä½ å¯ä»¥åä¸äºæ¥è¯¢ä»æ°æ®åºä¸æ£"
-"ç´¢åº dom4j æ ï¼éåä½ å¯¹è¿é¢æ åçä»»ä½ä¿®æ¹é½å°èªå¨åæ¥åæ°æ®åºãä½ çè³å¯ä»¥ç¨ "
-"dom4j 解æ ä¸ç¯ XML ææ¡£ï¼ç¶åä½¿ç¨ Hibernate çä»»ä¸åºæ¬æä½å°å®åå
¥æ°æ®åºï¼"
-"<literal>persist()ï¼saveOrUpdate()ï¼merge()ï¼delete()ï¼replicate()</literal> "
-"ï¼å并æä½merge()ç®åè¿ä¸æ¯æï¼ã"
+msgid "Hibernate supports dom4j as API for manipulating XML trees. You can write queries that retrieve dom4j trees from the database and have any modification you make to the tree automatically synchronized to the database. You can even take an XML document, parse it using dom4j, and write it to the database with any of Hibernate's basic operations: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not yet supported)."
+msgstr "Hibernate æ¯æéç¨ dom4j ä½ä¸ºæä½ XML æ ç APIãä½ å¯ä»¥åä¸äºæ¥è¯¢ä»æ°æ®åºä¸æ£ç´¢åº dom4j æ ï¼éåä½ å¯¹è¿é¢æ åçä»»ä½ä¿®æ¹é½å°èªå¨åæ¥åæ°æ®åºãä½ çè³å¯ä»¥ç¨ dom4j 解æ ä¸ç¯ XML ææ¡£ï¼ç¶åä½¿ç¨ Hibernate çä»»ä¸åºæ¬æä½å°å®åå
¥æ°æ®åºï¼<literal>persist()ï¼saveOrUpdate()ï¼merge()ï¼delete()ï¼replicate()</literal> ï¼å并æä½merge()ç®åè¿ä¸æ¯æï¼ã"
#. Tag: para
#: xml.xml:56
#, no-c-format
-msgid ""
-"This feature has many applications including data import/export, "
-"externalization of entity data via JMS or SOAP and XSLT-based reporting."
-msgstr ""
-"è¿ä¸ç¹æ§å¯ä»¥åºç¨å¨å¾å¤åºåï¼å
æ¬æ°æ®å¯¼å
¥å¯¼åºï¼éè¿ JMS æ SOAP å
·ä½åå®ä½æ°æ®"
-"以å åºäº XSLT çæ¥è¡¨ã"
+msgid "This feature has many applications including data import/export, externalization of entity data via JMS or SOAP and XSLT-based reporting."
+msgstr "è¿ä¸ç¹æ§å¯ä»¥åºç¨å¨å¾å¤åºåï¼å
æ¬æ°æ®å¯¼å
¥å¯¼åºï¼éè¿ JMS æ SOAP å
·ä½åå®ä½æ°æ®ä»¥å åºäº XSLT çæ¥è¡¨ã"
#. Tag: para
#: xml.xml:61
-#, fuzzy, no-c-format
-msgid ""
-"A single mapping can be used to simultaneously map properties of a class and "
-"nodes of an XML document to the database, or, if there is no class to map, "
-"it can be used to map just the XML."
-msgstr ""
-"ä¸ä¸ªåä¸çæ å°å°±å¯ä»¥å°ç±»çå±æ§å XML ææ¡£çèç¹åæ¶æ å°å°æ°æ®åºãå¦æä¸éè¦æ "
-"å°ç±»ï¼å®ä¹å¯ä»¥ç¨æ¥åªæ å° XML ææ¡£ã"
+#, no-c-format
+msgid "A single mapping can be used to simultaneously map properties of a class and nodes of an XML document to the database, or, if there is no class to map, it can be used to map just the XML."
+msgstr "ä¸ä¸ªåä¸çæ å°å°±å¯ä»¥å°ç±»çå±æ§å XML ææ¡£çèç¹åæ¶æ å°å°æ°æ®åºãå¦æä¸éè¦æ å°ç±»ï¼å®ä¹å¯ä»¥ç¨æ¥åªæ å° XML ææ¡£ã "
#. Tag: title
#: xml.xml:68
@@ -100,7 +70,7 @@
#. Tag: programlisting
#: xml.xml:74
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<class name=\"Account\" \n"
" table=\"ACCOUNTS\" \n"
@@ -123,26 +93,26 @@
" \n"
"</class>]]>"
msgstr ""
-"<class name=\"Account\" \n"
+"<![CDATA[<class name=\"Account\" \n"
" table=\"ACCOUNTS\" \n"
-" node=\"account\">\n"
+" node=\"account\">\n"
" \n"
-" <id name=\"accountId\" \n"
+" <id name=\"accountId\" \n"
" column=\"ACCOUNT_ID\" \n"
-" node=\"@id\"/>\n"
+" node=\"@id\"/>\n"
" \n"
-" <many-to-one name=\"customer\" \n"
+" <many-to-one name=\"customer\" \n"
" column=\"CUSTOMER_ID\" \n"
" node=\"customer/@id\" \n"
-" embed-xml=\"false\"/>\n"
+" embed-xml=\"false\"/>\n"
" \n"
-" <property name=\"balance\" \n"
+" <property name=\"balance\" \n"
" column=\"BALANCE\" \n"
-" node=\"balance\"/>\n"
+" node=\"balance\"/>\n"
" \n"
" ...\n"
" \n"
-"</class>"
+"</class>]]>"
#. Tag: title
#: xml.xml:78
@@ -158,7 +128,7 @@
#. Tag: programlisting
#: xml.xml:84
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<class entity-name=\"Account\" \n"
" table=\"ACCOUNTS\" \n"
@@ -184,41 +154,35 @@
" \n"
"</class>]]>"
msgstr ""
-"<class entity-name=\"Account\" \n"
+"<![CDATA[<class entity-name=\"Account\" \n"
" table=\"ACCOUNTS\" \n"
-" node=\"account\">\n"
+" node=\"account\">\n"
" \n"
-" <id name=\"id\" \n"
+" <id name=\"id\" \n"
" column=\"ACCOUNT_ID\" \n"
" node=\"@id\" \n"
-" type=\"string\"/>\n"
+" type=\"string\"/>\n"
" \n"
-" <many-to-one name=\"customerId\" \n"
+" <many-to-one name=\"customerId\" \n"
" column=\"CUSTOMER_ID\" \n"
" node=\"customer/@id\" \n"
" embed-xml=\"false\" \n"
-" entity-name=\"Customer\"/>\n"
+" entity-name=\"Customer\"/>\n"
" \n"
-" <property name=\"balance\" \n"
+" <property name=\"balance\" \n"
" column=\"BALANCE\" \n"
" node=\"balance\" \n"
-" type=\"big_decimal\"/>\n"
+" type=\"big_decimal\"/>\n"
" \n"
" ...\n"
" \n"
-"</class>"
+"</class>]]>"
#. Tag: para
#: xml.xml:86
-#, fuzzy, no-c-format
-msgid ""
-"This mapping allows you to access the data as a dom4j tree, or as a graph of "
-"property name/value pairs or java <literal>Map</literal>s. The property "
-"names are purely logical constructs that can be referred to in HQL queries."
-msgstr ""
-"è¿ä¸ªæ å°ä½¿å¾ä½ æ¢å¯ä»¥ææ°æ®ä½ä¸ºä¸æ£µ dom4j æ é£æ ·è®¿é®ï¼åå¯ä»¥ä½ä¸ºç±å±æ§é®å¼å¯¹"
-"ï¼java <literal>Map</literal>sï¼ç»æçå¾é£æ ·è®¿é®ãå±æ§åå纯粹æ¯é»è¾ä¸çç»"
-"æï¼ä½ å¯ä»¥å¨ HQL æ¥è¯¢ä¸å¼ç¨å®ã"
+#, no-c-format
+msgid "This mapping allows you to access the data as a dom4j tree, or as a graph of property name/value pairs or java <literal>Map</literal>s. The property names are purely logical constructs that can be referred to in HQL queries."
+msgstr "è¿ä¸ªæ å°ä½¿å¾ä½ æ¢å¯ä»¥ææ°æ®ä½ä¸ºä¸æ£µ dom4j æ é£æ ·è®¿é®ï¼åå¯ä»¥ä½ä¸ºç±å±æ§é®å¼å¯¹ï¼java <literal>Map</literal>ï¼ç»æçå¾é£æ ·è®¿é®ãå±æ§åå纯粹æ¯é»è¾ä¸çç»æï¼ä½ å¯ä»¥å¨ HQL æ¥è¯¢ä¸å¼ç¨å®ã"
#. Tag: title
#: xml.xml:97
@@ -228,77 +192,49 @@
#. Tag: para
#: xml.xml:99
-#, fuzzy, no-c-format
-msgid ""
-"A range of Hibernate mapping elements accept the <literal>node</literal> "
-"attribute. This lets you specify the name of an XML attribute or element "
-"that holds the property or entity data. The format of the <literal>node</"
-"literal> attribute must be one of the following:"
-msgstr ""
-"è®¸å¤ Hibernate æ å°å
ç´ å
·æ <literal>node</literal> å±æ§ãè¿ä½¿ä½ å¯ä»¥æå®ç¨æ¥"
-"ä¿å å±æ§æå®ä½æ°æ®ç XML å±æ§æå
ç´ ã<literal>node</literal> å±æ§å¿
é¡»æ¯ä¸å"
-"æ ¼å¼ä¹ä¸ï¼"
+#, no-c-format
+msgid "A range of Hibernate mapping elements accept the <literal>node</literal> attribute. This lets you specify the name of an XML attribute or element that holds the property or entity data. The format of the <literal>node</literal> attribute must be one of the following:"
+msgstr "è®¸å¤ Hibernate æ å°å
ç´ å
·æ <literal>node</literal> å±æ§ãè¿ä½¿ä½ å¯ä»¥æå®ç¨æ¥ä¿å å±æ§æå®ä½æ°æ®ç XML å±æ§æå
ç´ ã<literal>node</literal> å±æ§å¿
é¡»æ¯ä¸åæ ¼å¼ä¹ä¸ï¼ "
#. Tag: para
#: xml.xml:108
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>\"element-name\"</literal>: map to the named XML element"
-msgstr "<literal>\"element-name\"</literal> â æ å°ä¸ºæå®ç XML å
ç´ "
+msgstr "<literal>\"element-name\"</literal>ï¼æ å°ä¸ºæå®ç XML å
ç´ "
#. Tag: para
#: xml.xml:111
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
-msgstr "<literal>\"@attribute-name\"</literal> â æ å°ä¸ºæå®ç XML å±æ§"
+msgstr "<literal>\"@attribute-name\"</literal>ï¼æ å°ä¸ºæå®ç XML å±æ§"
#. Tag: para
#: xml.xml:114
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>\".\"</literal>: map to the parent element"
-msgstr "<literal>\".\"</literal> â æ å°ä¸ºç¶å
ç´ "
+msgstr "<literal>\".\"</literal>ï¼æ å°ä¸ºç¶å
ç´ "
#. Tag: para
#: xml.xml:117
-#, fuzzy, no-c-format
-msgid ""
-"<literal>\"element-name/@attribute-name\"</literal>: map to the named "
-"attribute of the named element"
-msgstr ""
-"<literal>\"element-name/@attribute-name\"</literal> â æ å°ä¸ºæå®å
ç´ çæå®å±"
-"æ§"
+#, no-c-format
+msgid "<literal>\"element-name/@attribute-name\"</literal>: map to the named attribute of the named element"
+msgstr "<literal>\"element-name/@attribute-name\"</literal>ï¼æ å°ä¸ºæå®å
ç´ çæå®å±æ§"
#. Tag: para
#: xml.xml:124
-#, fuzzy, no-c-format
-msgid ""
-"For collections and single valued associations, there is an additional "
-"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
-"literal>, the default, the XML tree for the associated entity (or collection "
-"of value type) will be embedded directly in the XML tree for the entity that "
-"owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, "
-"then only the referenced identifier value will appear in the XML for single "
-"point associations and collections will not appear at all."
-msgstr ""
-"对äºéåååå¼çå
³èï¼æä¸ä¸ªé¢å¤ç <literal>embed-xml</literal> å±æ§å¯ç¨ãè¿"
-"个å±æ§ç缺çå¼æ¯çï¼<literal>embed-xml=\"true\"</literal>ï¼ãå¦æ "
-"<literal>embed-xml=\"true\"</literal>ï¼å对åºäºè¢«å
³èå®ä½æå¼ç±»åçéåçXML"
-"æ å°ç´æ¥åµå
¥æ¥æè¿äºå
³èçå®ä½ç XML æ ä¸ã å¦åï¼å¦æ <literal>embed-xml="
-"\"false\"</literal>ï¼é£ä¹å¯¹äºåå¼çå
³èï¼ä»
被å¼ç¨çå®ä½çæ è¯ç¬¦åºç°å¨ XML æ "
-"ä¸ï¼è¢«å¼ç¨å®ä½æ¬èº«ä¸åºç°ï¼ï¼èéååæ ¹æ¬ä¸åºç°ã"
+#, no-c-format
+msgid "For collections and single valued associations, there is an additional <literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</literal>, the default, the XML tree for the associated entity (or collection of value type) will be embedded directly in the XML tree for the entity that owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, then only the referenced identifier value will appear in the XML for single point associations and collections will not appear at all."
+msgstr "对äºéåååå¼çå
³èï¼æä¸ä¸ªé¢å¤ç <literal>embed-xml</literal> å±æ§å¯ç¨ãè¿ä¸ªå±æ§ç缺çå¼æ¯çï¼<literal>embed-xml=\"true\"</literal>ï¼ãå¦æ <literal>embed-xml=\"true\"</literal>ï¼å对åºäºè¢«å
³èå®ä½æå¼ç±»åçéåçXMLæ å°ç´æ¥åµå
¥æ¥æè¿äºå
³èçå®ä½ç XML æ ä¸ãå¦åï¼å¦æ <literal>embed-xml=\"false\"</literal>ï¼é£ä¹å¯¹äºåå¼çå
³èï¼ä»
被å¼ç¨çå®ä½çæ è¯ç¬¦åºç°å¨ XML æ ä¸ï¼è¢«å¼ç¨å®ä½æ¬èº«ä¸åºç°ï¼ï¼èéååæ ¹æ¬ä¸åºç°ã"
#. Tag: para
#: xml.xml:134
-#, fuzzy, no-c-format
-msgid ""
-"Do not leave <literal>embed-xml=\"true\"</literal> for too many "
-"associations, since XML does not deal well with circularity."
-msgstr ""
-"ä½ åºè¯¥å°å¿ï¼ä¸è¦è®©å¤ªå¤å
³èç embed-xml å±æ§ä¸ºçï¼<literal>embed-xml=\"true"
-"\"</literal>ï¼ï¼å 为 XML ä¸è½å¾å¥½å°å¤ç 循ç¯å¼ç¨ï¼"
+#, no-c-format
+msgid "Do not leave <literal>embed-xml=\"true\"</literal> for too many associations, since XML does not deal well with circularity."
+msgstr "ä½ åºè¯¥å°å¿ï¼ä¸è¦è®©å¤ªå¤å
³èç embed-xml å±æ§ä¸ºçï¼<literal>embed-xml=\"true\"</literal>ï¼ï¼å 为 XML ä¸è½å¾å¥½å°å¤ç循ç¯å¼ç¨ã"
#. Tag: programlisting
#: xml.xml:139
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<class name=\"Customer\" \n"
" table=\"CUSTOMER\" \n"
@@ -335,69 +271,62 @@
" \n"
"</class>]]>"
msgstr ""
-"<class name=\"Customer\" \n"
+"<![CDATA[<class name=\"Customer\" \n"
" table=\"CUSTOMER\" \n"
-" node=\"customer\">\n"
+" node=\"customer\">\n"
" \n"
-" <id name=\"id\" \n"
+" <id name=\"id\" \n"
" column=\"CUST_ID\" \n"
-" node=\"@id\"/>\n"
+" node=\"@id\"/>\n"
" \n"
-" <map name=\"accounts\" \n"
+" <map name=\"accounts\" \n"
" node=\".\" \n"
-" embed-xml=\"true\">\n"
-" <key column=\"CUSTOMER_ID\" \n"
-" not-null=\"true\"/>\n"
-" <map-key column=\"SHORT_DESC\" \n"
+" embed-xml=\"true\">\n"
+" <key column=\"CUSTOMER_ID\" \n"
+" not-null=\"true\"/>\n"
+" <map-key column=\"SHORT_DESC\" \n"
" node=\"@short-desc\" \n"
-" type=\"string\"/>\n"
-" <one-to-many entity-name=\"Account\"\n"
+" type=\"string\"/>\n"
+" <one-to-many entity-name=\"Account\"\n"
" embed-xml=\"false\" \n"
-" node=\"account\"/>\n"
-" </map>\n"
+" node=\"account\"/>\n"
+" </map>\n"
" \n"
-" <component name=\"name\" \n"
-" node=\"name\">\n"
-" <property name=\"firstName\" \n"
-" node=\"first-name\"/>\n"
-" <property name=\"initial\" \n"
-" node=\"initial\"/>\n"
-" <property name=\"lastName\" \n"
-" node=\"last-name\"/>\n"
-" </component>\n"
+" <component name=\"name\" \n"
+" node=\"name\">\n"
+" <property name=\"firstName\" \n"
+" node=\"first-name\"/>\n"
+" <property name=\"initial\" \n"
+" node=\"initial\"/>\n"
+" <property name=\"lastName\" \n"
+" node=\"last-name\"/>\n"
+" </component>\n"
" \n"
" ...\n"
" \n"
-"</class>"
+"</class>]]>"
#. Tag: para
#: xml.xml:141
-#, fuzzy, no-c-format
-msgid ""
-"In this case, the collection of account ids is embedded, but not the actual "
-"account data. The following HQL query:"
-msgstr ""
-"å¨è¿ä¸ªä¾åä¸ï¼æ们å³å®åµå
¥å¸ç®å·ç ï¼account idï¼çéåï¼ä½ä¸åµå
¥å®é
çå¸ç®æ°"
-"æ®ãä¸é¢ç HQL æ¥è¯¢ï¼"
+#, no-c-format
+msgid "In this case, the collection of account ids is embedded, but not the actual account data. The following HQL query:"
+msgstr "å¨è¿ä¸ªä¾åä¸ï¼æ们å³å®åµå
¥å¸ç®å·ç ï¼account idï¼çéåï¼ä½ä¸åµå
¥å®é
çå¸ç®æ°æ®ãä¸é¢ç HQL æ¥è¯¢ï¼ "
#. Tag: programlisting
#: xml.xml:146
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
-"lastName]]>"
-msgstr ""
-"from Customer c left join fetch c.accounts where c.lastName like :lastName"
+#, no-c-format
+msgid "<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :lastName]]>"
+msgstr "<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :lastName]]>"
#. Tag: para
#: xml.xml:148
-#, fuzzy, no-c-format
+#, no-c-format
msgid "would return datasets such as this:"
-msgstr "è¿åçæ°æ®éå°æ¯è¿æ ·ï¼"
+msgstr "è¿åçæ°æ®éå°æ¯è¿æ ·ï¼ "
#. Tag: programlisting
#: xml.xml:152
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<customer id=\"123456789\">\n"
" <account short-desc=\"Savings\">987632567</account>\n"
@@ -410,30 +339,26 @@
" ...\n"
"</customer>]]>"
msgstr ""
-"<customer id=\"123456789\">\n"
-" <account short-desc=\"Savings\">987632567</account>\n"
-" <account short-desc=\"Credit Card\">985612323</account>\n"
-" <name>\n"
-" <first-name>Gavin</first-name>\n"
-" <initial>A</initial>\n"
-" <last-name>King</last-name>\n"
-" </name>\n"
+"<![CDATA[<customer id=\"123456789\">\n"
+" <account short-desc=\"Savings\">987632567</account>\n"
+" <account short-desc=\"Credit Card\">985612323</account>\n"
+" <name>\n"
+" <first-name>Gavin</first-name>\n"
+" <initial>A</initial>\n"
+" <last-name>King</last-name>\n"
+" </name>\n"
" ...\n"
-"</customer>"
+"</customer>]]>"
#. Tag: para
#: xml.xml:154
#, no-c-format
-msgid ""
-"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
-"many></literal> mapping, the data might look more like this:"
-msgstr ""
-"å¦æä½ æä¸å¯¹å¤æ å° <literal><one-to-many></literal> ç embed-xml å±æ§ç½®"
-"为çï¼<literal>embed-xml=\"true\"</literal>ï¼ï¼åæ°æ®çä¸å»å°±åè¿æ ·ï¼"
+msgid "If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-many></literal> mapping, the data might look more like this:"
+msgstr "å¦æä½ æä¸å¯¹å¤æ å° <literal><one-to-many></literal> ç embed-xml å±æ§ç½®ä¸ºçï¼<literal>embed-xml=\"true\"</literal>ï¼ï¼åæ°æ®çä¸å»å°±åè¿æ ·ï¼"
#. Tag: programlisting
#: xml.xml:159
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<customer id=\"123456789\">\n"
" <account id=\"987632567\" short-desc=\"Savings\">\n"
@@ -452,22 +377,22 @@
" ...\n"
"</customer>]]>"
msgstr ""
-"<customer id=\"123456789\">\n"
-" <account id=\"987632567\" short-desc=\"Savings\">\n"
-" <customer id=\"123456789\"/>\n"
-" <balance>100.29</balance>\n"
-" </account>\n"
-" <account id=\"985612323\" short-desc=\"Credit Card\">\n"
-" <customer id=\"123456789\"/>\n"
-" <balance>-2370.34</balance>\n"
-" </account>\n"
-" <name>\n"
-" <first-name>Gavin</first-name>\n"
-" <initial>A</initial>\n"
-" <last-name>King</last-name>\n"
-" </name>\n"
+"<![CDATA[<customer id=\"123456789\">\n"
+" <account id=\"987632567\" short-desc=\"Savings\">\n"
+" <customer id=\"123456789\"/>\n"
+" <balance>100.29</balance>\n"
+" </account>\n"
+" <account id=\"985612323\" short-desc=\"Credit Card\">\n"
+" <customer id=\"123456789\"/>\n"
+" <balance>-2370.34</balance>\n"
+" </account>\n"
+" <name>\n"
+" <first-name>Gavin</first-name>\n"
+" <initial>A</initial>\n"
+" <last-name>King</last-name>\n"
+" </name>\n"
" ...\n"
-"</customer>"
+"</customer>]]>"
#. Tag: title
#: xml.xml:165
@@ -477,17 +402,13 @@
#. Tag: para
#: xml.xml:167
-#, fuzzy, no-c-format
-msgid ""
-"You can also re-read and update XML documents in the application. You can do "
-"this by obtaining a dom4j session:"
-msgstr ""
-"让æ们æ¥è¯»å
¥åæ´æ°åºç¨ç¨åºä¸ç XML ææ¡£ãéè¿è·åä¸ä¸ª dom4j ä¼è¯å¯ä»¥åå°è¿ä¸"
-"ç¹ï¼"
+#, no-c-format
+msgid "You can also re-read and update XML documents in the application. You can do this by obtaining a dom4j session:"
+msgstr "ä½ ä¹å¯ä»¥éæ°è¯»å
¥åæ´æ°åºç¨ç¨åºä¸ç XML ææ¡£ãéè¿è·åä¸ä¸ª dom4j ä¼è¯å¯ä»¥åå°è¿ä¸ç¹ï¼"
#. Tag: programlisting
#: xml.xml:172
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[Document doc = ....;\n"
" \n"
@@ -496,8 +417,7 @@
"Transaction tx = session.beginTransaction();\n"
"\n"
"List results = dom4jSession\n"
-" .createQuery(\"from Customer c left join fetch c.accounts where c."
-"lastName like :lastName\")\n"
+" .createQuery(\"from Customer c left join fetch c.accounts where c.lastName like :lastName\")\n"
" .list();\n"
"for ( int i=0; i<results.size(); i++ ) {\n"
" //add the customer data to the XML document\n"
@@ -508,28 +428,27 @@
"tx.commit();\n"
"session.close();]]>"
msgstr ""
-"Document doc = ....;\n"
+"<![CDATA[Document doc = ....;\n"
" \n"
"Session session = factory.openSession();\n"
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
"Transaction tx = session.beginTransaction();\n"
"\n"
"List results = dom4jSession\n"
-" .createQuery(\"from Customer c left join fetch c.accounts where c."
-"lastName like :lastName\")\n"
+" .createQuery(\"from Customer c left join fetch c.accounts where c.lastName like :lastName\")\n"
" .list();\n"
-"for ( int i=0; i<results.size(); i++ ) {\n"
+"for ( int i=0; i<results.size(); i++ ) {\n"
" //add the customer data to the XML document\n"
" Element customer = (Element) results.get(i);\n"
" doc.add(customer);\n"
"}\n"
"\n"
"tx.commit();\n"
-"session.close();"
+"session.close();]]>"
#. Tag: programlisting
#: xml.xml:174
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[Session session = factory.openSession();\n"
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
@@ -548,12 +467,12 @@
"tx.commit();\n"
"session.close();]]>"
msgstr ""
-"Session session = factory.openSession();\n"
+"<![CDATA[Session session = factory.openSession();\n"
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
"Transaction tx = session.beginTransaction();\n"
"\n"
"Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
-"for ( int i=0; i<results.size(); i++ ) {\n"
+"for ( int i=0; i<results.size(); i++ ) {\n"
" Element customer = (Element) results.get(i);\n"
" //change the customer name in the XML and database\n"
" Element name = customer.element(\"name\");\n"
@@ -563,14 +482,11 @@
"}\n"
"\n"
"tx.commit();\n"
-"session.close();"
+"session.close();]]>"
#. Tag: para
#: xml.xml:176
-#, fuzzy, no-c-format
-msgid ""
-"When implementing XML-based data import/export, it is useful to combine this "
-"feature with Hibernate's <literal>replicate()</literal> operation."
-msgstr ""
-"å°è¿ä¸ç¹è²ä¸ Hibernate ç <literal>replicate()</literal> æä½ç»åèµ·æ¥å¯¹äºå®ç°"
-"çåºäº XML çæ°æ®å¯¼å
¥/导åºå°é常æç¨."
+#, no-c-format
+msgid "When implementing XML-based data import/export, it is useful to combine this feature with Hibernate's <literal>replicate()</literal> operation."
+msgstr "å°è¿ä¸ç¹è²ä¸ Hibernate ç <literal>replicate()</literal> æä½ç»åèµ·æ¥å¯¹äºå®ç°çåºäº XML çæ°æ®å¯¼å
¥/导åºå°é常æç¨ã"
+
More information about the jboss-cvs-commits
mailing list