[hibernate-commits] Hibernate SVN: r19003 - in core/trunk/documentation/manual/src/main/docbook/zh-CN: fallback_content and 1 other directory.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Mar 15 21:42:27 EDT 2010
Author: xhuang at jboss.com
Date: 2010-03-15 21:42:26 -0400 (Mon, 15 Mar 2010)
New Revision: 19003
Modified:
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/portability.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/preface.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/session_api.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/transactions.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/content/xml.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po
core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po
Log:
update
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:15\n"
-"PO-Revision-Date: 2009-11-06 10:05+1000\n"
+"PO-Revision-Date: 2010-03-16 10:01+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,24 +21,13 @@
#. Tag: term
#, no-c-format
-msgid ""
-"Write fine-grained classes and map them using <literal><component></"
-"literal>:"
-msgstr ""
-"设计ç»é¢ç²åº¦çæä¹
类并ä¸ä½¿ç¨ <literal><component></literal> æ¥å®ç°æ "
-"å°ï¼"
+msgid "Write fine-grained classes and map them using <literal><component></literal>:"
+msgstr "设计ç»é¢ç²åº¦çæä¹
类并ä¸ä½¿ç¨ <literal><component></literal> æ¥å®ç°æ å°ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Use an <literal>Address</literal> class to encapsulate <literal>street</"
-"literal>, <literal>suburb</literal>, <literal>state</literal>, "
-"<literal>postcode</literal>. This encourages code reuse and simplifies "
-"refactoring."
-msgstr ""
-"使ç¨ä¸ä¸ª <literal>Address</literal> æä¹
ç±»æ¥å°è£
ã<literal>street</literal>ï¼"
-"<literal>suburb</literal>ï¼<literal>state</literal>ï¼<literal>postcode</"
-"literal>ã è¿å°æå©äºä»£ç éç¨åç®å代ç éæï¼refactoringï¼çå·¥ä½ã"
+msgid "Use an <literal>Address</literal> class to encapsulate <literal>street</literal>, <literal>suburb</literal>, <literal>state</literal>, <literal>postcode</literal>. This encourages code reuse and simplifies refactoring."
+msgstr "使ç¨ä¸ä¸ª <literal>Address</literal> æä¹
ç±»æ¥å°è£
ã<literal>street</literal>ï¼<literal>suburb</literal>ï¼<literal>state</literal>ï¼<literal>postcode</literal>ã è¿å°æå©äºä»£ç éç¨åç®å代ç éæï¼refactoringï¼çå·¥ä½ã"
#. Tag: term
#, no-c-format
@@ -47,13 +36,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate makes identifier properties optional. There are a range of reasons "
-"why you should use them. We recommend that identifiers be 'synthetic', that "
-"is, generated with no business meaning."
-msgstr ""
-"Hibernate ä¸æ è¯ç¬¦å±æ§æ¯å¯éçï¼ä¸è¿æå¾å¤åå æ¥è¯´æä½ åºè¯¥ä½¿ç¨æ è¯ç¬¦å±æ§ãæ"
-"们建议æ è¯ç¬¦åºè¯¥æ¯â人é âçï¼èªå¨çæï¼ä¸æ¶åä¸å¡å«ä¹ï¼ã "
+msgid "Hibernate makes identifier properties optional. There are a range of reasons why you should use them. We recommend that identifiers be 'synthetic', that is, generated with no business meaning."
+msgstr "Hibernate ä¸æ è¯ç¬¦å±æ§æ¯å¯éçï¼ä¸è¿æå¾å¤åå æ¥è¯´æä½ åºè¯¥ä½¿ç¨æ è¯ç¬¦å±æ§ãæ们建议æ è¯ç¬¦åºè¯¥æ¯â人é âçï¼èªå¨çæï¼ä¸æ¶åä¸å¡å«ä¹ï¼ã "
#. Tag: term
#, no-c-format
@@ -62,15 +46,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Identify natural keys for all entities, and map them using <literal><"
-"natural-id></literal>. Implement <literal>equals()</literal> and "
-"<literal>hashCode()</literal> to compare the properties that make up the "
-"natural key."
-msgstr ""
-"对ææçå®ä½é½æ è¯åºèªç¶é®ï¼ç¨ <literal><natural-id></literal> è¿è¡æ "
-"å°ãå®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ï¼å¨å
¶ä¸"
-"ç¨ç»æèªç¶é®çå±æ§è¿è¡æ¯è¾ã"
+msgid "Identify natural keys for all entities, and map them using <literal><natural-id></literal>. Implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the properties that make up the natural key."
+msgstr "对ææçå®ä½é½æ è¯åºèªç¶é®ï¼ç¨ <literal><natural-id></literal> è¿è¡æ å°ãå®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ï¼å¨å
¶ä¸ç¨ç»æèªç¶é®çå±æ§è¿è¡æ¯è¾ã"
#. Tag: term
#, no-c-format
@@ -79,14 +56,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
-"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
-"sense, particularly in a team environment."
-msgstr ""
-"ä¸è¦æææçæä¹
ç±»æ å°é½åå°ä¸ä¸ªå¤§æ件ä¸ãæ <literal>com.eg.Foo</literal> æ "
-"å°å° <literal>com/eg/Foo.hbm.xml</literal> ä¸ãå¨å¢éå¼åç¯å¢ä¸ï¼è¿ä¸ç¹å°¤å
¶é"
-"è¦ã"
+msgid "Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes sense, particularly in a team environment."
+msgstr "ä¸è¦æææçæä¹
ç±»æ å°é½åå°ä¸ä¸ªå¤§æ件ä¸ãæ <literal>com.eg.Foo</literal> æ å°å° <literal>com/eg/Foo.hbm.xml</literal> ä¸ãå¨å¢éå¼åç¯å¢ä¸ï¼è¿ä¸ç¹å°¤å
¶éè¦ã"
#. Tag: term
#, no-c-format
@@ -105,13 +76,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"This is recommended if your queries call non-ANSI-standard SQL functions. "
-"Externalizing the query strings to mapping files will make the application "
-"more portable."
-msgstr ""
-"å¦æä½ çæ¥è¯¢ä¸è°ç¨äºé ANSI æ åç SQL å½æ°ï¼é£ä¹è¿æ¡å®è·µç»éªå¯¹ä½ éç¨ãææ¥è¯¢"
-"å符串æ¾å¨æ å°æ件ä¸å¯ä»¥è®©ç¨åºå
·ææ´å¥½çå¯ç§»æ¤æ§ã "
+msgid "This is recommended if your queries call non-ANSI-standard SQL functions. Externalizing the query strings to mapping files will make the application more portable."
+msgstr "å¦æä½ çæ¥è¯¢ä¸è°ç¨äºé ANSI æ åç SQL å½æ°ï¼é£ä¹è¿æ¡å®è·µç»éªå¯¹ä½ éç¨ãææ¥è¯¢å符串æ¾å¨æ å°æ件ä¸å¯ä»¥è®©ç¨åºå
·ææ´å¥½çå¯ç§»æ¤æ§ã "
#. Tag: term
#, no-c-format
@@ -120,13 +86,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"As in JDBC, always replace non-constant values by \"?\". Do not use string "
-"manipulation to bind a non-constant value in a query. You should also "
-"consider using named parameters in queries."
-msgstr ""
-"å°±åå¨ JDBC ç¼ç¨ä¸ä¸æ ·ï¼åºè¯¥æ»æ¯ç¨å ä½ç¬¦ \"?\" æ¥æ¿æ¢é常éå¼ï¼ä¸è¦å¨æ¥è¯¢ä¸ç¨"
-"å符串å¼æ¥æé é常éå¼ãä½ ä¹åºè¯¥èèå¨æ¥è¯¢ä¸ä½¿ç¨å½ååæ°ã"
+msgid "As in JDBC, always replace non-constant values by \"?\". Do not use string manipulation to bind a non-constant value in a query. You should also consider using named parameters in queries."
+msgstr "å°±åå¨ JDBC ç¼ç¨ä¸ä¸æ ·ï¼åºè¯¥æ»æ¯ç¨å ä½ç¬¦ \"?\" æ¥æ¿æ¢é常éå¼ï¼ä¸è¦å¨æ¥è¯¢ä¸ç¨å符串å¼æ¥æé é常éå¼ãä½ ä¹åºè¯¥èèå¨æ¥è¯¢ä¸ä½¿ç¨å½ååæ°ã"
#. Tag: term
#, no-c-format
@@ -135,15 +96,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate allows the application to manage JDBC connections, but his "
-"approach should be considered a last-resort. If you cannot use the built-in "
-"connection providers, consider providing your own implementation of "
-"<literal>org.hibernate.connection.ConnectionProvider</literal>."
-msgstr ""
-"Hibernate å
许åºç¨ç¨åºèªå·±æ¥ç®¡ç JDBC è¿æ¥ï¼ä½æ¯åºè¯¥ä½ä¸ºæå没æåæ³çåæ³ã"
-"å¦æä½ ä¸è½ä½¿ç¨ Hibernate å
建ç connections providersï¼é£ä¹èèå®ç°èªå·±æ¥å®"
-"ç° <literal>org.hibernate.connection.ConnectionProvider</literal>ã"
+msgid "Hibernate allows the application to manage JDBC connections, but his approach should be considered a last-resort. If you cannot use the built-in connection providers, consider providing your own implementation of <literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr "Hibernate å
许åºç¨ç¨åºèªå·±æ¥ç®¡ç JDBC è¿æ¥ï¼ä½æ¯åºè¯¥ä½ä¸ºæå没æåæ³çåæ³ãå¦æä½ ä¸è½ä½¿ç¨ Hibernate å
建ç connections providersï¼é£ä¹èèå®ç°èªå·±æ¥å®ç° <literal>org.hibernate.connection.ConnectionProvider</literal>ã"
#. Tag: term
#, no-c-format
@@ -152,17 +106,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Suppose you have a Java type from a library that needs to be persisted but "
-"does not provide the accessors needed to map it as a component. You should "
-"consider implementing <literal>org.hibernate.UserType</literal>. This "
-"approach frees the application code from implementing transformations to/"
-"from a Hibernate type."
-msgstr ""
-"åè®¾ä½ æä¸ä¸ª Java ç±»åï¼æ¥èªæäºç±»åºï¼éè¦è¢«æä¹
åï¼ä½æ¯è¯¥ç±»æ²¡ææä¾æ å°æä½"
-"éè¦çååæ¹æ³ãé£ä¹ä½ åºè¯¥èèå®ç° <literal>org.hibernate.UserType</literal> "
-"æ¥å£ãè¿ç§åæ³ä½¿ç¨åºä»£ç åèµ·æ¥æ´å èªå¦ï¼ä¸åéè¦èèç±»ä¸ Hibernate type ä¹é´"
-"çç¸äºè½¬æ¢ã "
+msgid "Suppose you have a Java type from a library that needs to be persisted but does not provide the accessors needed to map it as a component. You should consider implementing <literal>org.hibernate.UserType</literal>. This approach frees the application code from implementing transformations to/from a Hibernate type."
+msgstr "åè®¾ä½ æä¸ä¸ª Java ç±»åï¼æ¥èªæäºç±»åºï¼éè¦è¢«æä¹
åï¼ä½æ¯è¯¥ç±»æ²¡ææä¾æ å°æä½éè¦çååæ¹æ³ãé£ä¹ä½ åºè¯¥èèå®ç° <literal>org.hibernate.UserType</literal> æ¥å£ãè¿ç§åæ³ä½¿ç¨åºä»£ç åèµ·æ¥æ´å èªå¦ï¼ä¸åéè¦èèç±»ä¸ Hibernate type ä¹é´çç¸äºè½¬æ¢ã "
#. Tag: term
#, no-c-format
@@ -170,22 +115,9 @@
msgstr "å¨æ§è½ç¶é¢çå°æ¹ä½¿ç¨ç¡¬ç¼ç ç JDBCï¼"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"In performance-critical areas of the system, some kinds of operations might "
-"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
-"faster. Please wait until you <emphasis>know</emphasis> something is a "
-"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
-"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
-"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
-"way you can still use the same transaction strategy and underlying "
-"connection provider."
-msgstr ""
-"å¨ç³»ç»ä¸å¯¹æ§è½è¦æ±å¾ä¸¥æ ¼çä¸äºé¨åï¼æäºæä½ä¹è®¸ç´æ¥ä½¿ç¨ JDBC ä¼æ´å¥½ãä½æ¯è¯·"
-"å
<emphasis>确认</emphasis>è¿çç¡®æ¯ä¸ä¸ªç¶é¢ï¼å¹¶ä¸ä¸è¦æ³å½ç¶è®¤ä¸º JDBC ä¸å®ä¼æ´"
-"å¿«ãå¦æç¡®å®éè¦ç´æ¥ä½¿ç¨ JDBCï¼é£ä¹æ好æå¼ä¸ä¸ª Hibernate <literal>Session</"
-"literal> ç¶åä» <literal>Session</literal> è·å¾ connectionï¼æç
§è¿ç§åæ³ä½ ä»"
-"ç¶å¯ä»¥ä½¿ç¨åæ ·ç transaction çç¥ååºå±ç connection providerã "
+#, no-c-format
+msgid "In performance-critical areas of the system, some kinds of operations might benefit from direct JDBC. Do not assume, however, that JDBC is necessarily faster. Please wait until you <emphasis>know</emphasis> something is a bottleneck. If you need to use direct JDBC, you can open a Hibernate <literal>Session</literal>, wrap your JDBC operation as a <literal>org.hibernate.jdbc.Work</literal> object and using that JDBC connection. This way you can still use the same transaction strategy and underlying connection provider."
+msgstr "å¨ç³»ç»ä¸å¯¹æ§è½è¦æ±å¾ä¸¥æ ¼çä¸äºé¨åï¼æäºæä½ä¹è®¸ç´æ¥ä½¿ç¨ JDBC ä¼æ´å¥½ãä½æ¯è¯·å
<emphasis>确认</emphasis>è¿çç¡®æ¯ä¸ä¸ªç¶é¢ï¼å¹¶ä¸ä¸è¦æ³å½ç¶è®¤ä¸º JDBC ä¸å®ä¼æ´å¿«ãå¦æç¡®å®éè¦ç´æ¥ä½¿ç¨ JDBCï¼é£ä¹æ好æå¼ä¸ä¸ª Hibernate <literal>Session</literal> ç¶åå° JDBC æä½å
裹为 <literal>org.hibernate.jdbc.Work</literal> å¹¶ä½¿ç¨ JDBC è¿æ¥ãæç
§è¿ç§åæ³ä½ ä»ç¶å¯ä»¥ä½¿ç¨åæ ·ç transaction çç¥ååºå±ç connection providerã "
#. Tag: term
#, no-c-format
@@ -194,16 +126,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Sometimes the Session synchronizes its persistent state with the database. "
-"Performance will be affected if this process occurs too often. You can "
-"sometimes minimize unnecessary flushing by disabling automatic flushing, or "
-"even by changing the order of queries and other operations within a "
-"particular transaction."
-msgstr ""
-"Session ä¼ä¸æ¶çåæ°æ®åºåæ¥æä¹
åç¶æï¼å¦æè¿ç§æä½è¿è¡çè¿äºé¢ç¹ï¼æ§è½ä¼å"
-"å°ä¸å®çå½±åãææ¶åä½ å¯ä»¥éè¿ç¦æ¢èªå¨ flushingï¼å°½éæå°åéå¿
è¦ç flushing "
-"æä½ï¼æè
æ´è¿ä¸æ¥ï¼å¨ä¸ä¸ªç¹å®ç transaction ä¸æ¹åæ¥è¯¢åå
¶å®æä½ç顺åºã "
+msgid "Sometimes the Session synchronizes its persistent state with the database. Performance will be affected if this process occurs too often. You can sometimes minimize unnecessary flushing by disabling automatic flushing, or even by changing the order of queries and other operations within a particular transaction."
+msgstr "Session ä¼ä¸æ¶çåæ°æ®åºåæ¥æä¹
åç¶æï¼å¦æè¿ç§æä½è¿è¡çè¿äºé¢ç¹ï¼æ§è½ä¼åå°ä¸å®çå½±åãææ¶åä½ å¯ä»¥éè¿ç¦æ¢èªå¨ flushingï¼å°½éæå°åéå¿
è¦ç flushing æä½ï¼æè
æ´è¿ä¸æ¥ï¼å¨ä¸ä¸ªç¹å®ç transaction ä¸æ¹åæ¥è¯¢åå
¶å®æä½ç顺åºã "
#. Tag: term
#, no-c-format
@@ -212,17 +136,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"When using a servlet/session bean architecture, you can pass persistent "
-"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
-"new session to service each request. Use <literal>Session.merge()</literal> "
-"or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the "
-"database."
-msgstr ""
-"å½ä½¿ç¨ä¸ä¸ª servlet / session bean ç±»åçæ¶æçæ¶å, ä½ å¯ä»¥æå·²å è½½çæä¹
对象"
-"å¨ session bean å±å servlet / JSP å±ä¹é´æ¥åä¼ éã使ç¨æ°ç session æ¥ä¸ºæ¯ä¸ª"
-"请æ±æå¡ï¼ä½¿ç¨ <literal>Session.merge()</literal> æè
<literal>Session."
-"saveOrUpdate()</literal> æ¥ä¸æ°æ®åºåæ¥ã "
+msgid "When using a servlet/session bean architecture, you can pass persistent objects loaded in the session bean to and from the servlet/JSP layer. Use a new session to service each request. Use <literal>Session.merge()</literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the database."
+msgstr "å½ä½¿ç¨ä¸ä¸ª servlet / session bean ç±»åçæ¶æçæ¶å, ä½ å¯ä»¥æå·²å è½½çæä¹
å¯¹è±¡å¨ session bean å±å servlet / JSP å±ä¹é´æ¥åä¼ éã使ç¨æ°ç session æ¥ä¸ºæ¯ä¸ªè¯·æ±æå¡ï¼ä½¿ç¨ <literal>Session.merge()</literal> æè
<literal>Session.saveOrUpdate()</literal> æ¥ä¸æ°æ®åºåæ¥ã "
#. Tag: term
#, no-c-format
@@ -231,27 +146,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Database Transactions have to be as short as possible for best scalability. "
-"However, it is often necessary to implement long running "
-"<emphasis>application transactions</emphasis>, a single unit-of-work from "
-"the point of view of a user. An application transaction might span several "
-"client request/response cycles. It is common to use detached objects to "
-"implement application transactions. An appropriate alternative in a two "
-"tiered architecture, is to maintain a single open persistence contact "
-"session for the whole life cycle of the application transaction. Then simply "
-"disconnect from the JDBC connection at the end of each request and reconnect "
-"at the beginning of the subsequent request. Never share a single session "
-"across more than one application transaction or you will be working with "
-"stale data."
-msgstr ""
-"为äºå¾å°æä½³çå¯ä¼¸ç¼©æ§ï¼æ°æ®åºäºå¡ï¼Database Transactionï¼åºè¯¥å°½å¯è½ççãä½"
-"æ¯ï¼ç¨åºå¸¸å¸¸éè¦å®ç°é¿æ¶é´è¿è¡ç<emphasis>âåºç¨ç¨åºäºå¡ï¼Application "
-"Transactionï¼â</emphasis>ï¼å
å«ä¸ä¸ªä»ç¨æ·çè§ç¹æ¥ççååæä½ãè¿ä¸ªåºç¨ç¨åºäº"
-"å¡å¯è½è·¨è¶å¤æ¬¡ä»ç¨æ·è¯·æ±å°å¾å°åé¦ç循ç¯ãç¨è±ç®¡å¯¹è±¡ï¼ä¸ session è±ç¦»ç对象ï¼"
-"æ¥å®ç°åºç¨ç¨åºäºå¡æ¯å¸¸è§çãæè
ï¼å°¤å
¶å¨ä¸¤å±ç»æä¸ï¼æ Hibernate Session ä» "
-"JDBC è¿æ¥ä¸è±ç¦»å¼ï¼ä¸æ¬¡éè¦ç¨çæ¶ååè¿æ¥ä¸ãç»ä¸è¦æä¸ä¸ª Session ç¨å¨å¤ä¸ªåº"
-"ç¨ç¨åºäºå¡ï¼Application Transactionï¼ä¸ï¼å¦åä½ çæ°æ®å¯è½ä¼è¿æ失æã"
+msgid "Database Transactions have to be as short as possible for best scalability. However, it is often necessary to implement long running <emphasis>application transactions</emphasis>, a single unit-of-work from the point of view of a user. An application transaction might span several client request/response cycles. It is common to use detached objects to implement application transactions. An appropriate alternative in a two tiered architecture, is to maintain a single open persistence contact session for the whole life cycle of the application transaction. Then simply disconnect from the JDBC connection at the end of each request and reconnect at the beginning of the subsequent request. Never share a single session across more than one application transaction or you will be working with stale data."
+msgstr "为äºå¾å°æä½³çå¯ä¼¸ç¼©æ§ï¼æ°æ®åºäºå¡ï¼Database Transactionï¼åºè¯¥å°½å¯è½ççãä½æ¯ï¼ç¨åºå¸¸å¸¸éè¦å®ç°é¿æ¶é´è¿è¡ç<emphasis>âåºç¨ç¨åºäºå¡ï¼Application Transactionï¼â</emphasis>ï¼å
å«ä¸ä¸ªä»ç¨æ·çè§ç¹æ¥ççååæä½ãè¿ä¸ªåºç¨ç¨åºäºå¡å¯è½è·¨è¶å¤æ¬¡ä»ç¨æ·è¯·æ±å°å¾å°åé¦ç循ç¯ãç¨è±ç®¡å¯¹è±¡ï¼ä¸ session è±ç¦»ç对象ï¼æ¥å®ç°åºç¨ç¨åºäºå¡æ¯å¸¸è§çãæè
ï¼å°¤å
¶å¨ä¸¤å±ç»æä¸ï¼æ Hibernate Session ä» JDBC è¿æ¥ä¸è±ç¦»å¼ï¼ä¸æ¬¡éè¦ç¨çæ¶ååè¿æ¥ä¸ãç»ä¸è¦æä¸ä¸ª Session ç¨å¨å¤ä¸ªåºç¨ç¨åºäºå¡ï¼Application Transactionï¼ä¸ï¼å¦åä½ çæ°æ®å¯è½ä¼è¿æ失æã"
#. Tag: term
#, no-c-format
@@ -260,20 +156,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"This is more of a necessary practice than a \"best\" practice. When an "
-"exception occurs, roll back the <literal>Transaction</literal> and close the "
-"<literal>Session</literal>. If you do not do this, Hibernate cannot "
-"guarantee that in-memory state accurately represents the persistent state. "
-"For example, do not use <literal>Session.load()</literal> to determine if an "
-"instance with the given identifier exists on the database; use "
-"<literal>Session.get()</literal> or a query instead."
-msgstr ""
-"è¿ä¸ç¹çè³æ¯âæä½³å®è·µâè¿è¦éè¦ï¼è¿æ¯âå¿
å¤å¸¸è¯âãå½å¼å¸¸åççæ¶åï¼å¿
é¡»è¦åæ» "
-"<literal>Transaction</literal> ï¼å
³é <literal>Session</literal>ãå¦æä½ ä¸è¿"
-"æ ·åçè¯ï¼Hibernate æ æ³ä¿è¯å
åç¶æ精确çååºæä¹
ç¶æãå°¤å
¶ä¸è¦ä½¿ç¨ "
-"<literal>Session.load()</literal> æ¥å¤æä¸ä¸ªç»å®æ è¯ç¬¦ç对象å®ä¾å¨æ°æ®åºä¸æ¯"
-"å¦åå¨ï¼åºè¯¥ä½¿ç¨ <literal>Session.get()</literal> æè
è¿è¡ä¸æ¬¡æ¥è¯¢ã"
+msgid "This is more of a necessary practice than a \"best\" practice. When an exception occurs, roll back the <literal>Transaction</literal> and close the <literal>Session</literal>. If you do not do this, Hibernate cannot guarantee that in-memory state accurately represents the persistent state. For example, do not use <literal>Session.load()</literal> to determine if an instance with the given identifier exists on the database; use <literal>Session.get()</literal> or a query instead."
+msgstr "è¿ä¸ç¹çè³æ¯âæä½³å®è·µâè¿è¦éè¦ï¼è¿æ¯âå¿
å¤å¸¸è¯âãå½å¼å¸¸åççæ¶åï¼å¿
é¡»è¦åæ» <literal>Transaction</literal> ï¼å
³é <literal>Session</literal>ãå¦æä½ ä¸è¿æ ·åçè¯ï¼Hibernate æ æ³ä¿è¯å
åç¶æ精确çååºæä¹
ç¶æãå°¤å
¶ä¸è¦ä½¿ç¨ <literal>Session.load()</literal> æ¥å¤æä¸ä¸ªç»å®æ è¯ç¬¦ç对象å®ä¾å¨æ°æ®åºä¸æ¯å¦åå¨ï¼åºè¯¥ä½¿ç¨ <literal>Session.get()</literal> æè
è¿è¡ä¸æ¬¡æ¥è¯¢ã"
#. Tag: term
#, no-c-format
@@ -282,55 +166,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Use eager fetching sparingly. Use proxies and lazy collections for most "
-"associations to classes that are not likely to be completely held in the "
-"second-level cache. For associations to cached classes, where there is an a "
-"extremely high probability of a cache hit, explicitly disable eager fetching "
-"using <literal>lazy=\"false\"</literal>. When join fetching is appropriate "
-"to a particular use case, use a query with a <literal>left join fetch</"
-"literal>."
-msgstr ""
-"è°¨æ
ç使ç¨ä¸»å¨æåï¼eager fetchingï¼ã对äºå
³èæ¥è¯´ï¼è¥å
¶ç®æ æ¯æ æ³å¨ç¬¬äºçº§ç¼"
-"åä¸å®å
¨ç¼åææå®ä¾çç±»ï¼åºè¯¥ä½¿ç¨ä»£çï¼proxiesï¼ä¸/æå
·æ延è¿å è½½å±æ§çéå"
-"ï¼lazy collectionsï¼ãè¥ç®æ æ¯å¯ä»¥è¢«ç¼åçï¼å°¤å
¶æ¯ç¼åçå½ä¸çé常é«çæ
åµ"
-"ä¸ï¼åºè¯¥ä½¿ç¨ <literal>lazy=\"false\"</literal>ï¼æç¡®çç¦æ¢æ eager fetchingã"
-"å¦æé£äºç¹æ®çç¡®å®éåä½¿ç¨ join fetch çåºåï¼è¯·å¨æ¥è¯¢ä¸ä½¿ç¨ <literal>left "
-"join fetch</literal>ã "
+msgid "Use eager fetching sparingly. Use proxies and lazy collections for most associations to classes that are not likely to be completely held in the second-level cache. For associations to cached classes, where there is an a extremely high probability of a cache hit, explicitly disable eager fetching using <literal>lazy=\"false\"</literal>. When join fetching is appropriate to a particular use case, use a query with a <literal>left join fetch</literal>."
+msgstr "è°¨æ
ç使ç¨ä¸»å¨æåï¼eager fetchingï¼ã对äºå
³èæ¥è¯´ï¼è¥å
¶ç®æ æ¯æ æ³å¨ç¬¬äºçº§ç¼åä¸å®å
¨ç¼åææå®ä¾çç±»ï¼åºè¯¥ä½¿ç¨ä»£çï¼proxiesï¼ä¸/æå
·æ延è¿å è½½å±æ§çéåï¼lazy collectionsï¼ãè¥ç®æ æ¯å¯ä»¥è¢«ç¼åçï¼å°¤å
¶æ¯ç¼åçå½ä¸çé常é«çæ
åµä¸ï¼åºè¯¥ä½¿ç¨ <literal>lazy=\"false\"</literal>ï¼æç¡®çç¦æ¢æ eager fetchingãå¦æé£äºç¹æ®çç¡®å®éåä½¿ç¨ join fetch çåºåï¼è¯·å¨æ¥è¯¢ä¸ä½¿ç¨ <literal>left join fetch</literal>ã "
#. Tag: term
#, no-c-format
-msgid ""
-"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
-"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
-msgstr ""
-"ä½¿ç¨ <emphasis>open session in view</emphasis> 模å¼ï¼æè
æ§è¡ä¸¥æ ¼ç<emphasis>"
-"è£
é
æï¼assembly phaseï¼</emphasis>çç¥æ¥é¿å
å次æåæ°æ®å¸¦æ¥çé®é¢ï¼"
+msgid "Use the <emphasis>open session in view</emphasis> pattern, or a disciplined <emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
+msgstr "ä½¿ç¨ <emphasis>open session in view</emphasis> 模å¼ï¼æè
æ§è¡ä¸¥æ ¼ç<emphasis>è£
é
æï¼assembly phaseï¼</emphasis>çç¥æ¥é¿å
å次æåæ°æ®å¸¦æ¥çé®é¢ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
-"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
-"purposes: first, they work around the problem that entity beans are not "
-"serializable; second, they implicitly define an assembly phase where all "
-"data to be used by the view is fetched and marshalled into the DTOs before "
-"returning control to the presentation tier. Hibernate eliminates the first "
-"purpose. Unless you are prepared to hold the persistence context (the "
-"session) open across the view rendering process, you will still need an "
-"assembly phase. Think of your business methods as having a strict contract "
-"with the presentation tier about what data is available in the detached "
-"objects. This is not a limitation of Hibernate. It is a fundamental "
-"requirement of safe transactional data access."
-msgstr ""
-"Hibernate 让å¼åè
们æè±äºç¹çç <emphasis>Data Transfer Objects</emphasis>"
-"ï¼DTOï¼ãå¨ä¼ ç»ç EJB ç»æä¸ï¼DTO æåéä½ç¨ï¼é¦å
ï¼ä»ä»¬è§£å³äº entity bean æ "
-"æ³åºååçé®é¢ï¼å
¶æ¬¡ï¼ä»ä»¬éå«å°å®ä¹äºä¸ä¸ªè£
é
æï¼å¨æ¤æé´ï¼ææå¨ view å±é"
-"è¦ç¨å°çæ°æ®ï¼é½è¢«æåãéä¸å°äº DTO ä¸ï¼ç¶åæ§å¶æ被è£
å°è¡¨ç¤ºå±ãHibernate ç»"
-"ç»äºç¬¬ä¸ä¸ªä½ç¨ãç¶èï¼é¤éä½ å好äºå¨æ´ä¸ªæ¸²æè¿ç¨ä¸é½ç»´æ¤ä¸ä¸ªæå¼çæä¹
åä¸ä¸"
-"æï¼sessionï¼çåå¤ï¼ä½ ä»ç¶éè¦ä¸ä¸ªè£
é
æï¼æ³è±¡ä¸ä¸ï¼ä½ çä¸å¡æ¹æ³ä¸ä½ ç表示å±"
-"æä¸¥æ ¼çå¥çº¦ï¼æ°æ®æ»æ¯è¢«æ¾ç½®å°è±ç®¡å¯¹è±¡ä¸ï¼ãè¿å¹¶éæ¯ Hibernate çéå¶ï¼è¿æ¯å®"
-"ç°å®å
¨çäºå¡åæ°æ®è®¿é®çåºæ¬éæ±ã"
+msgid "Hibernate frees the developer from writing tedious <emphasis>Data Transfer Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual purposes: first, they work around the problem that entity beans are not serializable; second, they implicitly define an assembly phase where all data to be used by the view is fetched and marshalled into the DTOs before returning control to the presentation tier. Hibernate eliminates the first purpose. Unless you are prepared to hold the persistence context (the session) open across the view rendering process, you will still need an assembly phase. Think of your business methods as having a strict contract with the presentation tier about what data is available in the detached objects. This is not a limitation of Hibernate. It is a fundamental requirement of safe transactional data access."
+msgstr "Hibernate 让å¼åè
们æè±äºç¹çç <emphasis>Data Transfer Objects</emphasis>ï¼DTOï¼ãå¨ä¼ ç»ç EJB ç»æä¸ï¼DTO æåéä½ç¨ï¼é¦å
ï¼ä»ä»¬è§£å³äº entity bean æ æ³åºååçé®é¢ï¼å
¶æ¬¡ï¼ä»ä»¬éå«å°å®ä¹äºä¸ä¸ªè£
é
æï¼å¨æ¤æé´ï¼ææå¨ view å±éè¦ç¨å°çæ°æ®ï¼é½è¢«æåãéä¸å°äº DTO ä¸ï¼ç¶åæ§å¶æ被è£
å°è¡¨ç¤ºå±ãHibernate ç»ç»äºç¬¬ä¸ä¸ªä½ç¨ãç¶èï¼é¤éä½ å好äºå¨æ´ä¸ªæ¸²æè¿ç¨ä¸é½ç»´æ¤ä¸ä¸ªæå¼çæä¹
åä¸ä¸æï¼sessionï¼çåå¤ï¼ä½ ä»ç¶éè¦ä¸ä¸ªè£
é
æï¼æ³è±¡ä¸ä¸ï¼ä½ çä¸å¡æ¹æ³ä¸ä½ ç表示å±æä¸¥æ ¼çå¥çº¦ï¼æ°æ®æ»æ¯è¢«æ¾ç½®å°è±ç®¡å¯¹è±¡ä¸ï¼ãè¿å¹¶éæ¯ Hibernate çéå¶ï¼è¿æ¯å®ç°å®å
¨çäºå¡åæ°æ®è®¿é®çåºæ¬éæ±ã"
#. Tag: term
#, no-c-format
@@ -339,19 +186,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hide Hibernate data-access code behind an interface. Combine the "
-"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
-"patterns. You can even have some classes persisted by handcoded JDBC "
-"associated to Hibernate via a <literal>UserType</literal>. This advice is, "
-"however, intended for \"sufficiently large\" applications. It is not "
-"appropriate for an application with five tables."
-msgstr ""
-"æ Hibernate çæ°æ®åå代ç éèå°æ¥å£ï¼interfaceï¼çåé¢ï¼ç»åä½¿ç¨ "
-"<emphasis>DAO</emphasis> å <emphasis>Thread Local Session</emphasis> 模å¼ã"
-"éè¿ Hibernate ç<literal>UserType</literal>ï¼ä½ çè³å¯ä»¥ç¨ç¡¬ç¼ç ç JDBC æ¥æ"
-"ä¹
åé£äºæ¬è¯¥è¢« Hibernate æä¹
åçç±»ãç¶èï¼è¯¥å»ºè®®æ´éç¨äºè§æ¨¡è¶³å¤å¤§åºç¨è½¯ä»¶"
-"ä¸ï¼å¯¹äºé£äºåªæ 5 å¼ è¡¨çåºç¨ç¨åºå¹¶ä¸éåã"
+msgid "Hide Hibernate data-access code behind an interface. Combine the <emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> patterns. You can even have some classes persisted by handcoded JDBC associated to Hibernate via a <literal>UserType</literal>. This advice is, however, intended for \"sufficiently large\" applications. It is not appropriate for an application with five tables."
+msgstr "æ Hibernate çæ°æ®åå代ç éèå°æ¥å£ï¼interfaceï¼çåé¢ï¼ç»åä½¿ç¨ <emphasis>DAO</emphasis> å <emphasis>Thread Local Session</emphasis> 模å¼ãéè¿ Hibernate ç<literal>UserType</literal>ï¼ä½ çè³å¯ä»¥ç¨ç¡¬ç¼ç ç JDBC æ¥æä¹
åé£äºæ¬è¯¥è¢« Hibernate æä¹
åçç±»ãç¶èï¼è¯¥å»ºè®®æ´éç¨äºè§æ¨¡è¶³å¤å¤§åºç¨è½¯ä»¶ä¸ï¼å¯¹äºé£äºåªæ 5 å¼ è¡¨çåºç¨ç¨åºå¹¶ä¸éåã"
#. Tag: term
#, no-c-format
@@ -360,17 +196,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Practical test cases for real many-to-many associations are rare. Most of "
-"the time you need additional information stored in the \"link table\". In "
-"this case, it is much better to use two one-to-many associations to an "
-"intermediate link class. In fact, most associations are one-to-many and many-"
-"to-one. For this reason, you should proceed cautiously when using any other "
-"association style."
-msgstr ""
-"å¤å¯¹å¤è¿æ¥ç¨å¾å¥½çä¾åå®é
ä¸ç¸å½å°è§ã大å¤æ°æ¶åä½ å¨âè¿æ¥è¡¨âä¸éè¦ä¿åé¢å¤ç"
-"ä¿¡æ¯ãè¿ç§æ
åµä¸ï¼ç¨ä¸¤ä¸ªæåä¸ä»ç±»çä¸å¯¹å¤çè¿æ¥æ¯è¾å¥½ãå®é
ä¸ï¼æ们认为ç»å¤§"
-"å¤æ°çè¿æ¥æ¯ä¸å¯¹å¤åå¤å¯¹ä¸çãiå æ¤ï¼ä½ åºè¯¥è°¨æ
使ç¨å
¶å®è¿æ¥é£æ ¼ã"
+msgid "Practical test cases for real many-to-many associations are rare. Most of the time you need additional information stored in the \"link table\". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, most associations are one-to-many and many-to-one. For this reason, you should proceed cautiously when using any other association style."
+msgstr "å¤å¯¹å¤è¿æ¥ç¨å¾å¥½çä¾åå®é
ä¸ç¸å½å°è§ã大å¤æ°æ¶åä½ å¨âè¿æ¥è¡¨âä¸éè¦ä¿åé¢å¤çä¿¡æ¯ãè¿ç§æ
åµä¸ï¼ç¨ä¸¤ä¸ªæåä¸ä»ç±»çä¸å¯¹å¤çè¿æ¥æ¯è¾å¥½ãå®é
ä¸ï¼æ们认为ç»å¤§å¤æ°çè¿æ¥æ¯ä¸å¯¹å¤åå¤å¯¹ä¸çãiå æ¤ï¼ä½ åºè¯¥è°¨æ
使ç¨å
¶å®è¿æ¥é£æ ¼ã"
#. Tag: term
#, no-c-format
@@ -379,9 +206,6 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Unidirectional associations are more difficult to query. In a large "
-"application, almost all associations must be navigable in both directions in "
-"queries."
-msgstr ""
-"ååå
³èæ´å é¾äºæ¥è¯¢ãå¨å¤§ååºç¨ä¸ï¼å ä¹ææçå
³èå¿
é¡»å¨æ¥è¯¢ä¸å¯ä»¥åå导èªã"
+msgid "Unidirectional associations are more difficult to query. In a large application, almost all associations must be navigable in both directions in queries."
+msgstr "ååå
³èæ´å é¾äºæ¥è¯¢ãå¨å¤§ååºç¨ä¸ï¼å ä¹ææçå
³èå¿
é¡»å¨æ¥è¯¢ä¸å¯ä»¥åå导èªã"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-10T07:25:35\n"
-"PO-Revision-Date: 2009-11-27 13:54+1000\n"
+"PO-Revision-Date: 2010-03-16 10:04+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,31 +21,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"One of the first things that new users want to do with Hibernate is to model "
-"a parent/child type relationship. There are two different approaches to "
-"this. The most convenient approach, especially for new users, is to model "
-"both <literal>Parent</literal> and <literal>Child</literal> as entity "
-"classes with a <literal><one-to-many></literal> association from "
-"<literal>Parent</literal> to <literal>Child</literal>. The alternative "
-"approach is to declare the <literal>Child</literal> as a <literal><"
-"composite-element></literal>. The default semantics of a one-to-many "
-"association in Hibernate are much less close to the usual semantics of a "
-"parent/child relationship than those of a composite element mapping. We will "
-"explain how to use a <emphasis>bidirectional one-to-many association with "
-"cascades</emphasis> to model a parent/child relationship efficiently and "
-"elegantly."
-msgstr ""
-"ååæ¥è§¦ Hibernate ç人大å¤æ¯ä»ç¶åå
³ç³»ï¼parent / child type relationshipï¼ç"
-"建模å
¥æçãç¶åå
³ç³»ç建模æ两ç§æ¹æ³ãç±äºç§ç§åå ï¼ææ¹ä¾¿çæ¹æ³æ¯æ "
-"<literal>Parent</literal> å <literal>Child</literal> é½å»ºæ¨¡æå®ä½ç±»ï¼å¹¶å建"
-"ä¸ä¸ªä» <literal>Parent</literal> æå <literal>Child</literal> ç <one-to-"
-"many> å
³èï¼å¯¹æ°ææ¥è¯´å°¤å
¶å¦æ¤ãè¿æä¸ç§æ¹æ³ï¼å°±æ¯å° <literal>Child</"
-"literal> 声æ为ä¸ä¸ª <literal><composite-element></literal>ï¼ç»åå
"
-"ç´ ï¼ã äºå®ä¸å¨ Hibernate ä¸ one to many å
³èçé»è®¤è¯ä¹è¿æ²¡æ composite "
-"element è´´è¿ parent / child å
³ç³»çé常è¯ä¹ãä¸é¢æ们ä¼éè¿°å¦ä½ä½¿ç¨<emphasis>"
-"带æ级èçååä¸å¯¹å¤å
³èï¼idirectional one to many association with "
-"cascadesï¼</emphasis>å»å»ºç«ææãä¼ç¾ç parent / child å
³ç³»ã"
+msgid "One of the first things that new users want to do with Hibernate is to model a parent/child type relationship. There are two different approaches to this. The most convenient approach, especially for new users, is to model both <literal>Parent</literal> and <literal>Child</literal> as entity classes with a <literal><one-to-many></literal> association from <literal>Parent</literal> to <literal>Child</literal>. The alternative approach is to declare the <literal>Child</literal> as a <literal><composite-element></literal>. The default semantics of a one-to-many association in Hibernate are much less close to the usual semantics of a parent/child relationship than those of a composite element mapping. We will explain how to use a <emphasis>bidirectional one-to-many association with cascades</emphasis> to model a parent/child relationship efficiently and elegantly."
+msgstr "ååæ¥è§¦ Hibernate ç人大å¤æ¯ä»ç¶åå
³ç³»ï¼parent / child type relationshipï¼ç建模å
¥æçãç¶åå
³ç³»ç建模æ两ç§æ¹æ³ãç±äºç§ç§åå ï¼ææ¹ä¾¿çæ¹æ³æ¯æ <literal>Parent</literal> å <literal>Child</literal> é½å»ºæ¨¡æå®ä½ç±»ï¼å¹¶å建ä¸ä¸ªä» <literal>Parent</literal> æå <literal>Child</literal> ç <one-to-many> å
³èï¼å¯¹æ°ææ¥è¯´å°¤å
¶å¦æ¤ãè¿æä¸ç§æ¹æ³ï¼å°±æ¯å° <literal>Child</literal> 声æ为ä¸ä¸ª <literal><composite-element></literal>ï¼ç»åå
ç´ ï¼ã äºå®ä¸å¨ Hibernate ä¸ one to many å
³èçé»è®¤è¯ä¹è¿æ²¡æ composite element è´´è¿ parent / child å
³ç³»çé常è¯ä¹ãä¸é¢æ们ä¼éè¿°å¦ä½ä½¿ç¨<emphasis>带æ级èçååä¸å¯¹å¤å
³èï¼idirectional one to many association with cascadesï¼</emphasis>å»å»ºç«ææãä¼ç¾ç parent / child å
³ç³»ã"
#. Tag: title
#, no-c-format
@@ -54,62 +31,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate collections are considered to be a logical part of their owning "
-"entity and not of the contained entities. Be aware that this is a critical "
-"distinction that has the following consequences:"
-msgstr ""
-"Hibernate collections 被å½ä½å
¶æå±å®ä½èä¸æ¯å
¶å
å«å®ä½çä¸ä¸ªé»è¾é¨åãè¿é常"
-"éè¦ï¼å®ä¸»è¦ä½ç°ä¸ºä»¥ä¸å ç¹ï¼"
+msgid "Hibernate collections are considered to be a logical part of their owning entity and not of the contained entities. Be aware that this is a critical distinction that has the following consequences:"
+msgstr "Hibernate collections 被å½ä½å
¶æå±å®ä½èä¸æ¯å
¶å
å«å®ä½çä¸ä¸ªé»è¾é¨åãè¿é常éè¦ï¼å®ä¸»è¦ä½ç°ä¸ºä»¥ä¸å ç¹ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"When you remove/add an object from/to a collection, the version number of "
-"the collection owner is incremented."
-msgstr ""
-"å½å é¤æå¢å collection ä¸å¯¹è±¡çæ¶åï¼collection æå±è
ççæ¬å¼ä¼éå¢ã "
+msgid "When you remove/add an object from/to a collection, the version number of the collection owner is incremented."
+msgstr "å½å é¤æå¢å collection ä¸å¯¹è±¡çæ¶åï¼collection æå±è
ççæ¬å¼ä¼éå¢ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If an object that was removed from a collection is an instance of a value "
-"type (e.g. a composite element), that object will cease to be persistent and "
-"its state will be completely removed from the database. Likewise, adding a "
-"value type instance to the collection will cause its state to be immediately "
-"persistent."
-msgstr ""
-"å¦æä¸ä¸ªä» collection ä¸ç§»é¤ç对象æ¯ä¸ä¸ªå¼ç±»åï¼value typeï¼çå®ä¾ï¼æ¯å¦ "
-"composite elementï¼é£ä¹è¿ä¸ªå¯¹è±¡çæä¹
åç¶æå°ä¼ç»æ¢ï¼å
¶å¨æ°æ®åºä¸å¯¹åºçè®°å½ä¼"
-"被å é¤ãåæ ·çï¼å collection å¢å ä¸ä¸ª value type çå®ä¾å°ä¼ä½¿ä¹ç«å³è¢«æä¹
"
-"åã "
+msgid "If an object that was removed from a collection is an instance of a value type (e.g. a composite element), that object will cease to be persistent and its state will be completely removed from the database. Likewise, adding a value type instance to the collection will cause its state to be immediately persistent."
+msgstr "å¦æä¸ä¸ªä» collection ä¸ç§»é¤ç对象æ¯ä¸ä¸ªå¼ç±»åï¼value typeï¼çå®ä¾ï¼æ¯å¦ composite elementï¼é£ä¹è¿ä¸ªå¯¹è±¡çæä¹
åç¶æå°ä¼ç»æ¢ï¼å
¶å¨æ°æ®åºä¸å¯¹åºçè®°å½ä¼è¢«å é¤ãåæ ·çï¼å collection å¢å ä¸ä¸ª value type çå®ä¾å°ä¼ä½¿ä¹ç«å³è¢«æä¹
åã "
#. Tag: para
#, no-c-format
-msgid ""
-"Conversely, if an entity is removed from a collection (a one-to-many or many-"
-"to-many association), it will not be deleted by default. This behavior is "
-"completely consistent; a change to the internal state of another entity "
-"should not cause the associated entity to vanish. Likewise, adding an entity "
-"to a collection does not cause that entity to become persistent, by default."
-msgstr ""
-"å¦ä¸æ¹é¢ï¼å¦æä»ä¸å¯¹å¤æå¤å¯¹å¤å
³èç collection ä¸ç§»é¤ä¸ä¸ªå®ä½ï¼å¨ç¼ºçæ
åµä¸"
-"è¿ä¸ªå¯¹è±¡å¹¶ä¸ä¼è¢«å é¤ãè¿ä¸ªè¡ä¸ºæ¯å®å
¨åä¹é»è¾çï¼ï¼æ¹åä¸ä¸ªå®ä½çå
é¨ç¶æä¸åº"
-"该使ä¸å®å
³èçå®ä½æ¶å¤±æãåæ ·çï¼å collection å¢å ä¸ä¸ªå®ä½ä¸ä¼ä½¿ä¹è¢«æä¹
"
-"åã "
+msgid "Conversely, if an entity is removed from a collection (a one-to-many or many-to-many association), it will not be deleted by default. This behavior is completely consistent; a change to the internal state of another entity should not cause the associated entity to vanish. Likewise, adding an entity to a collection does not cause that entity to become persistent, by default."
+msgstr "å¦ä¸æ¹é¢ï¼å¦æä»ä¸å¯¹å¤æå¤å¯¹å¤å
³èç collection ä¸ç§»é¤ä¸ä¸ªå®ä½ï¼å¨ç¼ºçæ
åµä¸è¿ä¸ªå¯¹è±¡å¹¶ä¸ä¼è¢«å é¤ãè¿ä¸ªè¡ä¸ºæ¯å®å
¨åä¹é»è¾çï¼ï¼æ¹åä¸ä¸ªå®ä½çå
é¨ç¶æä¸åºè¯¥ä½¿ä¸å®å
³èçå®ä½æ¶å¤±æãåæ ·çï¼å collection å¢å ä¸ä¸ªå®ä½ä¸ä¼ä½¿ä¹è¢«æä¹
åã "
#. Tag: para
#, no-c-format
-msgid ""
-"Adding an entity to a collection, by default, merely creates a link between "
-"the two entities. Removing the entity will remove the link. This is "
-"appropriate for all sorts of cases. However, it is not appropriate in the "
-"case of a parent/child relationship. In this case, the life of the child is "
-"bound to the life cycle of the parent."
-msgstr ""
-"å®é
ä¸ï¼å Collection å¢å ä¸ä¸ªå®ä½ç缺çå¨ä½åªæ¯å¨ä¸¤ä¸ªå®ä½ä¹é´å建ä¸ä¸ªè¿æ¥è"
-"å·²ï¼åæ ·ç§»é¤çæ¶åä¹åªæ¯å é¤è¿æ¥ãè¿ç§å¤ç对äºææçæ
åµé½æ¯åéçã对äºç¶å"
-"å
³ç³»åæ¯å®å
¨ä¸éåçï¼å¨è¿ç§å
³ç³»ä¸ï¼å对象ççåç»å®äºç¶å¯¹è±¡ççåå¨æã "
+msgid "Adding an entity to a collection, by default, merely creates a link between the two entities. Removing the entity will remove the link. This is appropriate for all sorts of cases. However, it is not appropriate in the case of a parent/child relationship. In this case, the life of the child is bound to the life cycle of the parent."
+msgstr "å®é
ä¸ï¼å Collection å¢å ä¸ä¸ªå®ä½ç缺çå¨ä½åªæ¯å¨ä¸¤ä¸ªå®ä½ä¹é´å建ä¸ä¸ªè¿æ¥èå·²ï¼åæ ·ç§»é¤çæ¶åä¹åªæ¯å é¤è¿æ¥ãè¿ç§å¤ç对äºææçæ
åµé½æ¯åéçã对äºç¶åå
³ç³»åæ¯å®å
¨ä¸éåçï¼å¨è¿ç§å
³ç³»ä¸ï¼å对象ççåç»å®äºç¶å¯¹è±¡ççåå¨æã "
#. Tag: title
#, no-c-format
@@ -118,11 +61,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Suppose we start with a simple <literal><one-to-many></literal> "
-"association from <literal>Parent</literal> to <literal>Child</literal>."
-msgstr ""
-"å设æ们è¦å®ç°ä¸ä¸ªç®åçä» Parent å° Child ç <one-to-many> å
³èã"
+msgid "Suppose we start with a simple <literal><one-to-many></literal> association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr "å设æ们è¦å®ç°ä¸ä¸ªç®åçä» Parent å° Child ç <one-to-many> å
³èã"
#. Tag: para
#, no-c-format
@@ -136,31 +76,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
-msgstr ""
-"ä¸æ¡ <literal>INSERT</literal> è¯å¥ï¼ä¸º <literal>c</literal> å建ä¸æ¡è®°å½"
+msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr "ä¸æ¡ <literal>INSERT</literal> è¯å¥ï¼ä¸º <literal>c</literal> å建ä¸æ¡è®°å½"
#. Tag: para
#, no-c-format
-msgid ""
-"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
-"<literal>c</literal>"
-msgstr ""
-"ä¸æ¡ <literal>UPDATE</literal> è¯å¥ï¼åå»ºä» <literal>p</literal> å° "
-"<literal>c</literal> çè¿æ¥"
+msgid "an <literal>UPDATE</literal> to create the link from <literal>p</literal> to <literal>c</literal>"
+msgstr "ä¸æ¡ <literal>UPDATE</literal> è¯å¥ï¼åå»ºä» <literal>p</literal> å° <literal>c</literal> çè¿æ¥"
#. Tag: para
#, no-c-format
-msgid ""
-"This is not only inefficient, but also violates any <literal>NOT NULL</"
-"literal> constraint on the <literal>parent_id</literal> column. You can fix "
-"the nullability constraint violation by specifying <literal>not-null=\"true"
-"\"</literal> in the collection mapping:"
-msgstr ""
-"è¿æ ·åä¸ä»
æçä½ï¼èä¸è¿åäº <literal>parent_id</literal> å "
-"<literal>parent_id</literal> é空çéå¶ãæ们å¯ä»¥éè¿å¨éåç±»æ å°ä¸æå® "
-"<literal>not-null=\"true\"</literal> æ¥è§£å³è¿åé空约æçé®é¢ï¼"
+msgid "This is not only inefficient, but also violates any <literal>NOT NULL</literal> constraint on the <literal>parent_id</literal> column. You can fix the nullability constraint violation by specifying <literal>not-null=\"true\"</literal> in the collection mapping:"
+msgstr "è¿æ ·åä¸ä»
æçä½ï¼èä¸è¿åäº <literal>parent_id</literal> å <literal>parent_id</literal> é空çéå¶ãæ们å¯ä»¥éè¿å¨éåç±»æ å°ä¸æå® <literal>not-null=\"true\"</literal> æ¥è§£å³è¿åé空约æçé®é¢ï¼"
#. Tag: para
#, no-c-format
@@ -169,35 +96,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The underlying cause of this behavior is that the link (the foreign key "
-"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
-"literal> is not considered part of the state of the <literal>Child</literal> "
-"object and is therefore not created in the <literal>INSERT</literal>. The "
-"solution is to make the link part of the <literal>Child</literal> mapping."
-msgstr ""
-"è¿ç§ç°è±¡çæ ¹æ¬åå æ¯ä» <literal>p</literal> å° <literal>c</literal> çè¿æ¥"
-"ï¼å¤é® parent_idï¼æ²¡æ被å½ä½ <literal>Child</literal> 对象ç¶æçä¸é¨åï¼å è"
-"没æå¨ <literal>INSERT</literal> è¯å¥ä¸è¢«å建ãå æ¤è§£å³çåæ³å°±æ¯æè¿ä¸ªè¿æ¥æ·»"
-"å å° <literal>Child</literal> çæ å°ä¸ã"
+msgid "The underlying cause of this behavior is that the link (the foreign key <literal>parent_id</literal>) from <literal>p</literal> to <literal>c</literal> is not considered part of the state of the <literal>Child</literal> object and is therefore not created in the <literal>INSERT</literal>. The solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr "è¿ç§ç°è±¡çæ ¹æ¬åå æ¯ä» <literal>p</literal> å° <literal>c</literal> çè¿æ¥ï¼å¤é® parent_idï¼æ²¡æ被å½ä½ <literal>Child</literal> 对象ç¶æçä¸é¨åï¼å è没æå¨ <literal>INSERT</literal> è¯å¥ä¸è¢«å建ãå æ¤è§£å³çåæ³å°±æ¯æè¿ä¸ªè¿æ¥æ·»å å° <literal>Child</literal> çæ å°ä¸ã"
#. Tag: para
#, 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> å±æ§ã"
+msgid "You also need to add the <literal>parent</literal> property to the <literal>Child</literal> class."
+msgstr "ä½ è¿éè¦ä¸ºç±» <literal>Child</literal> æ·»å <literal>parent</literal> å±æ§ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Now that the <literal>Child</literal> entity is managing the state of the "
-"link, we tell the collection not to update the link. We use the "
-"<literal>inverse</literal> attribute to do this:"
-msgstr ""
-"ç°å¨å®ä½ <literal>Child</literal> å¨ç®¡çè¿æ¥çç¶æï¼ä¸ºäºä½¿ collection ä¸æ´æ°"
-"è¿æ¥ï¼æä»¬ä½¿ç¨ <literal>inverse</literal> å±æ§ï¼"
+msgid "Now that the <literal>Child</literal> entity is managing the state of the link, we tell the collection not to update the link. We use the <literal>inverse</literal> attribute to do this:"
+msgstr "ç°å¨å®ä½ <literal>Child</literal> å¨ç®¡çè¿æ¥çç¶æï¼ä¸ºäºä½¿ collection ä¸æ´æ°è¿æ¥ï¼æä»¬ä½¿ç¨ <literal>inverse</literal> å±æ§ï¼"
#. Tag: para
#, no-c-format
@@ -211,12 +121,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You could also create an <literal>addChild()</literal> method of "
-"<literal>Parent</literal>."
-msgstr ""
-"为äºè®©äºæ
åå¾äºäºææ¡ï¼å¯ä»¥ä¸º <literal>Parent</literal> å ä¸ä¸ª "
-"<literal>addChild()</literal> æ¹æ³ã"
+msgid "You could also create an <literal>addChild()</literal> method of <literal>Parent</literal>."
+msgstr "为äºè®©äºæ
åå¾äºäºææ¡ï¼å¯ä»¥ä¸º <literal>Parent</literal> å ä¸ä¸ª <literal>addChild()</literal> æ¹æ³ã"
#. Tag: para
#, no-c-format
@@ -230,12 +136,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can address the frustrations of the explicit call to <literal>save()</"
-"literal> by using cascades."
-msgstr ""
-"éè¦æ¾å¼è°ç¨ <literal>save()</literal> ä»ç¶å¾éº»ç¦ï¼æ们å¯ä»¥ç¨çº§èæ¥è§£å³è¿ä¸ªé®"
-"é¢ã "
+msgid "You can address the frustrations of the explicit call to <literal>save()</literal> by using cascades."
+msgstr "éè¦æ¾å¼è°ç¨ <literal>save()</literal> ä»ç¶å¾éº»ç¦ï¼æ们å¯ä»¥ç¨çº§èæ¥è§£å³è¿ä¸ªé®é¢ã "
#. Tag: para
#, no-c-format
@@ -244,13 +146,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Similarly, we do not need to iterate over the children when saving or "
-"deleting a <literal>Parent</literal>. The following removes <literal>p</"
-"literal> and all its children from the database."
-msgstr ""
-"åæ ·çï¼ä¿åæå é¤ <literal>Parent</literal> 对象çæ¶å并ä¸éè¦éåå
¶å对象ã"
-"ä¸é¢ç代ç ä¼å é¤å¯¹è±¡ <literal>p</literal> åå
¶ææå对象对åºçæ°æ®åºè®°å½ã "
+msgid "Similarly, we do not need to iterate over the children when saving or deleting a <literal>Parent</literal>. The following removes <literal>p</literal> and all its children from the database."
+msgstr "åæ ·çï¼ä¿åæå é¤ <literal>Parent</literal> 对象çæ¶å并ä¸éè¦éåå
¶å对象ãä¸é¢ç代ç ä¼å é¤å¯¹è±¡ <literal>p</literal> åå
¶ææå对象对åºçæ°æ®åºè®°å½ã "
#. Tag: para
#, no-c-format
@@ -259,41 +156,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"will not remove <literal>c</literal> from the database. In this case, it "
-"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
-"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
-"</literal> the <literal>Child</literal>."
-msgstr ""
-"ä¸ä¼ä»æ°æ®åºå é¤<literal>c</literal>ï¼å®åªä¼å é¤ä¸ <literal>p</literal> ä¹é´"
-"çè¿æ¥ï¼å¹¶ä¸ä¼å¯¼è´è¿å <literal>NOT NULL</literal> 约æï¼å¨è¿ä¸ªä¾åä¸ï¼ãä½ é"
-"è¦æ¾å¼è°ç¨ <literal>delete()</literal> æ¥å é¤ <literal>Child</literal>ã "
+msgid "will not remove <literal>c</literal> from the database. In this case, it will only remove the link to <literal>p</literal> and cause a <literal>NOT NULL</literal> constraint violation. You need to explicitly <literal>delete()</literal> the <literal>Child</literal>."
+msgstr "ä¸ä¼ä»æ°æ®åºå é¤<literal>c</literal>ï¼å®åªä¼å é¤ä¸ <literal>p</literal> ä¹é´çè¿æ¥ï¼å¹¶ä¸ä¼å¯¼è´è¿å <literal>NOT NULL</literal> 约æï¼å¨è¿ä¸ªä¾åä¸ï¼ãä½ éè¦æ¾å¼è°ç¨ <literal>delete()</literal> æ¥å é¤ <literal>Child</literal>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"In our case, a <literal>Child</literal> cannot exist without its parent. So "
-"if we remove a <literal>Child</literal> from the collection, we do want it "
-"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
-"\"</literal>."
-msgstr ""
-"å¨æ们çä¾åä¸ï¼å¦æ没æç¶å¯¹è±¡ï¼å对象就ä¸åºè¯¥åå¨ï¼å¦æå°åå¯¹è±¡ä» "
-"collection ä¸ç§»é¤ï¼å®é
ä¸æ们æ¯æ³å é¤å®ãè¦å®ç°è¿ç§è¦æ±ï¼å°±å¿
é¡»ä½¿ç¨ "
-"<literal>cascade=\"all-delete-orphan\"</literal>ã "
+msgid "In our case, a <literal>Child</literal> cannot exist without its parent. So if we remove a <literal>Child</literal> from the collection, we do want it to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan\"</literal>."
+msgstr "å¨æ们çä¾åä¸ï¼å¦æ没æç¶å¯¹è±¡ï¼å对象就ä¸åºè¯¥åå¨ï¼å¦æå°åå¯¹è±¡ä» collection ä¸ç§»é¤ï¼å®é
ä¸æ们æ¯æ³å é¤å®ãè¦å®ç°è¿ç§è¦æ±ï¼å°±å¿
é¡»ä½¿ç¨ <literal>cascade=\"all-delete-orphan\"</literal>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Even though the collection mapping specifies <literal>inverse=\"true\"</"
-"literal>, cascades are still processed by iterating the collection elements. "
-"If you need an object be saved, deleted or updated by cascade, you must add "
-"it to the collection. It is not enough to simply call <literal>setParent()</"
-"literal>."
-msgstr ""
-"注æï¼å³ä½¿å¨ collection ä¸æ¹çæ å°ä¸æå® <literal>inverse=\"true\"</"
-"literal>ï¼çº§èä»ç¶æ¯éè¿éå collection ä¸çå
ç´ æ¥å¤ççãå¦æä½ æ³è¦éè¿çº§è"
-"è¿è¡å对象çæå
¥ãå é¤ãæ´æ°æä½ï¼å°±å¿
é¡»æå®å å° collection ä¸ï¼åªè°ç¨ "
-"<literal>setParent()</literal> æ¯ä¸å¤çã "
+msgid "Even though the collection mapping specifies <literal>inverse=\"true\"</literal>, cascades are still processed by iterating the collection elements. If you need an object be saved, deleted or updated by cascade, you must add it to the collection. It is not enough to simply call <literal>setParent()</literal>."
+msgstr "注æï¼å³ä½¿å¨ collection ä¸æ¹çæ å°ä¸æå® <literal>inverse=\"true\"</literal>ï¼çº§èä»ç¶æ¯éè¿éå collection ä¸çå
ç´ æ¥å¤ççãå¦æä½ æ³è¦éè¿çº§èè¿è¡å对象çæå
¥ãå é¤ãæ´æ°æä½ï¼å°±å¿
é¡»æå®å å° collection ä¸ï¼åªè°ç¨ <literal>setParent()</literal> æ¯ä¸å¤çã "
#. Tag: title
#, no-c-format
@@ -301,57 +175,19 @@
msgstr "级èä¸æªä¿åå¼ï¼<literal>unsaved-value</literal>ï¼"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
-"literal>, made some changes in a UI action and wanted to persist these "
-"changes in a new session by calling <literal>update()</literal>. The "
-"<literal>Parent</literal> will contain a collection of children and, since "
-"the cascading update is enabled, Hibernate needs to know which children are "
-"newly instantiated and which represent existing rows in the database. We "
-"will also assume that both <literal>Parent</literal> and <literal>Child</"
-"literal> have generated identifier properties of type <literal>Long</"
-"literal>. Hibernate will use the identifier and version/timestamp property "
-"value to determine which of the children are new. (See <xref linkend="
-"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
-"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
-"emphasis>"
-msgstr ""
-"å设æä»¬ä» <literal>Session</literal> ä¸è£
å
¥äºä¸ä¸ª <literal>Parent</literal> "
-"对象ï¼ç¨æ·çé¢å¯¹å
¶è¿è¡äºä¿®æ¹ï¼ç¶åå¸æå¨ä¸ä¸ªæ°ç Session éé¢è°ç¨ "
-"<literal>update()</literal> æ¥ä¿åè¿äºä¿®æ¹ã对象 <literal>Parent</literal> å
"
-"å«äºå对象çéåï¼ç±äºæå¼äºçº§èæ´æ°ï¼Hibernate éè¦ç¥éåªäº Child 对象æ¯æ°å®"
-"ä¾åçï¼åªäºä»£è¡¨æ°æ®åºä¸å·²ç»åå¨çè®°å½ãæ们å设 <literal>Parent</literal> "
-"å <literal>Child</literal> 对象çæ è¯å±æ§é½æ¯èªå¨çæçï¼ç±»å为 "
-"<literal>java.lang.Long</literal>ãHibernate ä¼ä½¿ç¨æ è¯å±æ§çå¼ï¼å version "
-"æ timestamp å±æ§ï¼æ¥å¤æåªäºå对象æ¯æ°çãï¼åè§ <xref linkend="
-"\"objectstate-saveorupdate\"/>ï¼<emphasis>å¨ Hibernate3 ä¸,æ¾å¼æå® "
-"<literal>unsaved-value</literal> ä¸åæ¯å¿
é¡»çäºã</emphasis>"
+#, no-c-format
+msgid "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</literal>, made some changes in a UI action and wanted to persist these changes in a new session by calling <literal>update()</literal>. The <literal>Parent</literal> will contain a collection of children and, since the cascading update is enabled, Hibernate needs to know which children are newly instantiated and which represent existing rows in the database. We will also assume that both <literal>Parent</literal> and <literal>Child</literal> have generated identifier properties of type <literal>Long</literal>. Hibernate will use the identifier and version/timestamp property value to determine which of the children are new. (See <xref linkend=\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer necessary to specify an <literal>unsaved-value</literal> explicitly.</emphasis>"
+msgstr "å设æä»¬ä» <literal>Session</literal> ä¸è£
å
¥äºä¸ä¸ª <literal>Parent</literal> 对象ï¼ç¨æ·çé¢å¯¹å
¶è¿è¡äºä¿®æ¹ï¼ç¶åå¸æå¨ä¸ä¸ªæ°ç Session éé¢è°ç¨ <literal>update()</literal> æ¥ä¿åè¿äºä¿®æ¹ã对象 <literal>Parent</literal> å
å«äºå对象çéåï¼ç±äºæå¼äºçº§èæ´æ°ï¼Hibernate éè¦ç¥éåªäº Child 对象æ¯æ°å®ä¾åçï¼åªäºä»£è¡¨æ°æ®åºä¸å·²ç»åå¨çè®°å½ãæ们å设 <literal>Parent</literal> å <literal>Child</literal> 对象çæ è¯å±æ§é½æ¯èªå¨çæçï¼ç±»å为 <literal>Long</literal>ãHibernate ä¼ä½¿ç¨æ è¯å±æ§çå¼ï¼å version æ timestamp å±æ§ï¼æ¥å¤æåªäºå对象æ¯æ°çãï¼åè§ <xref linkend=\"objectstate-saveorupdate\"/>ï¼<emphasis>å¨ Hibernate3 ä¸,æ¾å¼æå® <literal>unsaved-value</literal> ä¸åæ¯å¿
é¡»çäºã</emphasis> "
#. Tag: para
#, no-c-format
-msgid ""
-"The following code will update <literal>parent</literal> and <literal>child</"
-"literal> and insert <literal>newChild</literal>:"
-msgstr ""
-"ä¸é¢ç代ç ä¼æ´æ° <literal>parent</literal> å <literal>child</literal> 对象ï¼"
-"并ä¸æå
¥ <literal>newChild</literal> 对象ã "
+msgid "The following code will update <literal>parent</literal> and <literal>child</literal> and insert <literal>newChild</literal>:"
+msgstr "ä¸é¢ç代ç ä¼æ´æ° <literal>parent</literal> å <literal>child</literal> 对象ï¼å¹¶ä¸æå
¥ <literal>newChild</literal> 对象ã "
#. Tag: para
#, no-c-format
-msgid ""
-"This may be suitable for the case of a generated identifier, but what about "
-"assigned identifiers and composite identifiers? This is more difficult, "
-"since Hibernate cannot use the identifier property to distinguish between a "
-"newly instantiated object, with an identifier assigned by the user, and an "
-"object loaded in a previous session. In this case, Hibernate will either use "
-"the timestamp or version property, or will actually query the second-level "
-"cache or, worst case, the database, to see if the row exists."
-msgstr ""
-"è¿å¯¹äºèªå¨çææ è¯çæ
åµæ¯é常好çï¼ä½æ¯èªåé
çæ è¯åå¤åæ è¯æä¹åå¢ï¼è¿æ¯"
-"æç¹éº»ç¦ï¼å 为 Hibernate 没æåæ³åºåæ°å®ä¾åç对象ï¼æ è¯è¢«ç¨æ·æå®äºï¼ååä¸"
-"个 Session è£
å
¥ç对象ãå¨è¿ç§æ
åµä¸ï¼Hibernate ä¼ä½¿ç¨ timestamp æ version å±"
-"æ§ï¼æè
æ¥è¯¢ç¬¬äºçº§ç¼åï¼æè
æåçæ
åµï¼æ¥è¯¢æ°æ®åºï¼æ¥ç¡®è®¤æ¯å¦æ¤è¡åå¨ã "
+msgid "This may be suitable for the case of a generated identifier, but what about assigned identifiers and composite identifiers? This is more difficult, since Hibernate cannot use the identifier property to distinguish between a newly instantiated object, with an identifier assigned by the user, and an object loaded in a previous session. In this case, Hibernate will either use the timestamp or version property, or will actually query the second-level cache or, worst case, the database, to see if the row exists."
+msgstr "è¿å¯¹äºèªå¨çææ è¯çæ
åµæ¯é常好çï¼ä½æ¯èªåé
çæ è¯åå¤åæ è¯æä¹åå¢ï¼è¿æ¯æç¹éº»ç¦ï¼å 为 Hibernate 没æåæ³åºåæ°å®ä¾åç对象ï¼æ è¯è¢«ç¨æ·æå®äºï¼ååä¸ä¸ª Session è£
å
¥ç对象ãå¨è¿ç§æ
åµä¸ï¼Hibernate ä¼ä½¿ç¨ timestamp æ version å±æ§ï¼æè
æ¥è¯¢ç¬¬äºçº§ç¼åï¼æè
æåçæ
åµï¼æ¥è¯¢æ°æ®åºï¼æ¥ç¡®è®¤æ¯å¦æ¤è¡åå¨ã "
#. Tag: title
#, no-c-format
@@ -360,28 +196,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The sections we have just covered can be a bit confusing. However, in "
-"practice, it all works out nicely. Most Hibernate applications use the "
-"parent/child pattern in many places."
-msgstr ""
-"è¿éæä¸å°ä¸è¥¿éè¦èä¼è´¯éï¼å¯è½ä¼è®©æ°ææå°è¿·æãä½æ¯å¨å®è·µä¸å®ä»¬é½å·¥ä½å°é"
-"常好ã大é¨å Hibernate åºç¨ç¨åºé½ä¼ç»å¸¸ç¨å°ç¶å对象模å¼ã "
+msgid "The sections we have just covered can be a bit confusing. However, in practice, it all works out nicely. Most Hibernate applications use the parent/child pattern in many places."
+msgstr "è¿éæä¸å°ä¸è¥¿éè¦èä¼è´¯éï¼å¯è½ä¼è®©æ°ææå°è¿·æãä½æ¯å¨å®è·µä¸å®ä»¬é½å·¥ä½å°é常好ã大é¨å Hibernate åºç¨ç¨åºé½ä¼ç»å¸¸ç¨å°ç¶å对象模å¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"We mentioned an alternative in the first paragraph. None of the above issues "
-"exist in the case of <literal><composite-element></literal> mappings, "
-"which have exactly the semantics of a parent/child relationship. "
-"Unfortunately, there are two big limitations with composite element classes: "
-"composite elements cannot own collections and they should not be the child "
-"of any entity other than the unique parent."
-msgstr ""
-"å¨ç¬¬ä¸æ®µä¸æ们æ¾ç»æå°å¦ä¸ä¸ªæ¹æ¡ãä¸é¢çè¿äºé®é¢é½ä¸ä¼åºç°å¨ <literal><"
-"composite-element></literal> æ å°ä¸ï¼å®åç¡®å°è¡¨è¾¾äºç¶åå
³ç³»çè¯ä¹ãå¾ä¸å¹¸"
-"å¤åå
ç´ è¿æ两个é大éå¶ï¼å¤åå
ç´ ä¸è½æ¥æ collectionsï¼å¹¶ä¸ï¼é¤äºç¨äºæä¸ç"
-"ç¶å¯¹è±¡å¤ï¼å®ä»¬ä¸è½åä½ä¸ºå
¶å®ä»»ä½å®ä½çå对象ã "
+msgid "We mentioned an alternative in the first paragraph. None of the above issues exist in the case of <literal><composite-element></literal> mappings, which have exactly the semantics of a parent/child relationship. Unfortunately, there are two big limitations with composite element classes: composite elements cannot own collections and they should not be the child of any entity other than the unique parent."
+msgstr "å¨ç¬¬ä¸æ®µä¸æ们æ¾ç»æå°å¦ä¸ä¸ªæ¹æ¡ãä¸é¢çè¿äºé®é¢é½ä¸ä¼åºç°å¨ <literal><composite-element></literal> æ å°ä¸ï¼å®åç¡®å°è¡¨è¾¾äºç¶åå
³ç³»çè¯ä¹ãå¾ä¸å¹¸å¤åå
ç´ è¿æ两个é大éå¶ï¼å¤åå
ç´ ä¸è½æ¥æ collectionsï¼å¹¶ä¸ï¼é¤äºç¨äºæä¸çç¶å¯¹è±¡å¤ï¼å®ä»¬ä¸è½åä½ä¸ºå
¶å®ä»»ä½å®ä½çå对象ã "
#~ msgid ""
#~ "<![CDATA[<set name=\"children\">\n"
@@ -393,7 +214,6 @@
#~ " <key column=\"parent_id\"/>\n"
#~ " <one-to-many class=\"Child\"/>\n"
#~ "</set>]]>"
-
#~ msgid ""
#~ "<![CDATA[Parent p = .....;\n"
#~ "Child c = new Child();\n"
@@ -406,7 +226,6 @@
#~ "p.getChildren().add(c);\n"
#~ "session.save(c);\n"
#~ "session.flush();]]>"
-
#~ msgid ""
#~ "<![CDATA[<set name=\"children\">\n"
#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
@@ -417,14 +236,12 @@
#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
#~ " <one-to-many class=\"Child\"/>\n"
#~ "</set>]]>"
-
#~ msgid ""
#~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
#~ "\"/>]]>"
#~ msgstr ""
#~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
#~ "\"/>]]>"
-
#~ msgid ""
#~ "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
#~ " <key column=\"parent_id\"/>\n"
@@ -435,7 +252,6 @@
#~ " <key column=\"parent_id\"/>\n"
#~ " <one-to-many class=\"Child\"/>\n"
#~ "</set>]]>"
-
#~ msgid ""
#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
#~ "Child c = new Child();\n"
@@ -450,7 +266,6 @@
#~ "p.getChildren().add(c);\n"
#~ "session.save(c);\n"
#~ "session.flush();]]>"
-
#~ msgid ""
#~ "<![CDATA[public void addChild(Child c) {\n"
#~ " c.setParent(this);\n"
@@ -461,7 +276,6 @@
#~ " c.setParent(this);\n"
#~ " children.add(c);\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
#~ "Child c = new Child();\n"
@@ -474,7 +288,6 @@
#~ "p.addChild(c);\n"
#~ "session.save(c);\n"
#~ "session.flush();]]>"
-
#~ msgid ""
#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
#~ " <key column=\"parent_id\"/>\n"
@@ -485,7 +298,6 @@
#~ " <key column=\"parent_id\"/>\n"
#~ " <one-to-many class=\"Child\"/>\n"
#~ "</set>]]>"
-
#~ msgid ""
#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
#~ "Child c = new Child();\n"
@@ -496,7 +308,6 @@
#~ "Child c = new Child();\n"
#~ "p.addChild(c);\n"
#~ "session.flush();]]>"
-
#~ msgid ""
#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
#~ "session.delete(p);\n"
@@ -505,7 +316,6 @@
#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
#~ "session.delete(p);\n"
#~ "session.flush();]]>"
-
#~ msgid ""
#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
#~ "Child c = (Child) p.getChildren().iterator().next();\n"
@@ -518,7 +328,6 @@
#~ "p.getChildren().remove(c);\n"
#~ "c.setParent(null);\n"
#~ "session.flush();]]>"
-
#~ msgid ""
#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
#~ "Child c = (Child) p.getChildren().iterator().next();\n"
@@ -531,7 +340,6 @@
#~ "p.getChildren().remove(c);\n"
#~ "session.delete(c);\n"
#~ "session.flush();]]>"
-
#~ msgid ""
#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-"
#~ "orphan\">\n"
@@ -544,7 +352,6 @@
#~ " <key column=\"parent_id\"/>\n"
#~ " <one-to-many class=\"Child\"/>\n"
#~ "</set>]]>"
-
#~ msgid ""
#~ "<![CDATA[//parent and child were both loaded in a previous session\n"
#~ "parent.addChild(child);\n"
@@ -559,3 +366,4 @@
#~ "parent.addChild(newChild);\n"
#~ "session.update(parent);\n"
#~ "session.flush();]]>"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -7,7 +7,7 @@
"Project-Id-Version: persistent_classes\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:15\n"
-"PO-Revision-Date: 2009-12-07 09:36+1000\n"
+"PO-Revision-Date: 2010-03-16 10:00+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -22,30 +22,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Persistent classes are classes in an application that implement the entities "
-"of the business problem (e.g. Customer and Order in an E-commerce "
-"application). Not all instances of a persistent class are considered to be "
-"in the persistent state. For example, an instance can instead be transient "
-"or detached."
-msgstr ""
-"å¨åºç¨ç¨åºä¸ï¼ç¨æ¥å®ç°ä¸å¡é®é¢å®ä½çï¼å¦ï¼å¨çµååå¡åºç¨ç¨åºä¸ç Customer å "
-"Orderï¼ç±»å°±æ¯æä¹
åç±»ãä¸è½è®¤ä¸ºææçæä¹
åç±»çå®ä¾é½æ¯æä¹
çç¶æ - ä¸ä¸ªå®ä¾"
-"çç¶æä¹å¯è½æ¯ç¬æ¶çæè±ç®¡çã"
+msgid "Persistent classes are classes in an application that implement the entities of the business problem (e.g. Customer and Order in an E-commerce application). Not all instances of a persistent class are considered to be in the persistent state. For example, an instance can instead be transient or detached."
+msgstr "å¨åºç¨ç¨åºä¸ï¼ç¨æ¥å®ç°ä¸å¡é®é¢å®ä½çï¼å¦ï¼å¨çµååå¡åºç¨ç¨åºä¸ç Customer å Orderï¼ç±»å°±æ¯æä¹
åç±»ãä¸è½è®¤ä¸ºææçæä¹
åç±»çå®ä¾é½æ¯æä¹
çç¶æ - ä¸ä¸ªå®ä¾çç¶æä¹å¯è½æ¯ç¬æ¶çæè±ç®¡çã"
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate works best if these classes follow some simple rules, also known "
-"as the Plain Old Java Object (POJO) programming model. However, none of "
-"these rules are hard requirements. Indeed, Hibernate3 assumes very little "
-"about the nature of your persistent objects. You can express a domain model "
-"in other ways (using trees of <literal>Map</literal> instances, for example)."
-msgstr ""
-"å¦æè¿äºæä¹
åç±»éµå¾ªä¸äºç®åçè§åï¼Hibernate è½å¤å·¥ä½å¾æ´å¥½ï¼è¿äºè§åä¹è¢«ç§°"
-"ä½ç®åä¼ ç» Java 对象ï¼POJO:Plain Old Java Objectï¼ç¼ç¨æ¨¡åãä½æ¯è¿äºè§å并ä¸"
-"æ¯å¿
éçã å®é
ä¸ï¼Hibernate3 对äºä½ çæä¹
åç±»å ä¹ä¸åä»»ä½è®¾æ³ãä½ å¯ä»¥ç¨å
¶ä»"
-"çæ¹æ³æ¥è¡¨è¾¾é¢å模åï¼æ¯å¦ï¼ä½¿ç¨ <literal>Map</literal> å®ä¾çæ åç»æã"
+msgid "Hibernate works best if these classes follow some simple rules, also known as the Plain Old Java Object (POJO) programming model. However, none of these rules are hard requirements. Indeed, Hibernate3 assumes very little about the nature of your persistent objects. You can express a domain model in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr "å¦æè¿äºæä¹
åç±»éµå¾ªä¸äºç®åçè§åï¼Hibernate è½å¤å·¥ä½å¾æ´å¥½ï¼è¿äºè§åä¹è¢«ç§°ä½ç®åä¼ ç» Java 对象ï¼POJO:Plain Old Java Objectï¼ç¼ç¨æ¨¡åãä½æ¯è¿äºè§å并ä¸æ¯å¿
éçã å®é
ä¸ï¼Hibernate3 对äºä½ çæä¹
åç±»å ä¹ä¸åä»»ä½è®¾æ³ãä½ å¯ä»¥ç¨å
¶ä»çæ¹æ³æ¥è¡¨è¾¾é¢å模åï¼æ¯å¦ï¼ä½¿ç¨ <literal>Map</literal> å®ä¾çæ åç»æã"
#. Tag: title
#, no-c-format
@@ -54,16 +37,12 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Most Java applications require a persistent class representing felines. For "
-"example:"
+msgid "Most Java applications require a persistent class representing felines. For example:"
msgstr "大å¤æ° Java ç¨åºéè¦ç¨ä¸ä¸ªæä¹
åç±»æ¥è¡¨ç¤ºç«ç§å¨ç©ãä¾å¦ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The four main rules of persistent classes are explored in more detail in the "
-"following sections."
+msgid "The four main rules of persistent classes are explored in more detail in the following sections."
msgstr "å¨åç»çç« èéæ们å°ä»ç»æä¹
æ§ç±»ç 4 个主è¦è§åçæ´å¤ç»èã"
#. Tag: title
@@ -73,19 +52,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>Cat</literal> has a no-argument constructor. All persistent classes "
-"must have a default constructor (which can be non-public) so that Hibernate "
-"can instantiate them using <literal>Constructor.newInstance()</literal>. It "
-"is recommended that you have a default constructor with at least "
-"<emphasis>package</emphasis> visibility for runtime proxy generation in "
-"Hibernate."
-msgstr ""
-"<literal>Cat</literal> æä¸ä¸ªæ åæ°çæé æ¹æ³ãææçæä¹
åç±»é½å¿
é¡»æä¸ä¸ªé»è®¤"
-"çæé æ¹æ³ï¼å¯ä»¥ä¸æ¯ public çï¼ï¼è¿æ ·çè¯ Hibernate å°±å¯ä»¥ä½¿ç¨ "
-"<literal>Constructor.newInstance(ï¼</literal>æ¥å®ä¾åå®ä»¬ã æ们强ç建议ï¼å¨ "
-"Hibernate ä¸ï¼ä¸ºäºè¿è¡æ代çççæï¼æé æ¹æ³è³å°æ¯<emphasis>å
ï¼packageï¼</"
-"emphasis>å
å¯è§çã"
+msgid "<literal>Cat</literal> has a no-argument constructor. All persistent classes must have a default constructor (which can be non-public) so that Hibernate can instantiate them using <literal>Constructor.newInstance()</literal>. It is recommended that you have a default constructor with at least <emphasis>package</emphasis> visibility for runtime proxy generation in Hibernate."
+msgstr "<literal>Cat</literal> æä¸ä¸ªæ åæ°çæé æ¹æ³ãææçæä¹
åç±»é½å¿
é¡»æä¸ä¸ªé»è®¤çæé æ¹æ³ï¼å¯ä»¥ä¸æ¯ public çï¼ï¼è¿æ ·çè¯ Hibernate å°±å¯ä»¥ä½¿ç¨ <literal>Constructor.newInstance(ï¼</literal>æ¥å®ä¾åå®ä»¬ã æ们强ç建议ï¼å¨ Hibernate ä¸ï¼ä¸ºäºè¿è¡æ代çççæï¼æé æ¹æ³è³å°æ¯<emphasis>å
ï¼packageï¼</emphasis>å
å¯è§çã"
#. Tag: title
#, no-c-format
@@ -94,65 +62,38 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>Cat</literal> has a property called <literal>id</literal>. This "
-"property maps to the primary key column of a database table. The property "
-"might have been called anything, and its type might have been any primitive "
-"type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or "
-"<literal>java.util.Date</literal>. If your legacy database table has "
-"composite keys, you can use a user-defined class with properties of these "
-"types (see the section on composite identifiers later in the chapter.)"
-msgstr ""
-"<literal>Cat</literal> æä¸ä¸ªå±æ§å«å <literal>id</literal>ãè¿ä¸ªå±æ§æ å°æ°æ®"
-"åºè¡¨ç主 é®å段ãè¿ä¸ªå±æ§å¯ä»¥å«ä»»ä½ååï¼å
¶ç±»åå¯ä»¥æ¯ä»»ä½çåå§ç±»åãåå§ç±»å"
-"çå
è£
ç±»åã <literal>java.lang.String</literal> æè
æ¯ <literal>java.util."
-"Date</literal>ãï¼å¦æä½ çéçæ°æ®åºè¡¨æèå主é®ï¼ä½ çè³å¯ä»¥ç¨ä¸ä¸ªç¨æ·èªå®ä¹"
-"çç±»ï¼è¯¥ç±»æ¥æè¿äºç±»åçå±æ§ãåè§åé¢çå
³äºèåæ è¯ç¬¦çç« èãï¼"
+msgid "<literal>Cat</literal> has a property called <literal>id</literal>. This property maps to the primary key column of a database table. The property might have been called anything, and its type might have been any primitive type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or <literal>java.util.Date</literal>. If your legacy database table has composite keys, you can use a user-defined class with properties of these types (see the section on composite identifiers later in the chapter.)"
+msgstr "<literal>Cat</literal> æä¸ä¸ªå±æ§å«å <literal>id</literal>ãè¿ä¸ªå±æ§æ å°æ°æ®åºè¡¨ç主 é®å段ãè¿ä¸ªå±æ§å¯ä»¥å«ä»»ä½ååï¼å
¶ç±»åå¯ä»¥æ¯ä»»ä½çåå§ç±»åãåå§ç±»åçå
è£
ç±»åã <literal>java.lang.String</literal> æè
æ¯ <literal>java.util.Date</literal>ãï¼å¦æä½ çéçæ°æ®åºè¡¨æèå主é®ï¼ä½ çè³å¯ä»¥ç¨ä¸ä¸ªç¨æ·èªå®ä¹çç±»ï¼è¯¥ç±»æ¥æè¿äºç±»åçå±æ§ãåè§åé¢çå
³äºèåæ è¯ç¬¦çç« èãï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The identifier property is strictly optional. You can leave them off and let "
-"Hibernate keep track of object identifiers internally. We do not recommend "
-"this, however."
-msgstr ""
-"æ è¯ç¬¦å±æ§æ¯å¯éçãå¯ä»¥ä¸ç¨ç®¡å®ï¼è®© Hibernate å
é¨æ¥è¿½è¸ªå¯¹è±¡çè¯å«ã ä½æ¯æ"
-"们并ä¸æ¨èè¿æ ·åã"
+msgid "The identifier property is strictly optional. You can leave them off and let Hibernate keep track of object identifiers internally. We do not recommend this, however."
+msgstr "æ è¯ç¬¦å±æ§æ¯å¯éçãå¯ä»¥ä¸ç¨ç®¡å®ï¼è®© Hibernate å
é¨æ¥è¿½è¸ªå¯¹è±¡çè¯å«ã ä½æ¯æ们并ä¸æ¨èè¿æ ·åã"
#. Tag: para
#, no-c-format
-msgid ""
-"In fact, some functionality is available only to classes that declare an "
-"identifier property:"
+msgid "In fact, some functionality is available only to classes that declare an identifier property:"
msgstr "å®é
ä¸ï¼ä¸äºåè½åªå¯¹é£äºå£°æäºæ è¯ç¬¦å±æ§ç类起ä½ç¨ï¼ "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Transitive reattachment for detached objects (cascade update or cascade "
-"merge) - see <xref linkend=\"objectstate-transitive\" />"
-msgstr ""
-"æ管对象çä¼ ææ§åè¿æ¥ï¼çº§èæ´æ°æ级èåå¹¶ï¼ â åé
<xref linkend="
-"\"objectstate-transitive\"/>"
+#, no-c-format
+msgid "Transitive reattachment for detached objects (cascade update or cascade merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr "æ管对象çä¼ ææ§åè¿æ¥ï¼çº§èæ´æ°æ级èå并ï¼- åé
<xref linkend=\"objectstate-transitive\"/>"
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>Session.saveOrUpdate()</literal>"
-msgstr "<literal>Session.saveOrUpdate()</literal>"
+msgstr "<literal>Session.saveOrUpdate()</literal> "
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>Session.merge()</literal>"
-msgstr "<literal>Session.merge()</literal>"
+msgstr "<literal>Session.merge()</literal> "
#. Tag: para
#, no-c-format
-msgid ""
-"We recommend that you declare consistently-named identifier properties on "
-"persistent classes and that you use a nullable (i.e., non-primitive) type."
-msgstr ""
-"æä»¬å»ºè®®ä½ å¯¹æä¹
å类声æå½åä¸è´çæ è¯å±æ§ãæ们è¿å»ºè®®ä½ 使ç¨ä¸ä¸ªå¯ä»¥ä¸ºç©ºï¼ä¹"
-"å°±æ¯è¯´ï¼ä¸æ¯åå§ç±»åï¼çç±»åã "
+msgid "We recommend that you declare consistently-named identifier properties on persistent classes and that you use a nullable (i.e., non-primitive) type."
+msgstr "æä»¬å»ºè®®ä½ å¯¹æä¹
å类声æå½åä¸è´çæ è¯å±æ§ãæ们è¿å»ºè®®ä½ 使ç¨ä¸ä¸ªå¯ä»¥ä¸ºç©ºï¼ä¹å°±æ¯è¯´ï¼ä¸æ¯åå§ç±»åï¼çç±»åã "
#. Tag: title
#, no-c-format
@@ -161,72 +102,33 @@
#. Tag: para
#, no-c-format
-msgid ""
-"A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
-"the persistent class being either non-final, or the implementation of an "
-"interface that declares all public methods."
-msgstr ""
-"<emphasis>代çï¼proxiesï¼</emphasis>æ¯ Hibernate çä¸ä¸ªéè¦çåè½ï¼å®ä¾èµçæ¡"
-"件æ¯ï¼æä¹
åç±»æè
æ¯é final çï¼æè
æ¯å®ç°äºä¸ä¸ªæææ¹æ³é½å£°æ为 public çæ¥"
-"å£ã"
+msgid "A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon the persistent class being either non-final, or the implementation of an interface that declares all public methods."
+msgstr "<emphasis>代çï¼proxiesï¼</emphasis>æ¯ Hibernate çä¸ä¸ªéè¦çåè½ï¼å®ä¾èµçæ¡ä»¶æ¯ï¼æä¹
åç±»æè
æ¯é final çï¼æè
æ¯å®ç°äºä¸ä¸ªæææ¹æ³é½å£°æ为 public çæ¥å£ã"
#. Tag: para
#, no-c-format
-msgid ""
-"You can persist <literal>final</literal> classes that do not implement an "
-"interface with Hibernate. You will not, however, be able to use proxies for "
-"lazy association fetching which will ultimately limit your options for "
-"performance tuning."
-msgstr ""
-"ä½ å¯ä»¥ç¨ Hibernate æä¹
åä¸ä¸ªæ²¡æå®ç°ä»»ä½æ¥å£ç <literal>final</literal> ç±»ï¼"
-"ä½æ¯ä½ ä¸è½ä½¿ç¨ä»£çæ¥å»¶è¿å
³èå è½½ï¼è¿ä¼éå¶ä½ è¿è¡æ§è½ä¼åçéæ©ã "
+msgid "You can persist <literal>final</literal> classes that do not implement an interface with Hibernate. You will not, however, be able to use proxies for lazy association fetching which will ultimately limit your options for performance tuning."
+msgstr "ä½ å¯ä»¥ç¨ Hibernate æä¹
åä¸ä¸ªæ²¡æå®ç°ä»»ä½æ¥å£ç <literal>final</literal> ç±»ï¼ä½æ¯ä½ ä¸è½ä½¿ç¨ä»£çæ¥å»¶è¿å
³èå è½½ï¼è¿ä¼éå¶ä½ è¿è¡æ§è½ä¼åçéæ©ã "
#. Tag: para
#, no-c-format
-msgid ""
-"You should also avoid declaring <literal>public final</literal> methods on "
-"the non-final classes. If you want to use a class with a <literal>public "
-"final</literal> method, you must explicitly disable proxying by setting "
-"<literal>lazy=\"false\"</literal>."
-msgstr ""
-"ä½ ä¹åºè¯¥é¿å
å¨é final ç±»ä¸å£°æ <literal>public final</literal> çæ¹æ³ãå¦æ"
-"ä½ æ³ä½¿ç¨ä¸ä¸ªæ <literal>public final</literal> æ¹æ³çç±»ï¼ä½ å¿
é¡»éè¿è®¾ç½® "
-"<literal>lazy=\"false\"</literal> æ¥æç¡®å°ç¦ç¨ä»£çã "
+msgid "You should also avoid declaring <literal>public final</literal> methods on the non-final classes. If you want to use a class with a <literal>public final</literal> method, you must explicitly disable proxying by setting <literal>lazy=\"false\"</literal>."
+msgstr "ä½ ä¹åºè¯¥é¿å
å¨é final ç±»ä¸å£°æ <literal>public final</literal> çæ¹æ³ãå¦æä½ æ³ä½¿ç¨ä¸ä¸ªæ <literal>public final</literal> æ¹æ³çç±»ï¼ä½ å¿
é¡»éè¿è®¾ç½® <literal>lazy=\"false\"</literal> æ¥æç¡®å°ç¦ç¨ä»£çã "
#. Tag: title
#, no-c-format
msgid "Declare accessors and mutators for persistent fields (optional)"
-msgstr ""
-"为æä¹
åå段声æ访é®å¨ï¼accessorsï¼åæ¯å¦å¯åçæ å¿ï¼mutatorsï¼ï¼å¯éï¼"
+msgstr "为æä¹
åå段声æ访é®å¨ï¼accessorsï¼åæ¯å¦å¯åçæ å¿ï¼mutatorsï¼ï¼å¯éï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>Cat</literal> declares accessor methods for all its persistent "
-"fields. Many other ORM tools directly persist instance variables. It is "
-"better to provide an indirection between the relational schema and internal "
-"data structures of the class. By default, Hibernate persists JavaBeans style "
-"properties and recognizes method names of the form <literal>getFoo</"
-"literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If "
-"required, you can switch to direct field access for particular properties."
-msgstr ""
-"<literal>Cat</literal> 为å®çæææä¹
åå段声æäºè®¿é®æ¹æ³ãå¾å¤å
¶ä» ORM å·¥å
·"
-"ç´æ¥å¯¹å®ä¾åéè¿è¡æä¹
åãæ们ç¸ä¿¡ï¼å¨å
³ç³»æ°æ®åº schema åç±»çå
é¨æ°æ®ç»æä¹"
-"é´å¼å
¥é´æ¥å±ï¼åæ为\"éç´æ¥\"ï¼indirectionï¼ä¼å¥½ä¸äºãé»è®¤æ
åµä¸ Hibernate "
-"æä¹
å JavaBeans é£æ ¼çå±æ§ï¼è®¤å¯ <literal>getFoo</literal>ï¼"
-"<literal>isFoo</literal> å <literal>setFoo</literal> è¿ç§å½¢å¼çæ¹æ³åãå¦æ"
-"éè¦ï¼ä½ å¯ä»¥å¯¹æäºç¹å®å±æ§å®è¡ç´æ¥å段访é®ã "
+msgid "<literal>Cat</literal> declares accessor methods for all its persistent fields. Many other ORM tools directly persist instance variables. It is better to provide an indirection between the relational schema and internal data structures of the class. By default, Hibernate persists JavaBeans style properties and recognizes method names of the form <literal>getFoo</literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If required, you can switch to direct field access for particular properties."
+msgstr "<literal>Cat</literal> 为å®çæææä¹
åå段声æäºè®¿é®æ¹æ³ãå¾å¤å
¶ä» ORM å·¥å
·ç´æ¥å¯¹å®ä¾åéè¿è¡æä¹
åãæ们ç¸ä¿¡ï¼å¨å
³ç³»æ°æ®åº schema åç±»çå
é¨æ°æ®ç»æä¹é´å¼å
¥é´æ¥å±ï¼åæ为\"éç´æ¥\"ï¼indirectionï¼ä¼å¥½ä¸äºãé»è®¤æ
åµä¸ Hibernate æä¹
å JavaBeans é£æ ¼çå±æ§ï¼è®¤å¯ <literal>getFoo</literal>ï¼<literal>isFoo</literal> å <literal>setFoo</literal> è¿ç§å½¢å¼çæ¹æ³åãå¦æéè¦ï¼ä½ å¯ä»¥å¯¹æäºç¹å®å±æ§å®è¡ç´æ¥å段访é®ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
-"persist a property with a default, <literal>protected</literal> or "
-"<literal>private</literal> get / set pair."
-msgstr ""
-"å±æ§<emphasis>ä¸éè¦</emphasis>è¦å£°æ为 public çãHibernate å¯ä»¥æä¹
åä¸ä¸ª"
-"æ <literal>default</literal>ã<literal>protected</literal> æ "
-"<literal>private</literal> ç get/set æ¹æ³å¯¹çå±æ§è¿è¡æä¹
åã"
+msgid "Properties need <emphasis>not</emphasis> be declared public - Hibernate can persist a property with a default, <literal>protected</literal> or <literal>private</literal> get / set pair."
+msgstr "å±æ§<emphasis>ä¸éè¦</emphasis>è¦å£°æ为 public çãHibernate å¯ä»¥æä¹
åä¸ä¸ªæ <literal>default</literal>ã<literal>protected</literal> æ <literal>private</literal> ç get/set æ¹æ³å¯¹çå±æ§è¿è¡æä¹
åã"
#. Tag: title
#, no-c-format
@@ -235,38 +137,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"A subclass must also observe the first and second rules. It inherits its "
-"identifier property from the superclass, <literal>Cat</literal>. For example:"
-msgstr ""
-"åç±»ä¹å¿
é¡»éµå®ç¬¬ä¸æ¡å第äºæ¡è§åãå®ä»è¶
ç±» <literal>Cat</literal> 继æ¿äºæ è¯"
-"å±æ§ãä¾å¦ï¼"
+msgid "A subclass must also observe the first and second rules. It inherits its identifier property from the superclass, <literal>Cat</literal>. For example:"
+msgstr "åç±»ä¹å¿
é¡»éµå®ç¬¬ä¸æ¡å第äºæ¡è§åãå®ä»è¶
ç±» <literal>Cat</literal> 继æ¿äºæ è¯å±æ§ãä¾å¦ï¼"
#. Tag: title
#, no-c-format
-msgid ""
-"Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
-msgstr ""
-"å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼"
+msgid "Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr "å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"You have to override the <literal>equals()</literal> and <literal>hashCode()"
-"</literal> methods if you:"
-msgstr ""
-"å¦æä½ æå¦ä¸éæ±ï¼ä½ å¿
é¡»éè½½ <literal>equals()</literal> å <literal>hashCode"
-"()</literal> æ¹æ³ï¼ "
+msgid "You have to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods if you:"
+msgstr "å¦æä½ æå¦ä¸éæ±ï¼ä½ å¿
é¡»éè½½ <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"intend to put instances of persistent classes in a <literal>Set</literal> "
-"(the recommended way to represent many-valued associations); <emphasis>and</"
-"emphasis>"
-msgstr ""
-"æ³ææä¹
ç±»çå®ä¾æ¾å
¥ <literal>Set</literal> ä¸ï¼å½è¡¨ç¤ºå¤å¼å
³èæ¶ï¼æ¨èè¿ä¹"
-"åï¼ï¼<emphasis>èä¸</emphasis>"
+msgid "intend to put instances of persistent classes in a <literal>Set</literal> (the recommended way to represent many-valued associations); <emphasis>and</emphasis>"
+msgstr "æ³ææä¹
ç±»çå®ä¾æ¾å
¥ <literal>Set</literal> ä¸ï¼å½è¡¨ç¤ºå¤å¼å
³èæ¶ï¼æ¨èè¿ä¹åï¼ï¼<emphasis>èä¸</emphasis>"
#. Tag: para
#, no-c-format
@@ -275,73 +162,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate guarantees equivalence of persistent identity (database row) and "
-"Java identity only inside a particular session scope. When you mix instances "
-"retrieved in different sessions, you must implement <literal>equals()</"
-"literal> and <literal>hashCode()</literal> if you wish to have meaningful "
-"semantics for <literal>Set</literal>s."
-msgstr ""
-"Hibernate ä¿è¯ï¼ä»
å¨ç¹å®ä¼è¯èå´å
ï¼æä¹
åæ è¯ï¼æ°æ®åºçè¡ï¼å Java æ è¯æ¯ç"
-"ä»·çãå æ¤ï¼ä¸æ¦æ们混åäºä»ä¸åä¼è¯ä¸è·åçå®ä¾ï¼å¦æå¸æ <literal>Set</"
-"literal> ææç¡®çè¯ä¹ï¼å°±å¿
é¡»å®ç° <literal>equals()</literal> å "
-"<literal>hashCode()</literal>ã "
+msgid "Hibernate guarantees equivalence of persistent identity (database row) and Java identity only inside a particular session scope. When you mix instances retrieved in different sessions, you must implement <literal>equals()</literal> and <literal>hashCode()</literal> if you wish to have meaningful semantics for <literal>Set</literal>s."
+msgstr "Hibernate ä¿è¯ï¼ä»
å¨ç¹å®ä¼è¯èå´å
ï¼æä¹
åæ è¯ï¼æ°æ®åºçè¡ï¼å Java æ è¯æ¯çä»·çãå æ¤ï¼ä¸æ¦æ们混åäºä»ä¸åä¼è¯ä¸è·åçå®ä¾ï¼å¦æå¸æ <literal>Set</literal> ææç¡®çè¯ä¹ï¼å°±å¿
é¡»å®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The most obvious way is to implement <literal>equals()</literal>/"
-"<literal>hashCode()</literal> by comparing the identifier value of both "
-"objects. If the value is the same, both must be the same database row, "
-"because they are equal. If both are added to a <literal>Set</literal>, you "
-"will only have one element in the <literal>Set</literal>). Unfortunately, "
-"you cannot use that approach with generated identifiers. Hibernate will only "
-"assign identifier values to objects that are persistent; a newly created "
-"instance will not have any identifier value. Furthermore, if an instance is "
-"unsaved and currently in a <literal>Set</literal>, saving it will assign an "
-"identifier value to the object. If <literal>equals()</literal> and "
-"<literal>hashCode()</literal> are based on the identifier value, the hash "
-"code would change, breaking the contract of the <literal>Set</literal>. See "
-"the Hibernate website for a full discussion of this problem. This is not a "
-"Hibernate issue, but normal Java semantics of object identity and equality."
-msgstr ""
-"å®ç° <literal>equals()</literal>/<literal>hashCode()</literal> ææ¾èæè§çæ¹"
-"æ³æ¯æ¯è¾ä¸¤ä¸ªå¯¹è±¡ æ è¯ç¬¦çå¼ãå¦æå¼ç¸åï¼å两个对象对åºäºæ°æ®åºçåä¸è¡ï¼å æ¤"
-"å®ä»¬æ¯ç¸ççï¼å¦æé½è¢«æ·»å å° <literal>Set</literal>ï¼åå¨ <literal>Set</"
-"literal> ä¸åªæä¸ä¸ªå
ç´ ï¼ãä¸å¹¸çæ¯ï¼å¯¹çæçæ è¯ä¸è½ 使ç¨è¿ç§æ¹æ³ã"
-"Hibernate ä»
对é£äºæä¹
å对象èµæ è¯å¼ï¼ä¸ä¸ªæ°å建çå®ä¾å°ä¸ä¼æä»»ä½æ è¯å¼ãæ¤"
-"å¤ï¼ å¦æä¸ä¸ªå®ä¾æ²¡æ被ä¿åï¼unsavedï¼ï¼å¹¶ä¸å®å½åæ£å¨ä¸ä¸ª <literal>Set</"
-"literal> ä¸ï¼ä¿åå®å°ä¼ç»è¿ä¸ªå¯¹è±¡èµä¸ä¸ªæ è¯å¼ãå¦æ <literal>equals()</"
-"literal> å <literal>hashCode()</literal> æ¯åºäºæ è¯å¼ å®ç°çï¼åå
¶åå¸ç å°ä¼"
-"æ¹åï¼è¿è¿åäº <literal>Set</literal> çå¥çº¦ãå»ºè®®å» Hibernate çç«ç¹é
读å
³äº"
-"è¿ä¸ªé®é¢çå
¨é¨è®¨è®ºã注æï¼è¿ä¸æ¯ Hibernate çé®é¢ï¼èæ¯ä¸è¬ç Java 对象æ è¯"
-"å Java 对象çä»·çè¯ä¹é®é¢ã "
+msgid "The most obvious way is to implement <literal>equals()</literal>/<literal>hashCode()</literal> by comparing the identifier value of both objects. If the value is the same, both must be the same database row, because they are equal. If both are added to a <literal>Set</literal>, you will only have one element in the <literal>Set</literal>). Unfortunately, you cannot use that approach with generated identifiers. Hibernate will only assign identifier values to objects that are persistent; a newly created instance will not have any identifier value. Furthermore, if an instance is unsaved and currently in a <literal>Set</literal>, saving it will assign an identifier value to the object. If <literal>equals()</literal> and <literal>hashCode()</literal> are based on the identifier value, the hash code would change, breaking the contract of the <literal>Set</literal>. See the Hibernate website for a full discussion of this problem. This is not a Hibernate issue, but normal Ja!
va semantics of object identity and equality."
+msgstr "å®ç° <literal>equals()</literal>/<literal>hashCode()</literal> ææ¾èæè§çæ¹æ³æ¯æ¯è¾ä¸¤ä¸ªå¯¹è±¡ æ è¯ç¬¦çå¼ãå¦æå¼ç¸åï¼å两个对象对åºäºæ°æ®åºçåä¸è¡ï¼å æ¤å®ä»¬æ¯ç¸ççï¼å¦æé½è¢«æ·»å å° <literal>Set</literal>ï¼åå¨ <literal>Set</literal> ä¸åªæä¸ä¸ªå
ç´ ï¼ãä¸å¹¸çæ¯ï¼å¯¹çæçæ è¯ä¸è½ 使ç¨è¿ç§æ¹æ³ãHibernate ä»
对é£äºæä¹
å对象èµæ è¯å¼ï¼ä¸ä¸ªæ°å建çå®ä¾å°ä¸ä¼æä»»ä½æ è¯å¼ãæ¤å¤ï¼ å¦æä¸ä¸ªå®ä¾æ²¡æ被ä¿åï¼unsavedï¼ï¼å¹¶ä¸å®å½åæ£å¨ä¸ä¸ª <literal>Set</literal> ä¸ï¼ä¿åå®å°ä¼ç»è¿ä¸ªå¯¹è±¡èµä¸ä¸ªæ è¯å¼ãå¦æ <literal>equals()</literal> å <literal>hashCode()</literal> æ¯åºäºæ è¯å¼ å®ç°çï¼åå
¶åå¸ç å°ä¼æ¹åï¼è¿è¿åäº <literal>Set</literal> çå¥çº¦ãå»ºè®®å» Hibernate çç«ç¹é
读å
³äºè¿ä¸ªé®é¢çå
¨é¨è®¨è®ºã注æï¼è¿ä¸æ¯ Hibernate çé®é¢ï¼èæ¯ä¸è¬ç Java 对象æ !
è¯å Java 对象çä»·çè¯ä¹é®é¢ã "
#. Tag: para
#, no-c-format
-msgid ""
-"It is recommended that you implement <literal>equals()</literal> and "
-"<literal>hashCode()</literal> using <emphasis>Business key equality</"
-"emphasis>. Business key equality means that the <literal>equals()</literal> "
-"method compares only the properties that form the business key. It is a key "
-"that would identify our instance in the real world (a <emphasis>natural</"
-"emphasis> candidate key):"
-msgstr ""
-"æ们建议使ç¨<emphasis>ä¸å¡é®å¼ç¸çï¼Business key equalityï¼</emphasis>æ¥å®ç° "
-"<literal>equals()</literal> å <literal>hashCode()</literal>ãä¸å¡é®å¼ç¸çç"
-"æææ¯ï¼<literal>equals()</literal> æ¹æ³ä»
ä»
æ¯è¾å½¢æä¸å¡é®çå±æ§ï¼å®è½å¨ç°å®"
-"ä¸çéæ è¯æ们çå®ä¾ï¼æ¯ä¸ä¸ª<emphasis>èªç¶ç</emphasis>åéç ï¼ã"
+msgid "It is recommended that you implement <literal>equals()</literal> and <literal>hashCode()</literal> using <emphasis>Business key equality</emphasis>. Business key equality means that the <literal>equals()</literal> method compares only the properties that form the business key. It is a key that would identify our instance in the real world (a <emphasis>natural</emphasis> candidate key):"
+msgstr "æ们建议使ç¨<emphasis>ä¸å¡é®å¼ç¸çï¼Business key equalityï¼</emphasis>æ¥å®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ãä¸å¡é®å¼ç¸ççæææ¯ï¼<literal>equals()</literal> æ¹æ³ä»
ä»
æ¯è¾å½¢æä¸å¡é®çå±æ§ï¼å®è½å¨ç°å®ä¸çéæ è¯æ们çå®ä¾ï¼æ¯ä¸ä¸ª<emphasis>èªç¶ç</emphasis>åéç ï¼ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A business key does not have to be as solid as a database primary key "
-"candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable "
-"or unique properties are usually good candidates for a business key."
-msgstr ""
-"注æï¼ä¸å¡é®ä¸å¿
åæ°æ®åºç主é®é£æ ·åºå®ä¸åï¼åè§ <xref linkend="
-"\"transactions-basics-identity\"/>ï¼ã对ä¸å¡é®èè¨ï¼ä¸å¯åæå¯ä¸çå±æ§æ¯ä¸é"
-"çéæ©ã "
+#, no-c-format
+msgid "A business key does not have to be as solid as a database primary key candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable or unique properties are usually good candidates for a business key."
+msgstr "注æï¼ä¸å¡é®ä¸å¿
åæ°æ®åºç主é®é£æ ·åºå®ä¸åï¼åè§ <xref linkend=\"transactions-basics-identity\"/>ï¼ã对ä¸å¡é®èè¨ï¼ä¸å¯åæå¯ä¸çå±æ§æ¯ä¸éçéæ©ã"
#. Tag: title
#, no-c-format
@@ -354,117 +191,54 @@
msgstr "注æ"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>The following features are currently considered experimental and "
-"may change in the near future.</emphasis>"
-msgstr ""
-"<emphasis>注æï¼ä»¥ä¸ç¹æ§å¨å½åå¤äºè¯éªé¶æ®µï¼å°æ¥å¯è½ä¼æååã</emphasis>"
+#, no-c-format
+msgid "<emphasis>The following features are currently considered experimental and may change in the near future.</emphasis>"
+msgstr "<emphasis>注æï¼ä»¥ä¸ç¹æ§å¨å½åå¤äºè¯éªé¶æ®µï¼å°æ¥å¯è½ä¼æååã</emphasis> "
#. Tag: para
#, no-c-format
-msgid ""
-"Persistent entities do not necessarily have to be represented as POJO "
-"classes or as JavaBean objects at runtime. Hibernate also supports dynamic "
-"models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) "
-"and the representation of entities as DOM4J trees. With this approach, you "
-"do not write persistent classes, only mapping files."
-msgstr ""
-"è¿è¡æçæä¹
åå®ä½æ²¡æå¿
è¦ä¸å®è¡¨ç¤ºä¸ºå POJO ç±»æ JavaBean 对象é£æ ·çå½¢å¼ã"
-"Hibernate ä¹æ¯æå¨æ模å ï¼å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç "
-"<literal>Map</literal>ï¼å象 DOM4J çæ 模åé£æ ·çå®ä½è¡¨ç¤ºã使ç¨è¿ç§æ¹æ³ï¼ä½ ä¸"
-"ç¨åæä¹
åç±»ï¼åªåæ å°æ件就è¡äºã "
+msgid "Persistent entities do not necessarily have to be represented as POJO classes or as JavaBean objects at runtime. Hibernate also supports dynamic models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) and the representation of entities as DOM4J trees. With this approach, you do not write persistent classes, only mapping files."
+msgstr "è¿è¡æçæä¹
åå®ä½æ²¡æå¿
è¦ä¸å®è¡¨ç¤ºä¸ºå POJO ç±»æ JavaBean 对象é£æ ·çå½¢å¼ãHibernate ä¹æ¯æå¨æ模å ï¼å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç <literal>Map</literal>ï¼å象 DOM4J çæ 模åé£æ ·çå®ä½è¡¨ç¤ºã使ç¨è¿ç§æ¹æ³ï¼ä½ ä¸ç¨åæä¹
åç±»ï¼åªåæ å°æ件就è¡äºã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"By default, Hibernate works in normal POJO mode. You can set a default "
-"entity representation mode for a particular <literal>SessionFactory</"
-"literal> using the <literal>default_entity_mode</literal> configuration "
-"option (see <xref linkend=\"configuration-optional-properties\" />)."
-msgstr ""
-"Hibernate é»è®¤å·¥ä½å¨æ®é POJO 模å¼ãä½ å¯ä»¥ä½¿ç¨é
ç½®é项 "
-"<literal>default_entity_mode</literal>ï¼ å¯¹ç¹å®ç <literal>SessionFactory</"
-"literal>ï¼è®¾ç½®ä¸ä¸ªé»è®¤çå®ä½è¡¨ç¤ºæ¨¡å¼ãï¼åè§ <xref linkend=\"configuration-"
-"optional-properties\"/>ï¼ "
+#, no-c-format
+msgid "By default, Hibernate works in normal POJO mode. You can set a default entity representation mode for a particular <literal>SessionFactory</literal> using the <literal>default_entity_mode</literal> configuration option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr "Hibernate é»è®¤å·¥ä½å¨æ®é POJO 模å¼ãä½ å¯ä»¥ä½¿ç¨é
ç½®é项 <literal>default_entity_mode</literal>ï¼ å¯¹ç¹å®ç <literal>SessionFactory</literal>ï¼è®¾ç½®ä¸ä¸ªé»è®¤çå®ä½è¡¨ç¤ºæ¨¡å¼ãï¼åè§ <xref linkend=\"configuration-optional-properties\"/>ï¼ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The following examples demonstrate the representation using <literal>Map</"
-"literal>s. First, in the mapping file an <literal>entity-name</literal> has "
-"to be declared instead of, or in addition to, a class name:"
-msgstr ""
-"ä¸é¢æ¯ç¨ <literal>Map</literal> æ¥è¡¨ç¤ºçä¾åãé¦å
ï¼å¨æ å°æ件ä¸ï¼è¦å£°æ "
-"<literal>entity-name</literal> æ¥ä»£æ¿ä¸ä¸ªç±»åï¼æä½ä¸ºä¸ç§éå±ï¼ã "
+msgid "The following examples demonstrate the representation using <literal>Map</literal>s. First, in the mapping file an <literal>entity-name</literal> has to be declared instead of, or in addition to, a class name:"
+msgstr "ä¸é¢æ¯ç¨ <literal>Map</literal> æ¥è¡¨ç¤ºçä¾åãé¦å
ï¼å¨æ å°æ件ä¸ï¼è¦å£°æ <literal>entity-name</literal> æ¥ä»£æ¿ä¸ä¸ªç±»åï¼æä½ä¸ºä¸ç§éå±ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Even though associations are declared using target class names, the target "
-"type of associations can also be a dynamic entity instead of a POJO."
-msgstr ""
-"注æï¼è½ç¶æ¯ç¨ç®æ ç±»åæ¥å£°æå
³èçï¼ä½æ¯å
³èçç®æ ç±»åé¤äºæ¯ POJO ä¹å¤ï¼ä¹å¯"
-"以æ¯ä¸ä¸ªå¨æçå®ä½ã "
+msgid "Even though associations are declared using target class names, the target type of associations can also be a dynamic entity instead of a POJO."
+msgstr "注æï¼è½ç¶æ¯ç¨ç®æ ç±»åæ¥å£°æå
³èçï¼ä½æ¯å
³èçç®æ ç±»åé¤äºæ¯ POJO ä¹å¤ï¼ä¹å¯ä»¥æ¯ä¸ä¸ªå¨æçå®ä½ã "
#. Tag: para
#, no-c-format
-msgid ""
-"After setting the default entity mode to <literal>dynamic-map</literal> for "
-"the <literal>SessionFactory</literal>, you can, at runtime, work with "
-"<literal>Map</literal>s of <literal>Map</literal>s:"
-msgstr ""
-"å¨ä½¿ç¨ <literal>dynamic-map</literal> 为 <literal>SessionFactory</literal> 设"
-"ç½®äºé»è®¤çå®ä½æ¨¡å¼ä¹åï¼å¯ä»¥å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç "
-"<literal>Map</literal>ï¼"
+msgid "After setting the default entity mode to <literal>dynamic-map</literal> for the <literal>SessionFactory</literal>, you can, at runtime, work with <literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr "å¨ä½¿ç¨ <literal>dynamic-map</literal> 为 <literal>SessionFactory</literal> 设置äºé»è®¤çå®ä½æ¨¡å¼ä¹åï¼å¯ä»¥å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç <literal>Map</literal>ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"One of the main advantages of dynamic mapping is quick turnaround time for "
-"prototyping, without the need for entity class implementation. However, you "
-"lose compile-time type checking and will likely deal with many exceptions at "
-"runtime. As a result of the Hibernate mapping, the database schema can "
-"easily be normalized and sound, allowing to add a proper domain model "
-"implementation on top later on."
-msgstr ""
-"å¨ææ å°ç好å¤æ¯ï¼ååæéè¦çæ¶é´å°äºï¼å 为ååä¸éè¦å®ç°å®ä½ç±»ãç¶èï¼ä½ æ "
-"æ³è¿è¡ç¼è¯æçç±»åæ£æ¥ï¼å¹¶å¯è½ç±æ¤ä¼å¤çå¾å¤çè¿è¡æå¼å¸¸ã幸äºæäº Hibernate "
-"æ å°ï¼å®ä½¿å¾æ°æ®åºç schema è½å®¹æçè§æ ¼åååçåï¼å¹¶å
许ç¨åå¨æ¤ä¹ä¸æ·»å å"
-"éçé¢å模åå®ç°ã "
+msgid "One of the main advantages of dynamic mapping is quick turnaround time for prototyping, without the need for entity class implementation. However, you lose compile-time type checking and will likely deal with many exceptions at runtime. As a result of the Hibernate mapping, the database schema can easily be normalized and sound, allowing to add a proper domain model implementation on top later on."
+msgstr "å¨ææ å°ç好å¤æ¯ï¼ååæéè¦çæ¶é´å°äºï¼å 为ååä¸éè¦å®ç°å®ä½ç±»ãç¶èï¼ä½ æ æ³è¿è¡ç¼è¯æçç±»åæ£æ¥ï¼å¹¶å¯è½ç±æ¤ä¼å¤çå¾å¤çè¿è¡æå¼å¸¸ã幸äºæäº Hibernate æ å°ï¼å®ä½¿å¾æ°æ®åºç schema è½å®¹æçè§æ ¼åååçåï¼å¹¶å
许ç¨åå¨æ¤ä¹ä¸æ·»å åéçé¢å模åå®ç°ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Entity representation modes can also be set on a per <literal>Session</"
-"literal> basis:"
+msgid "Entity representation modes can also be set on a per <literal>Session</literal> basis:"
msgstr "å®ä½è¡¨ç¤ºæ¨¡å¼ä¹è½å¨æ¯ä¸ª <literal>Session</literal> çåºç¡ä¸è®¾ç½®ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Please note that the call to <literal>getSession()</literal> using an "
-"<literal>EntityMode</literal> is on the <literal>Session</literal> API, not "
-"the <literal>SessionFactory</literal>. That way, the new <literal>Session</"
-"literal> shares the underlying JDBC connection, transaction, and other "
-"context information. This means you do not have to call <literal>flush()</"
-"literal> and <literal>close()</literal> on the secondary <literal>Session</"
-"literal>, and also leave the transaction and connection handling to the "
-"primary unit of work."
-msgstr ""
-"请注æï¼ç¨ <literal>EntityMode</literal> è°ç¨ <literal>getSession()</"
-"literal> æ¯å¨ <literal>Session</literal> ç API ä¸ï¼èä¸æ¯ "
-"<literal>SessionFactory</literal>ã è¿æ ·ï¼æ°ç <literal>Session</literal> å
±"
-"享åºå±ç JDBC è¿æ¥ï¼äºå¡ï¼åå
¶ä»çä¸ä¸æä¿¡æ¯ãè¿æå³çï¼ä½ ä¸éè¦å¨ç¬¬äºä¸ª "
-"<literal>Session</literal> ä¸è°ç¨ <literal>flush()</literal> å "
-"<literal>close()</literal>ï¼åæ ·çï¼æäºå¡åè¿æ¥çå¤ç交ç»åæ¥çå·¥ä½åå
ã "
+msgid "Please note that the call to <literal>getSession()</literal> using an <literal>EntityMode</literal> is on the <literal>Session</literal> API, not the <literal>SessionFactory</literal>. That way, the new <literal>Session</literal> shares the underlying JDBC connection, transaction, and other context information. This means you do not have to call <literal>flush()</literal> and <literal>close()</literal> on the secondary <literal>Session</literal>, and also leave the transaction and connection handling to the primary unit of work."
+msgstr "请注æï¼ç¨ <literal>EntityMode</literal> è°ç¨ <literal>getSession()</literal> æ¯å¨ <literal>Session</literal> ç API ä¸ï¼èä¸æ¯ <literal>SessionFactory</literal>ã è¿æ ·ï¼æ°ç <literal>Session</literal> å
±äº«åºå±ç JDBC è¿æ¥ï¼äºå¡ï¼åå
¶ä»çä¸ä¸æä¿¡æ¯ãè¿æå³çï¼ä½ ä¸éè¦å¨ç¬¬äºä¸ª <literal>Session</literal> ä¸è°ç¨ <literal>flush()</literal> å <literal>close()</literal>ï¼åæ ·çï¼æäºå¡åè¿æ¥çå¤ç交ç»åæ¥çå·¥ä½åå
ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"More information about the XML representation capabilities can be found in "
-"<xref linkend=\"xml\" />."
-msgstr "å
³äº XML 表示è½åçæ´å¤ä¿¡æ¯å¯ä»¥å¨ <xref linkend=\"xml\"/> ä¸æ¾å°ã "
+#, no-c-format
+msgid "More information about the XML representation capabilities can be found in <xref linkend=\"xml\" />."
+msgstr "å
³äº XML 表示è½åçæ´å¤ä¿¡æ¯å¯ä»¥å¨ <xref linkend=\"xml\"/> ä¸æ¾å°ã"
#. Tag: title
#, no-c-format
@@ -473,61 +247,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
-"responsible for managing a particular representation of a piece of data "
-"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
-"a given piece of data is thought of as a data structure, then a tuplizer is "
-"the thing that knows how to create such a data structure and how to extract "
-"values from and inject values into such a data structure. For example, for "
-"the POJO entity mode, the corresponding tuplizer knows how create the POJO "
-"through its constructor. It also knows how to access the POJO properties "
-"using the defined property accessors."
-msgstr ""
-"<literal>org.hibernate.tuple.Tuplizer</literal>ï¼ä»¥åå
¶åæ¥å£ï¼è´è´£æ ¹æ®ç»å®ç"
-"<literal>org.hibernate.EntityMode</literal>ï¼æ¥å¤ç°çææ°æ®ãå¦æç»å®ççææ°"
-"æ®è¢«è®¤ä¸ºå
¶æ¯ä¸ç§æ°æ®ç»æï¼\"tuplizer\" å°±æ¯ä¸ä¸ªç¥éå¦ä½å建è¿æ ·çæ°æ®ç»æï¼ä»¥"
-"åå¦ä½ç»è¿ä¸ªæ°æ®ç»æèµå¼çä¸è¥¿ãæ¯å¦è¯´ï¼å¯¹äº POJO è¿ç§ Entity Modeï¼å¯¹åºç "
-"tuplizer ç¥ééè¿å
¶æé æ¹æ³æ¥å建ä¸ä¸ª POJOï¼åéè¿å
¶å±æ§è®¿é®å¨æ¥è®¿é® POJO å±"
-"æ§ãæ两大类é«å± Tuplizerï¼åå«æ¯<literal>org.hibernate.tuple.entity."
-"EntityTuplizer</literal> å <literal>org.hibernate.tuple.entity."
-"ComponentTuplizer</literal> æ¥å£ã<literal>EntityTuplizer</literal> è´è´£ç®¡ç"
-"ä¸é¢æå°çå®ä½çå¥çº¦ï¼è <literal>ComponentTuplizer</literal> åæ¯é对ç»ä»¶"
-"çã "
+msgid "<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are responsible for managing a particular representation of a piece of data given that representation's <literal>org.hibernate.EntityMode</literal>. If a given piece of data is thought of as a data structure, then a tuplizer is the thing that knows how to create such a data structure and how to extract values from and inject values into such a data structure. For example, for the POJO entity mode, the corresponding tuplizer knows how create the POJO through its constructor. It also knows how to access the POJO properties using the defined property accessors."
+msgstr "<literal>org.hibernate.tuple.Tuplizer</literal>ï¼ä»¥åå
¶åæ¥å£ï¼è´è´£æ ¹æ®ç»å®ç<literal>org.hibernate.EntityMode</literal>ï¼æ¥å¤ç°çææ°æ®ãå¦æç»å®ççææ°æ®è¢«è®¤ä¸ºå
¶æ¯ä¸ç§æ°æ®ç»æï¼\"tuplizer\" å°±æ¯ä¸ä¸ªç¥éå¦ä½å建è¿æ ·çæ°æ®ç»æï¼ä»¥åå¦ä½ç»è¿ä¸ªæ°æ®ç»æèµå¼çä¸è¥¿ãæ¯å¦è¯´ï¼å¯¹äº POJO è¿ç§ Entity Modeï¼å¯¹åºç tuplizer ç¥ééè¿å
¶æé æ¹æ³æ¥å建ä¸ä¸ª POJOï¼åéè¿å
¶å±æ§è®¿é®å¨æ¥è®¿é® POJO å±æ§ãæ两大类é«å± Tuplizerï¼åå«æ¯<literal>org.hibernate.tuple.entity.EntityTuplizer</literal> å <literal>org.hibernate.tuple.entity.ComponentTuplizer</literal> æ¥å£ã<literal>EntityTuplizer</literal> è´è´£ç®¡çä¸é¢æå°çå®ä½çå¥çº¦ï¼è <literal>ComponentTuplizer</literal> åæ¯é对ç»ä»¶çã "
#. Tag: para
#, no-c-format
-msgid ""
-"There are two high-level types of Tuplizers, represented by the <literal>org."
-"hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate."
-"tuple.component.ComponentTuplizer</literal> interfaces. "
-"<literal>EntityTuplizer</literal>s are responsible for managing the above "
-"mentioned contracts in regards to entities, while "
-"<literal>ComponentTuplizer</literal>s do the same for components."
-msgstr ""
-"æ两ç§é«å±ç±»åç Tuplizerï¼åå«ç± <literal>org.hibernate.tuple.entity."
-"EntityTuplizer</literal> å <literal>org.hibernate.tuple.component."
-"ComponentTuplizer</literal> æ¥å£ä»£è¡¨ã<literal>EntityTuplizer</literal> è´è´£"
-"管çåå®ä½ç¸å
³çä¸è¿°å约ï¼è<literal>ComponentTuplizer</literal> åè´è´£ç»ä»¶ã"
+msgid "There are two high-level types of Tuplizers, represented by the <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for managing the above mentioned contracts in regards to entities, while <literal>ComponentTuplizer</literal>s do the same for components."
+msgstr "æ两ç§é«å±ç±»åç Tuplizerï¼åå«ç± <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> å <literal>org.hibernate.tuple.component.ComponentTuplizer</literal> æ¥å£ä»£è¡¨ã<literal>EntityTuplizer</literal> è´è´£ç®¡çåå®ä½ç¸å
³çä¸è¿°å约ï¼è<literal>ComponentTuplizer</literal> åè´è´£ç»ä»¶ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Users can also plug in their own tuplizers. Perhaps you require that a "
-"<literal>java.util.Map</literal> implementation other than <literal>java."
-"util.HashMap</literal> be used while in the dynamic-map entity-mode. Or "
-"perhaps you need to define a different proxy generation strategy than the "
-"one used by default. Both would be achieved by defining a custom tuplizer "
-"implementation. Tuplizer definitions are attached to the entity or component "
-"mapping they are meant to manage. Going back to the example of our customer "
-"entity:"
-msgstr ""
-"ç¨æ·ä¹å¯ä»¥æå
¥å
¶èªå®ä¹ç tuplizerãæ许æ¨éè¦ä¸ç§ä¸åäº dynamic-map entity-"
-"mode ä¸ä½¿ç¨ç <literal>java.util.HashMap</literal> ç <literal>java.util."
-"Map</literal> å®ç°ï¼æ许æ¨éè¦ä¸é»è®¤çç¥ä¸åç代ççæçç¥ï¼proxy generation "
-"strategyï¼ãéè¿èªå®ä¹ tuplizer å®ç°ï¼è¿ä¸¤ä¸ªç®æ æ¨é½å¯ä»¥è¾¾å°ãTuplizer å®ä¹è¢«"
-"éå å°å®ä»¬ææ管çç entity æè
component æ å°ä¸ãåå°æ们ç customer "
-"entity ä¾åï¼ "
+msgid "Users can also plug in their own tuplizers. Perhaps you require that a <literal>java.util.Map</literal> implementation other than <literal>java.util.HashMap</literal> be used while in the dynamic-map entity-mode. Or perhaps you need to define a different proxy generation strategy than the one used by default. Both would be achieved by defining a custom tuplizer implementation. Tuplizer definitions are attached to the entity or component mapping they are meant to manage. Going back to the example of our customer entity:"
+msgstr "ç¨æ·ä¹å¯ä»¥æå
¥å
¶èªå®ä¹ç tuplizerãæ许æ¨éè¦ä¸ç§ä¸åäº dynamic-map entity-mode ä¸ä½¿ç¨ç <literal>java.util.HashMap</literal> ç <literal>java.util.Map</literal> å®ç°ï¼æ许æ¨éè¦ä¸é»è®¤çç¥ä¸åç代ççæçç¥ï¼proxy generation strategyï¼ãéè¿èªå®ä¹ tuplizer å®ç°ï¼è¿ä¸¤ä¸ªç®æ æ¨é½å¯ä»¥è¾¾å°ãTuplizer å®ä¹è¢«éå å°å®ä»¬ææ管çç entity æè
component æ å°ä¸ãåå°æ们ç customer entity ä¾åï¼ "
#. Tag: title
#, no-c-format
@@ -536,60 +267,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
-"interface is a contract for resolving the entity name of a given entity "
-"instance. The interface defines a single method "
-"<methodname>resolveEntityName</methodname> which is passed the entity "
-"instance and is expected to return the appropriate entity name (null is "
-"allowed and would indicate that the resolver does not know how to resolve "
-"the entity name of the given entity instance). Generally speaking, an "
-"<interfacename>org.hibernate.EntityNameResolver</interfacename> is going to "
-"be most useful in the case of dynamic models. One example might be using "
-"proxied interfaces as your domain model. The hibernate test suite has an "
-"example of this exact style of usage under the <package>org.hibernate.test."
-"dynamicentity.tuplizer2</package>. Here is some of the code from that "
-"package for illustration."
-msgstr ""
-"<interfacename>org.hibernate.EntityNameResolver</interfacename> æ¥å£æ¯ä¸ä¸ªè§£"
-"æç»å®å®ä½å®ä¾çå®ä½å称çå约ãè¿ä¸ªæ¥å£å®ä¹äºä¸ä¸ªåä¸çæ¹æ³ "
-"<methodname>resolveEntityName</methodname>ï¼å®ä¼ éå®ä½å®ä¾å¹¶é¢æè¿ååéçå®"
-"ä½å称ï¼null ææ解æå¨ä¸ç¥éå¦ä½è§£æç»å®å®ä½å®ä¾çå®ä½å称ï¼ãä¸è¬è¯´æ¥ï¼"
-"<interfacename>org.hibernate.EntityNameResolver</interfacename> å¨å¨æ模åé"
-"æ为æç¨ãå
¶ä¸çä¾åæ¯æ代çæ¥å£ç¨ä½ä½ çå模åãHibernate Test Suite å¨ "
-"<package>org.hibernate.test.dynamicentity.tuplizer2</package> ä¸æå
·æå®å
¨ç¸"
-"åé£æ ¼çä¾åãä¸é¢æ¯è¯¥å
éçä¸äºä»£ç ï¼"
+msgid "The <interfacename>org.hibernate.EntityNameResolver</interfacename> interface is a contract for resolving the entity name of a given entity instance. The interface defines a single method <methodname>resolveEntityName</methodname> which is passed the entity instance and is expected to return the appropriate entity name (null is allowed and would indicate that the resolver does not know how to resolve the entity name of the given entity instance). Generally speaking, an <interfacename>org.hibernate.EntityNameResolver</interfacename> is going to be most useful in the case of dynamic models. One example might be using proxied interfaces as your domain model. The hibernate test suite has an example of this exact style of usage under the <package>org.hibernate.test.dynamicentity.tuplizer2</package>. Here is some of the code from that package for illustration."
+msgstr "<interfacename>org.hibernate.EntityNameResolver</interfacename> æ¥å£æ¯ä¸ä¸ªè§£æç»å®å®ä½å®ä¾çå®ä½å称çå约ãè¿ä¸ªæ¥å£å®ä¹äºä¸ä¸ªåä¸çæ¹æ³ <methodname>resolveEntityName</methodname>ï¼å®ä¼ éå®ä½å®ä¾å¹¶é¢æè¿ååéçå®ä½å称ï¼null ææ解æå¨ä¸ç¥éå¦ä½è§£æç»å®å®ä½å®ä¾çå®ä½å称ï¼ãä¸è¬è¯´æ¥ï¼<interfacename>org.hibernate.EntityNameResolver</interfacename> å¨å¨æ模åéæ为æç¨ãå
¶ä¸çä¾åæ¯æ代çæ¥å£ç¨ä½ä½ çå模åãHibernate Test Suite å¨ <package>org.hibernate.test.dynamicentity.tuplizer2</package> ä¸æå
·æå®å
¨ç¸åé£æ ¼çä¾åãä¸é¢æ¯è¯¥å
éçä¸äºä»£ç ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"In order to register an <interfacename>org.hibernate.EntityNameResolver</"
-"interfacename> users must either:"
-msgstr ""
-"为äºæ³¨å <interfacename>org.hibernate.EntityNameResolver</interfacename>ï¼ç¨"
-"æ·å¿
é¡»ï¼"
+msgid "In order to register an <interfacename>org.hibernate.EntityNameResolver</interfacename> users must either:"
+msgstr "为äºæ³¨å <interfacename>org.hibernate.EntityNameResolver</interfacename>ï¼ç¨æ·å¿
é¡»ï¼"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
-"link>, implementing the <methodname>getEntityNameResolvers</methodname> "
-"method."
-msgstr ""
-"å®ç°èªå®ä¹ç <xref linkend=\"persistent-classes-tuplizers\"/> 并å®ç° "
-"<methodname>getEntityNameResolvers</methodname> æ¹æ³ã "
+#, no-c-format
+msgid "Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</link>, implementing the <methodname>getEntityNameResolvers</methodname> method."
+msgstr "å®ç°èªå®ä¹ç <link linkend=\"persistent-classes-tuplizers\">Tuplizer</link> 并å®ç° <methodname>getEntityNameResolvers</methodname> æ¹æ³ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"
-"classname> (which is the implementation class for <interfacename>org."
-"hibernate.SessionFactory</interfacename>) using the "
-"<methodname>registerEntityNameResolver</methodname> method."
-msgstr ""
-"ç¨ <methodname>registerEntityNameResolver</methodname> æ¹æ³æ³¨åå° "
-"<classname>org.hibernate.impl.SessionFactoryImpl</classname>ï¼å®æ¯ "
-"<interfacename>org.hibernate.SessionFactory</interfacename> çå®ç°ç±»ï¼ã"
+msgid "Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</classname> (which is the implementation class for <interfacename>org.hibernate.SessionFactory</interfacename>) using the <methodname>registerEntityNameResolver</methodname> method."
+msgstr "ç¨ <methodname>registerEntityNameResolver</methodname> æ¹æ³æ³¨åå° <classname>org.hibernate.impl.SessionFactoryImpl</classname>ï¼å®æ¯ <interfacename>org.hibernate.SessionFactory</interfacename> çå®ç°ç±»ï¼ã"
#~ msgid ""
#~ "<![CDATA[package eg;\n"
@@ -749,7 +443,6 @@
#~ " kittens.add(kitten);\n"
#~ " }\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[package eg;\n"
#~ "\n"
@@ -776,7 +469,6 @@
#~ " this.name=name;\n"
#~ " }\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[public class Cat {\n"
#~ "\n"
@@ -825,7 +517,6 @@
#~ " }\n"
#~ "\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[<hibernate-mapping>\n"
#~ "\n"
@@ -894,7 +585,6 @@
#~ " </class>\n"
#~ " \n"
#~ "</hibernate-mapping>]]>"
-
#~ msgid ""
#~ "<![CDATA[Session s = openSession();\n"
#~ "Transaction tx = s.beginTransaction();\n"
@@ -939,7 +629,6 @@
#~ "\n"
#~ "tx.commit();\n"
#~ "s.close();]]>"
-
#~ msgid ""
#~ "<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode."
#~ "MAP);\n"
@@ -968,7 +657,6 @@
#~ "...\n"
#~ "// Continue on pojoSession\n"
#~ "]]>"
-
#~ msgid ""
#~ "<![CDATA[<hibernate-mapping>\n"
#~ " <class entity-name=\"Customer\">\n"
@@ -1043,7 +731,6 @@
#~ " }\n"
#~ " }\n"
#~ "}]]>"
-
#~ msgid ""
#~ "/**\n"
#~ " * A very trivial JDK Proxy InvocationHandler implementation where we "
@@ -1302,3 +989,4 @@
#~ "\n"
#~ " ...\n"
#~ "}"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/portability.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/portability.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/portability.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-03-12T00:03:47\n"
-"PO-Revision-Date: 2010-01-11 10:57+1000\n"
+"PO-Revision-Date: 2010-03-16 10:10+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -26,21 +26,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"One of the selling points of Hibernate (and really Object/Relational Mapping "
-"as a whole) is the notion of database portability. This could mean an "
-"internal IT user migrating from one database vendor to another, or it could "
-"mean a framework or deployable application consuming Hibernate to "
-"simultaneously target multiple database products by their users. Regardless "
-"of the exact scenario, the basic idea is that you want Hibernate to help you "
-"run against any number of databases without changes to your code, and "
-"ideally without any changes to the mapping metadata."
-msgstr ""
-"Hibernateï¼å®é
ä¸æ¯æ´ä¸ª Object/Relational Mappingï¼çä¸ä¸ªåç¹æ¯æ°æ®åºç移æ¤"
-"æ§ãè¿æå³çå
é¨ç IT ç¨æ·å¯ä»¥æ¹åæ°æ®åºä¾åºåï¼æè
å¯é¨ç½²çåºç¨ç¨åº/æ¡æ¶ä½¿"
-"ç¨ Hibernate æ¥åæ¶ä½¿ç¨å¤ä¸ªæ°æ®åºäº§åãä¸èèå
·ä½çåºç¨æ
æ¯ï¼è¿éçåºæ¬æ¦å¿µ"
-"æ¯ Hibernate å¯å¸®å©ä½ è¿è¡å¤ç§æ°æ®åºèæ éä¿®æ¹ä½ ç代ç ï¼çæ³æ
åµä¸çè³ä¸ç¨ä¿®æ¹"
-"æ å°å
æ°æ®ã"
+msgid "One of the selling points of Hibernate (and really Object/Relational Mapping as a whole) is the notion of database portability. This could mean an internal IT user migrating from one database vendor to another, or it could mean a framework or deployable application consuming Hibernate to simultaneously target multiple database products by their users. Regardless of the exact scenario, the basic idea is that you want Hibernate to help you run against any number of databases without changes to your code, and ideally without any changes to the mapping metadata."
+msgstr "Hibernateï¼å®é
ä¸æ¯æ´ä¸ª Object/Relational Mappingï¼çä¸ä¸ªåç¹æ¯æ°æ®åºç移æ¤æ§ãè¿æå³çå
é¨ç IT ç¨æ·å¯ä»¥æ¹åæ°æ®åºä¾åºåï¼æè
å¯é¨ç½²çåºç¨ç¨åº/æ¡æ¶ä½¿ç¨ Hibernate æ¥åæ¶ä½¿ç¨å¤ä¸ªæ°æ®åºäº§åãä¸èèå
·ä½çåºç¨æ
æ¯ï¼è¿éçåºæ¬æ¦å¿µæ¯ Hibernate å¯å¸®å©ä½ è¿è¡å¤ç§æ°æ®åºèæ éä¿®æ¹ä½ ç代ç ï¼çæ³æ
åµä¸çè³ä¸ç¨ä¿®æ¹æ å°å
æ°æ®ã"
#. Tag: title
#, no-c-format
@@ -49,21 +36,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The first line of portability for Hibernate is the dialect, which is a "
-"specialization of the <classname>org.hibernate.dialect.Dialect</classname> "
-"contract. A dialect encapsulates all the differences in how Hibernate must "
-"communicate with a particular database to accomplish some task like getting "
-"a sequence value or structuring a SELECT query. Hibernate bundles a wide "
-"range of dialects for many of the most popular databases. If you find that "
-"your particular database is not among them, it is not terribly difficult to "
-"write your own."
-msgstr ""
-"Hibernate ç移æ¤æ§çé¦è¦é®é¢æ¯æ¹è¨ï¼dialectï¼ï¼ä¹å°±æ¯ <classname>org."
-"hibernate.dialect.Dialect</classname> å约çå
·ä½å®ä¾ãæ¹è¨å°è£
äº Hibernate å"
-"ç¹å®æ°æ®åºé讯以å®ææäºä»»å¡å¦è·ååºåå¼ææ建 SELECT æ¥è¯¢ççææå·®å¼ã"
-"Hibernate æç»äºç¨äºè®¸å¤æ常ç¨çæ°æ®åºçæ¹è¨ãå¦æä½ åç°èªå·±ä½¿ç¨çæ°æ®åºä¸å¨"
-"å
¶ä¸ï¼ç¼åèªå®ä¹çæ¹è¨ä¹ä¸æ¯å¾å°é¾çäºæ
ã"
+msgid "The first line of portability for Hibernate is the dialect, which is a specialization of the <classname>org.hibernate.dialect.Dialect</classname> contract. A dialect encapsulates all the differences in how Hibernate must communicate with a particular database to accomplish some task like getting a sequence value or structuring a SELECT query. Hibernate bundles a wide range of dialects for many of the most popular databases. If you find that your particular database is not among them, it is not terribly difficult to write your own."
+msgstr "Hibernate ç移æ¤æ§çé¦è¦é®é¢æ¯æ¹è¨ï¼dialectï¼ï¼ä¹å°±æ¯ <classname>org.hibernate.dialect.Dialect</classname> å约çå
·ä½å®ä¾ãæ¹è¨å°è£
äº Hibernate åç¹å®æ°æ®åºé讯以å®ææäºä»»å¡å¦è·ååºåå¼ææ建 SELECT æ¥è¯¢ççææå·®å¼ãHibernate æç»äºç¨äºè®¸å¤æ常ç¨çæ°æ®åºçæ¹è¨ãå¦æä½ åç°èªå·±ä½¿ç¨çæ°æ®åºä¸å¨å
¶ä¸ï¼ç¼åèªå®ä¹çæ¹è¨ä¹ä¸æ¯å¾å°é¾çäºæ
ã"
#. Tag: title
#, no-c-format
@@ -72,82 +46,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Originally, Hibernate would always require that users specify which dialect "
-"to use. In the case of users looking to simultaneously target multiple "
-"databases with their build that was problematic. Generally this required "
-"their users to configure the Hibernate dialect or defining their own method "
-"of setting that value."
-msgstr ""
-"æå¼å§ï¼Hibernate æ»æ¯è¦æ±ç¨æ·æå®æ使ç¨çæ¹è¨ï¼dialectï¼ãå¨ç¨æ·å¸æåæ¶ä½¿ç¨"
-"å¤ä¸ªæ°æ®åºæ¶å°±ä¼åºç°é®é¢ãé常è¿è¦æ±ç¨æ·é
ç½® Hibernate æ¹è¨æè
å®ä¹èªå·±è®¾ç½®è¿"
-"个å¼çæ¹æ³ã"
+msgid "Originally, Hibernate would always require that users specify which dialect to use. In the case of users looking to simultaneously target multiple databases with their build that was problematic. Generally this required their users to configure the Hibernate dialect or defining their own method of setting that value."
+msgstr "æå¼å§ï¼Hibernate æ»æ¯è¦æ±ç¨æ·æå®æ使ç¨çæ¹è¨ï¼dialectï¼ãå¨ç¨æ·å¸æåæ¶ä½¿ç¨å¤ä¸ªæ°æ®åºæ¶å°±ä¼åºç°é®é¢ãé常è¿è¦æ±ç¨æ·é
ç½® Hibernate æ¹è¨æè
å®ä¹èªå·±è®¾ç½®è¿ä¸ªå¼çæ¹æ³ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Starting with version 3.2, Hibernate introduced the notion of automatically "
-"detecting the dialect to use based on the <interfacename>java.sql."
-"DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql."
-"Connection</interfacename> to that database. This was much better, expect "
-"that this resolution was limited to databases Hibernate know about ahead of "
-"time and was in no way configurable or overrideable."
-msgstr ""
-"ä»çæ¬ 3.2 å¼å§ï¼Hibernate å¼å
¥äºæ¹è¨çèªå¨æ£æµï¼å®åºäºä»è¯¥æ°æ®åºç "
-"<interfacename>java.sql.Connection</interfacename> ä¸è·å¾ç "
-"<interfacename>java.sql.DatabaseMetaData</interfacename>ãè¿æ¯ä¸ä¸ªæ´å¥½çæ¹"
-"æ¡ï¼ä½å®å±éäº Hibernate å·²ç¥çæ°æ®åºä¸æ æ³è¿è¡é
ç½®åè¦çã"
+msgid "Starting with version 3.2, Hibernate introduced the notion of automatically detecting the dialect to use based on the <interfacename>java.sql.DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql.Connection</interfacename> to that database. This was much better, expect that this resolution was limited to databases Hibernate know about ahead of time and was in no way configurable or overrideable."
+msgstr "ä»çæ¬ 3.2 å¼å§ï¼Hibernate å¼å
¥äºæ¹è¨çèªå¨æ£æµï¼å®åºäºä»è¯¥æ°æ®åºç <interfacename>java.sql.Connection</interfacename> ä¸è·å¾ç <interfacename>java.sql.DatabaseMetaData</interfacename>ãè¿æ¯ä¸ä¸ªæ´å¥½çæ¹æ¡ï¼ä½å®å±éäº Hibernate å·²ç¥çæ°æ®åºä¸æ æ³è¿è¡é
ç½®åè¦çã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Starting with version 3.3, Hibernate has a fare more powerful way to "
-"automatically determine which dialect to should be used by relying on a "
-"series of delegates which implement the <interfacename>org.hibernate.dialect."
-"resolver.DialectResolver</interfacename> which defines only a single method:"
-"<programlisting role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData "
-"metaData) throws JDBCConnectionException</programlisting>. The basic "
-"contract here is that if the resolver 'understands' the given database "
-"metadata then it returns the corresponding Dialect; if not it returns null "
-"and the process continues to the next resolver. The signature also "
-"identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</"
-"exceptionname> as possibly being thrown. A JDBCConnectionException here is "
-"interpreted to imply a \"non transient\" (aka non-recoverable) connection "
-"problem and is used to indicate an immediate stop to resolution attempts. "
-"All other exceptions result in a warning and continuing on to the next "
-"resolver."
-msgstr ""
-"ä»çæ¬ 3.3 å¼å§ï¼Hibernate æäºæ´ä¸ºå¼ºå¤§çèªå¨å³å®åºè¯¥ä½¿ç¨åªä¸ªæ¹è¨çæ¹æ³ï¼è¿æ ¹"
-"æ®ä¸ç³»åå®ç° <interfacename>org.hibernate.dialect.resolver.DialectResolver</"
-"interfacename> æ¥å£ç代çï¼å®ä»¬åªå®ä¹ä¸ä¸ªæ¹æ³ï¼<programlisting>public "
-"Dialect resolveDialect(DatabaseMetaData metaData) throws "
-"JDBCConnectionException</programlisting>ãè¿éçåºæ¬å约æ¯å¦æ解æè
"
-"ï¼resolverï¼âç解âç»ç¹æ°æ®åºçå
æ°æ®å¹¶è¿å对åºçæ¹è¨ï¼å¦åè¿å null 并使ç¨ä¸"
-"ä¸ä¸ªè§£æè
ãè¿ä¸ªç¾åä¹æå®å¯è½æåºçå¼å¸¸ <exceptionname>org.hibernate."
-"exception.JDBCConnectionException</exceptionname>ãè¿éç "
-"JDBCConnectionException 被认为æ¯âéç¬æ¶çâï¼ä¹å°±æ¯ä¸å¯æ¢å¤çï¼è¿æ¥é®é¢ä¸æ示"
-"ç«å³ç»æ¢è§£æãææå
¶ä»çå¼å¸¸é½å¯¼è´è¦åååºå¹¶ä½¿ç¨ä¸ä¸ä¸ªè§£æè
ã\""
+#, no-c-format
+msgid "Starting with version 3.3, Hibernate has a fare more powerful way to automatically determine which dialect to should be used by relying on a series of delegates which implement the <interfacename>org.hibernate.dialect.resolver.DialectResolver</interfacename> which defines only a single method:<programlisting role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>. The basic contract here is that if the resolver 'understands' the given database metadata then it returns the corresponding Dialect; if not it returns null and the process continues to the next resolver. The signature also identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname> as possibly being thrown. A JDBCConnectionException here is interpreted to imply a \"non transient\" (aka non-recoverable) connection problem and is used to indicate an immediate stop to resolution attempts. All other exceptions result in!
a warning and continuing on to the next resolver."
+msgstr "ä»çæ¬ 3.3 å¼å§ï¼Hibernate æäºæ´ä¸ºå¼ºå¤§çèªå¨å³å®åºè¯¥ä½¿ç¨åªä¸ªæ¹è¨çæ¹æ³ï¼è¿æ ¹æ®ä¸ç³»åå®ç° <interfacename>org.hibernate.dialect.resolver.DialectResolver</interfacename> æ¥å£ç代çï¼å®ä»¬åªå®ä¹ä¸ä¸ªæ¹æ³ï¼<programlisting role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>ãè¿éçåºæ¬å约æ¯å¦æ解æè
ï¼resolverï¼âç解âç»ç¹æ°æ®åºçå
æ°æ®å¹¶è¿å对åºçæ¹è¨ï¼å¦åè¿å null 并使ç¨ä¸ä¸ä¸ªè§£æè
ãè¿ä¸ªç¾åä¹æå®å¯è½æåºçå¼å¸¸ <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname>ãè¿éç JDBCConnectionException 被认为æ¯âéç¬æ¶çâï¼ä¹å°±æ¯ä¸å¯æ¢å¤çï¼è¿æ¥é®é¢ä¸æ示ç«å³ç»æ¢è§£æãææå
¶ä»çå¼å¸¸é½å¯¼è´è¦åååºå¹¶ä½¿ç¨ä¸ä¸ä¸ªè§£æè
ã\""
#. Tag: para
#, no-c-format
-msgid ""
-"The cool part about these resolvers is that users can also register their "
-"own custom resolvers which will be processed ahead of the built-in Hibernate "
-"ones. This might be useful in a number of different situations: it allows "
-"easy integration for auto-detection of dialects beyond those shipped with "
-"HIbernate itself; it allows you to specify to use a custom dialect when a "
-"particular database is recognized; etc. To register one or more resolvers, "
-"simply specify them (seperated by commas, tabs or spaces) using the "
-"'hibernate.dialect_resolvers' configuration setting (see the "
-"<constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate."
-"cfg.Environment</classname>)."
-msgstr ""
-"è¿äºè§£æè
ææ£çåè½æ¯ç¨æ·ä¹å¯ä»¥æ³¨åèªå®ä¹ç解æè
ï¼å®ä»¬å°å¨å
ç½®ç解æè
ä¹å"
-"被è°ç¨ãå¨è®¸å¤æ
åµä¸è¿å¯è½å¾æç¨ï¼å®å¯ä»¥è½»æå°éæå
ç½®æ¹è¨ä¹å¤çæ¹è¨çèªå¨æ£"
-"æµï¼å®è®©ä½ å¯ä»¥ä½¿ç¨èªå®ä¹çæ¹è¨çãè¦æ³¨åä¸ä¸ªæå¤ä¸ªè§£æè
ï¼åªè¦ç¨ 'hibernate."
-"dialect_resolvers' é
置设置æå®å®ä»¬ï¼ç±éå·ãå¶è¡¨ç¬¦æç©ºæ ¼éå¼ï¼å°±å¯ä»¥äºï¼è¯·å"
-"è <classname>org.hibernate.cfg.Environment</classname> ä¸ç "
-"<constant>DIALECT_RESOLVERS</constant>ï¼ã"
+msgid "The cool part about these resolvers is that users can also register their own custom resolvers which will be processed ahead of the built-in Hibernate ones. This might be useful in a number of different situations: it allows easy integration for auto-detection of dialects beyond those shipped with HIbernate itself; it allows you to specify to use a custom dialect when a particular database is recognized; etc. To register one or more resolvers, simply specify them (seperated by commas, tabs or spaces) using the 'hibernate.dialect_resolvers' configuration setting (see the <constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate.cfg.Environment</classname>)."
+msgstr "è¿äºè§£æè
ææ£çåè½æ¯ç¨æ·ä¹å¯ä»¥æ³¨åèªå®ä¹ç解æè
ï¼å®ä»¬å°å¨å
ç½®ç解æè
ä¹å被è°ç¨ãå¨è®¸å¤æ
åµä¸è¿å¯è½å¾æç¨ï¼å®å¯ä»¥è½»æå°éæå
ç½®æ¹è¨ä¹å¤çæ¹è¨çèªå¨æ£æµï¼å®è®©ä½ å¯ä»¥ä½¿ç¨èªå®ä¹çæ¹è¨çãè¦æ³¨åä¸ä¸ªæå¤ä¸ªè§£æè
ï¼åªè¦ç¨ 'hibernate.dialect_resolvers' é
置设置æå®å®ä»¬ï¼ç±éå·ãå¶è¡¨ç¬¦æç©ºæ ¼éå¼ï¼å°±å¯ä»¥äºï¼è¯·åè <classname>org.hibernate.cfg.Environment</classname> ä¸ç <constant>DIALECT_RESOLVERS</constant>ï¼ã"
#. Tag: title
#, no-c-format
@@ -155,91 +70,44 @@
msgstr "æ è¯ç¬¦ççæ"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"When considering portability between databases, another important decision "
-"is selecting the identifier generation stratagy you want to use. Originally "
-"Hibernate provided the <emphasis>native</emphasis> generator for this "
-"purpose, which was intended to select between a <emphasis>sequence</"
-"emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> "
-"strategy depending on the capability of the underlying database. However, an "
-"insidious implication of this approach comes about when targtetting some "
-"databases which support <emphasis>identity</emphasis> generation and some "
-"which do not. <emphasis>identity</emphasis> generation relies on the SQL "
-"definition of an IDENTITY (or auto-increment) column to manage the "
-"identifier value; it is what is known as a post-insert generation strategy "
-"becauase the insert must actually happen before we can know the identifier "
-"value. Because Hibernate relies on this identifier value to uniquely "
-"reference entities within a persistence context it must then issue the "
-"insert immediately when the users requests the entitiy be associated with "
-"the session (like via save() e.g.) regardless of current transactional "
-"semantics."
-msgstr ""
-"å½èèæ°æ®åºç移æ¤æ§æ¶ï¼å¦å¤ä¸ä¸ªéè¦çèéæ¯éæ©æ è¯ç¬¦çæçç¥ãHibernate å"
-"å
æä¾ç <emphasis>native</emphasis> çæå¨çç®çæ¯æ ¹æ®åºå±æ°æ®åºçè½åå¨ "
-"<emphasis>sequence</emphasis>ã<emphasis>identity</emphasis> æ "
-"<emphasis>table</emphasis> çç¥é´è¿è¡éæ©ãç¶èï¼è¿ä¸ªæ¹æ³ä¸ä¸ªæ½å¨çé®é¢æ¯æäº"
-"æ°æ®åºæ¯æ<emphasis>æ è¯ç¬¦ï¼identityï¼</emphasis>çæèæäºåä¸æ¯æã"
-"<emphasis>æ è¯ç¬¦ï¼identityï¼</emphasis> çæä¾èµäºç®¡çæ è¯ç¬¦å¼ç IDENTITY"
-"ï¼æ auto-incrementï¼å段ç SQL å®ä¹ãå®ä¹æ为 post-insert çæçç¥ï¼å 为 "
-"insert å¿
é¡»å¨ç¥éæ è¯ç¬¦å¼åæè½å®é
åçãå 为 Hibernate ä¾èµäºè¿ä¸ªæ è¯ç¬¦å¼æ¥"
-"å¯ä¸å°å¼ç¨æä¹
æ§ä¸ä¸æéçå®ä½ï¼å½ç¨æ·è¯·æ±åä¼è¯ç¸å
³èçå®ä½æ¶ï¼å®å¿
é¡»ç«å³æ§"
-"è¡ insert è¯å¥èä¸ç®¡å½åçäºå¡æ§è¯ä¹ãåºå±çé®é¢æ¯åºç¨ç¨åºçè¯ä¹å¨è¿äºæ
åµä¸"
-"èªèº«ä¹ä¼åçæ¹åã"
+#, no-c-format
+msgid "When considering portability between databases, another important decision is selecting the identifier generation stratagy you want to use. Originally Hibernate provided the <emphasis>native</emphasis> generator for this purpose, which was intended to select between a <emphasis>sequence</emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> strategy depending on the capability of the underlying database. However, an insidious implication of this approach comes about when targtetting some databases which support <emphasis>identity</emphasis> generation and some which do not. <emphasis>identity</emphasis> generation relies on the SQL definition of an IDENTITY (or auto-increment) column to manage the identifier value; it is what is known as a post-insert generation strategy becauase the insert must actually happen before we can know the identifier value. Because Hibernate relies on this identifier value to uniquely reference entities within a persisten!
ce context it must then issue the insert immediately when the users requests the entitiy be associated with the session (like via save() e.g.) regardless of current transactional semantics."
+msgstr "å½èèæ°æ®åºç移æ¤æ§æ¶ï¼å¦å¤ä¸ä¸ªéè¦çèéæ¯éæ©æ è¯ç¬¦çæçç¥ãHibernate åå
æä¾ç <emphasis>native</emphasis> çæå¨çç®çæ¯æ ¹æ®åºå±æ°æ®åºçè½åå¨ <emphasis>sequence</emphasis>ã<emphasis>identity</emphasis> æ <emphasis>table</emphasis> çç¥é´è¿è¡éæ©ãç¶èï¼è¿ä¸ªæ¹æ³ä¸ä¸ªæ½å¨çé®é¢æ¯æäºæ°æ®åºæ¯æ<emphasis>æ è¯ç¬¦ï¼identityï¼</emphasis>çæèæäºåä¸æ¯æã<emphasis>æ è¯ç¬¦ï¼identityï¼</emphasis> çæä¾èµäºç®¡çæ è¯ç¬¦å¼ç IDENTITYï¼æ auto-incrementï¼å段ç SQL å®ä¹ãå®ä¹æ为 post-insert çæçç¥ï¼å 为 insert å¿
é¡»å¨ç¥éæ è¯ç¬¦å¼åæè½å®é
åçãå 为 Hibernate ä¾èµäºè¿ä¸ªæ è¯ç¬¦å¼æ¥å¯ä¸å°å¼ç¨æä¹
æ§ä¸ä¸æéçå®ä½ï¼å½ç¨æ·è¯·æ±åä¼è¯ç¸å
³èçå®ä½æ¶ï¼å¦éè¿ save()ï¼ï¼å®å¿
é¡»ç«å³æ§è¡ insert è¯å¥èä¸ç®¡å½åçäºå¡æ§è¯ä¹ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate was changed slightly once the implication of this was better "
-"understood so that the insert is delayed in cases where that is feasible."
-msgstr "Hibernate å·²ç»è¿è¡äºæ¹è¿ï¼æ以å¨å¯è¡æ¶è¿ç§æå
¥ä¼è¢«å»¶è¿ã"
+#, no-c-format
+msgid "Hibernate was changed slightly once the implication of this was better understood so that the insert is delayed in cases where that is feasible."
+msgstr "Hibernate å·²ç»è¿è¡äºè½»å¾®æ¹è¿ï¼æ以å¨å¯è¡æ¶è¿ç§æå
¥ä¼è¢«å»¶è¿ã"
#. Tag: note
#, no-c-format
-msgid ""
-"The underlying issue is that the actual semanctics of the application itself "
-"changes in these cases."
-msgstr ""
+msgid "The underlying issue is that the actual semanctics of the application itself changes in these cases."
+msgstr "åºå±çé®é¢æ¯è¿äºä¾åéåºç¨ç¨åºèªèº«çå®é
模å¼çæ¹åã"
#. Tag: para
#, no-c-format
-msgid ""
-"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
-"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
-"targetting portability in a much different way."
-msgstr ""
-"ä» 3.2.3 çæ¬å¼å§ï¼Hibernate 带æä¸å¥ <ulink url=\"http://in.relation."
-"to/2082.lace\">enhanced</ulink> æ è¯ç¬¦çæå¨ï¼å®ä»¥å¾ä¸åçæ¹å¼å®ç°ç§»æ¤æ§ã"
+msgid "Starting with version 3.2.3, Hibernate comes with a set of <ulink url=\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators targetting portability in a much different way."
+msgstr "ä» 3.2.3 çæ¬å¼å§ï¼Hibernate 带æä¸å¥ <ulink url=\"http://in.relation.to/2082.lace\">enhanced</ulink> æ è¯ç¬¦çæå¨ï¼å®ä»¥å¾ä¸åçæ¹å¼å®ç°ç§»æ¤æ§ã"
#. Tag: para
#, no-c-format
-msgid ""
-"There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+msgid "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
msgstr "ç¹å«æ¯ä¸¤ä¸ªæç»ç <emphasis>enhanced</emphasis> çæå¨ï¼"
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
-msgstr ""
-"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+msgstr "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
#. Tag: note
#, no-c-format
-msgid ""
-"The idea behind these generators is to port the actual semantics of the "
-"identifer value generation to the different databases. For example, the "
-"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> "
-"mimics the behavior of a sequence on databases which do not support "
-"sequences by using a table."
-msgstr ""
-"è¿äºçæå¨èåçæ¦å¿µæ¯ææ è¯ç¬¦å¼çæçå®é
æ
æ¯ç§»æ¤å°ä¸åçæ°æ®åºéãä¾å¦ï¼"
-"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> éè¿"
-"使ç¨è¡¨æ¥æ¨¡æä¸æ¯æåºåï¼sequencesï¼çæ°æ®åºä¸çåºåè¡ä¸ºã"
+msgid "The idea behind these generators is to port the actual semantics of the identifer value generation to the different databases. For example, the <classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> mimics the behavior of a sequence on databases which do not support sequences by using a table."
+msgstr "è¿äºçæå¨èåçæ¦å¿µæ¯ææ è¯ç¬¦å¼çæçå®é
æ
æ¯ç§»æ¤å°ä¸åçæ°æ®åºéãä¾å¦ï¼<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> éè¿ä½¿ç¨è¡¨æ¥æ¨¡æä¸æ¯æåºåï¼sequencesï¼çæ°æ®åºä¸çåºåè¡ä¸ºã"
#. Tag: title
#, no-c-format
@@ -248,47 +116,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"This is an area in Hibernate in need of improvement. In terms of portability "
-"concerns, this function handling currently works pretty well from HQL; "
-"however, it is quite lacking in all other aspects."
-msgstr ""
+msgid "This is an area in Hibernate in need of improvement. In terms of portability concerns, this function handling currently works pretty well from HQL; however, it is quite lacking in all other aspects."
+msgstr "è¿æ¯ Hibernate éè¦æé«çä¸ä¸ªé¢åãä»å¯ç§»æ¤æ§æ¥è¯´ï¼è¿ä¸ªåè½å¯ä»¥å¾å¥½å°å¤ç HQL çå
容ï¼ä½å¨å
¶ä»æ¹é¢å°±æææ¬ ç¼ºã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"SQL functions can be referenced in many ways by users. However, not all "
-"databases support the same set of functions. Hibernate, provides a means of "
-"mapping a <emphasis>logical</emphasis> function name to a delegate which "
-"knows how to render that particular function, perhaps even using a totally "
-"different physical function call."
-msgstr ""
-"ç¨æ·å¯ä»¥ä»¥å¤ç§æ¹å¼å¼ç¨ SQL å½æ°ãç¶èï¼ä¸æ¯ææçæ°æ®åºé½æ¯æç¸åçå½æ°éã"
-"Hibernate æä¾äºä¸ç§æ å°<emphasis>é»è¾</emphasis>å½æ°åå°ä»£ççæ¹æ³ï¼è¿ä¸ªä»£ç"
-"ç¥éå¦ä½è§£æç¹å®çå½æ°ï¼çè³å¯è½ä½¿ç¨å®å
¨ä¸åçç©çå½æ°è°ç¨ã"
+#, no-c-format
+msgid "SQL functions can be referenced in many ways by users. However, not all databases support the same set of functions. Hibernate, provides a means of mapping a <emphasis>logical</emphasis> function name to a delegate which knows how to render that particular function, perhaps even using a totally different physical function call."
+msgstr "ç¨æ·å¯ä»¥ä»¥å¤ç§æ¹å¼å¼ç¨ SQL å½æ°ãç¶èï¼ä¸æ¯ææçæ°æ®åºé½æ¯æç¸åçå½æ°éãHibernate æä¾äºä¸ç§æ å°<emphasis>é»è¾</emphasis>å½æ°åå°ä»£ççæ¹æ³ï¼è¿ä¸ªä»£çç¥éå¦ä½è§£æç¹å®çå½æ°ï¼çè³å¯è½ä½¿ç¨å®å
¨ä¸åçç©çå½æ°è°ç¨ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Technically this function registration is handled through the <classname>org."
-"hibernate.dialect.function.SQLFunctionRegistry</classname> class which is "
-"intended to allow users to provide custom function definitions without "
-"having to provide a custom dialect. This specific behavior is not fully "
-"completed as of yet."
-msgstr ""
-"ä»ææ¯ä¸æ¥è®²ï¼è¿ä¸ªå½æ°æ³¨åæ¯éè¿ <classname>org.hibernate.dialect.function."
-"SQLFunctionRegistry</classname> ç±»è¿è¡å¤ççï¼å®çç®çæ¯å
许ç¨æ·æä¾èªå®ä¹ç"
-"å½æ°å®ä¹èæ éæä¾èªå®ä¹çæ¹è¨ãè¿ç§ç¹æ®çè¡ä¸ºç®åè¿æªå
¨é¨å¼åå®æ¯ã"
+msgid "Technically this function registration is handled through the <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> class which is intended to allow users to provide custom function definitions without having to provide a custom dialect. This specific behavior is not fully completed as of yet."
+msgstr "ä»ææ¯ä¸æ¥è®²ï¼è¿ä¸ªå½æ°æ³¨åæ¯éè¿ <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> ç±»è¿è¡å¤ççï¼å®çç®çæ¯å
许ç¨æ·æä¾èªå®ä¹çå½æ°å®ä¹èæ éæä¾èªå®ä¹çæ¹è¨ãè¿ç§ç¹æ®çè¡ä¸ºç®åè¿æªå
¨é¨å¼åå®æ¯ã"
#. Tag: para
#, no-c-format
-msgid ""
-"It is sort of implemented such that users can programatically register "
-"functions with the <classname>org.hibernate.cfg.Configuration</classname> "
-"and those functions will be recognized for HQL."
-msgstr ""
-"å
¶ä¸ä¸äºåè½å·²ç»å®ç°ï¼å¦ç¨æ·å¯ä»¥å¨ç¨åºéç¨ <classname>org.hibernate.cfg."
-"Configuration</classname> 注åå½æ°ä¸è¿äºå½æ°å¯è¢« HQL è¯å«ã"
+msgid "It is sort of implemented such that users can programatically register functions with the <classname>org.hibernate.cfg.Configuration</classname> and those functions will be recognized for HQL."
+msgstr "å
¶ä¸ä¸äºåè½å·²ç»å®ç°ï¼å¦ç¨æ·å¯ä»¥å¨ç¨åºéç¨ <classname>org.hibernate.cfg.Configuration</classname> 注åå½æ°ä¸è¿äºå½æ°å¯è¢« HQL è¯å«ã"
#. Tag: title
#, no-c-format
@@ -304,3 +148,4 @@
#~ "This is a new area in Hibernate and as such it is not as mature as the "
#~ "overall Hibernate experience."
#~ msgstr "è¿æ¯ Hibernate çä¸ä¸ªæ°çé¢åï¼ææ¶è¿ä¸å¦ Hibernate æ»ä½é£ä¹æçã"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/preface.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/preface.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/preface.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:15\n"
-"PO-Revision-Date: 2010-01-11 10:44+1000\n"
+"PO-Revision-Date: 2010-03-16 10:12+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,108 +20,44 @@
msgstr "åè¨"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Working with object-oriented software and a relational database can be "
-"cumbersome and time consuming in today's enterprise environments. Hibernate "
-"is an Object/Relational Mapping tool for Java environments. The term Object/"
-"Relational Mapping (ORM) refers to the technique of mapping a data "
-"representation from an object model to a relational data model with a SQL-"
-"based schema."
-msgstr ""
-"å¨ä»æ¥çä¼ä¸ç¯å¢ä¸ï¼æé¢å对象ç软件åå
³ç³»åæ°æ®åºä¸èµ·ä½¿ç¨å¯è½æ¯ç¸å½éº»ç¦å浪"
-"è´¹æ¶é´çãHibernate æ¯ä¸ä¸ªé¢å Java ç¯å¢ç对象/å
³ç³»åæ°æ®åºæ å°å·¥å
·ã对象/å
³"
-"ç³»åæ°æ®åºæ å°ï¼object/relational mappingï¼ORMï¼è¿ä¸ªæ¯è¯è¡¨ç¤ºä¸ç§ææ¯ï¼ç¨æ¥æ"
-"对象模å表示ç对象æ å°å°åºäº SQL çå
³ç³»æ¨¡åæ°æ®ç»æä¸å»ã"
+#, no-c-format
+msgid "Working with object-oriented software and a relational database can be cumbersome and time consuming in today's enterprise environments. Hibernate is an Object/Relational Mapping tool for Java environments. The term Object/Relational Mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema."
+msgstr "å¨ä»æ¥çä¼ä¸ç¯å¢ä¸ï¼æé¢å对象ç软件åå
³ç³»åæ°æ®åºä¸èµ·ä½¿ç¨å¯è½æ¯ç¸å½éº»ç¦å浪费æ¶é´çãHibernate æ¯ä¸ä¸ªé¢å Java ç¯å¢ç对象/å
³ç³»åæ°æ®åºæ å°å·¥å
·ã对象/å
³ç³»åæ°æ®åºæ å°ï¼object/relational mappingï¼ORMï¼è¿ä¸ªæ¯è¯è¡¨ç¤ºä¸ç§ææ¯ï¼ç¨æ¥æ对象模å表示ç对象æ å°å°åºäº SQL çå
³ç³»æ¨¡åæ°æ®ç»æä¸å»ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate not only takes care of the mapping from Java classes to database "
-"tables (and from Java data types to SQL data types), but also provides data "
-"query and retrieval facilities. It can also significantly reduce development "
-"time otherwise spent with manual data handling in SQL and JDBC."
-msgstr ""
-"Hibernate ä¸ä»
管ç Java ç±»å°æ°æ®åºè¡¨çæ å°ï¼å
æ¬ Java æ°æ®ç±»åå° SQL æ°æ®ç±»å"
-"çæ å°ï¼ï¼è¿æä¾æ°æ®æ¥è¯¢åè·åæ°æ®çæ¹æ³ï¼å¯ä»¥å¤§å¹
度åå°å¼åæ¶å¯¹äººå·¥ä½¿ç¨ SQL "
-"å JDBC å¤çæ°æ®çæ¶é´ã "
+msgid "Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities. It can also significantly reduce development time otherwise spent with manual data handling in SQL and JDBC."
+msgstr "Hibernate ä¸ä»
管ç Java ç±»å°æ°æ®åºè¡¨çæ å°ï¼å
æ¬ Java æ°æ®ç±»åå° SQL æ°æ®ç±»åçæ å°ï¼ï¼è¿æä¾æ°æ®æ¥è¯¢åè·åæ°æ®çæ¹æ³ï¼å¯ä»¥å¤§å¹
度åå°å¼åæ¶å¯¹äººå·¥ä½¿ç¨ SQL å JDBC å¤çæ°æ®çæ¶é´ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate's goal is to relieve the developer from 95 percent of common data "
-"persistence related programming tasks. Hibernate may not be the best "
-"solution for data-centric applications that only use stored-procedures to "
-"implement the business logic in the database, it is most useful with object-"
-"oriented domain models and business logic in the Java-based middle-tier. "
-"However, Hibernate can certainly help you to remove or encapsulate vendor-"
-"specific SQL code and will help with the common task of result set "
-"translation from a tabular representation to a graph of objects."
-msgstr ""
-"Hibernate çç®æ æ¯å¯¹äºå¼åè
é常çæ°æ®æä¹
åç¸å
³çç¼ç¨ä»»å¡ï¼è§£æ¾å
¶ä¸ç 95%ã"
-"对äºä»¥æ°æ®ä¸ºä¸å¿çç¨åºæ¥è¯´ï¼å®ä»¬å¾å¾åªå¨æ°æ®åºä¸ä½¿ç¨åå¨è¿ç¨æ¥å®ç°åä¸é»è¾ï¼"
-"Hibernate å¯è½ä¸æ¯æ好ç解å³æ¹æ¡ï¼å¯¹äºé£äºå¨åºäº Java çä¸é´å±åºç¨ä¸ï¼å®ä»¬å®"
-"ç°é¢å对象çä¸å¡æ¨¡åååä¸é»è¾çåºç¨ï¼Hibernate æ¯ææç¨çãä¸ç®¡ææ ·ï¼"
-"Hibernate ä¸å®å¯ä»¥å¸®å©ä½ æ¶é¤æè
å
è£
é£äºé对ç¹å®ååç SQL 代ç ï¼èä¸å¸®å©ä½ ç»"
-"æéä»è¡¨æ ¼å¼ç表示形å¼è½¬æ¢å°ä¸ç³»åç对象ä¸å»ã "
+msgid "Hibernate's goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects."
+msgstr "Hibernate çç®æ æ¯å¯¹äºå¼åè
é常çæ°æ®æä¹
åç¸å
³çç¼ç¨ä»»å¡ï¼è§£æ¾å
¶ä¸ç 95%ã对äºä»¥æ°æ®ä¸ºä¸å¿çç¨åºæ¥è¯´ï¼å®ä»¬å¾å¾åªå¨æ°æ®åºä¸ä½¿ç¨åå¨è¿ç¨æ¥å®ç°åä¸é»è¾ï¼Hibernate å¯è½ä¸æ¯æ好ç解å³æ¹æ¡ï¼å¯¹äºé£äºå¨åºäº Java çä¸é´å±åºç¨ä¸ï¼å®ä»¬å®ç°é¢å对象çä¸å¡æ¨¡åååä¸é»è¾çåºç¨ï¼Hibernate æ¯ææç¨çãä¸ç®¡ææ ·ï¼Hibernate ä¸å®å¯ä»¥å¸®å©ä½ æ¶é¤æè
å
è£
é£äºé对ç¹å®ååç SQL 代ç ï¼èä¸å¸®å©ä½ ç»æéä»è¡¨æ ¼å¼ç表示形å¼è½¬æ¢å°ä¸ç³»åç对象ä¸å»ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If you are new to Hibernate and Object/Relational Mapping or even Java, "
-"please follow these steps:"
-msgstr ""
-"å¦æä½ å¯¹ Hibernate å对象/å
³ç³»åæ°æ®åºæ å°è¿æ¯ä¸ªæ°æï¼çè³å¯¹ Java ä¹ä¸çæï¼"
-"请æç
§ä¸é¢çæ¥éª¤æ¥å¦ä¹ ã"
+msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:"
+msgstr "å¦æä½ å¯¹ Hibernate å对象/å
³ç³»åæ°æ®åºæ å°è¿æ¯ä¸ªæ°æï¼çè³å¯¹ Java ä¹ä¸çæï¼è¯·æç
§ä¸é¢çæ¥éª¤æ¥å¦ä¹ ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
-"instructions. The source code for the tutorial is included in the "
-"distribution in the <literal>doc/reference/tutorial/</literal> directory."
-msgstr ""
-"é
读 <xref linkend=\"tutorial\"/>ï¼è¿æ¯ä¸ç¯å
å«è¯¦ç»çéæ¥ç¥éçæåãæ¬æåç"
-"æºä»£ç å
å«å¨åè¡å
éï¼ä½ å¯ä»¥å¨ <literal>doc/reference/tutorial/</literal> ç®"
-"å½ä¸æ¾å°ã "
+#, no-c-format
+msgid "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step instructions. The source code for the tutorial is included in the distribution in the <literal>doc/reference/tutorial/</literal> directory."
+msgstr "é
读 <xref linkend=\"tutorial\"/>ï¼è¿æ¯ä¸ç¯å
å«è¯¦ç»çéæ¥ç¥éçæåãæ¬æåçæºä»£ç å
å«å¨åè¡å
éï¼ä½ å¯ä»¥å¨ <literal>doc/reference/tutorial/</literal> ç®å½ä¸æ¾å°ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Read <xref linkend=\"architecture\" /> to understand the environments where "
-"Hibernate can be used."
-msgstr ""
-"é
读 <xref linkend=\"architecture\"/> æ¥ç解 Hibernate å¯ä»¥ä½¿ç¨çç¯å¢ã "
+#, no-c-format
+msgid "Read <xref linkend=\"architecture\" /> to understand the environments where Hibernate can be used."
+msgstr "é
读 <xref linkend=\"architecture\"/> æ¥ç解 Hibernate å¯ä»¥ä½¿ç¨çç¯å¢ã"
#. Tag: para
#, no-c-format
-msgid ""
-"View the <literal>eg/</literal> directory in the Hibernate distribution. It "
-"contains a simple standalone application. Copy your JDBC driver to the "
-"<literal>lib/</literal> directory and edit <literal>etc/hibernate."
-"properties</literal>, specifying correct values for your database. From a "
-"command prompt in the distribution directory, type <literal>ant eg</literal> "
-"(using Ant), or under Windows, type <literal>build eg</literal>."
-msgstr ""
-"æ¥ç Hibernate åè¡å
ä¸ç <literal>eg/</literal> ç®å½ï¼éé¢æ个ä¸ç®åçç¬ç«è¿"
-"è¡çç¨åºãæä½ ç JDBC 驱å¨å¤å¶å° <literal>lib/</literal> ç®å½å¹¶ä¿®æ¹ä¸ä¸ "
-"<literal>etc/hibernate.properties</literal>ï¼æå®æ°æ®åºçä¿¡æ¯ãç¶åè¿å
¥å½ä»¤"
-"è¡ï¼åæ¢å°åè¡å
çç®å½ï¼è¾å
¥ <literal>ant eg</literal>ï¼ä½¿ç¨ Antï¼ï¼æè
å¨ "
-"Windows ç³»ç»ä¸ä½¿ç¨ <literal>build eg</literal>ã "
+msgid "View the <literal>eg/</literal> directory in the Hibernate distribution. It contains a simple standalone application. Copy your JDBC driver to the <literal>lib/</literal> directory and edit <literal>etc/hibernate.properties</literal>, specifying correct values for your database. From a command prompt in the distribution directory, type <literal>ant eg</literal> (using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr "æ¥ç Hibernate åè¡å
ä¸ç <literal>eg/</literal> ç®å½ï¼éé¢æ个ä¸ç®åçç¬ç«è¿è¡çç¨åºãæä½ ç JDBC 驱å¨å¤å¶å° <literal>lib/</literal> ç®å½å¹¶ä¿®æ¹ä¸ä¸ <literal>etc/hibernate.properties</literal>ï¼æå®æ°æ®åºçä¿¡æ¯ãç¶åè¿å
¥å½ä»¤è¡ï¼åæ¢å°åè¡å
çç®å½ï¼è¾å
¥ <literal>ant eg</literal>ï¼ä½¿ç¨ Antï¼ï¼æè
å¨ Windows ç³»ç»ä¸ä½¿ç¨ <literal>build eg</literal>ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Use this reference documentation as your primary source of information. "
-"Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need "
-"more help with application design, or if you prefer a step-by-step tutorial. "
-"Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download "
-"the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
-msgstr ""
-"æè¿ä»½ææ¡£ä½ä¸ºä½ å¦ä¹ ç主è¦ä¿¡æ¯æ¥æºãå¦æä½ éè¦åºç¨ç¨åºè®¾è®¡æ¹é¢ç帮å©æè
ä½ å¸"
-"ææä¸ä¸ªæé¨å°±ççæåï¼ä½ å¯ä»¥èèé
读 <emphasis>Hibernate in Action</"
-"emphasis>ï¼http://www.manning.com/bauerï¼ãä½ ä¹å¯ä»¥è®¿é®http://caveatemptor."
-"hibernate.org 并ä¸è½½ Hibernate ç示ä¾ç¨åºã "
+#, no-c-format
+msgid "Use this reference documentation as your primary source of information. Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need more help with application design, or if you prefer a step-by-step tutorial. Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr "æè¿ä»½ææ¡£ä½ä¸ºä½ å¦ä¹ ç主è¦ä¿¡æ¯æ¥æºãå¦æä½ éè¦åºç¨ç¨åºè®¾è®¡æ¹é¢ç帮å©æè
ä½ å¸ææä¸ä¸ªæé¨å°±ççæåï¼ä½ å¯ä»¥èèé
读 <biblioref linkend=\"biblio-JPwH\"></biblioref> ãä½ ä¹å¯ä»¥è®¿é® <ulink url=\"http://caveatemptor.hibernate.org\" /> å¹¶ä» <biblioref linkend=\"biblio-JPwH\"></biblioref> ä¸è½½ç¤ºä¾ç¨åºã"
#. Tag: para
#, no-c-format
@@ -129,53 +65,27 @@
msgstr "å¨ Hibernate ç½ç«ä¸å¯ä»¥æ¾å°é®é¢å解çï¼FAQï¼ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Links to third party demos, examples, and tutorials are maintained on the "
-"Hibernate website."
-msgstr "å¨ Hibernate ç½ç«ä¸è¿æ第ä¸æ¹çæ¼ç¤ºã示ä¾åæç¨çé¾æ¥ã"
+#, no-c-format
+msgid "Links to third party demos, examples, and tutorials are maintained on the Hibernate website."
+msgstr "å¨ Hibernate ç½ç«ä¸è¿æ第ä¸æ¹çæ¼ç¤ºã示ä¾åæç¨çé¾æ¥ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The Community Area on the Hibernate website is a good resource for design "
-"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, "
-"etc.)."
-msgstr ""
-"Hibernate ç½ç«ç社åºæ¯è®¨è®ºå
³äºè®¾è®¡æ¨¡å¼ä»¥åå¾å¤æ´åæ¹æ¡ï¼TomcatãJBoss ASã"
-"StrutsãEJB çï¼ç好å°æ¹ã"
+msgid "The Community Area on the Hibernate website is a good resource for design patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, etc.)."
+msgstr "Hibernate ç½ç«ç社åºæ¯è®¨è®ºå
³äºè®¾è®¡æ¨¡å¼ä»¥åå¾å¤æ´åæ¹æ¡ï¼TomcatãJBoss ASãStrutsãEJB çï¼ç好å°æ¹ã"
#. Tag: para
#, no-c-format
-msgid ""
-"If you have questions, use the user forum linked on the Hibernate website. "
-"We also provide a JIRA issue tracking system for bug reports and feature "
-"requests. If you are interested in the development of Hibernate, join the "
-"developer mailing list. If you are interested in translating this "
-"documentation into your language, contact us on the developer mailing list."
-msgstr ""
-"å¦æä½ æä»»ä½é®é¢ï¼è¯·ä½¿ç¨ Hibernate ç½ç«ä¸é¾æ¥çç¨æ·è®ºåãæ们ä¹æä¾ä¸ä¸ª JIRA "
-"é®é¢è¿½è¸ªç³»ç»ï¼æ¥æé bug æ¥ååæ°çåè½è¯·æ±ãå¦æ对å¼å Hibernate æå
´è¶£ï¼è¯·"
-"å å
¥å¼åè
çé®ä»¶å表ãå¦æä½ å¯¹ç¿»è¯æ¬ææ¡£æå
´è¶£ï¼è¯·éè¿å¼åè
çé®ä»¶å表æ¥èç³»"
-"æ们ã "
+msgid "If you have questions, use the user forum linked on the Hibernate website. We also provide a JIRA issue tracking system for bug reports and feature requests. If you are interested in the development of Hibernate, join the developer mailing list. If you are interested in translating this documentation into your language, contact us on the developer mailing list."
+msgstr "å¦æä½ æä»»ä½é®é¢ï¼è¯·ä½¿ç¨ Hibernate ç½ç«ä¸é¾æ¥çç¨æ·è®ºåãæ们ä¹æä¾ä¸ä¸ª JIRA é®é¢è¿½è¸ªç³»ç»ï¼æ¥æé bug æ¥ååæ°çåè½è¯·æ±ãå¦æ对å¼å Hibernate æå
´è¶£ï¼è¯·å å
¥å¼åè
çé®ä»¶å表ãå¦æä½ å¯¹ç¿»è¯æ¬ææ¡£æå
´è¶£ï¼è¯·éè¿å¼åè
çé®ä»¶å表æ¥èç³»æ们ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Commercial development support, production support, and training for "
-"Hibernate is available through JBoss Inc. (see http://www.hibernate.org/"
-"SupportTraining/). Hibernate is a Professional Open Source project and a "
-"critical component of the JBoss Enterprise Middleware System (JEMS) suite of "
-"products."
-msgstr ""
-"åä¸å¼åã产åæ¯æå Hibernate å¹è®å¯ä»¥éè¿ JBoss Inc. è·å¾ï¼è¯·æ¥é
ï¼ http://"
-"www.hibernate.org/SupportTraining/ï¼ãHibernate æ¯ä¸ä¸ªä¸ä¸çå¼æºé¡¹ç®ï¼ä¹æ¯ "
-"JBoss ä¼ä¸çº§ä¸é´ä»¶ç³»ç»ï¼JBoss Enterprise Middleware Systemï¼JEMSï¼éçä¸ä¸ªæ ¸"
-"å¿ç»ä»¶ã "
+msgid "Commercial development support, production support, and training for Hibernate is available through JBoss Inc. (see http://www.hibernate.org/SupportTraining/). Hibernate is a Professional Open Source project and a critical component of the JBoss Enterprise Middleware System (JEMS) suite of products."
+msgstr "åä¸å¼åã产åæ¯æå Hibernate å¹è®å¯ä»¥éè¿ JBoss Inc. è·å¾ï¼è¯·æ¥é
ï¼ http://www.hibernate.org/SupportTraining/ï¼ãHibernate æ¯ä¸ä¸ªä¸ä¸çå¼æºé¡¹ç®ï¼ä¹æ¯ JBoss ä¼ä¸çº§ä¸é´ä»¶ç³»ç»ï¼JBoss Enterprise Middleware Systemï¼JEMSï¼éçä¸ä¸ªæ ¸å¿ç»ä»¶ã "
#~ msgid "Feedback"
#~ msgstr "åé¦"
-
#~ msgid ""
#~ "Use <ulink url=\"http://opensource.atlassian.com/projects/hibernate"
#~ "\">Hibernate JIRA</ulink> to report errors or request enhacements to this "
@@ -183,3 +93,4 @@
#~ msgstr ""
#~ "ç¨ <ulink url=\"http://opensource.atlassian.com/projects/hibernate"
#~ "\">Hibernate JIRA</ulink> æ¥æ¥åé误ææ¹è¿æ¬ææ¡£ã"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:15\n"
-"PO-Revision-Date: 2009-12-07 20:31+1000\n"
+"PO-Revision-Date: 2010-03-16 09:53+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -31,13 +31,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The interface <literal>org.hibernate.Criteria</literal> represents a query "
-"against a particular persistent class. The <literal>Session</literal> is a "
-"factory for <literal>Criteria</literal> instances."
-msgstr ""
-"<literal>org.hibernate.Criteria</literal >æ¥å£è¡¨ç¤ºç¹å®æä¹
ç±»çä¸ä¸ªæ¥è¯¢ã"
-"<literal>Session</literal> æ¯ <literal>Criteria</literal> å®ä¾çå·¥åã"
+msgid "The interface <literal>org.hibernate.Criteria</literal> represents a query against a particular persistent class. The <literal>Session</literal> is a factory for <literal>Criteria</literal> instances."
+msgstr "<literal>org.hibernate.Criteria</literal >æ¥å£è¡¨ç¤ºç¹å®æä¹
ç±»çä¸ä¸ªæ¥è¯¢ã<literal>Session</literal> æ¯ <literal>Criteria</literal> å®ä¾çå·¥åã"
#. Tag: title
#, no-c-format
@@ -46,15 +41,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"An individual query criterion is an instance of the interface <literal>org."
-"hibernate.criterion.Criterion</literal>. The class <literal>org.hibernate."
-"criterion.Restrictions</literal> defines factory methods for obtaining "
-"certain built-in <literal>Criterion</literal> types."
-msgstr ""
-"ä¸ä¸ªåç¬çæ¥è¯¢æ¡ä»¶æ¯ <literal>org.hibernate.criterion.Criterion</literal> æ¥"
-"å£çä¸ä¸ªå®ä¾ã<literal>org.hibernate.criterion.Restrictions</literal> ç±»å®ä¹"
-"äºè·å¾æäºå
ç½® <literal>Criterion</literal> ç±»åçå·¥åæ¹æ³ã"
+msgid "An individual query criterion is an instance of the interface <literal>org.hibernate.criterion.Criterion</literal>. The class <literal>org.hibernate.criterion.Restrictions</literal> defines factory methods for obtaining certain built-in <literal>Criterion</literal> types."
+msgstr "ä¸ä¸ªåç¬çæ¥è¯¢æ¡ä»¶æ¯ <literal>org.hibernate.criterion.Criterion</literal> æ¥å£çä¸ä¸ªå®ä¾ã<literal>org.hibernate.criterion.Restrictions</literal> ç±»å®ä¹äºè·å¾æäºå
ç½® <literal>Criterion</literal> ç±»åçå·¥åæ¹æ³ã"
#. Tag: para
#, no-c-format
@@ -63,30 +51,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"There are a range of built-in criterion types (<literal>Restrictions</"
-"literal> subclasses). One of the most useful allows you to specify SQL "
-"directly."
-msgstr ""
-"Hibernate æä¾äºç¸å½å¤çå
ç½® criterion ç±»åï¼<literal>Restrictions</literal> "
-"åç±»ï¼ï¼ä½æ¯å°¤å
¶æç¨çæ¯å¯ä»¥å
è®¸ä½ ç´æ¥ä½¿ç¨ SQLã "
+msgid "There are a range of built-in criterion types (<literal>Restrictions</literal> subclasses). One of the most useful allows you to specify SQL directly."
+msgstr "Hibernate æä¾äºç¸å½å¤çå
ç½® criterion ç±»åï¼<literal>Restrictions</literal> åç±»ï¼ï¼ä½æ¯å°¤å
¶æç¨çæ¯å¯ä»¥å
è®¸ä½ ç´æ¥ä½¿ç¨ SQLã "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
-"of the queried entity."
+msgid "The <literal>{alias}</literal> placeholder with be replaced by the row alias of the queried entity."
msgstr "<literal>{alias}</literal> å ä½ç¬¦åºå½è¢«æ¿æ¢ä¸ºè¢«æ¥è¯¢å®ä½çåå«åã"
#. Tag: para
#, no-c-format
-msgid ""
-"You can also obtain a criterion from a <literal>Property</literal> instance. "
-"You can create a <literal>Property</literal> by calling <literal>Property."
-"forName()</literal>:"
-msgstr ""
-"<literal>Property</literal> å®ä¾æ¯è·å¾ä¸ä¸ªæ¡ä»¶çå¦å¤ä¸ç§éå¾ãä½ å¯ä»¥éè¿è°ç¨ "
-"<literal>Property.forName()</literal> å建ä¸ä¸ª <literal>Property</literal>ï¼"
+msgid "You can also obtain a criterion from a <literal>Property</literal> instance. You can create a <literal>Property</literal> by calling <literal>Property.forName()</literal>:"
+msgstr "<literal>Property</literal> å®ä¾æ¯è·å¾ä¸ä¸ªæ¡ä»¶çå¦å¤ä¸ç§éå¾ãä½ å¯ä»¥éè¿è°ç¨ <literal>Property.forName()</literal> å建ä¸ä¸ª <literal>Property</literal>ï¼"
#. Tag: title
#, no-c-format
@@ -95,12 +71,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can order the results using <literal>org.hibernate.criterion.Order</"
-"literal>."
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨ <literal>org.hibernate.criterion.Order</literal> æ¥ä¸ºæ¥è¯¢ç»ææ"
-"åºã "
+msgid "You can order the results using <literal>org.hibernate.criterion.Order</literal>."
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>org.hibernate.criterion.Order</literal> æ¥ä¸ºæ¥è¯¢ç»ææåºã "
#. Tag: title
#, no-c-format
@@ -109,85 +81,53 @@
#. Tag: para
#, no-c-format
-msgid ""
-"By navigating associations using <literal>createCriteria()</literal> you can "
-"specify constraints upon related entities:"
-msgstr ""
-"éè¿ä½¿ç¨ <literal>createCriteria()</literal> 对å
³èè¿è¡å¯¼èªï¼ä½ å¯ä»¥æå®ç¸å
³å®"
-"ä½ç约æã"
+msgid "By navigating associations using <literal>createCriteria()</literal> you can specify constraints upon related entities:"
+msgstr "éè¿ä½¿ç¨ <literal>createCriteria()</literal> 对å
³èè¿è¡å¯¼èªï¼ä½ å¯ä»¥æå®ç¸å
³å®ä½ç约æã"
#. Tag: para
#, no-c-format
-msgid ""
-"The second <literal>createCriteria()</literal> returns a new instance of "
-"<literal>Criteria</literal> that refers to the elements of the "
-"<literal>kittens</literal> collection."
-msgstr ""
-"注æ第äºä¸ª <literal>createCriteria()</literal> è¿åä¸ä¸ªæ°ç "
-"<literal>Criteria</literal> å®ä¾ï¼è¯¥å®ä¾å¼ç¨ <literal>kittens</literal> éå"
-"ä¸çå
ç´ ã "
+msgid "The second <literal>createCriteria()</literal> returns a new instance of <literal>Criteria</literal> that refers to the elements of the <literal>kittens</literal> collection."
+msgstr "注æ第äºä¸ª <literal>createCriteria()</literal> è¿åä¸ä¸ªæ°ç <literal>Criteria</literal> å®ä¾ï¼è¯¥å®ä¾å¼ç¨ <literal>kittens</literal> éåä¸çå
ç´ ã "
#. Tag: para
#, no-c-format
-msgid ""
-"There is also an alternate form that is useful in certain circumstances:"
+msgid "There is also an alternate form that is useful in certain circumstances:"
msgstr "æ¥ä¸æ¥ï¼æ¿æ¢å½¢æå¨æäºæ
åµä¸ä¹æ¯å¾æç¨çã "
#. Tag: para
#, no-c-format
-msgid ""
-"(<literal>createAlias()</literal> does not create a new instance of "
-"<literal>Criteria</literal>.)"
-msgstr ""
-"ï¼<literal>createAlias()</literal> 并ä¸å建ä¸ä¸ªæ°ç <literal>Criteria</"
-"literal> å®ä¾ãï¼"
+msgid "(<literal>createAlias()</literal> does not create a new instance of <literal>Criteria</literal>.)"
+msgstr "ï¼<literal>createAlias()</literal> 并ä¸å建ä¸ä¸ªæ°ç <literal>Criteria</literal> å®ä¾ãï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The kittens collections held by the <literal>Cat</literal> instances "
-"returned by the previous two queries are <emphasis>not</emphasis> pre-"
-"filtered by the criteria. If you want to retrieve just the kittens that "
-"match the criteria, you must use a <literal>ResultTransformer</literal>."
-msgstr ""
-"<literal>Cat</literal> å®ä¾æä¿åçä¹å两次æ¥è¯¢æè¿åç kittens éåæ¯ "
-"<emphasis>没æ</emphasis>被æ¡ä»¶é¢è¿æ»¤çãå¦æä½ å¸æåªè·å¾ç¬¦åæ¡ä»¶ç kittensï¼"
-"ä½ å¿
é¡»ä½¿ç¨ <literal>ResultTransformer</literal>ã "
+msgid "The kittens collections held by the <literal>Cat</literal> instances returned by the previous two queries are <emphasis>not</emphasis> pre-filtered by the criteria. If you want to retrieve just the kittens that match the criteria, you must use a <literal>ResultTransformer</literal>."
+msgstr "<literal>Cat</literal> å®ä¾æä¿åçä¹å两次æ¥è¯¢æè¿åç kittens éåæ¯ <emphasis>没æ</emphasis>被æ¡ä»¶é¢è¿æ»¤çãå¦æä½ å¸æåªè·å¾ç¬¦åæ¡ä»¶ç kittensï¼ä½ å¿
é¡»ä½¿ç¨ <literal>ResultTransformer</literal>ã "
#. Tag: para
#, no-c-format
msgid "Additionally you may manipulate the result set using a left outer join:"
-msgstr ""
+msgstr "æ¤å¤ï¼ä½ å¯ä»¥ç¨ä¸ä¸ª left outer join æ¥æ纵ç»æéï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"This will return all of the <literal>Cat</literal>s with a mate whose name "
-"starts with \"good\" ordered by their mate's age, and all cats who do not "
-"have a mate. This is useful when there is a need to order or limit in the "
-"database prior to returning complex/large result sets, and removes many "
-"instances where multiple queries would have to be performed and the results "
-"unioned by java in memory."
-msgstr ""
+msgid "This will return all of the <literal>Cat</literal>s with a mate whose name starts with \"good\" ordered by their mate's age, and all cats who do not have a mate. This is useful when there is a need to order or limit in the database prior to returning complex/large result sets, and removes many instances where multiple queries would have to be performed and the results unioned by java in memory."
+msgstr "è¿å°è¿åé
å¶çåå以 \"good\" èµ·å§çææ <literal>Cat</literal>ï¼å¹¶æ ¹æ®å
¶é
å¶çå¹´é¾è¿è¡æåºãå½éè¦å¨è¿åå¤æ/大åç»æéåè¿è¡æåºæéå¶ãå¨å¤ä¸ªæ¥è¯¢å¿
é¡»æ§è¡ä¸ç»æéè¿ Java å¨å
åéç»åä»èå é¤è®¸å¤å®ä¾æ¶ï¼è¿å¾æç¨ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Without this feature, first all of the cats without a mate would need to be "
-"loaded in one query."
-msgstr ""
+msgid "Without this feature, first all of the cats without a mate would need to be loaded in one query."
+msgstr "å¦æ没æè¿ä¸ªåè½ï¼é£ä¹æ²¡æé
å¶çç«å°±éè¦å¨ä¸æ¬¡æ¥è¯¢éè¿è¡å è½½ã"
#. Tag: para
#, no-c-format
-msgid ""
-"A second query would need to retreive the cats with mates who's name started "
-"with \"good\" sorted by the mates age."
-msgstr ""
+msgid "A second query would need to retreive the cats with mates who's name started with \"good\" sorted by the mates age."
+msgstr "第äºä¸ªæ¥è¯¢å°éè¦è·åé
å¶å以 \"good\" èµ·å§å¹¶æç
§é
å¶å¹´é¾æåºçç«ã"
#. Tag: para
#, no-c-format
msgid "Thirdly, in memory; the lists would need to be joined manually."
-msgstr ""
+msgstr "第ä¸ç¹ï¼å表éè¦å¨å
åä¸è¿è¡æå·¥èåã"
#. Tag: title
#, no-c-format
@@ -196,22 +136,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can specify association fetching semantics at runtime using "
-"<literal>setFetchMode()</literal>."
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨ <literal>setFetchMode()</literal> å¨è¿è¡æ¶å®ä¹å¨æå
³èæåçè¯"
-"ä¹ã "
+msgid "You can specify association fetching semantics at runtime using <literal>setFetchMode()</literal>."
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>setFetchMode()</literal> å¨è¿è¡æ¶å®ä¹å¨æå
³èæåçè¯ä¹ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"This query will fetch both <literal>mate</literal> and <literal>kittens</"
-"literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
-"more information."
-msgstr ""
-"è¿ä¸ªæ¥è¯¢å¯ä»¥éè¿å¤è¿æ¥æå <literal>mate</literal> å <literal>kittens</"
-"literal>ãæ¥ç <xref linkend=\"performance-fetching\" /> å¯ä»¥è·å¾æ´å¤ä¿¡æ¯ã"
+#, no-c-format
+msgid "This query will fetch both <literal>mate</literal> and <literal>kittens</literal> by outer join. See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr "è¿ä¸ªæ¥è¯¢å¯ä»¥éè¿å¤è¿æ¥æå <literal>mate</literal> å <literal>kittens</literal>ãæ¥ç <xref linkend=\"performance-fetching\" /> å¯ä»¥è·å¾æ´å¤ä¿¡æ¯ã "
#. Tag: title
#, no-c-format
@@ -220,18 +151,12 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The class <literal>org.hibernate.criterion.Example</literal> allows you to "
-"construct a query criterion from a given instance."
-msgstr ""
-"<literal>org.hibernate.criterion.Example</literal> ç±»å
è®¸ä½ éè¿ä¸ä¸ªç»å®å®ä¾æ"
-"建ä¸ä¸ªæ¡ä»¶æ¥è¯¢ã"
+msgid "The class <literal>org.hibernate.criterion.Example</literal> allows you to construct a query criterion from a given instance."
+msgstr "<literal>org.hibernate.criterion.Example</literal> ç±»å
è®¸ä½ éè¿ä¸ä¸ªç»å®å®ä¾æ建ä¸ä¸ªæ¡ä»¶æ¥è¯¢ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Version properties, identifiers and associations are ignored. By default, "
-"null valued properties are excluded."
+msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded."
msgstr "çæ¬å±æ§ãæ è¯ç¬¦åå
³è被忽ç¥ãé»è®¤æ
åµä¸å¼ä¸º null çå±æ§å°è¢«æé¤ã"
#. Tag: para
@@ -251,53 +176,27 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The class <literal>org.hibernate.criterion.Projections</literal> is a "
-"factory for <literal>Projection</literal> instances. You can apply a "
-"projection to a query by calling <literal>setProjection()</literal>."
-msgstr ""
-"<literal>org.hibernate.criterion.Projections</literal> æ¯ "
-"<literal>Projection</literal> çå®ä¾å·¥åãæ们éè¿è°ç¨ <literal>setProjection"
-"()</literal> åºç¨æå½±å°ä¸ä¸ªæ¥è¯¢ã "
+msgid "The class <literal>org.hibernate.criterion.Projections</literal> is a factory for <literal>Projection</literal> instances. You can apply a projection to a query by calling <literal>setProjection()</literal>."
+msgstr "<literal>org.hibernate.criterion.Projections</literal> æ¯ <literal>Projection</literal> çå®ä¾å·¥åãæ们éè¿è°ç¨ <literal>setProjection()</literal> åºç¨æå½±å°ä¸ä¸ªæ¥è¯¢ã "
#. Tag: para
#, no-c-format
-msgid ""
-"There is no explicit \"group by\" necessary in a criteria query. Certain "
-"projection types are defined to be <emphasis>grouping projections</"
-"emphasis>, which also appear in the SQL <literal>group by</literal> clause."
-msgstr ""
-"å¨ä¸ä¸ªæ¡ä»¶æ¥è¯¢ä¸æ²¡æå¿
è¦æ¾å¼çä½¿ç¨ \"group by\" ãæäºæ影类åå°±æ¯è¢«å®ä¹ä¸º"
-"<emphasis>åç»æå½±</emphasis>ï¼ä»ä»¬ä¹åºç°å¨ SQL ç <literal>group by</"
-"literal> åå¥ä¸ã"
+msgid "There is no explicit \"group by\" necessary in a criteria query. Certain projection types are defined to be <emphasis>grouping projections</emphasis>, which also appear in the SQL <literal>group by</literal> clause."
+msgstr "å¨ä¸ä¸ªæ¡ä»¶æ¥è¯¢ä¸æ²¡æå¿
è¦æ¾å¼çä½¿ç¨ \"group by\" ãæäºæ影类åå°±æ¯è¢«å®ä¹ä¸º<emphasis>åç»æå½±</emphasis>ï¼ä»ä»¬ä¹åºç°å¨ SQL ç <literal>group by</literal> åå¥ä¸ã"
#. Tag: para
#, no-c-format
-msgid ""
-"An alias can be assigned to a projection so that the projected value can be "
-"referred to in restrictions or orderings. Here are two different ways to do "
-"this:"
-msgstr ""
-"ä½ å¯ä»¥éæ©æä¸ä¸ªå«åææ´¾ç»ä¸ä¸ªæå½±ï¼è¿æ ·å¯ä»¥ä½¿æå½±å¼è¢«çº¦æææåºæå¼ç¨ãä¸é¢"
-"æ¯ä¸¤ç§ä¸åçå®ç°æ¹å¼ï¼ "
+msgid "An alias can be assigned to a projection so that the projected value can be referred to in restrictions or orderings. Here are two different ways to do this:"
+msgstr "ä½ å¯ä»¥éæ©æä¸ä¸ªå«åææ´¾ç»ä¸ä¸ªæå½±ï¼è¿æ ·å¯ä»¥ä½¿æå½±å¼è¢«çº¦æææåºæå¼ç¨ãä¸é¢æ¯ä¸¤ç§ä¸åçå®ç°æ¹å¼ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>alias()</literal> and <literal>as()</literal> methods simply "
-"wrap a projection instance in another, aliased, instance of "
-"<literal>Projection</literal>. As a shortcut, you can assign an alias when "
-"you add the projection to a projection list:"
-msgstr ""
-"<literal>alias()</literal> å <literal>as()</literal> æ¹æ³ç®ä¾¿çå°ä¸ä¸ªæå½±å®"
-"ä¾å
è£
å°å¦å¤ä¸ä¸ª å«åç <literal>Projection</literal> å®ä¾ä¸ãç®èè¨ä¹ï¼å½ä½ "
-"æ·»å ä¸ä¸ªæå½±å°ä¸ä¸ªæå½±å表ä¸æ¶ä½ å¯ä»¥ä¸ºå®æå®ä¸ä¸ªå«åï¼"
+msgid "The <literal>alias()</literal> and <literal>as()</literal> methods simply wrap a projection instance in another, aliased, instance of <literal>Projection</literal>. As a shortcut, you can assign an alias when you add the projection to a projection list:"
+msgstr "<literal>alias()</literal> å <literal>as()</literal> æ¹æ³ç®ä¾¿çå°ä¸ä¸ªæå½±å®ä¾å
è£
å°å¦å¤ä¸ä¸ª å«åç <literal>Projection</literal> å®ä¾ä¸ãç®èè¨ä¹ï¼å½ä½ æ·»å ä¸ä¸ªæå½±å°ä¸ä¸ªæå½±å表ä¸æ¶ä½ å¯ä»¥ä¸ºå®æå®ä¸ä¸ªå«åï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"You can also use <literal>Property.forName()</literal> to express "
-"projections:"
+msgid "You can also use <literal>Property.forName()</literal> to express projections:"
msgstr "ä½ ä¹å¯ä»¥ä½¿ç¨ <literal>Property.forName()</literal> æ¥è¡¨ç¤ºæå½±ï¼"
#. Tag: title
@@ -307,24 +206,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>DetachedCriteria</literal> class allows you to create a query "
-"outside the scope of a session and then execute it using an arbitrary "
-"<literal>Session</literal>."
-msgstr ""
-"<literal>DetachedCriteria</literal> ç±»ä½¿ä½ å¨ä¸ä¸ª session èå´ä¹å¤å建ä¸ä¸ªæ¥"
-"询ï¼å¹¶ä¸å¯ä»¥ä½¿ç¨ä»»æç <literal>Session</literal> æ¥æ§è¡å®ã "
+msgid "The <literal>DetachedCriteria</literal> class allows you to create a query outside the scope of a session and then execute it using an arbitrary <literal>Session</literal>."
+msgstr "<literal>DetachedCriteria</literal> ç±»ä½¿ä½ å¨ä¸ä¸ª session èå´ä¹å¤å建ä¸ä¸ªæ¥è¯¢ï¼å¹¶ä¸å¯ä»¥ä½¿ç¨ä»»æç <literal>Session</literal> æ¥æ§è¡å®ã "
#. Tag: para
#, no-c-format
-msgid ""
-"A <literal>DetachedCriteria</literal> can also be used to express a "
-"subquery. Criterion instances involving subqueries can be obtained via "
-"<literal>Subqueries</literal> or <literal>Property</literal>."
-msgstr ""
-"<literal>DetachedCriteria</literal> ä¹å¯ä»¥ç¨ä»¥è¡¨ç¤ºåæ¥è¯¢ãæ¡ä»¶å®ä¾å
å«åæ¥è¯¢"
-"å¯ä»¥éè¿ <literal>Subqueries</literal> æè
<literal>Property</literal> è·"
-"å¾ã "
+msgid "A <literal>DetachedCriteria</literal> can also be used to express a subquery. Criterion instances involving subqueries can be obtained via <literal>Subqueries</literal> or <literal>Property</literal>."
+msgstr "<literal>DetachedCriteria</literal> ä¹å¯ä»¥ç¨ä»¥è¡¨ç¤ºåæ¥è¯¢ãæ¡ä»¶å®ä¾å
å«åæ¥è¯¢å¯ä»¥éè¿ <literal>Subqueries</literal> æè
<literal>Property</literal> è·å¾ã "
#. Tag: para
#, no-c-format
@@ -338,45 +226,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"For most queries, including criteria queries, the query cache is not "
-"efficient because query cache invalidation occurs too frequently. However, "
-"there is a special kind of query where you can optimize the cache "
-"invalidation algorithm: lookups by a constant natural key. In some "
-"applications, this kind of query occurs frequently. The criteria API "
-"provides special provision for this use case."
-msgstr ""
-"对大å¤æ°æ¥è¯¢ï¼å
æ¬æ¡ä»¶æ¥è¯¢èè¨ï¼å 为æ¥è¯¢ç¼åç失æï¼invalidationï¼åçå¾å¤ªé¢"
-"ç¹ï¼æ¥è¯¢ç¼åä¸æ¯é常é«æãç¶èï¼æä¸ç§ç¹å«çæ¥è¯¢ï¼å¯ä»¥éè¿ä¸åçèªç¶é®ä¼åç¼"
-"åç失æç®æ³ãå¨æäºåºç¨ä¸ï¼è¿ç§ç±»åçæ¥è¯¢æ¯è¾å¸¸è§ãæ¡ä»¶æ¥è¯¢ API 对è¿ç§ç¨ä¾æ"
-"ä¾äºç¹å«è§çº¦ã "
+msgid "For most queries, including criteria queries, the query cache is not efficient because query cache invalidation occurs too frequently. However, there is a special kind of query where you can optimize the cache invalidation algorithm: lookups by a constant natural key. In some applications, this kind of query occurs frequently. The criteria API provides special provision for this use case."
+msgstr "对大å¤æ°æ¥è¯¢ï¼å
æ¬æ¡ä»¶æ¥è¯¢èè¨ï¼å 为æ¥è¯¢ç¼åç失æï¼invalidationï¼åçå¾å¤ªé¢ç¹ï¼æ¥è¯¢ç¼åä¸æ¯é常é«æãç¶èï¼æä¸ç§ç¹å«çæ¥è¯¢ï¼å¯ä»¥éè¿ä¸åçèªç¶é®ä¼åç¼åç失æç®æ³ãå¨æäºåºç¨ä¸ï¼è¿ç§ç±»åçæ¥è¯¢æ¯è¾å¸¸è§ãæ¡ä»¶æ¥è¯¢ API 对è¿ç§ç¨ä¾æä¾äºç¹å«è§çº¦ã "
#. Tag: para
#, no-c-format
-msgid ""
-"First, map the natural key of your entity using <literal><natural-id></"
-"literal> and enable use of the second-level cache."
-msgstr ""
-"é¦å
ï¼ä½ åºè¯¥å¯¹ä½ ç entity ä½¿ç¨ <literal><natural-id></literal> æ¥æ å°èª"
-"ç¶é®ï¼ç¶åæå¼ç¬¬äºçº§ç¼åã "
+msgid "First, map the natural key of your entity using <literal><natural-id></literal> and enable use of the second-level cache."
+msgstr "é¦å
ï¼ä½ åºè¯¥å¯¹ä½ ç entity ä½¿ç¨ <literal><natural-id></literal> æ¥æ å°èªç¶é®ï¼ç¶åæå¼ç¬¬äºçº§ç¼åã "
#. Tag: para
#, no-c-format
-msgid ""
-"This functionality is not intended for use with entities with "
-"<emphasis>mutable</emphasis> natural keys."
-msgstr ""
-"注æ,æ¤åè½å¯¹å
·æ<emphasis>mutable</emphasis>èªç¶é®ç entity 并ä¸éç¨ã "
+msgid "This functionality is not intended for use with entities with <emphasis>mutable</emphasis> natural keys."
+msgstr "注æ,æ¤åè½å¯¹å
·æ<emphasis>mutable</emphasis>èªç¶é®ç entity 并ä¸éç¨ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Once you have enabled the Hibernate query cache, the <literal>Restrictions."
-"naturalId()</literal> allows you to make use of the more efficient cache "
-"algorithm."
-msgstr ""
-"ç°å¨ï¼æ们å¯ä»¥ç¨ <literal>Restrictions.naturalId()</literal> æ¥ä½¿ç¨æ´å é«æç"
-"ç¼åç®æ³ã "
+msgid "Once you have enabled the Hibernate query cache, the <literal>Restrictions.naturalId()</literal> allows you to make use of the more efficient cache algorithm."
+msgstr "ç°å¨ï¼æ们å¯ä»¥ç¨ <literal>Restrictions.naturalId()</literal> æ¥ä½¿ç¨æ´å é«æçç¼åç®æ³ã "
#, fuzzy
#~ msgid ""
@@ -884,3 +750,4 @@
#~ " .set(\"org\", \"hb\") \n"
#~ " ).setCacheable(true)\n"
#~ " .uniqueResult();"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:15\n"
-"PO-Revision-Date: 2009-12-07 21:13+1000\n"
+"PO-Revision-Date: 2010-03-16 10:03+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,14 +21,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate uses a powerful query language (HQL) that is similar in appearance "
-"to SQL. Compared with SQL, however, HQL is fully object-oriented and "
-"understands notions like inheritance, polymorphism and association."
-msgstr ""
-"Hibernate é
å¤äºä¸ç§é常强大çæ¥è¯¢è¯è¨ï¼è¿ç§è¯è¨çä¸å»å¾å SQLãä½æ¯ä¸è¦è¢«è¯"
-"æ³ç»æä¸çç¸ä¼¼æè¿·æï¼HQL æ¯é常ææè¯ç被设计为å®å
¨é¢å对象çæ¥è¯¢ï¼å®å¯ä»¥ç"
-"解å¦ç»§æ¿ãå¤æåå
³èä¹ç±»çæ¦å¿µã "
+msgid "Hibernate uses a powerful query language (HQL) that is similar in appearance to SQL. Compared with SQL, however, HQL is fully object-oriented and understands notions like inheritance, polymorphism and association."
+msgstr "Hibernate é
å¤äºä¸ç§é常强大çæ¥è¯¢è¯è¨ï¼è¿ç§è¯è¨çä¸å»å¾å SQLãä½æ¯ä¸è¦è¢«è¯æ³ç»æä¸çç¸ä¼¼æè¿·æï¼HQL æ¯é常ææè¯ç被设计为å®å
¨é¢å对象çæ¥è¯¢ï¼å®å¯ä»¥ç解å¦ç»§æ¿ãå¤æåå
³èä¹ç±»çæ¦å¿µã "
#. Tag: title
#, no-c-format
@@ -37,29 +31,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"With the exception of names of Java classes and properties, queries are case-"
-"insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</"
-"literal> is the same as <literal>SELECT</literal>, but <literal>org."
-"hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, "
-"and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
-msgstr ""
-"é¤äº Java ç±»ä¸å±æ§çå称å¤ï¼æ¥è¯¢è¯å¥å¯¹å¤§å°å并ä¸ææã æ以 <literal>SeLeCT</"
-"literal> ä¸ <literal>sELEct</literal> 以å <literal>SELECT</literal> æ¯ç¸å"
-"çï¼ä½æ¯ <literal>org.hibernate.eg.FOO</literal> 并ä¸çä»·äº <literal>org."
-"hibernate.eg.Foo</literal> å¹¶ä¸ <literal>foo.barSet</literal> ä¹ä¸çä»·äº "
-"<literal>foo.BARSET</literal>ã "
+msgid "With the exception of names of Java classes and properties, queries are case-insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</literal> is the same as <literal>SELECT</literal>, but <literal>org.hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr "é¤äº Java ç±»ä¸å±æ§çå称å¤ï¼æ¥è¯¢è¯å¥å¯¹å¤§å°å并ä¸ææã æ以 <literal>SeLeCT</literal> ä¸ <literal>sELEct</literal> 以å <literal>SELECT</literal> æ¯ç¸åçï¼ä½æ¯ <literal>org.hibernate.eg.FOO</literal> 并ä¸çä»·äº <literal>org.hibernate.eg.Foo</literal> å¹¶ä¸ <literal>foo.barSet</literal> ä¹ä¸çä»·äº <literal>foo.BARSET</literal>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"This manual uses lowercase HQL keywords. Some users find queries with "
-"uppercase keywords more readable, but this convention is unsuitable for "
-"queries embedded in Java code."
-msgstr ""
-"æ¬æåä¸ç HQL å
³é®åå°ä½¿ç¨å°ååæ¯ãå¾å¤ç¨æ·åç°ä½¿ç¨å®å
¨å¤§åçå
³é®åä¼ä½¿æ¥è¯¢"
-"è¯å¥çå¯è¯»æ§æ´å¼ºï¼ä½æ们åç°ï¼å½ææ¥è¯¢è¯å¥åµå
¥å° Java è¯å¥ä¸çæ¶å使ç¨å¤§åå
³"
-"é®åæ¯è¾é¾çã"
+msgid "This manual uses lowercase HQL keywords. Some users find queries with uppercase keywords more readable, but this convention is unsuitable for queries embedded in Java code."
+msgstr "æ¬æåä¸ç HQL å
³é®åå°ä½¿ç¨å°ååæ¯ãå¾å¤ç¨æ·åç°ä½¿ç¨å®å
¨å¤§åçå
³é®åä¼ä½¿æ¥è¯¢è¯å¥çå¯è¯»æ§æ´å¼ºï¼ä½æ们åç°ï¼å½ææ¥è¯¢è¯å¥åµå
¥å° Java è¯å¥ä¸çæ¶å使ç¨å¤§åå
³é®åæ¯è¾é¾çã"
#. Tag: title
#, no-c-format
@@ -73,52 +51,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"This returns all instances of the class <literal>eg.Cat</literal>. You do "
-"not usually need to qualify the class name, since <literal>auto-import</"
-"literal> is the default. For example:"
-msgstr ""
-"该åå¥ç®åçè¿å <literal>eg.Cat</literal> ç±»çææå®ä¾ãé常æ们ä¸éè¦ä½¿ç¨ç±»"
-"çå
¨éå®åï¼å 为 <literal>auto-import</literal>ï¼èªå¨å¼å
¥ï¼æ¯ç¼ºççæ
åµãæ"
-"以æ们å ä¹åªä½¿ç¨å¦ä¸çç®ååæ³ï¼ "
+msgid "This returns all instances of the class <literal>eg.Cat</literal>. You do not usually need to qualify the class name, since <literal>auto-import</literal> is the default. For example:"
+msgstr "该åå¥ç®åçè¿å <literal>eg.Cat</literal> ç±»çææå®ä¾ãé常æ们ä¸éè¦ä½¿ç¨ç±»çå
¨éå®åï¼å 为 <literal>auto-import</literal>ï¼èªå¨å¼å
¥ï¼æ¯ç¼ºççæ
åµãæ以æ们å ä¹åªä½¿ç¨å¦ä¸çç®ååæ³ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"In order to refer to the <literal>Cat</literal> in other parts of the query, "
-"you will need to assign an <emphasis>alias</emphasis>. For example:"
-msgstr ""
-"为äºå¨è¿ä¸ªæ¥è¯¢çå
¶ä»é¨åéå¼ç¨ <literal>Cat</literal>ï¼ä½ å°éè¦åé
ä¸ä¸ª"
-"<emphasis>å«å</emphasis>ãä¾å¦ï¼"
+msgid "In order to refer to the <literal>Cat</literal> in other parts of the query, you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr "为äºå¨è¿ä¸ªæ¥è¯¢çå
¶ä»é¨åéå¼ç¨ <literal>Cat</literal>ï¼ä½ å°éè¦åé
ä¸ä¸ª<emphasis>å«å</emphasis>ãä¾å¦ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"This query assigns the alias <literal>cat</literal> to <literal>Cat</"
-"literal> instances, so you can use that alias later in the query. The "
-"<literal>as</literal> keyword is optional. You could also write:"
-msgstr ""
-"è¿ä¸ªè¯å¥æå«å <literal>cat</literal> æå®ç»ç±»<literal>Cat</literal> çå®ä¾ï¼"
-"è¿æ ·æ们就å¯ä»¥å¨éåçæ¥è¯¢ä¸ä½¿ç¨æ¤å«åäºãå
³é®å <literal>as</literal> æ¯å¯é"
-"çï¼æ们ä¹å¯ä»¥è¿æ ·åï¼ "
+msgid "This query assigns the alias <literal>cat</literal> to <literal>Cat</literal> instances, so you can use that alias later in the query. The <literal>as</literal> keyword is optional. You could also write:"
+msgstr "è¿ä¸ªè¯å¥æå«å <literal>cat</literal> æå®ç»ç±»<literal>Cat</literal> çå®ä¾ï¼è¿æ ·æ们就å¯ä»¥å¨éåçæ¥è¯¢ä¸ä½¿ç¨æ¤å«åäºãå
³é®å <literal>as</literal> æ¯å¯éçï¼æ们ä¹å¯ä»¥è¿æ ·åï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Multiple classes can appear, resulting in a cartesian product or \"cross\" "
-"join."
-msgstr ""
-"åå¥ä¸å¯ä»¥åæ¶åºç°å¤ä¸ªç±»ï¼å
¶æ¥è¯¢ç»ææ¯äº§çä¸ä¸ªç¬å¡å¿ç§¯æ产ç跨表çè¿æ¥ã "
+msgid "Multiple classes can appear, resulting in a cartesian product or \"cross\" join."
+msgstr "åå¥ä¸å¯ä»¥åæ¶åºç°å¤ä¸ªç±»ï¼å
¶æ¥è¯¢ç»ææ¯äº§çä¸ä¸ªç¬å¡å¿ç§¯æ产ç跨表çè¿æ¥ã "
#. Tag: para
#, no-c-format
-msgid ""
-"It is good practice to name query aliases using an initial lowercase as this "
-"is consistent with Java naming standards for local variables (e.g. "
-"<literal>domesticCat</literal>)."
-msgstr ""
-"æ¥è¯¢è¯å¥ä¸å«åçå¼å¤´é¨åå°å被认为æ¯å®è·µä¸çå¥½ä¹ æ¯ï¼è¿æ ·åä¸ Java åéçå½å"
-"æ åä¿æäºä¸è´ï¼æ¯å¦ï¼<literal>domesticCat</literal>ï¼ã "
+msgid "It is good practice to name query aliases using an initial lowercase as this is consistent with Java naming standards for local variables (e.g. <literal>domesticCat</literal>)."
+msgstr "æ¥è¯¢è¯å¥ä¸å«åçå¼å¤´é¨åå°å被认为æ¯å®è·µä¸çå¥½ä¹ æ¯ï¼è¿æ ·åä¸ Java åéçå½åæ åä¿æäºä¸è´ï¼æ¯å¦ï¼<literal>domesticCat</literal>ï¼ã "
#. Tag: title
#, no-c-format
@@ -127,12 +81,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can also assign aliases to associated entities or to elements of a "
-"collection of values using a <literal>join</literal>. For example:"
-msgstr ""
-"æ们ä¹å¯ä»¥ä¸ºç¸å
³èçå®ä½çè³æ¯å¯¹ä¸ä¸ªéåä¸çå
¨é¨å
ç´ æå®ä¸ä¸ªå«åï¼è¿æ¶è¦ä½¿ç¨"
-"å
³é®å <literal>join</literal>ã "
+msgid "You can also assign aliases to associated entities or to elements of a collection of values using a <literal>join</literal>. For example:"
+msgstr "æ们ä¹å¯ä»¥ä¸ºç¸å
³èçå®ä½çè³æ¯å¯¹ä¸ä¸ªéåä¸çå
¨é¨å
ç´ æå®ä¸ä¸ªå«åï¼è¿æ¶è¦ä½¿ç¨å
³é®å <literal>join</literal>ã "
#. Tag: para
#, no-c-format
@@ -161,91 +111,33 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>inner join</literal>, <literal>left outer join</literal> and "
-"<literal>right outer join</literal> constructs may be abbreviated."
-msgstr ""
-"è¯å¥ <literal>inner join</literal>ï¼<literal>left outer join</literal> 以å "
-"<literal>right outer join</literal> å¯ä»¥ç®åã"
+msgid "The <literal>inner join</literal>, <literal>left outer join</literal> and <literal>right outer join</literal> constructs may be abbreviated."
+msgstr "è¯å¥ <literal>inner join</literal>ï¼<literal>left outer join</literal> 以å <literal>right outer join</literal> å¯ä»¥ç®åã"
#. Tag: para
#, no-c-format
-msgid ""
-"You may supply extra join conditions using the HQL <literal>with</literal> "
-"keyword."
-msgstr ""
-"éè¿ HQL ç <literal>with</literal> å
³é®åï¼ä½ å¯ä»¥æä¾é¢å¤ç join æ¡ä»¶ã"
+msgid "You may supply extra join conditions using the HQL <literal>with</literal> keyword."
+msgstr "éè¿ HQL ç <literal>with</literal> å
³é®åï¼ä½ å¯ä»¥æä¾é¢å¤ç join æ¡ä»¶ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A \"fetch\" join allows associations or collections of values to be "
-"initialized along with their parent objects using a single select. This is "
-"particularly useful in the case of a collection. It effectively overrides "
-"the outer join and lazy declarations of the mapping file for associations "
-"and collections. See <xref linkend=\"performance-fetching\" /> for more "
-"information."
-msgstr ""
-"è¿æï¼ä¸ä¸ª \"fetch\" è¿æ¥å
许ä»
ä»
使ç¨ä¸ä¸ªéæ©è¯å¥å°±å°ç¸å
³èç对象æä¸ç»å¼çé"
-"åéçä»ä»¬çç¶å¯¹è±¡çåå§åè被åå§åï¼è¿ç§æ¹æ³å¨ä½¿ç¨å°éåçæ
åµä¸å°¤å
¶æç¨ï¼"
-"对äºå
³èåéåæ¥è¯´ï¼å®ææç代æ¿äºæ å°æ件ä¸çå¤èæ¥ä¸å»¶è¿å£°æï¼lazy "
-"declarationsï¼ãæ¥ç <xref linkend=\"performance-fetching\" /> 以è·å¾çå¤çä¿¡"
-"æ¯ã"
+#, no-c-format
+msgid "A \"fetch\" join allows associations or collections of values to be initialized along with their parent objects using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr "è¿æï¼ä¸ä¸ª \"fetch\" è¿æ¥å
许ä»
ä»
使ç¨ä¸ä¸ªéæ©è¯å¥å°±å°ç¸å
³èç对象æä¸ç»å¼çéåéçä»ä»¬çç¶å¯¹è±¡çåå§åè被åå§åï¼è¿ç§æ¹æ³å¨ä½¿ç¨å°éåçæ
åµä¸å°¤å
¶æç¨ï¼å¯¹äºå
³èåéåæ¥è¯´ï¼å®ææç代æ¿äºæ å°æ件ä¸çå¤èæ¥ä¸å»¶è¿å£°æï¼lazy declarationsï¼ãæ¥ç <xref linkend=\"performance-fetching\" /> 以è·å¾çå¤çä¿¡æ¯ã "
#. Tag: para
#, no-c-format
-msgid ""
-"A fetch join does not usually need to assign an alias, because the "
-"associated objects should not be used in the <literal>where</literal> clause "
-"(or any other clause). The associated objects are also not returned directly "
-"in the query results. Instead, they may be accessed via the parent object. "
-"The only reason you might need an alias is if you are recursively join "
-"fetching a further collection:"
-msgstr ""
-"ä¸ä¸ª fetch è¿æ¥é常ä¸éè¦è¢«æå®å«åï¼å 为ç¸å
³èç对象ä¸åºå½è¢«ç¨å¨ "
-"<literal>where</literal> åå¥ï¼æå
¶å®ä»»ä½åå¥ï¼ä¸ãåæ¶ï¼ç¸å
³èç对象并ä¸å¨æ¥"
-"询çç»æä¸ç´æ¥è¿åï¼ä½å¯ä»¥éè¿ä»ä»¬çç¶å¯¹è±¡æ¥è®¿é®å°ä»ä»¬ã "
+msgid "A fetch join does not usually need to assign an alias, because the associated objects should not be used in the <literal>where</literal> clause (or any other clause). The associated objects are also not returned directly in the query results. Instead, they may be accessed via the parent object. The only reason you might need an alias is if you are recursively join fetching a further collection:"
+msgstr "ä¸ä¸ª fetch è¿æ¥é常ä¸éè¦è¢«æå®å«åï¼å 为ç¸å
³èç对象ä¸åºå½è¢«ç¨å¨ <literal>where</literal> åå¥ï¼æå
¶å®ä»»ä½åå¥ï¼ä¸ãåæ¶ï¼ç¸å
³èç对象并ä¸å¨æ¥è¯¢çç»æä¸ç´æ¥è¿åï¼ä½å¯ä»¥éè¿ä»ä»¬çç¶å¯¹è±¡æ¥è®¿é®å°ä»ä»¬ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>fetch</literal> construct cannot be used in queries called "
-"using <literal>iterate()</literal> (though <literal>scroll()</literal> can "
-"be used). <literal>Fetch</literal> should be used together with "
-"<literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, "
-"as these operations are based on the result rows which usually contain "
-"duplicates for eager collection fetching, hence, the number of rows is not "
-"what you would expect. <literal>Fetch</literal> should also not be used "
-"together with impromptu <literal>with</literal> condition. It is possible to "
-"create a cartesian product by join fetching more than one collection in a "
-"query, so take care in this case. Join fetching multiple collection roles "
-"can produce unexpected results for bag mappings, so user discretion is "
-"advised when formulating queries in this case. Finally, note that "
-"<literal>full join fetch</literal> and <literal>right join fetch</literal> "
-"are not meaningful."
-msgstr ""
-"åè¥ä½¿ç¨ <literal>iterate()</literal> æ¥è°ç¨æ¥è¯¢ï¼è¯·æ³¨æ <literal>fetch</"
-"literal> æé æ¯ä¸è½ä½¿ç¨çï¼<literal>scroll()</literal> å¯ä»¥ä½¿ç¨ï¼ã"
-"<literal>fetch</literal> ä¹ä¸åºè¯¥ä¸ <literal>setMaxResults()</literal> æ "
-"<literal>setFirstResult()</literal> å
±ç¨ï¼è¿æ¯å 为è¿äºæä½æ¯åºäºç»æéçï¼è"
-"å¨é¢å
æåéåç±»æ¶å¯è½å
å«éå¤çæ°æ®ï¼ä¹å°±æ¯è¯´æ æ³é¢å
ç¥é精确çè¡æ°ã"
-"<literal>fetch</literal> è¿ä¸è½ä¸ç¬ç«ç <literal>with</literal> æ¡ä»¶ä¸èµ·ä½¿"
-"ç¨ãéè¿å¨ä¸æ¬¡æ¥è¯¢ä¸ fetch å¤ä¸ªéåï¼å¯ä»¥å¶é åºç¬å¡å°ç§¯ï¼å æ¤è¯·å¤å 注æã对 "
-"bag æ å°æ¥è¯´ï¼åæ¶ join fetch å¤ä¸ªéåè§è²å¯è½å¨æäºæ
åµä¸ç»åºå¹¶éé¢æçç»"
-"æï¼ä¹è¯·å°å¿ãæå注æï¼ä½¿ç¨ <literal>full join fetch</literal> ä¸ "
-"<literal>right join fetch</literal> æ¯æ²¡ææä¹çã "
+msgid "The <literal>fetch</literal> construct cannot be used in queries called using <literal>iterate()</literal> (though <literal>scroll()</literal> can be used). <literal>Fetch</literal> should be used together with <literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, as these operations are based on the result rows which usually contain duplicates for eager collection fetching, hence, the number of rows is not what you would expect. <literal>Fetch</literal> should also not be used together with impromptu <literal>with</literal> condition. It is possible to create a cartesian product by join fetching more than one collection in a query, so take care in this case. Join fetching multiple collection roles can produce unexpected results for bag mappings, so user discretion is advised when formulating queries in this case. Finally, note that <literal>full join fetch</literal> and <literal>right join fetch</literal> are not meaningful."
+msgstr "åè¥ä½¿ç¨ <literal>iterate()</literal> æ¥è°ç¨æ¥è¯¢ï¼è¯·æ³¨æ <literal>fetch</literal> æé æ¯ä¸è½ä½¿ç¨çï¼<literal>scroll()</literal> å¯ä»¥ä½¿ç¨ï¼ã<literal>fetch</literal> ä¹ä¸åºè¯¥ä¸ <literal>setMaxResults()</literal> æ <literal>setFirstResult()</literal> å
±ç¨ï¼è¿æ¯å 为è¿äºæä½æ¯åºäºç»æéçï¼èå¨é¢å
æåéåç±»æ¶å¯è½å
å«éå¤çæ°æ®ï¼ä¹å°±æ¯è¯´æ æ³é¢å
ç¥é精确çè¡æ°ã<literal>fetch</literal> è¿ä¸è½ä¸ç¬ç«ç <literal>with</literal> æ¡ä»¶ä¸èµ·ä½¿ç¨ãéè¿å¨ä¸æ¬¡æ¥è¯¢ä¸ fetch å¤ä¸ªéåï¼å¯ä»¥å¶é åºç¬å¡å°ç§¯ï¼å æ¤è¯·å¤å 注æã对 bag æ å°æ¥è¯´ï¼åæ¶ join fetch å¤ä¸ªéåè§è²å¯è½å¨æäºæ
åµä¸ç»åºå¹¶éé¢æçç»æï¼ä¹è¯·å°å¿ãæå注æï¼ä½¿ç¨ <literal>full join fetch</literal> ä¸ <literal>right join fetch</literal> æ¯æ²¡ææä¹çã "
#. Tag: para
#, no-c-format
-msgid ""
-"If you are using property-level lazy fetching (with bytecode "
-"instrumentation), it is possible to force Hibernate to fetch the lazy "
-"properties in the first query immediately using <literal>fetch all "
-"properties</literal>."
-msgstr ""
-"å¦æä½ ä½¿ç¨å±æ§çº§å«ç延è¿è·åï¼lazy fetchingï¼ï¼è¿æ¯éè¿éæ°ç¼ååèç å®ç°"
-"çï¼ï¼å¯ä»¥ä½¿ç¨ <literal>fetch all properties</literal> æ¥å¼ºå¶ Hibernate ç«å³"
-"åå¾é£äºåæ¬éè¦å»¶è¿å è½½çå±æ§ï¼å¨ç¬¬ä¸ä¸ªæ¥è¯¢ä¸ï¼ã "
+msgid "If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties in the first query immediately using <literal>fetch all properties</literal>."
+msgstr "å¦æä½ ä½¿ç¨å±æ§çº§å«ç延è¿è·åï¼lazy fetchingï¼ï¼è¿æ¯éè¿éæ°ç¼ååèç å®ç°çï¼ï¼å¯ä»¥ä½¿ç¨ <literal>fetch all properties</literal> æ¥å¼ºå¶ Hibernate ç«å³åå¾é£äºåæ¬éè¦å»¶è¿å è½½çå±æ§ï¼å¨ç¬¬ä¸ä¸ªæ¥è¯¢ä¸ï¼ã "
#. Tag: title
#, no-c-format
@@ -254,35 +146,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"HQL supports two forms of association joining: <literal>implicit</literal> "
-"and <literal>explicit</literal>."
-msgstr ""
-"HQL æ¯æ两ç§å
³è join çå½¢å¼ï¼<literal>implicitï¼éå¼ï¼</literal> ä¸ "
-"<literal>explicitï¼æ¾å¼ï¼</literal>ã"
+msgid "HQL supports two forms of association joining: <literal>implicit</literal> and <literal>explicit</literal>."
+msgstr "HQL æ¯æ两ç§å
³è join çå½¢å¼ï¼<literal>implicitï¼éå¼ï¼</literal> ä¸ <literal>explicitï¼æ¾å¼ï¼</literal>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The queries shown in the previous section all use the <literal>explicit</"
-"literal> form, that is, where the join keyword is explicitly used in the "
-"from clause. This is the recommended form."
-msgstr ""
-"ä¸ä¸èä¸ç»åºçæ¥è¯¢é½æ¯ä½¿ç¨ <literal>explicitï¼æ¾å¼ï¼</literal>å½¢å¼çï¼å
¶ä¸ "
-"form åå¥ä¸æç¡®ç»åºäº join å
³é®åãè¿æ¯å»ºè®®ä½¿ç¨çæ¹å¼ã "
+msgid "The queries shown in the previous section all use the <literal>explicit</literal> form, that is, where the join keyword is explicitly used in the from clause. This is the recommended form."
+msgstr "ä¸ä¸èä¸ç»åºçæ¥è¯¢é½æ¯ä½¿ç¨ <literal>explicitï¼æ¾å¼ï¼</literal>å½¢å¼çï¼å
¶ä¸ form åå¥ä¸æç¡®ç»åºäº join å
³é®åãè¿æ¯å»ºè®®ä½¿ç¨çæ¹å¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>implicit</literal> form does not use the join keyword. Instead, "
-"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
-"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
-"literal> join result in inner joins in the resulting SQL statement."
-msgstr ""
-"<literal>implicitï¼éå¼ï¼</literal>å½¢å¼ä¸ä½¿ç¨ join å
³é®åãå
³è使ç¨\"ç¹å·\"æ¥"
-"è¿è¡âå¼ç¨âã<literal>implicit</literal> join å¯ä»¥å¨ä»»ä½ HQL åå¥ä¸åºç°ã"
-"<literal>implicit</literal> join å¨æç»ç SQL è¯å¥ä¸ä»¥ inner join çæ¹å¼åº"
-"ç°ã"
+msgid "The <literal>implicit</literal> form does not use the join keyword. Instead, the associations are \"dereferenced\" using dot-notation. <literal>implicit</literal> joins can appear in any of the HQL clauses. <literal>implicit</literal> join result in inner joins in the resulting SQL statement."
+msgstr "<literal>implicitï¼éå¼ï¼</literal>å½¢å¼ä¸ä½¿ç¨ join å
³é®åãå
³è使ç¨\"ç¹å·\"æ¥è¿è¡âå¼ç¨âã<literal>implicit</literal> join å¯ä»¥å¨ä»»ä½ HQL åå¥ä¸åºç°ã<literal>implicit</literal> join å¨æç»ç SQL è¯å¥ä¸ä»¥ inner join çæ¹å¼åºç°ã"
#. Tag: title
#, no-c-format
@@ -296,48 +171,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The special property (lowercase) <literal>id</literal> may be used to "
-"reference the identifier property of an entity <emphasis>provided that the "
-"entity does not define a non-identifier property named id</emphasis>."
-msgstr ""
-"ç¹æ®å±æ§ï¼lowercaseï¼<literal>id</literal> å¯ä»¥ç¨æ¥å¼ç¨å®ä½ç identifier å±"
-"æ§ <emphasis>å设è¿ä¸ªå®ä½æ²¡æå®ä¹ç¨ non-identifier å±æ§å½åç id</"
-"emphasis>ã "
+msgid "The special property (lowercase) <literal>id</literal> may be used to reference the identifier property of an entity <emphasis>provided that the entity does not define a non-identifier property named id</emphasis>."
+msgstr "ç¹æ®å±æ§ï¼lowercaseï¼<literal>id</literal> å¯ä»¥ç¨æ¥å¼ç¨å®ä½ç identifier å±æ§ <emphasis>å设è¿ä¸ªå®ä½æ²¡æå®ä¹ç¨ non-identifier å±æ§å½åç id</emphasis>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If the entity defines a named identifier property, you can use that property "
-"name."
+msgid "If the entity defines a named identifier property, you can use that property name."
msgstr "å¦æè¿ä¸ªå®ä½å®ä¹äº identifier å±æ§ï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åã "
#. Tag: para
#, no-c-format
-msgid ""
-"References to composite identifier properties follow the same naming rules. "
-"If the entity has a non-identifier property named id, the composite "
-"identifier property can only be referenced by its defined named. Otherwise, "
-"the special <literal>id</literal> property can be used to reference the "
-"identifier property."
-msgstr ""
-"对ç»å identifier å±æ§çå¼ç¨éµå¾ªç¸åçå½åè§åãå¦æå®ä½æä¸ä¸ª non-"
-"identifier å±æ§å½åç idï¼è¿ä¸ªç»å identifier å±æ§åªè½ç¨èªå·±å®ä¹çååæ¥å¼"
-"ç¨ï¼å¦åï¼ç¹æ® <literal>id</literal> å±æ§å¯ä»¥ç¨æ¥å¼ç¨ identifier å±æ§ã "
+msgid "References to composite identifier properties follow the same naming rules. If the entity has a non-identifier property named id, the composite identifier property can only be referenced by its defined named. Otherwise, the special <literal>id</literal> property can be used to reference the identifier property."
+msgstr "对ç»å identifier å±æ§çå¼ç¨éµå¾ªç¸åçå½åè§åãå¦æå®ä½æä¸ä¸ª non-identifier å±æ§å½åç idï¼è¿ä¸ªç»å identifier å±æ§åªè½ç¨èªå·±å®ä¹çååæ¥å¼ç¨ï¼å¦åï¼ç¹æ® <literal>id</literal> å±æ§å¯ä»¥ç¨æ¥å¼ç¨ identifier å±æ§ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Please note that, starting in version 3.2.2, this has changed significantly. "
-"In previous versions, <literal>id</literal> <emphasis>always</emphasis> "
-"referred to the identifier property regardless of its actual name. A "
-"ramification of that decision was that non-identifier properties named "
-"<literal>id</literal> could never be referenced in Hibernate queries."
-msgstr ""
-"注æï¼ä» 3.2.2 çæ¬å¼å§ï¼è¿å·²ç»æ¹åäºå¾å¤ãå¨åé¢ççæ¬éï¼ä¸ç®¡å®é
çååï¼"
-"<literal>id</literal> <emphasis>æ»æ¯</emphasis>æå identifier å±æ§ï¼èç¨ "
-"non-identifier å±æ§å½åç <literal>id</literal> å°±ä»æ¥ä¸å¨ Hibernate æ¥è¯¢éå¼"
-"ç¨ã "
+msgid "Please note that, starting in version 3.2.2, this has changed significantly. In previous versions, <literal>id</literal> <emphasis>always</emphasis> referred to the identifier property regardless of its actual name. A ramification of that decision was that non-identifier properties named <literal>id</literal> could never be referenced in Hibernate queries."
+msgstr "注æï¼ä» 3.2.2 çæ¬å¼å§ï¼è¿å·²ç»æ¹åäºå¾å¤ãå¨åé¢ççæ¬éï¼ä¸ç®¡å®é
çååï¼<literal>id</literal> <emphasis>æ»æ¯</emphasis>æå identifier å±æ§ï¼èç¨ non-identifier å±æ§å½åç <literal>id</literal> å°±ä»æ¥ä¸å¨ Hibernate æ¥è¯¢éå¼ç¨ã "
#. Tag: title
#, no-c-format
@@ -346,39 +196,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>select</literal> clause picks which objects and properties to "
-"return in the query result set. Consider the following:"
-msgstr ""
-"<literal>select</literal> åå¥éæ©å°åªäºå¯¹è±¡ä¸å±æ§è¿åå°æ¥è¯¢ç»æéä¸ãèèå¦"
-"ä¸æ
åµï¼"
+msgid "The <literal>select</literal> clause picks which objects and properties to return in the query result set. Consider the following:"
+msgstr "<literal>select</literal> åå¥éæ©å°åªäºå¯¹è±¡ä¸å±æ§è¿åå°æ¥è¯¢ç»æéä¸ãèèå¦ä¸æ
åµï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The query will select <literal>mate</literal>s of other <literal>Cat</"
-"literal>s. You can express this query more compactly as:"
-msgstr ""
-"该è¯å¥å°éæ©å
¶å® <literal>Cat</literal> ç <literal>mate</literal>ï¼å
¶ä»ç«ç"
-"é
å¶ï¼ãå®é
ä¸ï¼ä½ å¯ä»¥æ´ç®æ´çç¨ä»¥ä¸çæ¥è¯¢è¯å¥è¡¨è¾¾ç¸åçå«ä¹ï¼ "
+msgid "The query will select <literal>mate</literal>s of other <literal>Cat</literal>s. You can express this query more compactly as:"
+msgstr "该è¯å¥å°éæ©å
¶å® <literal>Cat</literal> ç <literal>mate</literal>ï¼å
¶ä»ç«çé
å¶ï¼ãå®é
ä¸ï¼ä½ å¯ä»¥æ´ç®æ´çç¨ä»¥ä¸çæ¥è¯¢è¯å¥è¡¨è¾¾ç¸åçå«ä¹ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Queries can return properties of any value type including properties of "
-"component type:"
-msgstr ""
-"æ¥è¯¢è¯å¥å¯ä»¥è¿åå¼ä¸ºä»»ä½ç±»åçå±æ§ï¼å
æ¬è¿åç±»å为æç§ç»ä»¶ï¼Componentï¼çå±"
-"æ§ï¼ "
+msgid "Queries can return properties of any value type including properties of component type:"
+msgstr "æ¥è¯¢è¯å¥å¯ä»¥è¿åå¼ä¸ºä»»ä½ç±»åçå±æ§ï¼å
æ¬è¿åç±»å为æç§ç»ä»¶ï¼Componentï¼çå±æ§ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Queries can return multiple objects and/or properties as an array of type "
-"<literal>Object[]</literal>:"
-msgstr ""
-"æ¥è¯¢è¯å¥å¯ä»¥è¿åå¤ä¸ªå¯¹è±¡åï¼æï¼å±æ§ï¼åæ¾å¨ <literal>Object[]</literal> éå"
-"ä¸ï¼ "
+msgid "Queries can return multiple objects and/or properties as an array of type <literal>Object[]</literal>:"
+msgstr "æ¥è¯¢è¯å¥å¯ä»¥è¿åå¤ä¸ªå¯¹è±¡åï¼æï¼å±æ§ï¼åæ¾å¨ <literal>Object[]</literal> éåä¸ï¼ "
#. Tag: para
#, no-c-format
@@ -387,33 +221,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Or - assuming that the class <literal>Family</literal> has an appropriate "
-"constructor - as an actual typesafe Java object:"
-msgstr ""
-"å设类 <literal>Family</literal> æä¸ä¸ªåéçæé å½æ° - ä½ä¸ºå®é
çç±»åå®å
¨ç "
-"Java 对象ï¼"
+msgid "Or - assuming that the class <literal>Family</literal> has an appropriate constructor - as an actual typesafe Java object:"
+msgstr "å设类 <literal>Family</literal> æä¸ä¸ªåéçæé å½æ° - ä½ä¸ºå®é
çç±»åå®å
¨ç Java 对象ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"You can assign aliases to selected expressions using <literal>as</literal>:"
+msgid "You can assign aliases to selected expressions using <literal>as</literal>:"
msgstr "ä½ å¯ä»¥ä½¿ç¨å
³é®å <literal>as</literal> ç»â被éæ©äºç表达å¼âææ´¾å«åï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"This is most useful when used together with <literal>select new map</"
-"literal>:"
+msgid "This is most useful when used together with <literal>select new map</literal>:"
msgstr "è¿ç§åæ³å¨ä¸åå¥ <literal>select new map</literal> ä¸èµ·ä½¿ç¨æ¶ææç¨ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"This query returns a <literal>Map</literal> from aliases to selected values."
-msgstr ""
-"该æ¥è¯¢è¿åäºä¸ä¸ª <literal>Map</literal> ç对象ï¼å
容æ¯å«åä¸è¢«éæ©çå¼ç»æç"
-"å-å¼æ å°ã"
+msgid "This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr "该æ¥è¯¢è¿åäºä¸ä¸ª <literal>Map</literal> ç对象ï¼å
容æ¯å«åä¸è¢«éæ©çå¼ç»æçå-å¼æ å°ã"
#. Tag: title
#, no-c-format
@@ -422,8 +246,7 @@
#. Tag: para
#, no-c-format
-msgid ""
-"HQL queries can even return the results of aggregate functions on properties:"
+msgid "HQL queries can even return the results of aggregate functions on properties:"
msgstr "HQL æ¥è¯¢çè³å¯ä»¥è¿åä½ç¨äºå±æ§ä¹ä¸çèéå½æ°ç计ç®ç»æï¼ "
#. Tag: para
@@ -432,9 +255,9 @@
msgstr "åæ¯æçèéå½æ°å¦ä¸ï¼ "
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
-msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal> "
#. Tag: para
#, no-c-format
@@ -442,25 +265,19 @@
msgstr "<literal>count(*)</literal>"
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"You can use arithmetic operators, concatenation, and recognized SQL "
-"functions in the select clause:"
+msgid "You can use arithmetic operators, concatenation, and recognized SQL functions in the select clause:"
msgstr "ä½ å¯ä»¥å¨éæ©åå¥ä¸ä½¿ç¨æ°å¦æä½ç¬¦ãè¿æ¥ä»¥åç»è¿éªè¯ç SQL å½æ°ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>distinct</literal> and <literal>all</literal> keywords can be "
-"used and have the same semantics as in SQL."
-msgstr ""
-"å
³é®å <literal>distinct</literal> ä¸ <literal>all</literal> ä¹å¯ä»¥ä½¿ç¨ï¼å®ä»¬"
-"å
·æä¸ SQL ç¸åçè¯ä¹ã "
+msgid "The <literal>distinct</literal> and <literal>all</literal> keywords can be used and have the same semantics as in SQL."
+msgstr "å
³é®å <literal>distinct</literal> ä¸ <literal>all</literal> ä¹å¯ä»¥ä½¿ç¨ï¼å®ä»¬å
·æä¸ SQL ç¸åçè¯ä¹ã "
#. Tag: title
#, no-c-format
@@ -474,38 +291,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"returns instances not only of <literal>Cat</literal>, but also of subclasses "
-"like <literal>DomesticCat</literal>. Hibernate queries can name "
-"<emphasis>any</emphasis> Java class or interface in the <literal>from</"
-"literal> clause. The query will return instances of all persistent classes "
-"that extend that class or implement the interface. The following query would "
-"return all persistent objects:"
-msgstr ""
-"ä¸ä»
è¿å <literal>Cat</literal> ç±»çå®ä¾ï¼ä¹åæ¶è¿ååç±» "
-"<literal>DomesticCat</literal> çå®ä¾ãHibernate å¯ä»¥å¨ <literal>from</"
-"literal> åå¥ä¸æå®<emphasis>ä»»ä½</emphasis> Java ç±»ææ¥å£ãæ¥è¯¢ä¼è¿å继æ¿äº"
-"该类çæææä¹
ååç±»çå®ä¾æè¿å声æäºè¯¥æ¥å£çæææä¹
åç±»çå®ä¾ãä¸é¢çæ¥è¯¢"
-"è¯å¥è¿åææç被æä¹
åçå¯¹è±¡ï¼ "
+msgid "returns instances not only of <literal>Cat</literal>, but also of subclasses like <literal>DomesticCat</literal>. Hibernate queries can name <emphasis>any</emphasis> Java class or interface in the <literal>from</literal> clause. The query will return instances of all persistent classes that extend that class or implement the interface. The following query would return all persistent objects:"
+msgstr "ä¸ä»
è¿å <literal>Cat</literal> ç±»çå®ä¾ï¼ä¹åæ¶è¿ååç±» <literal>DomesticCat</literal> çå®ä¾ãHibernate å¯ä»¥å¨ <literal>from</literal> åå¥ä¸æå®<emphasis>ä»»ä½</emphasis> Java ç±»ææ¥å£ãæ¥è¯¢ä¼è¿å继æ¿äºè¯¥ç±»çæææä¹
ååç±»çå®ä¾æè¿å声æäºè¯¥æ¥å£çæææä¹
åç±»çå®ä¾ãä¸é¢çæ¥è¯¢è¯å¥è¿åææç被æä¹
åçå¯¹è±¡ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The interface <literal>Named</literal> might be implemented by various "
-"persistent classes:"
+msgid "The interface <literal>Named</literal> might be implemented by various persistent classes:"
msgstr "æ¥å£ <literal>Named</literal> å¯è½è¢«åç§åæ ·çæä¹
å类声æï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"These last two queries will require more than one SQL <literal>SELECT</"
-"literal>. This means that the <literal>order by</literal> clause does not "
-"correctly order the whole result set. It also means you cannot call these "
-"queries using <literal>Query.scroll()</literal>."
-msgstr ""
-"注æï¼æåç两个æ¥è¯¢å°éè¦è¶
è¿ä¸ä¸ªç SQL <literal>SELECT</literal>ãè¿è¡¨æ "
-"<literal>order by</literal> åå¥æ²¡æ对æ´ä¸ªç»æéè¿è¡æ£ç¡®çæåºãï¼è¿ä¹è¯´æä½ "
-"ä¸è½å¯¹è¿æ ·çæ¥è¯¢ä½¿ç¨ <literal>Query.scroll()</literal> æ¹æ³ãï¼"
+msgid "These last two queries will require more than one SQL <literal>SELECT</literal>. This means that the <literal>order by</literal> clause does not correctly order the whole result set. It also means you cannot call these queries using <literal>Query.scroll()</literal>."
+msgstr "注æï¼æåç两个æ¥è¯¢å°éè¦è¶
è¿ä¸ä¸ªç SQL <literal>SELECT</literal>ãè¿è¡¨æ <literal>order by</literal> åå¥æ²¡æ对æ´ä¸ªç»æéè¿è¡æ£ç¡®çæåºãï¼è¿ä¹è¯´æä½ ä¸è½å¯¹è¿æ ·çæ¥è¯¢ä½¿ç¨ <literal>Query.scroll()</literal> æ¹æ³ãï¼"
#. Tag: title
#, no-c-format
@@ -514,12 +311,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>where</literal> clause allows you to refine the list of "
-"instances returned. If no alias exists, you can refer to properties by name:"
-msgstr ""
-"<literal>where</literal> åå¥å
è®¸ä½ å°è¿åçå®ä¾å表çèå´ç¼©å°ãå¦æ没ææå®å«"
-"åï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åæ¥ç´æ¥å¼ç¨å±æ§ï¼ "
+msgid "The <literal>where</literal> clause allows you to refine the list of instances returned. If no alias exists, you can refer to properties by name:"
+msgstr "<literal>where</literal> åå¥å
è®¸ä½ å°è¿åçå®ä¾å表çèå´ç¼©å°ãå¦æ没ææå®å«åï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åæ¥ç´æ¥å¼ç¨å±æ§ï¼ "
#. Tag: para
#, no-c-format
@@ -529,8 +322,7 @@
#. Tag: para
#, no-c-format
msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
-msgstr ""
-"è¿åå为ï¼å±æ§ name çäºï¼'Fritz' ç <literal>Cat</literal> ç±»çå®ä¾ã "
+msgstr "è¿åå为ï¼å±æ§ name çäºï¼'Fritz' ç <literal>Cat</literal> ç±»çå®ä¾ã "
#. Tag: para
#, no-c-format
@@ -539,25 +331,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"returns all instances of <literal>Foo</literal> with an instance of "
-"<literal>bar</literal> with a <literal>date</literal> property equal to the "
-"<literal>startDate</literal> property of the <literal>Foo</literal>. "
-"Compound path expressions make the <literal>where</literal> clause extremely "
-"powerful. Consider the following:"
-msgstr ""
-"å°è¿åææ满足ä¸é¢æ¡ä»¶ç <literal>Foo</literal> ç±»çå®ä¾ï¼ åå¨å¦ä¸ç "
-"<literal>bar</literal> çä¸ä¸ªå®ä¾ï¼å
¶ <literal>date</literal> å±æ§çäº "
-"<literal>Foo</literal> ç <literal>startDate</literal> å±æ§ãå¤åè·¯å¾è¡¨è¾¾å¼ä½¿"
-"å¾ <literal>where</literal> åå¥é常ç强大ï¼èèå¦ä¸æ
åµï¼ "
+msgid "returns all instances of <literal>Foo</literal> with an instance of <literal>bar</literal> with a <literal>date</literal> property equal to the <literal>startDate</literal> property of the <literal>Foo</literal>. Compound path expressions make the <literal>where</literal> clause extremely powerful. Consider the following:"
+msgstr "å°è¿åææ满足ä¸é¢æ¡ä»¶ç <literal>Foo</literal> ç±»çå®ä¾ï¼ åå¨å¦ä¸ç <literal>bar</literal> çä¸ä¸ªå®ä¾ï¼å
¶ <literal>date</literal> å±æ§çäº <literal>Foo</literal> ç <literal>startDate</literal> å±æ§ãå¤åè·¯å¾è¡¨è¾¾å¼ä½¿å¾ <literal>where</literal> åå¥é常ç强大ï¼èèå¦ä¸æ
åµï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"This query translates to an SQL query with a table (inner) join. For example:"
-msgstr ""
-"该æ¥è¯¢å°è¢«ç¿»è¯æ为ä¸ä¸ªå«æ表è¿æ¥ï¼å
è¿æ¥ï¼ç SQL æ¥è¯¢ãå¦æä½ æç®ååè¿æ ·çæ¥"
-"询è¯å¥ï¼"
+msgid "This query translates to an SQL query with a table (inner) join. For example:"
+msgstr "该æ¥è¯¢å°è¢«ç¿»è¯æ为ä¸ä¸ªå«æ表è¿æ¥ï¼å
è¿æ¥ï¼ç SQL æ¥è¯¢ãå¦æä½ æç®ååè¿æ ·çæ¥è¯¢è¯å¥ï¼"
#. Tag: para
#, no-c-format
@@ -566,21 +346,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>=</literal> operator can be used to compare not only "
-"properties, but also instances:"
-msgstr ""
-"<literal>=</literal> è¿ç®ç¬¦ä¸ä»
å¯ä»¥è¢«ç¨æ¥æ¯è¾å±æ§çå¼ï¼ä¹å¯ä»¥ç¨æ¥æ¯è¾å®ä¾ï¼ "
+msgid "The <literal>=</literal> operator can be used to compare not only properties, but also instances:"
+msgstr "<literal>=</literal> è¿ç®ç¬¦ä¸ä»
å¯ä»¥è¢«ç¨æ¥æ¯è¾å±æ§çå¼ï¼ä¹å¯ä»¥ç¨æ¥æ¯è¾å®ä¾ï¼ "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The special property (lowercase) <literal>id</literal> can be used to "
-"reference the unique identifier of an object. See <xref linkend=\"queryhql-"
-"identifier-property\" /> for more information."
-msgstr ""
-"ç¹æ®å±æ§ï¼å°åï¼<literal>id</literal> å¯ä»¥ç¨æ¥è¡¨ç¤ºä¸ä¸ªå¯¹è±¡çå¯ä¸çæ è¯ç¬¦ã详"
-"æ
请åè <xref linkend=\"queryhql-identifier-property\" />ã"
+#, no-c-format
+msgid "The special property (lowercase) <literal>id</literal> can be used to reference the unique identifier of an object. See <xref linkend=\"queryhql-identifier-property\" /> for more information."
+msgstr "ç¹æ®å±æ§ï¼å°åï¼<literal>id</literal> å¯ä»¥ç¨æ¥è¡¨ç¤ºä¸ä¸ªå¯¹è±¡çå¯ä¸çæ è¯ç¬¦ã详æ
请åè <xref linkend=\"queryhql-identifier-property\" />ã "
#. Tag: para
#, no-c-format
@@ -589,14 +361,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Properties of composite identifiers can also be used. Consider the following "
-"example where <literal>Person</literal> has composite identifiers consisting "
-"of <literal>country</literal> and <literal>medicareNumber</literal>:"
-msgstr ""
-"åæ ·ä¹å¯ä»¥ä½¿ç¨å¤åæ è¯ç¬¦ãæ¯å¦ <literal>Person</literal> ç±»æä¸ä¸ªå¤åæ è¯ç¬¦ï¼"
-"å®ç± <literal>country</literal> å±æ§ä¸ <literal>medicareNumber</literal> å±æ§"
-"ç»æï¼"
+msgid "Properties of composite identifiers can also be used. Consider the following example where <literal>Person</literal> has composite identifiers consisting of <literal>country</literal> and <literal>medicareNumber</literal>:"
+msgstr "åæ ·ä¹å¯ä»¥ä½¿ç¨å¤åæ è¯ç¬¦ãæ¯å¦ <literal>Person</literal> ç±»æä¸ä¸ªå¤åæ è¯ç¬¦ï¼å®ç± <literal>country</literal> å±æ§ä¸ <literal>medicareNumber</literal> å±æ§ç»æï¼"
#. Tag: para
#, no-c-format
@@ -604,57 +370,29 @@
msgstr "第äºä¸ªæ¥è¯¢ä¹ä¸éè¦è¿è¡è¡¨è¿æ¥ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"See <xref linkend=\"queryhql-identifier-property\" /> for more information "
-"regarding referencing identifier properties)"
-msgstr ""
-"å
³äºå¼ç¨æ è¯ç¬¦å±æ§çæ´å¤ä¿¡æ¯ï¼è¯·åè <xref linkend=\"queryhql-identifier-"
-"property\" />ã"
+#, no-c-format
+msgid "See <xref linkend=\"queryhql-identifier-property\" /> for more information regarding referencing identifier properties)"
+msgstr "å
³äºå¼ç¨æ è¯ç¬¦å±æ§çæ´å¤ä¿¡æ¯ï¼è¯·åè <xref linkend=\"queryhql-identifier-property\" />ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The special property <literal>class</literal> accesses the discriminator "
-"value of an instance in the case of polymorphic persistence. A Java class "
-"name embedded in the where clause will be translated to its discriminator "
-"value."
-msgstr ""
-"åæ ·çï¼ç¹æ®å±æ§ <literal>class</literal> å¨è¿è¡å¤ææä¹
åçæ
åµä¸è¢«ç¨æ¥åå"
-"ä¸ä¸ªå®ä¾çé´å«å¼ï¼discriminator valueï¼ãä¸ä¸ªåµå
¥å° where åå¥ä¸ç Java ç±»ç"
-"ååå°è¢«è½¬æ¢ä¸ºè¯¥ç±»çé´å«å¼ã "
+msgid "The special property <literal>class</literal> accesses the discriminator value of an instance in the case of polymorphic persistence. A Java class name embedded in the where clause will be translated to its discriminator value."
+msgstr "åæ ·çï¼ç¹æ®å±æ§ <literal>class</literal> å¨è¿è¡å¤ææä¹
åçæ
åµä¸è¢«ç¨æ¥ååä¸ä¸ªå®ä¾çé´å«å¼ï¼discriminator valueï¼ãä¸ä¸ªåµå
¥å° where åå¥ä¸ç Java ç±»çååå°è¢«è½¬æ¢ä¸ºè¯¥ç±»çé´å«å¼ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You can also use components or composite user types, or properties of said "
-"component types. See <xref linkend=\"queryhql-components\" /> for more "
-"information."
-msgstr ""
-"ä½ ä¹å¯ä»¥ä½¿ç¨ç»ä»¶æè
å¤åç¨æ·ç±»åï¼ä»¥åç»ä»¶ç±»åçå±æ§ã详æ
请åè <xref "
-"linkend=\"queryhql-components\" />ã"
+#, no-c-format
+msgid "You can also use components or composite user types, or properties of said component types. See <xref linkend=\"queryhql-components\" /> for more information."
+msgstr "ä½ ä¹å¯ä»¥ä½¿ç¨ç»ä»¶æè
å¤åç¨æ·ç±»åï¼ä»¥åç»ä»¶ç±»åçå±æ§ã详æ
请åè <xref linkend=\"queryhql-components\" />ã "
#. Tag: para
#, no-c-format
-msgid ""
-"An \"any\" type has the special properties <literal>id</literal> and "
-"<literal>class</literal> that allows you to express a join in the following "
-"way (where <literal>AuditLog.item</literal> is a property mapped with "
-"<literal><any></literal>):"
-msgstr ""
-"ä¸ä¸ªâä»»æâç±»åæ两个ç¹æ®çå±æ§ <literal>id</literal> å <literal>class</"
-"literal>ï¼æ¥å
许æ们æç
§ä¸é¢çæ¹å¼è¡¨è¾¾ä¸ä¸ªè¿æ¥ï¼<literal>AuditLog.item</"
-"literal> æ¯ä¸ä¸ªå±æ§ï¼è¯¥å±æ§è¢«æ å°ä¸º <literal><any></literal>ï¼ã "
+msgid "An \"any\" type has the special properties <literal>id</literal> and <literal>class</literal> that allows you to express a join in the following way (where <literal>AuditLog.item</literal> is a property mapped with <literal><any></literal>):"
+msgstr "ä¸ä¸ªâä»»æâç±»åæ两个ç¹æ®çå±æ§ <literal>id</literal> å <literal>class</literal>ï¼æ¥å
许æ们æç
§ä¸é¢çæ¹å¼è¡¨è¾¾ä¸ä¸ªè¿æ¥ï¼<literal>AuditLog.item</literal> æ¯ä¸ä¸ªå±æ§ï¼è¯¥å±æ§è¢«æ å°ä¸º <literal><any></literal>ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>log.item.class</literal> and <literal>payment.class</literal> "
-"would refer to the values of completely different database columns in the "
-"above query."
-msgstr ""
-"注æï¼å¨ä¸é¢çæ¥è¯¢ä¸å¥ä¸ï¼<literal>log.item.class</literal> å "
-"<literal>payment.class</literal> å°æ¶åå°å®å
¨ä¸åçæ°æ®åºä¸çåã"
+msgid "The <literal>log.item.class</literal> and <literal>payment.class</literal> would refer to the values of completely different database columns in the above query."
+msgstr "注æï¼å¨ä¸é¢çæ¥è¯¢ä¸å¥ä¸ï¼<literal>log.item.class</literal> å <literal>payment.class</literal> å°æ¶åå°å®å
¨ä¸åçæ°æ®åºä¸çåã"
#. Tag: title
#, no-c-format
@@ -663,12 +401,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Expressions used in the <literal>where</literal> clause include the "
-"following:"
-msgstr ""
-"å¨ <literal>where</literal> åå¥ä¸å
许使ç¨ç表达å¼å
æ¬ å¤§å¤æ°ä½ å¯ä»¥å¨ SQL 使"
-"ç¨ç表达å¼ç§ç±»ï¼ "
+msgid "Expressions used in the <literal>where</literal> clause include the following:"
+msgstr "å¨ <literal>where</literal> åå¥ä¸å
许使ç¨ç表达å¼å
æ¬ å¤§å¤æ°ä½ å¯ä»¥å¨ SQL 使ç¨ç表达å¼ç§ç±»ï¼ "
#. Tag: para
#, no-c-format
@@ -677,11 +411,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"binary comparison operators: <literal>=, >=, <=, <>, !=, like</"
-"literal>"
-msgstr ""
-"äºè¿å¶æ¯è¾è¿ç®ç¬¦ <literal>=, >=, <=, <>, !=, like</literal> "
+msgid "binary comparison operators: <literal>=, >=, <=, <>, !=, like</literal>"
+msgstr "äºè¿å¶æ¯è¾è¿ç®ç¬¦ <literal>=, >=, <=, <>, !=, like</literal> "
#. Tag: para
#, no-c-format
@@ -695,64 +426,33 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
-"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
-"<literal>is empty</literal>, <literal>is not empty</literal>, "
-"<literal>member of</literal> and <literal>not member of</literal>"
-msgstr ""
-"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
-"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
-"<literal>is empty</literal>, <literal>is not empty</literal>, "
-"<literal>member of</literal> and <literal>not member of</literal>"
+msgid "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> and <literal>not member of</literal>"
+msgstr "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> and <literal>not member of</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
-"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
-msgstr ""
-"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
-"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgid "\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr "\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
-"</literal>"
-msgstr ""
-"å符串è¿æ¥ç¬¦ <literal>...||...</literal> or <literal>concat(...,...)</"
-"literal>"
+msgid "string concatenation <literal>...||...</literal> or <literal>concat(...,...)</literal>"
+msgstr "å符串è¿æ¥ç¬¦ <literal>...||...</literal> or <literal>concat(...,...)</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
-"<literal>current_timestamp()</literal>"
-msgstr ""
-"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
-"<literal>current_timestamp()</literal>"
+msgid "<literal>current_date()</literal>, <literal>current_time()</literal>, and <literal>current_timestamp()</literal>"
+msgstr "<literal>current_date()</literal>, <literal>current_time()</literal>, and <literal>current_timestamp()</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
-"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
-"and <literal>year(...)</literal>"
-msgstr ""
-"<literal>second(...)</literal>ã<literal>minute(...)</literal>ã<literal>hour"
-"(...)</literal>ã<literal>day(...)</literal>ã<literal>month(...)</literal> "
-"å <literal>year(...)</literal>"
+msgid "<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, and <literal>year(...)</literal>"
+msgstr "<literal>second(...)</literal>ã<literal>minute(...)</literal>ã<literal>hour(...)</literal>ã<literal>day(...)</literal>ã<literal>month(...)</literal> å <literal>year(...)</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim"
-"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()"
-"</literal>"
-msgstr ""
-"EJB-QL 3.0 å®ä¹çä»»ä½åè½ææä½ç¬¦ï¼<literal>substring(), trim(), lower(), "
-"upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
+msgid "Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
+msgstr "EJB-QL 3.0 å®ä¹çä»»ä½åè½ææä½ç¬¦ï¼<literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
#. Tag: para
#, no-c-format
@@ -761,53 +461,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>str()</literal> for converting numeric or temporal values to a "
-"readable string"
+msgid "<literal>str()</literal> for converting numeric or temporal values to a readable string"
msgstr "<literal>str()</literal> ææ°åæè
æ¶é´å¼è½¬æ¢ä¸ºå¯è¯»çå符串"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>cast(... as ...)</literal>, where the second argument is the name "
-"of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI "
-"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
-"the underlying database"
-msgstr ""
-"<literal>cast(... as ...)</literal>ï¼å
¶ç¬¬äºä¸ªåæ°æ¯æ Hibernate ç±»åçååï¼"
-"以å <literal>extract(... from ...)</literal>ï¼åªè¦ ANSI <literal>cast()</"
-"literal> å <literal>extract()</literal> 被åºå±æ°æ®åºæ¯æ"
+msgid "<literal>cast(... as ...)</literal>, where the second argument is the name of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI <literal>cast()</literal> and <literal>extract()</literal> is supported by the underlying database"
+msgstr "<literal>cast(... as ...)</literal>ï¼å
¶ç¬¬äºä¸ªåæ°æ¯æ Hibernate ç±»åçååï¼ä»¥å <literal>extract(... from ...)</literal>ï¼åªè¦ ANSI <literal>cast()</literal> å <literal>extract()</literal> 被åºå±æ°æ®åºæ¯æ"
#. Tag: para
#, no-c-format
-msgid ""
-"the HQL <literal>index()</literal> function, that applies to aliases of a "
-"joined indexed collection"
+msgid "the HQL <literal>index()</literal> function, that applies to aliases of a joined indexed collection"
msgstr "HQL <literal>index()</literal> å½æ°ï¼ä½ç¨äº join çæåºéåçå«åã"
#. Tag: para
#, no-c-format
-msgid ""
-"HQL functions that take collection-valued path expressions: <literal>size(), "
-"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
-"special <literal>elements()</literal> and <literal>indices</literal> "
-"functions that can be quantified using <literal>some, all, exists, any, in</"
-"literal>."
-msgstr ""
-"HQL å½æ°ï¼æéåä½ä¸ºåæ°ï¼<literal>size(), minelement(), maxelement(), "
-"minindex(), maxindex()</literal>ï¼è¿æç¹å«ç <literal>elements()</literal> "
-"å <literal>indices</literal> å½æ°ï¼å¯ä»¥ä¸æ°éè¯å 以éå®ï¼<literal>some, "
-"all, exists, any, in</literal>ã "
+msgid "HQL functions that take collection-valued path expressions: <literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>, along with the special <literal>elements()</literal> and <literal>indices</literal> functions that can be quantified using <literal>some, all, exists, any, in</literal>."
+msgstr "HQL å½æ°ï¼æéåä½ä¸ºåæ°ï¼<literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>ï¼è¿æç¹å«ç <literal>elements()</literal> å <literal>indices</literal> å½æ°ï¼å¯ä»¥ä¸æ°éè¯å 以éå®ï¼<literal>some, all, exists, any, in</literal>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Any database-supported SQL scalar function like <literal>sign()</literal>, "
-"<literal>trunc()</literal>, <literal>rtrim()</literal>, and <literal>sin()</"
-"literal>"
-msgstr ""
-"ä»»ä½æ°æ®åºæ¯æç SQL æ éå½æ°ï¼æ¯å¦ <literal>sign()</literal>, <literal>trunc"
-"()</literal>, <literal>rtrim()</literal>, <literal>sin()</literal> "
+msgid "Any database-supported SQL scalar function like <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, and <literal>sin()</literal>"
+msgstr "ä»»ä½æ°æ®åºæ¯æç SQL æ éå½æ°ï¼æ¯å¦ <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</literal> "
#. Tag: para
#, no-c-format
@@ -816,38 +491,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
-"and <literal>:x1</literal>"
-msgstr ""
-"å½ååæ° <literal>:name</literal>ï¼<literal>:start_date</literal>ï¼<literal>:"
-"x1</literal> "
+msgid "named parameters <literal>:name</literal>, <literal>:start_date</literal>, and <literal>:x1</literal>"
+msgstr "å½ååæ° <literal>:name</literal>ï¼<literal>:start_date</literal>ï¼<literal>:x1</literal> "
#. Tag: para
#, no-c-format
-msgid ""
-"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
-"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
-msgstr ""
-"SQL ç´æ¥å¸¸é <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
-"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgid "SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr "SQL ç´æ¥å¸¸é <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"Java <literal>public static final</literal> constants <literal>eg.Color."
-"TABBY</literal>"
-msgstr ""
-"Java <literal>public static final</literal> ç±»åç常é <literal>eg.Color."
-"TABBY</literal>"
+msgid "Java <literal>public static final</literal> constants <literal>eg.Color.TABBY</literal>"
+msgstr "Java <literal>public static final</literal> ç±»åç常é <literal>eg.Color.TABBY</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>in</literal> and <literal>between</literal> can be used as follows:"
-msgstr ""
-"å
³é®å <literal>in</literal> ä¸ <literal>between</literal> å¯æå¦ä¸æ¹æ³ä½¿"
-"ç¨ï¼ "
+msgid "<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr "å
³é®å <literal>in</literal> ä¸ <literal>between</literal> å¯æå¦ä¸æ¹æ³ä½¿ç¨ï¼ "
#. Tag: para
#, no-c-format
@@ -856,106 +516,53 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Similarly, <literal>is null</literal> and <literal>is not null</literal> can "
-"be used to test for null values."
-msgstr ""
-"åæ ·ï¼åå¥ <literal>is null</literal> ä¸ <literal>is not null</literal> å¯ä»¥"
-"被ç¨æ¥æµè¯ç©ºå¼ï¼nullï¼ã "
+msgid "Similarly, <literal>is null</literal> and <literal>is not null</literal> can be used to test for null values."
+msgstr "åæ ·ï¼åå¥ <literal>is null</literal> ä¸ <literal>is not null</literal> å¯ä»¥è¢«ç¨æ¥æµè¯ç©ºå¼ï¼nullï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Booleans can be easily used in expressions by declaring HQL query "
-"substitutions in Hibernate configuration:"
-msgstr ""
-"å¨ Hibernate é
ç½®æ件ä¸å£°æ HQLâæ¥è¯¢æ¿ä»£ï¼query substitutionsï¼âä¹åï¼å¸å°è¡¨"
-"è¾¾å¼ï¼Booleansï¼å¯ä»¥å¨å
¶ä»è¡¨è¾¾å¼ä¸è½»æ¾ç使ç¨ï¼ "
+msgid "Booleans can be easily used in expressions by declaring HQL query substitutions in Hibernate configuration:"
+msgstr "å¨ Hibernate é
ç½®æ件ä¸å£°æ HQLâæ¥è¯¢æ¿ä»£ï¼query substitutionsï¼âä¹åï¼å¸å°è¡¨è¾¾å¼ï¼Booleansï¼å¯ä»¥å¨å
¶ä»è¡¨è¾¾å¼ä¸è½»æ¾ç使ç¨ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"This will replace the keywords <literal>true</literal> and <literal>false</"
-"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
-"the translated SQL from this HQL:"
-msgstr ""
-"ç³»ç»å°è¯¥ HQL 转æ¢ä¸º SQL è¯å¥æ¶ï¼è¯¥è®¾ç½®è¡¨æå°ç¨å符 <literal>1</literal> å "
-"<literal>0</literal> æ¥å代å
³é®å <literal>true</literal> å <literal>false</"
-"literal>ï¼"
+msgid "This will replace the keywords <literal>true</literal> and <literal>false</literal> with the literals <literal>1</literal> and <literal>0</literal> in the translated SQL from this HQL:"
+msgstr "ç³»ç»å°è¯¥ HQL 转æ¢ä¸º SQL è¯å¥æ¶ï¼è¯¥è®¾ç½®è¡¨æå°ç¨å符 <literal>1</literal> å <literal>0</literal> æ¥å代å
³é®å <literal>true</literal> å <literal>false</literal>ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"You can test the size of a collection with the special property "
-"<literal>size</literal> or the special <literal>size()</literal> function."
-msgstr ""
-"ä½ å¯ä»¥ç¨ç¹æ®å±æ§ <literal>size</literal>ï¼ææ¯ç¹æ®å½æ° <literal>size()</"
-"literal> æµè¯ä¸ä¸ªéåç大å°ã "
+msgid "You can test the size of a collection with the special property <literal>size</literal> or the special <literal>size()</literal> function."
+msgstr "ä½ å¯ä»¥ç¨ç¹æ®å±æ§ <literal>size</literal>ï¼ææ¯ç¹æ®å½æ° <literal>size()</literal> æµè¯ä¸ä¸ªéåç大å°ã "
#. Tag: para
#, no-c-format
-msgid ""
-"For indexed collections, you can refer to the minimum and maximum indices "
-"using <literal>minindex</literal> and <literal>maxindex</literal> functions. "
-"Similarly, you can refer to the minimum and maximum elements of a collection "
-"of basic type using the <literal>minelement</literal> and "
-"<literal>maxelement</literal> functions. For example:"
-msgstr ""
-"对äºç´¢å¼äºï¼æåºï¼çéåï¼ä½ å¯ä»¥ä½¿ç¨ <literal>minindex</literal> ä¸ "
-"<literal>maxindex</literal> å½æ°æ¥å¼ç¨å°æå°ä¸æ大çç´¢å¼åºæ°ãåçï¼ä½ å¯ä»¥ä½¿"
-"ç¨ <literal>minelement</literal> ä¸ <literal>maxelement</literal> å½æ°æ¥å¼ç¨"
-"å°ä¸ä¸ªåºæ¬æ°æ®ç±»åçéåä¸æå°ä¸æ大çå
ç´ ãä¾å¦ï¼"
+msgid "For indexed collections, you can refer to the minimum and maximum indices using <literal>minindex</literal> and <literal>maxindex</literal> functions. Similarly, you can refer to the minimum and maximum elements of a collection of basic type using the <literal>minelement</literal> and <literal>maxelement</literal> functions. For example:"
+msgstr "对äºç´¢å¼äºï¼æåºï¼çéåï¼ä½ å¯ä»¥ä½¿ç¨ <literal>minindex</literal> ä¸ <literal>maxindex</literal> å½æ°æ¥å¼ç¨å°æå°ä¸æ大çç´¢å¼åºæ°ãåçï¼ä½ å¯ä»¥ä½¿ç¨ <literal>minelement</literal> ä¸ <literal>maxelement</literal> å½æ°æ¥å¼ç¨å°ä¸ä¸ªåºæ¬æ°æ®ç±»åçéåä¸æå°ä¸æ大çå
ç´ ãä¾å¦ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The SQL functions <literal>any, some, all, exists, in</literal> are "
-"supported when passed the element or index set of a collection "
-"(<literal>elements</literal> and <literal>indices</literal> functions) or "
-"the result of a subquery (see below):"
-msgstr ""
-"å¨ä¼ éä¸ä¸ªéåçç´¢å¼éæè
æ¯å
ç´ éï¼<literal>elements</literal> ä¸ "
-"<literal>indices</literal> å½æ°ï¼æè
ä¼ éä¸ä¸ªåæ¥è¯¢çç»æçæ¶åï¼å¯ä»¥ä½¿ç¨ "
-"SQL å½æ° <literal>any, someï¼all, exists, in</literal>ï¼"
+msgid "The SQL functions <literal>any, some, all, exists, in</literal> are supported when passed the element or index set of a collection (<literal>elements</literal> and <literal>indices</literal> functions) or the result of a subquery (see below):"
+msgstr "å¨ä¼ éä¸ä¸ªéåçç´¢å¼éæè
æ¯å
ç´ éï¼<literal>elements</literal> ä¸ <literal>indices</literal> å½æ°ï¼æè
ä¼ éä¸ä¸ªåæ¥è¯¢çç»æçæ¶åï¼å¯ä»¥ä½¿ç¨ SQL å½æ° <literal>any, someï¼all, exists, in</literal>ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Note that these constructs - <literal>size</literal>, <literal>elements</"
-"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
-"<literal>maxindex</literal>, <literal>minelement</literal>, "
-"<literal>maxelement</literal> - can only be used in the where clause in "
-"Hibernate3."
-msgstr ""
-"注æï¼å¨ Hibernate3 ä¸ï¼è¿äºç»æåé â <literal>size</literal>ï¼"
-"<literal>elements</literal>ï¼<literal>indices</literal>ï¼<literal>minindex</"
-"literal>ï¼<literal>maxindex</literal>ï¼<literal>minelement</literal>ï¼"
-"<literal>maxelement</literal> â åªè½å¨ where åå¥ä¸ä½¿ç¨ã "
+msgid "Note that these constructs - <literal>size</literal>, <literal>elements</literal>, <literal>indices</literal>, <literal>minindex</literal>, <literal>maxindex</literal>, <literal>minelement</literal>, <literal>maxelement</literal> - can only be used in the where clause in Hibernate3."
+msgstr "注æï¼å¨ Hibernate3 ä¸ï¼è¿äºç»æåé â <literal>size</literal>ï¼<literal>elements</literal>ï¼<literal>indices</literal>ï¼<literal>minindex</literal>ï¼<literal>maxindex</literal>ï¼<literal>minelement</literal>ï¼<literal>maxelement</literal> â åªè½å¨ where åå¥ä¸ä½¿ç¨ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Elements of indexed collections (arrays, lists, and maps) can be referred to "
-"by index in a where clause only:"
-msgstr ""
-"ä¸ä¸ªè¢«ç´¢å¼è¿çï¼æåºçï¼éåçå
ç´ ï¼arraysï¼listsï¼mapsï¼å¯ä»¥å¨å
¶ä»ç´¢å¼ä¸è¢«å¼"
-"ç¨ï¼åªè½å¨ where åå¥ä¸ï¼ï¼ "
+msgid "Elements of indexed collections (arrays, lists, and maps) can be referred to by index in a where clause only:"
+msgstr "ä¸ä¸ªè¢«ç´¢å¼è¿çï¼æåºçï¼éåçå
ç´ ï¼arraysï¼listsï¼mapsï¼å¯ä»¥å¨å
¶ä»ç´¢å¼ä¸è¢«å¼ç¨ï¼åªè½å¨ where åå¥ä¸ï¼ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The expression inside <literal>[]</literal> can even be an arithmetic "
-"expression:"
+msgid "The expression inside <literal>[]</literal> can even be an arithmetic expression:"
msgstr "å¨ <literal>[]</literal> ä¸ç表达å¼çè³å¯ä»¥æ¯ä¸ä¸ªç®æ°è¡¨è¾¾å¼ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"HQL also provides the built-in <literal>index()</literal> function for "
-"elements of a one-to-many association or collection of values."
-msgstr ""
-"对äºä¸ä¸ªä¸å¯¹å¤çå
³èï¼one-to-many associationï¼ææ¯å¼çéåä¸çå
ç´ ï¼HQL ä¹æ"
-"ä¾å
建ç <literal>index()</literal> å½æ°ã"
+msgid "HQL also provides the built-in <literal>index()</literal> function for elements of a one-to-many association or collection of values."
+msgstr "对äºä¸ä¸ªä¸å¯¹å¤çå
³èï¼one-to-many associationï¼ææ¯å¼çéåä¸çå
ç´ ï¼HQL ä¹æä¾å
建ç <literal>index()</literal> å½æ°ã"
#. Tag: para
#, no-c-format
@@ -964,12 +571,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Consider how much longer and less readable the following query would be in "
-"SQL:"
-msgstr ""
-"å¦æä½ è¿ä¸è½å¯¹ææçè¿äºæ·±ä¿¡ä¸çï¼æ³æ³ä¸é¢çæ¥è¯¢ãå¦æä½¿ç¨ SQLï¼è¯å¥é¿åº¦ä¼å¢"
-"é¿å¤å°ï¼å¯è¯»æ§ä¼ä¸éå¤å°ï¼ "
+msgid "Consider how much longer and less readable the following query would be in SQL:"
+msgstr "å¦æä½ è¿ä¸è½å¯¹ææçè¿äºæ·±ä¿¡ä¸çï¼æ³æ³ä¸é¢çæ¥è¯¢ãå¦æä½¿ç¨ SQLï¼è¯å¥é¿åº¦ä¼å¢é¿å¤å°ï¼å¯è¯»æ§ä¼ä¸éå¤å°ï¼ "
#. Tag: para
#, no-c-format
@@ -983,21 +586,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The list returned by a query can be ordered by any property of a returned "
-"class or components:"
-msgstr ""
-"æ¥è¯¢è¿åçå表ï¼listï¼å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶ï¼componentsï¼ä¸çä»»ä½å±æ§"
-"ï¼propertyï¼è¿è¡æåºï¼ "
+msgid "The list returned by a query can be ordered by any property of a returned class or components:"
+msgstr "æ¥è¯¢è¿åçå表ï¼listï¼å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶ï¼componentsï¼ä¸çä»»ä½å±æ§ï¼propertyï¼è¿è¡æåºï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
-"ascending or descending order respectively."
-msgstr ""
-"å¯éç <literal>asc</literal> æ <literal>desc</literal> å
³é®åææäºæç
§ååº"
-"æéåºè¿è¡æåºã"
+msgid "The optional <literal>asc</literal> or <literal>desc</literal> indicate ascending or descending order respectively."
+msgstr "å¯éç <literal>asc</literal> æ <literal>desc</literal> å
³é®åææäºæç
§ååºæéåºè¿è¡æåºã"
#. Tag: title
#, no-c-format
@@ -1006,12 +601,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"A query that returns aggregate values can be grouped by any property of a "
-"returned class or components:"
-msgstr ""
-"ä¸ä¸ªè¿åèéå¼ï¼aggregate valuesï¼çæ¥è¯¢å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶"
-"ï¼componentsï¼ä¸çä»»ä½å±æ§ï¼propertyï¼è¿è¡åç»ï¼ "
+msgid "A query that returns aggregate values can be grouped by any property of a returned class or components:"
+msgstr "ä¸ä¸ªè¿åèéå¼ï¼aggregate valuesï¼çæ¥è¯¢å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶ï¼componentsï¼ä¸çä»»ä½å±æ§ï¼propertyï¼è¿è¡åç»ï¼ "
#. Tag: para
#, no-c-format
@@ -1020,29 +611,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"SQL functions and aggregate functions are allowed in the <literal>having</"
-"literal> and <literal>order by</literal> clauses if they are supported by "
-"the underlying database (i.e., not in MySQL)."
-msgstr ""
-"å¦æåºå±çæ°æ®åºæ¯æçè¯ï¼ä¾å¦ä¸è½å¨ MySQL ä¸ä½¿ç¨ï¼ï¼SQL çä¸è¬å½æ°ä¸èéå½æ°"
-"ä¹å¯ä»¥åºç°å¨ <literal>having</literal> ä¸ <literal>order by</literal> åå¥"
-"ä¸ã "
+msgid "SQL functions and aggregate functions are allowed in the <literal>having</literal> and <literal>order by</literal> clauses if they are supported by the underlying database (i.e., not in MySQL)."
+msgstr "å¦æåºå±çæ°æ®åºæ¯æçè¯ï¼ä¾å¦ä¸è½å¨ MySQL ä¸ä½¿ç¨ï¼ï¼SQL çä¸è¬å½æ°ä¸èéå½æ°ä¹å¯ä»¥åºç°å¨ <literal>having</literal> ä¸ <literal>order by</literal> åå¥ä¸ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Neither the <literal>group by</literal> clause nor the <literal>order by</"
-"literal> clause can contain arithmetic expressions. Hibernate also does not "
-"currently expand a grouped entity, so you cannot write <literal>group by "
-"cat</literal> if all properties of <literal>cat</literal> are non-"
-"aggregated. You have to list all non-aggregated properties explicitly."
-msgstr ""
-"注æ <literal>group by</literal> åå¥ä¸ <literal>order by</literal> åå¥ä¸é½"
-"ä¸è½å
å«ç®æ¯è¡¨è¾¾å¼ï¼arithmetic expressionsï¼ãä¹è¦æ³¨æ Hibernate ç®åä¸ä¼æ©"
-"å± group çå®ä½ï¼å æ¤ä½ ä¸è½å <literal>group by cat</literal>ï¼é¤é "
-"<literal>cat</literal> çææå±æ§é½ä¸æ¯èéçï¼non-aggregatedï¼ãä½ å¿
é¡»æç¡®ç"
-"ååºææçéèéå±æ§ã "
+msgid "Neither the <literal>group by</literal> clause nor the <literal>order by</literal> clause can contain arithmetic expressions. Hibernate also does not currently expand a grouped entity, so you cannot write <literal>group by cat</literal> if all properties of <literal>cat</literal> are non-aggregated. You have to list all non-aggregated properties explicitly."
+msgstr "注æ <literal>group by</literal> åå¥ä¸ <literal>order by</literal> åå¥ä¸é½ä¸è½å
å«ç®æ¯è¡¨è¾¾å¼ï¼arithmetic expressionsï¼ãä¹è¦æ³¨æ Hibernate ç®åä¸ä¼æ©å± group çå®ä½ï¼å æ¤ä½ ä¸è½å <literal>group by cat</literal>ï¼é¤é <literal>cat</literal> çææå±æ§é½ä¸æ¯èéçï¼non-aggregatedï¼ãä½ å¿
é¡»æç¡®çååºææçéèéå±æ§ã "
#. Tag: title
#, no-c-format
@@ -1051,15 +626,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"For databases that support subselects, Hibernate supports subqueries within "
-"queries. A subquery must be surrounded by parentheses (often by an SQL "
-"aggregate function call). Even correlated subqueries (subqueries that refer "
-"to an alias in the outer query) are allowed."
-msgstr ""
-"对äºæ¯æåæ¥è¯¢çæ°æ®åºï¼Hibernate æ¯æå¨æ¥è¯¢ä¸ä½¿ç¨åæ¥è¯¢ãä¸ä¸ªåæ¥è¯¢å¿
须被å"
-"æ¬å·å
å´èµ·æ¥ï¼ç»å¸¸æ¯ SQL èéå½æ°çåæ¬å·ï¼ãçè³ç¸äºå
³èçåæ¥è¯¢ï¼å¼ç¨å°å¤é¨"
-"æ¥è¯¢ä¸çå«åçåæ¥è¯¢ï¼ä¹æ¯å
许çã"
+msgid "For databases that support subselects, Hibernate supports subqueries within queries. A subquery must be surrounded by parentheses (often by an SQL aggregate function call). Even correlated subqueries (subqueries that refer to an alias in the outer query) are allowed."
+msgstr "对äºæ¯æåæ¥è¯¢çæ°æ®åºï¼Hibernate æ¯æå¨æ¥è¯¢ä¸ä½¿ç¨åæ¥è¯¢ãä¸ä¸ªåæ¥è¯¢å¿
须被åæ¬å·å
å´èµ·æ¥ï¼ç»å¸¸æ¯ SQL èéå½æ°çåæ¬å·ï¼ãçè³ç¸äºå
³èçåæ¥è¯¢ï¼å¼ç¨å°å¤é¨æ¥è¯¢ä¸çå«åçåæ¥è¯¢ï¼ä¹æ¯å
许çã"
#. Tag: para
#, no-c-format
@@ -1067,14 +635,9 @@
msgstr "注æï¼HQL èªæ¥è¯¢åªå¯ä»¥å¨ select æè
where åå¥ä¸åºç°ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Note that subqueries can also utilize <literal>row value constructor</"
-"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
-"information."
-msgstr ""
-"注æåæ¥è¯¢ä¹å¯ä»¥å©ç¨ <literal>row value constructor</literal> è¯æ³ã请åè "
-"<xref linkend=\"queryhql-tuple\" /> æ¥è·å¾è¯¦æ
ã "
+#, no-c-format
+msgid "Note that subqueries can also utilize <literal>row value constructor</literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more information."
+msgstr "注æåæ¥è¯¢ä¹å¯ä»¥å©ç¨ <literal>row value constructor</literal> è¯æ³ã请åè <xref linkend=\"queryhql-tuple\" /> æ¥è·å¾è¯¦æ
ã"
#. Tag: title
#, no-c-format
@@ -1083,90 +646,37 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate queries can be quite powerful and complex. In fact, the power of "
-"the query language is one of Hibernate's main strengths. The following "
-"example queries are similar to queries that have been used on recent "
-"projects. Please note that most queries you will write will be much simpler "
-"than the following examples."
-msgstr ""
-"Hibernate æ¥è¯¢å¯ä»¥é常ç强大ä¸å¤æãå®é
ä¸ï¼Hibernate çä¸ä¸ªä¸»è¦åç¹å°±æ¯æ¥è¯¢"
-"è¯å¥çå¨åãè¿éæä¸äºä¾åï¼å®ä»¬ä¸æå¨æè¿çä¸ä¸ªé¡¹ç®ä¸ä½¿ç¨çæ¥è¯¢é常ç¸ä¼¼ã注"
-"æä½ è½ç¨å°ç大å¤æ°æ¥è¯¢æ¯è¿äºè¦ç®åçå¤ã"
+msgid "Hibernate queries can be quite powerful and complex. In fact, the power of the query language is one of Hibernate's main strengths. The following example queries are similar to queries that have been used on recent projects. Please note that most queries you will write will be much simpler than the following examples."
+msgstr "Hibernate æ¥è¯¢å¯ä»¥é常ç强大ä¸å¤æãå®é
ä¸ï¼Hibernate çä¸ä¸ªä¸»è¦åç¹å°±æ¯æ¥è¯¢è¯å¥çå¨åãè¿éæä¸äºä¾åï¼å®ä»¬ä¸æå¨æè¿çä¸ä¸ªé¡¹ç®ä¸ä½¿ç¨çæ¥è¯¢é常ç¸ä¼¼ã注æä½ è½ç¨å°ç大å¤æ°æ¥è¯¢æ¯è¿äºè¦ç®åçå¤ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The following query returns the order id, number of items, the given minimum "
-"total value and the total value of the order for all unpaid orders for a "
-"particular customer. The results are ordered by total value. In determining "
-"the prices, it uses the current catalog. The resulting SQL query, against "
-"the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, "
-"<literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</"
-"literal> tables has four inner joins and an (uncorrelated) subselect."
-msgstr ""
-"ä¸é¢çæ¥è¯¢å¯¹äºæ个ç¹å®ç客æ·çæææªæ¯ä»çè´¦åï¼å¨ç»å®ç»æå°æ»ä»·å¼çæ
åµä¸ï¼"
-"è¿å订åç idï¼æ¡ç®çæ°éåæ»ä»·å¼ï¼è¿åå¼æç
§æ»ä»·å¼çç»æè¿è¡æåºã为äºå³å®ä»·"
-"æ ¼ï¼æ¥è¯¢ä½¿ç¨äºå½åç®å½ãä½ä¸ºè½¬æ¢ç»æç SQL æ¥è¯¢ï¼ä½¿ç¨äº<literal>ORDER</"
-"literal>ï¼<literal>ORDER_LINE</literal>ï¼<literal>PRODUCT</literal>ï¼"
-"<literal>CATALOG</literal> å <literal>PRICE</literal> åºè¡¨ã"
+msgid "The following query returns the order id, number of items, the given minimum total value and the total value of the order for all unpaid orders for a particular customer. The results are ordered by total value. In determining the prices, it uses the current catalog. The resulting SQL query, against the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has four inner joins and an (uncorrelated) subselect."
+msgstr "ä¸é¢çæ¥è¯¢å¯¹äºæ个ç¹å®ç客æ·çæææªæ¯ä»çè´¦åï¼å¨ç»å®ç»æå°æ»ä»·å¼çæ
åµä¸ï¼è¿å订åç idï¼æ¡ç®çæ°éåæ»ä»·å¼ï¼è¿åå¼æç
§æ»ä»·å¼çç»æè¿è¡æåºã为äºå³å®ä»·æ ¼ï¼æ¥è¯¢ä½¿ç¨äºå½åç®å½ãä½ä¸ºè½¬æ¢ç»æç SQL æ¥è¯¢ï¼ä½¿ç¨äº<literal>ORDER</literal>ï¼<literal>ORDER_LINE</literal>ï¼<literal>PRODUCT</literal>ï¼<literal>CATALOG</literal> å <literal>PRICE</literal> åºè¡¨ã"
#. Tag: para
#, no-c-format
-msgid ""
-"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
-"my query was really more like this:"
-msgstr ""
-"è¿ç®ç´æ¯ä¸ä¸ªæªç©ï¼å®é
ä¸ï¼å¨ç°å®çæ´»ä¸ï¼æ并ä¸çè¡·äºåæ¥è¯¢ï¼æ以æçæ¥è¯¢è¯å¥"
-"çèµ·æ¥æ´åè¿ä¸ªï¼"
+msgid "What a monster! Actually, in real life, I'm not very keen on subqueries, so my query was really more like this:"
+msgstr "è¿ç®ç´æ¯ä¸ä¸ªæªç©ï¼å®é
ä¸ï¼å¨ç°å®çæ´»ä¸ï¼æ并ä¸çè¡·äºåæ¥è¯¢ï¼æ以æçæ¥è¯¢è¯å¥çèµ·æ¥æ´åè¿ä¸ªï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The next query counts the number of payments in each status, excluding all "
-"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
-"recent status change was made by the current user. It translates to an SQL "
-"query with two inner joins and a correlated subselect against the "
-"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
-"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
-msgstr ""
-"ä¸é¢ä¸ä¸ªæ¥è¯¢è®¡ç®æ¯ä¸ç§ç¶æä¸çæ¯ä»çæ°ç®ï¼é¤å»ææå¤äº "
-"<literal>AWAITING_APPROVAL</literal> ç¶æçæ¯ä»ï¼å 为å¨è¯¥ç¶æä¸ å½åçç¨æ·ä½"
-"åºäºç¶æçææ°æ¹åã该æ¥è¯¢è¢«è½¬æ¢æå«æ两个å
è¿æ¥ä»¥åä¸ä¸ªç¸å
³èçåéæ©ç SQL "
-"æ¥è¯¢ï¼è¯¥æ¥è¯¢ä½¿ç¨äºè¡¨ <literal>PAYMENT</literal>ï¼<literal>PAYMENT_STATUS</"
-"literal> 以å <literal>PAYMENT_STATUS_CHANGE</literal>ã"
+msgid "The next query counts the number of payments in each status, excluding all payments in the <literal>AWAITING_APPROVAL</literal> status where the most recent status change was made by the current user. It translates to an SQL query with two inner joins and a correlated subselect against the <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and <literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr "ä¸é¢ä¸ä¸ªæ¥è¯¢è®¡ç®æ¯ä¸ç§ç¶æä¸çæ¯ä»çæ°ç®ï¼é¤å»ææå¤äº <literal>AWAITING_APPROVAL</literal> ç¶æçæ¯ä»ï¼å 为å¨è¯¥ç¶æä¸ å½åçç¨æ·ä½åºäºç¶æçææ°æ¹åã该æ¥è¯¢è¢«è½¬æ¢æå«æ两个å
è¿æ¥ä»¥åä¸ä¸ªç¸å
³èçåéæ©ç SQL æ¥è¯¢ï¼è¯¥æ¥è¯¢ä½¿ç¨äºè¡¨ <literal>PAYMENT</literal>ï¼<literal>PAYMENT_STATUS</literal> 以å <literal>PAYMENT_STATUS_CHANGE</literal>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"If the <literal>statusChanges</literal> collection was mapped as a list, "
-"instead of a set, the query would have been much simpler to write."
-msgstr ""
-"å¦æææ <literal>statusChanges</literal> å®ä¾éæ å°ä¸ºä¸ä¸ªå表ï¼listï¼èä¸æ¯"
-"ä¸ä¸ªéåï¼setï¼ï¼ä¹¦åæ¥è¯¢è¯å¥å°æ´å ç®åã "
+msgid "If the <literal>statusChanges</literal> collection was mapped as a list, instead of a set, the query would have been much simpler to write."
+msgstr "å¦æææ <literal>statusChanges</literal> å®ä¾éæ å°ä¸ºä¸ä¸ªå表ï¼listï¼èä¸æ¯ä¸ä¸ªéåï¼setï¼ï¼ä¹¦åæ¥è¯¢è¯å¥å°æ´å ç®åã "
#. Tag: para
#, no-c-format
-msgid ""
-"The next query uses the MS SQL Server <literal>isNull()</literal> function "
-"to return all the accounts and unpaid payments for the organization to which "
-"the current user belongs. It translates to an SQL query with three inner "
-"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
-"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
-"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
-"<literal>ORG_USER</literal> tables."
-msgstr ""
-"ä¸é¢ä¸ä¸ªæ¥è¯¢ä½¿ç¨äº MS SQL Server ç <literal>isNull()</literal> å½æ°ç¨ä»¥è¿å"
-"å½åç¨æ·æå±ç»ç»çç»ç»å¸å·åç»ç»æªæ¯ä»çè´¦ãå®è¢«è½¬æ¢æä¸ä¸ªå¯¹è¡¨ "
-"<literal>ACCOUNT</literal>ï¼<literal>PAYMENT</literal>ï¼"
-"<literal>PAYMENT_STATUS</literal>ï¼<literal>ACCOUNT_TYPE</literal>ï¼"
-"<literal>ORGANIZATION</literal> 以å <literal>ORG_USER</literal> è¿è¡çä¸ä¸ª"
-"å
è¿æ¥ï¼ä¸ä¸ªå¤è¿æ¥åä¸ä¸ªåéæ©ç SQL æ¥è¯¢ã"
+msgid "The next query uses the MS SQL Server <literal>isNull()</literal> function to return all the accounts and unpaid payments for the organization to which the current user belongs. It translates to an SQL query with three inner joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and <literal>ORG_USER</literal> tables."
+msgstr "ä¸é¢ä¸ä¸ªæ¥è¯¢ä½¿ç¨äº MS SQL Server ç <literal>isNull()</literal> å½æ°ç¨ä»¥è¿åå½åç¨æ·æå±ç»ç»çç»ç»å¸å·åç»ç»æªæ¯ä»çè´¦ãå®è¢«è½¬æ¢æä¸ä¸ªå¯¹è¡¨ <literal>ACCOUNT</literal>ï¼<literal>PAYMENT</literal>ï¼<literal>PAYMENT_STATUS</literal>ï¼<literal>ACCOUNT_TYPE</literal>ï¼<literal>ORGANIZATION</literal> 以å <literal>ORG_USER</literal> è¿è¡çä¸ä¸ªå
è¿æ¥ï¼ä¸ä¸ªå¤è¿æ¥åä¸ä¸ªåéæ©ç SQL æ¥è¯¢ã"
#. Tag: para
#, no-c-format
-msgid ""
-"For some databases, we would need to do away with the (correlated) subselect."
+msgid "For some databases, we would need to do away with the (correlated) subselect."
msgstr "对äºä¸äºæ°æ®åºï¼æ们éè¦å¼ç¨ï¼ç¸å
³çï¼åéæ©ã"
#. Tag: title
@@ -1175,15 +685,9 @@
msgstr "æ¹éç UPDATE å DELETE"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"HQL now supports <literal>update</literal>, <literal>delete</literal> and "
-"<literal>insert ... select ...</literal> statements. See <xref linkend="
-"\"batch-direct\" /> for more information."
-msgstr ""
-"HQL ç°å¨æ¯æ <literal>update</literal>ï¼<literal>delete</literal> å "
-"<literal>insert ... select ...</literal>è¯å¥ãæ¥é
<xref linkend=\"batch-"
-"direct\" /> 以è·å¾æ´å¤ä¿¡æ¯ã"
+#, no-c-format
+msgid "HQL now supports <literal>update</literal>, <literal>delete</literal> and <literal>insert ... select ...</literal> statements. See <xref linkend=\"batch-direct\" /> for more information."
+msgstr "HQL ç°å¨æ¯æ <literal>update</literal>ï¼<literal>delete</literal> å <literal>insert ... select ...</literal>è¯å¥ãæ¥é
<xref linkend=\"batch-direct\" /> 以è·å¾æ´å¤ä¿¡æ¯ã "
#. Tag: title
#, no-c-format
@@ -1202,12 +706,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"If your database supports subselects, you can place a condition upon "
-"selection size in the where clause of your query:"
-msgstr ""
-"å¦æä½ çæ°æ®åºæ¯æåéæ©ï¼ä½ å¯ä»¥å¨ä½ çæ¥è¯¢ç where åå¥ä¸ä¸ºéæ©ç大å°"
-"ï¼selection sizeï¼æå®ä¸ä¸ªæ¡ä»¶ï¼"
+msgid "If your database supports subselects, you can place a condition upon selection size in the where clause of your query:"
+msgstr "å¦æä½ çæ°æ®åºæ¯æåéæ©ï¼ä½ å¯ä»¥å¨ä½ çæ¥è¯¢ç where åå¥ä¸ä¸ºéæ©ç大å°ï¼selection sizeï¼æå®ä¸ä¸ªæ¡ä»¶ï¼"
#. Tag: para
#, no-c-format
@@ -1216,12 +716,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"As this solution cannot return a <literal>User</literal> with zero messages "
-"because of the inner join, the following form is also useful:"
-msgstr ""
-"å 为å
è¿æ¥ï¼inner joinï¼çåå ï¼è¿ä¸ªè§£å³æ¹æ¡ä¸è½è¿åå«æé¶ä¸ªä¿¡æ¯ç "
-"<literal>User</literal> ç±»çå®ä¾ï¼æ以è¿ç§æ
åµä¸ä½¿ç¨ä¸é¢çæ ¼å¼å°æ¯æ帮å©çï¼ "
+msgid "As this solution cannot return a <literal>User</literal> with zero messages because of the inner join, the following form is also useful:"
+msgstr "å 为å
è¿æ¥ï¼inner joinï¼çåå ï¼è¿ä¸ªè§£å³æ¹æ¡ä¸è½è¿åå«æé¶ä¸ªä¿¡æ¯ç <literal>User</literal> ç±»çå®ä¾ï¼æ以è¿ç§æ
åµä¸ä½¿ç¨ä¸é¢çæ ¼å¼å°æ¯æ帮å©çï¼ "
#. Tag: para
#, no-c-format
@@ -1230,18 +726,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Collections are pageable by using the <literal>Query</literal> interface "
-"with a filter:"
-msgstr ""
-"éè¿å°æ¥å£ <literal>Query</literal> ä¸ä¸ä¸ªè¿æ»¤å¨ï¼filterï¼ä¸èµ·ä½¿ç¨ï¼éå"
-"ï¼Collectionsï¼æ¯å¯ä»¥å页çï¼"
+msgid "Collections are pageable by using the <literal>Query</literal> interface with a filter:"
+msgstr "éè¿å°æ¥å£ <literal>Query</literal> ä¸ä¸ä¸ªè¿æ»¤å¨ï¼filterï¼ä¸èµ·ä½¿ç¨ï¼éåï¼Collectionsï¼æ¯å¯ä»¥å页çï¼"
#. Tag: para
#, no-c-format
msgid "Collection elements can be ordered or grouped using a query filter:"
-msgstr ""
-"éè¿ä½¿ç¨æ¥è¯¢è¿æ»¤å¨ï¼query filterï¼å¯ä»¥å°éåï¼Collectionï¼çå
ç´ åç»ææåºï¼ "
+msgstr "éè¿ä½¿ç¨æ¥è¯¢è¿æ»¤å¨ï¼query filterï¼å¯ä»¥å°éåï¼Collectionï¼çå
ç´ åç»ææåºï¼ "
#. Tag: para
#, no-c-format
@@ -1255,22 +746,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Components can be used similarly to the simple value types that are used in "
-"HQL queries. They can appear in the <literal>select</literal> clause as "
-"follows:"
-msgstr ""
-"å¨ HQL æ¥è¯¢éï¼ç»ä»¶å¯ä»¥åç®åå¼ç±»åä¸æ ·ä½¿ç¨ãå®ä»¬å¯ä»¥åºç°å¨ <literal>select</"
-"literal> åå¥éï¼ "
+msgid "Components can be used similarly to the simple value types that are used in HQL queries. They can appear in the <literal>select</literal> clause as follows:"
+msgstr "å¨ HQL æ¥è¯¢éï¼ç»ä»¶å¯ä»¥åç®åå¼ç±»åä¸æ ·ä½¿ç¨ãå®ä»¬å¯ä»¥åºç°å¨ <literal>select</literal> åå¥éï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"where the Person's name property is a component. Components can also be used "
-"in the <literal>where</literal> clause:"
-msgstr ""
-"å¨è¿éï¼Person ç name å±æ§æ¯ä¸ä¸ªç»ä»¶ãç»ä»¶ä¹å¯ä»¥ç¨å¨ <literal>where</"
-"literal> åå¥éï¼"
+msgid "where the Person's name property is a component. Components can also be used in the <literal>where</literal> clause:"
+msgstr "å¨è¿éï¼Person ç name å±æ§æ¯ä¸ä¸ªç»ä»¶ãç»ä»¶ä¹å¯ä»¥ç¨å¨ <literal>where</literal> åå¥éï¼"
#. Tag: para
#, no-c-format
@@ -1278,13 +760,9 @@
msgstr "ç»ä»¶ä¹å¯ä»¥ç¨å¨ <literal>order by</literal> åå¥éï¼"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
-"value constructors</link>."
-msgstr ""
-"ç»ä»¶çå¦å¤ä¸ä¸ªå¸¸è§ç¨æ³æ¯å¨ <xref linkend=\"queryhql-tuple\" /> è¡å¼ï¼row "
-"valueï¼æé å½æ°éã"
+#, no-c-format
+msgid "Another common use of components is in <link linkend=\"queryhql-tuple\">row value constructors</link>."
+msgstr "ç»ä»¶çå¦å¤ä¸ä¸ªå¸¸è§ç¨æ³æ¯å¨ <xref linkend=\"queryhql-tuple\" /> è¡å¼ï¼row valueï¼æé å½æ°éã "
#. Tag: title
#, no-c-format
@@ -1293,52 +771,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
-"syntax, sometimes referred to AS <literal>tuple</literal> syntax, even "
-"though the underlying database may not support that notion. Here, we are "
-"generally referring to multi-valued comparisons, typically associated with "
-"components. Consider an entity Person which defines a name component:"
-msgstr ""
-"HQL æ¯æ ANSI SQL <literal>row value constructor</literal> è¯æ³ï¼ææ¶ä¹å«ä½ "
-"<literal>tuple</literal> è¯æ³ï¼ï¼å³ä½¿åºå±æ°æ®åºå¯è½ä¸æ¯æè¿ä¸ªæ¦å¿µãå¨è¿éæ们"
-"é常æçæ¯å¤å¼ï¼multi-valuedï¼çæ¯è¾ï¼å
¸åå°æ¯åç»ä»¶ç¸å
³èãæ¥ççä¸ä¸ªå®ä¹äº "
-"name ç»ä»¶çå®ä½ Personï¼"
+msgid "HQL supports the use of ANSI SQL <literal>row value constructor</literal> syntax, sometimes referred to AS <literal>tuple</literal> syntax, even though the underlying database may not support that notion. Here, we are generally referring to multi-valued comparisons, typically associated with components. Consider an entity Person which defines a name component:"
+msgstr "HQL æ¯æ ANSI SQL <literal>row value constructor</literal> è¯æ³ï¼ææ¶ä¹å«ä½ <literal>tuple</literal> è¯æ³ï¼ï¼å³ä½¿åºå±æ°æ®åºå¯è½ä¸æ¯æè¿ä¸ªæ¦å¿µãå¨è¿éæ们é常æçæ¯å¤å¼ï¼multi-valuedï¼çæ¯è¾ï¼å
¸åå°æ¯åç»ä»¶ç¸å
³èãæ¥ççä¸ä¸ªå®ä¹äº name ç»ä»¶çå®ä½ Personï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"That is valid syntax although it is a little verbose. You can make this more "
-"concise by using <literal>row value constructor</literal> syntax:"
-msgstr ""
-"é£æ¯ææçè¯æ³ï¼è½ç¶æç¹åé¿ãæ们å¯ä»¥ä½¿å®æ´å ç®æ´ä¸ç¹ï¼å¹¶ä½¿ç¨ <literal>row "
-"value constructor</literal> è¯æ³ï¼ "
+msgid "That is valid syntax although it is a little verbose. You can make this more concise by using <literal>row value constructor</literal> syntax:"
+msgstr "é£æ¯ææçè¯æ³ï¼è½ç¶æç¹åé¿ãæ们å¯ä»¥ä½¿å®æ´å ç®æ´ä¸ç¹ï¼å¹¶ä½¿ç¨ <literal>row value constructor</literal> è¯æ³ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"It can also be useful to specify this in the <literal>select</literal> "
-"clause:"
+msgid "It can also be useful to specify this in the <literal>select</literal> clause:"
msgstr "å¨ <literal>select</literal> åå¥éæå®è¿ä¸ªä¹æ¯å¾æç¨çï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Using <literal>row value constructor</literal> syntax can also be beneficial "
-"when using subqueries that need to compare against multiple values:"
-msgstr ""
-"å½ä½¿ç¨éè¦æ¯è¾å¤ä¸ªå¼çåæ¥è¯¢æ¶ï¼éç¨ <literal>row value constructor</"
-"literal> è¯æ³ä¹å¾æç¨å¤ï¼ "
+msgid "Using <literal>row value constructor</literal> syntax can also be beneficial when using subqueries that need to compare against multiple values:"
+msgstr "å½ä½¿ç¨éè¦æ¯è¾å¤ä¸ªå¼çåæ¥è¯¢æ¶ï¼éç¨ <literal>row value constructor</literal> è¯æ³ä¹å¾æç¨å¤ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"One thing to consider when deciding if you want to use this syntax, is that "
-"the query will be dependent upon the ordering of the component sub-"
-"properties in the metadata."
-msgstr ""
-"å³å®æ¯å¦ä½¿ç¨è¿ä¸ªè¯æ³çä¸ä»¶å ç´ å°±æ¯ï¼è¿ä¸ªæ¥è¯¢å°ä¾èµäºå
æ°æ®éçç»ä»¶åå±æ§"
-"ï¼sub-propertiesï¼ç顺åºã "
+msgid "One thing to consider when deciding if you want to use this syntax, is that the query will be dependent upon the ordering of the component sub-properties in the metadata."
+msgstr "å³å®æ¯å¦ä½¿ç¨è¿ä¸ªè¯æ³çä¸ä»¶å ç´ å°±æ¯ï¼è¿ä¸ªæ¥è¯¢å°ä¾èµäºå
æ°æ®éçç»ä»¶åå±æ§ï¼sub-propertiesï¼ç顺åºã "
#, fuzzy
#~ msgid "<![CDATA[from eg.Cat]]>"
@@ -1381,10 +835,8 @@
#, fuzzy
#~ msgid "<![CDATA[from Formula form full join form.parameter param]]>"
#~ msgstr "from Formula form full join form.parameter param"
-
#~ msgid "inner join"
#~ msgstr "<literal>inner join</literal>ï¼å
è¿æ¥ï¼"
-
#~ msgid "left outer join"
#~ msgstr "<literal>left outer join</literal>ï¼å·¦å¤è¿æ¥ï¼"
@@ -1539,7 +991,6 @@
#~ msgstr ""
#~ "select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
#~ "from Cat cat"
-
#~ msgid "count(*)"
#~ msgstr "count(*)"
@@ -2279,3 +1730,4 @@
#~ "where not ( cat.name, cat.color ) in (\n"
#~ " select cat.name, cat.color from DomesticCat cat\n"
#~ ")"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-03-12T00:03:47\n"
-"PO-Revision-Date: 2010-01-11 10:42+1000\n"
+"PO-Revision-Date: 2010-03-16 10:16+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,26 +21,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can also express queries in the native SQL dialect of your database. "
-"This is useful if you want to utilize database-specific features such as "
-"query hints or the <literal>CONNECT</literal> keyword in Oracle. It also "
-"provides a clean migration path from a direct SQL/JDBC based application to "
-"Hibernate."
-msgstr ""
-"ä½ ä¹å¯ä»¥ä½¿ç¨ä½ çæ°æ®åºç Native SQL è¯è¨æ¥æ¥è¯¢æ°æ®ãè¿å¯¹ä½ å¨è¦ä½¿ç¨æ°æ®åºçæ"
-"äºç¹æ§çæ¶åï¼æ¯å¦è¯´å¨æ¥è¯¢æ示æè
Oracle ä¸ç <literal>CONNECT</literal> å
³"
-"é®åï¼ï¼è¿æ¯é常æç¨çãè¿å°±è½å¤æ«æ¸
ä½ æåæ¥ç´æ¥ä½¿ç¨ SQL/JDBC çç¨åºè¿ç§»å°åº"
-"äº Hibernate åºç¨çéè·¯ä¸çéç¢ã "
+msgid "You can also express queries in the native SQL dialect of your database. This is useful if you want to utilize database-specific features such as query hints or the <literal>CONNECT</literal> keyword in Oracle. It also provides a clean migration path from a direct SQL/JDBC based application to Hibernate."
+msgstr "ä½ ä¹å¯ä»¥ä½¿ç¨ä½ çæ°æ®åºç Native SQL è¯è¨æ¥æ¥è¯¢æ°æ®ãè¿å¯¹ä½ å¨è¦ä½¿ç¨æ°æ®åºçæäºç¹æ§çæ¶åï¼æ¯å¦è¯´å¨æ¥è¯¢æ示æè
Oracle ä¸ç <literal>CONNECT</literal> å
³é®åï¼ï¼è¿æ¯é常æç¨çãè¿å°±è½å¤æ«æ¸
ä½ æåæ¥ç´æ¥ä½¿ç¨ SQL/JDBC çç¨åºè¿ç§»å°åºäº Hibernate åºç¨çéè·¯ä¸çéç¢ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate3 allows you to specify handwritten SQL, including stored "
-"procedures, for all create, update, delete, and load operations."
-msgstr ""
-"Hibernate3 å
è®¸ä½ ä½¿ç¨æåç sql æ¥å®æææç createãupdateãdelete å load "
-"æä½ï¼å
æ¬åå¨è¿ç¨ï¼ "
+msgid "Hibernate3 allows you to specify handwritten SQL, including stored procedures, for all create, update, delete, and load operations."
+msgstr "Hibernate3 å
è®¸ä½ ä½¿ç¨æåç sql æ¥å®æææç createãupdateãdelete å load æä½ï¼å
æ¬åå¨è¿ç¨ï¼ "
#. Tag: title
#, no-c-format
@@ -49,15 +36,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Execution of native SQL queries is controlled via the <literal>SQLQuery</"
-"literal> interface, which is obtained by calling <literal>Session."
-"createSQLQuery()</literal>. The following sections describe how to use this "
-"API for querying."
-msgstr ""
-"对åç SQL æ¥è¯¢æ§è¡çæ§å¶æ¯éè¿ <literal>SQLQuery</literal> æ¥å£è¿è¡çï¼éè¿"
-"æ§è¡<literal>Session.createSQLQuery()</literal>è·åè¿ä¸ªæ¥å£ãä¸é¢æ¥æè¿°å¦ä½ä½¿"
-"ç¨è¿ä¸ª API è¿è¡æ¥è¯¢ã "
+msgid "Execution of native SQL queries is controlled via the <literal>SQLQuery</literal> interface, which is obtained by calling <literal>Session.createSQLQuery()</literal>. The following sections describe how to use this API for querying."
+msgstr "对åç SQL æ¥è¯¢æ§è¡çæ§å¶æ¯éè¿ <literal>SQLQuery</literal> æ¥å£è¿è¡çï¼éè¿æ§è¡<literal>Session.createSQLQuery()</literal>è·åè¿ä¸ªæ¥å£ãä¸é¢æ¥æè¿°å¦ä½ä½¿ç¨è¿ä¸ª API è¿è¡æ¥è¯¢ã "
#. Tag: title
#, no-c-format
@@ -71,24 +51,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"These will return a List of Object arrays (Object[]) with scalar values for "
-"each column in the CATS table. Hibernate will use ResultSetMetadata to "
-"deduce the actual order and types of the returned scalar values."
-msgstr ""
-"å®ä»¬é½å°è¿åä¸ä¸ª Object æ°ç»ï¼Object[]ï¼ç»æç Listï¼æ°ç»æ¯ä¸ªå
ç´ é½æ¯ CATS 表"
-"çä¸ä¸ªå段å¼ãHibernate ä¼ä½¿ç¨ ResultSetMetadata æ¥å¤å®è¿åçæ éå¼çå®é
顺åº"
-"åç±»åã "
+msgid "These will return a List of Object arrays (Object[]) with scalar values for each column in the CATS table. Hibernate will use ResultSetMetadata to deduce the actual order and types of the returned scalar values."
+msgstr "å®ä»¬é½å°è¿åä¸ä¸ª Object æ°ç»ï¼Object[]ï¼ç»æç Listï¼æ°ç»æ¯ä¸ªå
ç´ é½æ¯ CATS 表çä¸ä¸ªå段å¼ãHibernate ä¼ä½¿ç¨ ResultSetMetadata æ¥å¤å®è¿åçæ éå¼çå®é
顺åºåç±»åã "
#. Tag: para
#, no-c-format
-msgid ""
-"To avoid the overhead of using <literal>ResultSetMetadata</literal>, or "
-"simply to be more explicit in what is returned, one can use "
-"<literal>addScalar()</literal>:"
-msgstr ""
-"å¦æè¦é¿å
è¿å¤çä½¿ç¨ <literal>ResultSetMetadata</literal>ï¼æè
åªæ¯ä¸ºäºæ´å æ"
-"ç¡®çæåè¿åå¼ï¼å¯ä»¥ä½¿ç¨ <literal>addScalar()</literal>ï¼ "
+msgid "To avoid the overhead of using <literal>ResultSetMetadata</literal>, or simply to be more explicit in what is returned, one can use <literal>addScalar()</literal>:"
+msgstr "å¦æè¦é¿å
è¿å¤çä½¿ç¨ <literal>ResultSetMetadata</literal>ï¼æè
åªæ¯ä¸ºäºæ´å æç¡®çæåè¿åå¼ï¼å¯ä»¥ä½¿ç¨ <literal>addScalar()</literal>ï¼ "
#. Tag: para
#, no-c-format
@@ -107,48 +76,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"This will return Object arrays, but now it will not use "
-"<literal>ResultSetMetadata</literal> but will instead explicitly get the ID, "
-"NAME and BIRTHDATE column as respectively a Long, String and a Short from "
-"the underlying resultset. This also means that only these three columns will "
-"be returned, even though the query is using <literal>*</literal> and could "
-"return more than the three listed columns."
-msgstr ""
-"å®ä»ç¶ä¼è¿å Object æ°ç»,ä½æ¯æ¤æ¶ä¸åä½¿ç¨ <literal>ResultSetMetdata</"
-"literal>ï¼èæ¯æç¡®çå° IDï¼NAME å BIRTHDATE æç
§ Longï¼String å Short ç±»å"
-"ä» resultset ä¸ååºãåæ¶ï¼ä¹ææäºå°±ç® query æ¯ä½¿ç¨ <literal>*</literal> æ¥"
-"æ¥è¯¢çï¼å¯è½è·å¾è¶
è¿ååºçè¿ä¸ä¸ªå段ï¼ä¹ä»
ä»
ä¼è¿åè¿ä¸ä¸ªå段ã "
+msgid "This will return Object arrays, but now it will not use <literal>ResultSetMetadata</literal> but will instead explicitly get the ID, NAME and BIRTHDATE column as respectively a Long, String and a Short from the underlying resultset. This also means that only these three columns will be returned, even though the query is using <literal>*</literal> and could return more than the three listed columns."
+msgstr "å®ä»ç¶ä¼è¿å Object æ°ç»,ä½æ¯æ¤æ¶ä¸åä½¿ç¨ <literal>ResultSetMetdata</literal>ï¼èæ¯æç¡®çå° IDï¼NAME å BIRTHDATE æç
§ Longï¼String å Short ç±»åä» resultset ä¸ååºãåæ¶ï¼ä¹ææäºå°±ç® query æ¯ä½¿ç¨ <literal>*</literal> æ¥æ¥è¯¢çï¼å¯è½è·å¾è¶
è¿ååºçè¿ä¸ä¸ªå段ï¼ä¹ä»
ä»
ä¼è¿åè¿ä¸ä¸ªå段ã "
#. Tag: para
#, no-c-format
-msgid ""
-"It is possible to leave out the type information for all or some of the "
-"scalars."
+msgid "It is possible to leave out the type information for all or some of the scalars."
msgstr "对å
¨é¨æè
é¨åçæ éå¼ä¸è®¾ç½®ç±»åä¿¡æ¯ä¹æ¯å¯ä»¥çã"
#. Tag: para
#, no-c-format
-msgid ""
-"This is essentially the same query as before, but now "
-"<literal>ResultSetMetaData</literal> is used to determine the type of NAME "
-"and BIRTHDATE, where as the type of ID is explicitly specified."
-msgstr ""
-"åºæ¬ä¸è¿ååé¢ä¸ä¸ªæ¥è¯¢ç¸å,åªæ¯æ¤æ¶ä½¿ç¨ <literal>ResultSetMetaData</literal> "
-"æ¥å³å® NAME å BIRTHDATE çç±»åï¼è ID çç±»åæ¯æç¡®æåºçã "
+msgid "This is essentially the same query as before, but now <literal>ResultSetMetaData</literal> is used to determine the type of NAME and BIRTHDATE, where as the type of ID is explicitly specified."
+msgstr "åºæ¬ä¸è¿ååé¢ä¸ä¸ªæ¥è¯¢ç¸å,åªæ¯æ¤æ¶ä½¿ç¨ <literal>ResultSetMetaData</literal> æ¥å³å® NAME å BIRTHDATE çç±»åï¼è ID çç±»åæ¯æç¡®æåºçã "
#. Tag: para
#, no-c-format
-msgid ""
-"How the java.sql.Types returned from ResultSetMetaData is mapped to "
-"Hibernate types is controlled by the Dialect. If a specific type is not "
-"mapped, or does not result in the expected type, it is possible to customize "
-"it via calls to <literal>registerHibernateType</literal> in the Dialect."
-msgstr ""
-"å
³äºä» ResultSetMetaData è¿åç java.sql.Types æ¯å¦ä½æ å°å° Hibernate ç±»åï¼"
-"æ¯ç±æ¹è¨ï¼Dialectï¼æ§å¶çãåè¥æ个æå®çç±»å没æ被æ å°ï¼æè
ä¸æ¯ä½ æé¢æçç±»"
-"åï¼ä½ å¯ä»¥éè¿ Dialet ç <literal>registerHibernateType</literal> è°ç¨èªè¡å®"
-"ä¹ã "
+msgid "How the java.sql.Types returned from ResultSetMetaData is mapped to Hibernate types is controlled by the Dialect. If a specific type is not mapped, or does not result in the expected type, it is possible to customize it via calls to <literal>registerHibernateType</literal> in the Dialect."
+msgstr "å
³äºä» ResultSetMetaData è¿åç java.sql.Types æ¯å¦ä½æ å°å° Hibernate ç±»åï¼æ¯ç±æ¹è¨ï¼Dialectï¼æ§å¶çãåè¥æ个æå®çç±»å没æ被æ å°ï¼æè
ä¸æ¯ä½ æé¢æçç±»åï¼ä½ å¯ä»¥éè¿ Dialet ç <literal>registerHibernateType</literal> è°ç¨èªè¡å®ä¹ã "
#. Tag: title
#, no-c-format
@@ -157,14 +101,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The above queries were all about returning scalar values, basically "
-"returning the \"raw\" values from the resultset. The following shows how to "
-"get entity objects from a native sql query via <literal>addEntity()</"
-"literal>."
-msgstr ""
-"ä¸é¢çæ¥è¯¢é½æ¯è¿åæ éå¼çï¼ä¹å°±æ¯ä» resultset ä¸è¿åçâ裸âæ°æ®ãä¸é¢å±ç¤ºå¦ä½"
-"éè¿ <literal>addEntity()</literal> 让åçæ¥è¯¢è¿åå®ä½å¯¹è±¡ã"
+msgid "The above queries were all about returning scalar values, basically returning the \"raw\" values from the resultset. The following shows how to get entity objects from a native sql query via <literal>addEntity()</literal>."
+msgstr "ä¸é¢çæ¥è¯¢é½æ¯è¿åæ éå¼çï¼ä¹å°±æ¯ä» resultset ä¸è¿åçâ裸âæ°æ®ãä¸é¢å±ç¤ºå¦ä½éè¿ <literal>addEntity()</literal> 让åçæ¥è¯¢è¿åå®ä½å¯¹è±¡ã"
#. Tag: para
#, no-c-format
@@ -173,29 +111,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Assuming that Cat is mapped as a class with the columns ID, NAME and "
-"BIRTHDATE the above queries will both return a List where each element is a "
-"Cat entity."
-msgstr ""
-"å设 Cat 被æ å°ä¸ºæ¥æ IDï¼NAME å BIRTHDATE ä¸ä¸ªå段çç±»ï¼ä»¥ä¸ç两个æ¥è¯¢é½è¿"
-"åä¸ä¸ª Listï¼æ¯ä¸ªå
ç´ é½æ¯ä¸ä¸ª Cat å®ä½ã"
+msgid "Assuming that Cat is mapped as a class with the columns ID, NAME and BIRTHDATE the above queries will both return a List where each element is a Cat entity."
+msgstr "å设 Cat 被æ å°ä¸ºæ¥æ IDï¼NAME å BIRTHDATE ä¸ä¸ªå段çç±»ï¼ä»¥ä¸ç两个æ¥è¯¢é½è¿åä¸ä¸ª Listï¼æ¯ä¸ªå
ç´ é½æ¯ä¸ä¸ª Cat å®ä½ã"
#. Tag: para
#, no-c-format
-msgid ""
-"If the entity is mapped with a <literal>many-to-one</literal> to another "
-"entity it is required to also return this when performing the native query, "
-"otherwise a database specific \"column not found\" error will occur. The "
-"additional columns will automatically be returned when using the * notation, "
-"but we prefer to be explicit as in the following example for a <literal>many-"
-"to-one</literal> to a <literal>Dog</literal>:"
-msgstr ""
-"åè¥å®ä½å¨æ å°æ¶æä¸ä¸ª <literal>many-to-one</literal> çå
³èæåå¦å¤ä¸ä¸ªå®"
-"ä½ï¼å¨æ¥è¯¢æ¶å¿
é¡»ä¹è¿åé£ä¸ªå®ä½ï¼å¦åä¼å¯¼è´åçä¸ä¸ª \"column not found\" çæ°"
-"æ®åºé误ãè¿äºéå çå段å¯ä»¥ä½¿ç¨ * æ 注æ¥èªå¨è¿åï¼ä½æ们å¸æè¿æ¯æç¡®ææï¼ç"
-"ä¸é¢è¿ä¸ªå
·ææå <literal>Dog</literal> ç <literal>many-to-one</literal> ç"
-"ä¾åï¼"
+msgid "If the entity is mapped with a <literal>many-to-one</literal> to another entity it is required to also return this when performing the native query, otherwise a database specific \"column not found\" error will occur. The additional columns will automatically be returned when using the * notation, but we prefer to be explicit as in the following example for a <literal>many-to-one</literal> to a <literal>Dog</literal>:"
+msgstr "åè¥å®ä½å¨æ å°æ¶æä¸ä¸ª <literal>many-to-one</literal> çå
³èæåå¦å¤ä¸ä¸ªå®ä½ï¼å¨æ¥è¯¢æ¶å¿
é¡»ä¹è¿åé£ä¸ªå®ä½ï¼å¦åä¼å¯¼è´åçä¸ä¸ª \"column not found\" çæ°æ®åºé误ãè¿äºéå çå段å¯ä»¥ä½¿ç¨ * æ 注æ¥èªå¨è¿åï¼ä½æ们å¸æè¿æ¯æç¡®ææï¼çä¸é¢è¿ä¸ªå
·ææå <literal>Dog</literal> ç <literal>many-to-one</literal> çä¾åï¼"
#. Tag: para
#, no-c-format
@@ -209,43 +131,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"It is possible to eagerly join in the <literal>Dog</literal> to avoid the "
-"possible extra roundtrip for initializing the proxy. This is done via the "
-"<literal>addJoin()</literal> method, which allows you to join in an "
-"association or collection."
-msgstr ""
-"éè¿æåæåå° <literal>Dog</literal> è¿æ¥è·å¾ï¼èé¿å
åå§å proxy 带æ¥çé¢å¤"
-"å¼éä¹æ¯å¯è½çãè¿æ¯éè¿ <literal>addJoin()</literal> æ¹æ³è¿è¡çï¼è¿ä¸ªæ¹æ³å¯"
-"ä»¥è®©ä½ å°å
³èæéåè¿æ¥è¿æ¥ã"
+msgid "It is possible to eagerly join in the <literal>Dog</literal> to avoid the possible extra roundtrip for initializing the proxy. This is done via the <literal>addJoin()</literal> method, which allows you to join in an association or collection."
+msgstr "éè¿æåæåå° <literal>Dog</literal> è¿æ¥è·å¾ï¼èé¿å
åå§å proxy 带æ¥çé¢å¤å¼éä¹æ¯å¯è½çãè¿æ¯éè¿ <literal>addJoin()</literal> æ¹æ³è¿è¡çï¼è¿ä¸ªæ¹æ³å¯ä»¥è®©ä½ å°å
³èæéåè¿æ¥è¿æ¥ã"
#. Tag: para
#, no-c-format
-msgid ""
-"In this example, the returned <literal>Cat</literal>'s will have their "
-"<literal>dog</literal> property fully initialized without any extra "
-"roundtrip to the database. Notice that you added an alias name (\"cat\") to "
-"be able to specify the target property path of the join. It is possible to "
-"do the same eager joining for collections, e.g. if the <literal>Cat</"
-"literal> had a one-to-many to <literal>Dog</literal> instead."
-msgstr ""
-"ä¸é¢è¿ä¸ªä¾åä¸ï¼è¿åç <literal>Cat</literal> 对象ï¼å
¶ <literal>dog</"
-"literal> å±æ§è¢«å®å
¨åå§åäºï¼ä¸åéè¦æ°æ®åºçé¢å¤æä½ã注æï¼æ们å äºä¸ä¸ªå«å"
-"ï¼\"cat\"ï¼ï¼ä»¥ä¾¿ææ join çç®æ å±æ§è·¯å¾ãéè¿åæ ·çæåè¿æ¥ä¹å¯ä»¥ä½ç¨äºéå"
-"ç±»ï¼ä¾å¦ï¼åè¥ <literal>Cat</literal> æä¸ä¸ªæå <literal>Dog</literal> çä¸"
-"对å¤å
³èã "
+msgid "In this example, the returned <literal>Cat</literal>'s will have their <literal>dog</literal> property fully initialized without any extra roundtrip to the database. Notice that you added an alias name (\"cat\") to be able to specify the target property path of the join. It is possible to do the same eager joining for collections, e.g. if the <literal>Cat</literal> had a one-to-many to <literal>Dog</literal> instead."
+msgstr "ä¸é¢è¿ä¸ªä¾åä¸ï¼è¿åç <literal>Cat</literal> 对象ï¼å
¶ <literal>dog</literal> å±æ§è¢«å®å
¨åå§åäºï¼ä¸åéè¦æ°æ®åºçé¢å¤æä½ã注æï¼æ们å äºä¸ä¸ªå«åï¼\"cat\"ï¼ï¼ä»¥ä¾¿ææ join çç®æ å±æ§è·¯å¾ãéè¿åæ ·çæåè¿æ¥ä¹å¯ä»¥ä½ç¨äºéåç±»ï¼ä¾å¦ï¼åè¥ <literal>Cat</literal> æä¸ä¸ªæå <literal>Dog</literal> çä¸å¯¹å¤å
³èã "
#. Tag: para
#, no-c-format
-msgid ""
-"At this stage you are reaching the limits of what is possible with native "
-"queries, without starting to enhance the sql queries to make them usable in "
-"Hibernate. Problems can arise when returning multiple entities of the same "
-"type or when the default alias/column names are not enough."
-msgstr ""
-"å°æ¤ä¸ºæ¢ï¼æ们碰å°äºå¤©è±æ¿ï¼è¥ä¸å¯¹ SQL æ¥è¯¢è¿è¡å¢å¼ºï¼è¿äºå·²ç»æ¯å¨ Hibernate "
-"ä¸ä½¿ç¨åç SQL æ¥è¯¢æè½åå°çæ大å¯è½äºãä¸é¢çé®é¢å³å°åºç°ï¼è¿åå¤ä¸ªåæ ·ç±»å"
-"çå®ä½æä¹åï¼æè
é»è®¤çå«åï¼å段ä¸å¤åæä¹åï¼ "
+msgid "At this stage you are reaching the limits of what is possible with native queries, without starting to enhance the sql queries to make them usable in Hibernate. Problems can arise when returning multiple entities of the same type or when the default alias/column names are not enough."
+msgstr "å°æ¤ä¸ºæ¢ï¼æ们碰å°äºå¤©è±æ¿ï¼è¥ä¸å¯¹ SQL æ¥è¯¢è¿è¡å¢å¼ºï¼è¿äºå·²ç»æ¯å¨ Hibernate ä¸ä½¿ç¨åç SQL æ¥è¯¢æè½åå°çæ大å¯è½äºãä¸é¢çé®é¢å³å°åºç°ï¼è¿åå¤ä¸ªåæ ·ç±»åçå®ä½æä¹åï¼æè
é»è®¤çå«åï¼å段ä¸å¤åæä¹åï¼ "
#. Tag: title
#, no-c-format
@@ -254,36 +151,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Until now, the result set column names are assumed to be the same as the "
-"column names specified in the mapping document. This can be problematic for "
-"SQL queries that join multiple tables, since the same column names can "
-"appear in more than one table."
-msgstr ""
-"å°ç®å为æ¢,ç»æéå段å被åå®ä¸ºåæ å°æ件ä¸æå®ççå段åæ¯ä¸è´çãåè¥ SQL "
-"æ¥è¯¢è¿æ¥äºå¤ä¸ªè¡¨ï¼åä¸ä¸ªå段åå¯è½å¨å¤ä¸ªè¡¨ä¸åºç°å¤æ¬¡ï¼è¿å°±ä¼é æé®é¢ã "
+msgid "Until now, the result set column names are assumed to be the same as the column names specified in the mapping document. This can be problematic for SQL queries that join multiple tables, since the same column names can appear in more than one table."
+msgstr "å°ç®å为æ¢,ç»æéå段å被åå®ä¸ºåæ å°æ件ä¸æå®ççå段åæ¯ä¸è´çãåè¥ SQL æ¥è¯¢è¿æ¥äºå¤ä¸ªè¡¨ï¼åä¸ä¸ªå段åå¯è½å¨å¤ä¸ªè¡¨ä¸åºç°å¤æ¬¡ï¼è¿å°±ä¼é æé®é¢ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Column alias injection is needed in the following query (which most likely "
-"will fail):"
+msgid "Column alias injection is needed in the following query (which most likely will fail):"
msgstr "ä¸é¢çæ¥è¯¢ä¸éè¦ä½¿ç¨å段å«å注å°ï¼è¿ä¸ªä¾åæ¬èº«ä¼å¤±è´¥ï¼ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The query was intended to return two Cat instances per row: a cat and its "
-"mother. The query will, however, fail because there is a conflict of names; "
-"the instances are mapped to the same column names. Also, on some databases "
-"the returned column aliases will most likely be on the form \"c.ID\", \"c."
-"NAME\", etc. which are not equal to the columns specified in the mappings "
-"(\"ID\" and \"NAME\")."
-msgstr ""
-"è¿ä¸ªæ¥è¯¢çæ¬ææ¯å¸ææ¯è¡è¿å两个 Cat å®ä¾ï¼ä¸ä¸ªæ¯ cat,å¦ä¸ä¸ªæ¯å®çå¦å¦ãä½æ¯"
-"å 为å®ä»¬çå段å被æ å°ä¸ºç¸åçï¼èä¸å¨æäºæ°æ®åºä¸ï¼è¿åçå段å«åæ¯âc.IDâï¼"
-"\"c.NAME\" è¿æ ·çå½¢å¼ï¼èå®ä»¬åå¨æ å°æ件ä¸çååï¼\"ID\" å \"NAME\"ï¼ä¸å¹"
-"é
ï¼è¿å°±ä¼é æ失败ã "
+msgid "The query was intended to return two Cat instances per row: a cat and its mother. The query will, however, fail because there is a conflict of names; the instances are mapped to the same column names. Also, on some databases the returned column aliases will most likely be on the form \"c.ID\", \"c.NAME\", etc. which are not equal to the columns specified in the mappings (\"ID\" and \"NAME\")."
+msgstr "è¿ä¸ªæ¥è¯¢çæ¬ææ¯å¸ææ¯è¡è¿å两个 Cat å®ä¾ï¼ä¸ä¸ªæ¯ cat,å¦ä¸ä¸ªæ¯å®çå¦å¦ãä½æ¯å 为å®ä»¬çå段å被æ å°ä¸ºç¸åçï¼èä¸å¨æäºæ°æ®åºä¸ï¼è¿åçå段å«åæ¯âc.IDâï¼\"c.NAME\" è¿æ ·çå½¢å¼ï¼èå®ä»¬åå¨æ å°æ件ä¸çååï¼\"ID\" å \"NAME\"ï¼ä¸å¹é
ï¼è¿å°±ä¼é æ失败ã "
#. Tag: para
#, no-c-format
@@ -292,9 +171,7 @@
#. Tag: para
#, no-c-format
-msgid ""
-"the SQL query string, with placeholders for Hibernate to inject column "
-"aliases"
+msgid "the SQL query string, with placeholders for Hibernate to inject column aliases"
msgstr "SQL æ¥è¯¢è¯å¥ï¼å
¶ä¸å
å«å ä½éæ¥è®© Hibernate 注å°å段å«å"
#. Tag: para
@@ -304,20 +181,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The {cat.*} and {mother.*} notation used above is a shorthand for \"all "
-"properties\". Alternatively, you can list the columns explicitly, but even "
-"in this case Hibernate injects the SQL column aliases for each property. The "
-"placeholder for a column alias is just the property name qualified by the "
-"table alias. In the following example, you retrieve Cats and their mothers "
-"from a different table (cat_log) to the one declared in the mapping "
-"metadata. You can even use the property aliases in the where clause."
-msgstr ""
-"ä¸é¢ä½¿ç¨ç {cat.*} å {mother.*} æ è®°æ¯ä½ä¸ºâææå±æ§âçç®åå½¢å¼åºç°çãå½ç¶ä½ "
-"ä¹å¯ä»¥æç¡®å°ç½ååºå段åï¼ä½å¨è¿ä¸ªä¾åéé¢æ们让 Hibernate æ¥ä¸ºæ¯ä¸ªå±æ§æ³¨å° "
-"SQL å段å«åãå段å«åçå ä½ç¬¦æ¯å±æ§åå ä¸è¡¨å«åçåç¼ãå¨ä¸é¢çä¾åä¸ï¼æ们"
-"ä»å¦å¤ä¸ä¸ªè¡¨ï¼cat_logï¼ä¸éè¿æ å°å
æ°æ®ä¸çæå®è·å Cat åå®çå¦å¦ã注æï¼è¦"
-"æ¯æ们æ¿æï¼æ们çè³å¯ä»¥å¨ where åå¥ä¸ä½¿ç¨å±æ§å«åã "
+msgid "The {cat.*} and {mother.*} notation used above is a shorthand for \"all properties\". Alternatively, you can list the columns explicitly, but even in this case Hibernate injects the SQL column aliases for each property. The placeholder for a column alias is just the property name qualified by the table alias. In the following example, you retrieve Cats and their mothers from a different table (cat_log) to the one declared in the mapping metadata. You can even use the property aliases in the where clause."
+msgstr "ä¸é¢ä½¿ç¨ç {cat.*} å {mother.*} æ è®°æ¯ä½ä¸ºâææå±æ§âçç®åå½¢å¼åºç°çãå½ç¶ä½ ä¹å¯ä»¥æç¡®å°ç½ååºå段åï¼ä½å¨è¿ä¸ªä¾åéé¢æ们让 Hibernate æ¥ä¸ºæ¯ä¸ªå±æ§æ³¨å° SQL å段å«åãå段å«åçå ä½ç¬¦æ¯å±æ§åå ä¸è¡¨å«åçåç¼ãå¨ä¸é¢çä¾åä¸ï¼æ们ä»å¦å¤ä¸ä¸ªè¡¨ï¼cat_logï¼ä¸éè¿æ å°å
æ°æ®ä¸çæå®è·å Cat åå®çå¦å¦ã注æï¼è¦æ¯æ们æ¿æï¼æ们çè³å¯ä»¥å¨ where åå¥ä¸ä½¿ç¨å±æ§å«åã "
#. Tag: title
#, no-c-format
@@ -326,26 +191,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"In most cases the above alias injection is needed. For queries relating to "
-"more complex mappings, like composite properties, inheritance "
-"discriminators, collections etc., you can use specific aliases that allow "
-"Hibernate to inject the proper aliases."
-msgstr ""
-"大å¤æ°æ
åµä¸ï¼é½éè¦ä¸é¢çå±æ§æ³¨å°ï¼ä½å¨ä½¿ç¨æ´å å¤æçæ å°ï¼æ¯å¦å¤åå±æ§ãé"
-"è¿æ è¯ç¬¦æé 继æ¿æ ï¼ä»¥åéåç±»ççæ
åµä¸ï¼ä¹æä¸äºç¹å«çå«åï¼æ¥å
许 "
-"Hibernate 注å
¥åéçå«åã "
+msgid "In most cases the above alias injection is needed. For queries relating to more complex mappings, like composite properties, inheritance discriminators, collections etc., you can use specific aliases that allow Hibernate to inject the proper aliases."
+msgstr "大å¤æ°æ
åµä¸ï¼é½éè¦ä¸é¢çå±æ§æ³¨å°ï¼ä½å¨ä½¿ç¨æ´å å¤æçæ å°ï¼æ¯å¦å¤åå±æ§ãéè¿æ è¯ç¬¦æé 继æ¿æ ï¼ä»¥åéåç±»ççæ
åµä¸ï¼ä¹æä¸äºç¹å«çå«åï¼æ¥å
许 Hibernate 注å
¥åéçå«åã "
#. Tag: para
#, no-c-format
-msgid ""
-"The following table shows the different ways you can use the alias "
-"injection. Please note that the alias names in the result are simply "
-"examples; each alias will have a unique and probably different name when "
-"used."
-msgstr ""
-"ä¸è¡¨ååºäºä½¿ç¨å«å注å°åæ°çä¸åå¯è½æ§ã注æï¼ä¸é¢ç»æä¸çå«ååªæ¯ç¤ºä¾ï¼å®ç¨"
-"æ¶æ¯ä¸ªå«åéè¦å¯ä¸å¹¶ä¸ä¸åçååã "
+msgid "The following table shows the different ways you can use the alias injection. Please note that the alias names in the result are simply examples; each alias will have a unique and probably different name when used."
+msgstr "ä¸è¡¨ååºäºä½¿ç¨å«å注å°åæ°çä¸åå¯è½æ§ã注æï¼ä¸é¢ç»æä¸çå«ååªæ¯ç¤ºä¾ï¼å®ç¨æ¶æ¯ä¸ªå«åéè¦å¯ä¸å¹¶ä¸ä¸åçååã "
#. Tag: title
#, no-c-format
@@ -373,14 +225,14 @@
msgstr "ç®åå±æ§"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].[propertyname]</literal>"
-msgstr "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "<literal>{[aliasname].[propertyname]</literal> "
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>A_NAME as {item.name}</literal>"
-msgstr "<literal>{item.*}</literal>"
+msgstr "<literal>A_NAME as {item.name}</literal>"
#. Tag: entry
#, no-c-format
@@ -388,18 +240,14 @@
msgstr "å¤åå±æ§"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
-msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal> "
#. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
-"literal>"
-msgstr ""
-"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
-"literal>"
+#, no-c-format
+msgid "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</literal>"
+msgstr "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</literal> "
#. Tag: entry
#, no-c-format
@@ -407,14 +255,14 @@
msgstr "å®ä½è¾¨å«å¨ï¼Discriminator of an entityï¼"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].class}</literal>"
-msgstr "<literal>{item.*}</literal>"
+msgstr "<literal>{[aliasname].class}</literal>"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>DISC as {item.class}</literal>"
-msgstr "<literal>{item.*}</literal>"
+msgstr "<literal>DISC as {item.class}</literal>"
#. Tag: entry
#, no-c-format
@@ -422,9 +270,9 @@
msgstr "å®ä½çææå±æ§"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].*}</literal>"
-msgstr "<literal>{item.*}</literal>"
+msgstr "<literal>{[aliasname].*}</literal>"
#. Tag: entry
#, no-c-format
@@ -437,14 +285,14 @@
msgstr "éåé®ï¼collection keyï¼"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].key}</literal>"
-msgstr "<literal>{item.*}</literal>"
+msgstr "<literal>{[aliasname].key}</literal>"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>ORGID as {coll.key}</literal>"
-msgstr "<literal>{coll.*}</literal>"
+msgstr "<literal>ORGID as {coll.key}</literal>"
#. Tag: entry
#, no-c-format
@@ -452,14 +300,14 @@
msgstr "éå id"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].id}</literal>"
-msgstr "<literal>{item.*}</literal>"
+msgstr "<literal>{[aliasname].id}</literal>"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>EMPID as {coll.id}</literal>"
-msgstr "<literal>{coll.*}</literal>"
+msgstr "<literal>EMPID as {coll.id}</literal>"
#. Tag: entry
#, no-c-format
@@ -467,14 +315,14 @@
msgstr "éåå
ç´ "
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].element}</literal>"
-msgstr "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{[aliasname].element}</literal>"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>XID as {coll.element}</literal>"
-msgstr "<literal>{coll.element.*}</literal>"
+msgstr "<literal>XID as {coll.element}</literal>"
#. Tag: entry
#, no-c-format
@@ -482,14 +330,14 @@
msgstr "éåå
ç´ çå±æ§ "
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
-msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].element.[propertyname]}</literal> "
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>NAME as {coll.element.name}</literal>"
-msgstr "<literal>{coll.element.*}</literal>"
+msgstr "<literal>NAME as {coll.element.name}</literal>"
#. Tag: entry
#, no-c-format
@@ -497,9 +345,9 @@
msgstr "éåå
ç´ çææå±æ§"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>{[aliasname].element.*}</literal>"
-msgstr "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{[aliasname].element.*}</literal>"
#. Tag: entry
#, no-c-format
@@ -507,9 +355,9 @@
msgstr "<literal>{coll.element.*}</literal>"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "All properties of the collection"
-msgstr "éåçææå±æ§"
+msgstr "éåçææå±æ§ "
#. Tag: entry
#, no-c-format
@@ -523,12 +371,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"It is possible to apply a ResultTransformer to native SQL queries, allowing "
-"it to return non-managed entities."
-msgstr ""
-"å¯ä»¥å¯¹åç sql æ¥è¯¢ä½¿ç¨ ResultTransformerãè¿ä¼è¿åä¸å Hibernate 管ççå®"
-"ä½ã "
+msgid "It is possible to apply a ResultTransformer to native SQL queries, allowing it to return non-managed entities."
+msgstr "å¯ä»¥å¯¹åç sql æ¥è¯¢ä½¿ç¨ ResultTransformerãè¿ä¼è¿åä¸å Hibernate 管ççå®ä½ã "
#. Tag: para
#, no-c-format
@@ -537,13 +381,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The above query will return a list of <literal>CatDTO</literal> which has "
-"been instantiated and injected the values of NAME and BIRTHNAME into its "
-"corresponding properties or fields."
-msgstr ""
-"ä¸é¢çæ¥è¯¢å°ä¼è¿å <literal>CatDTO</literal> çå表,å®å°è¢«å®ä¾å并ä¸å° NAME "
-"å BIRTHDAY çå¼æ³¨å°å
¥å¯¹åºçå±æ§æè
å段ã"
+msgid "The above query will return a list of <literal>CatDTO</literal> which has been instantiated and injected the values of NAME and BIRTHNAME into its corresponding properties or fields."
+msgstr "ä¸é¢çæ¥è¯¢å°ä¼è¿å <literal>CatDTO</literal> çå表,å®å°è¢«å®ä¾å并ä¸å° NAME å BIRTHDAY çå¼æ³¨å°å
¥å¯¹åºçå±æ§æè
å段ã"
#. Tag: title
#, no-c-format
@@ -552,13 +391,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Native SQL queries which query for entities that are mapped as part of an "
-"inheritance must include all properties for the baseclass and all its "
-"subclasses."
-msgstr ""
-"åç SQL æ¥è¯¢åè¥å
¶æ¥è¯¢ç»æå®ä½æ¯ç»§æ¿æ ä¸çä¸é¨åï¼å®å¿
é¡»å
å«åºç±»åææåç±»ç"
-"ææå±æ§ã "
+msgid "Native SQL queries which query for entities that are mapped as part of an inheritance must include all properties for the baseclass and all its subclasses."
+msgstr "åç SQL æ¥è¯¢åè¥å
¶æ¥è¯¢ç»æå®ä½æ¯ç»§æ¿æ ä¸çä¸é¨åï¼å®å¿
é¡»å
å«åºç±»åææåç±»çææå±æ§ã "
#. Tag: title
#, no-c-format
@@ -577,52 +411,27 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Named SQL queries can be defined in the mapping document and called in "
-"exactly the same way as a named HQL query. In this case, you do "
-"<emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
-msgstr ""
-"å¯ä»¥å¨æ å°ææ¡£ä¸å®ä¹æ¥è¯¢çåå,ç¶åå°±å¯ä»¥è±¡è°ç¨ä¸ä¸ªå½åç HQL æ¥è¯¢ä¸æ ·ç´æ¥è°"
-"ç¨å½å SQL æ¥è¯¢.å¨è¿ç§æ
åµä¸ï¼æ们<emphasis>ä¸</emphasis> éè¦è°ç¨ "
-"<literal>addEntity()</literal> æ¹æ³ã "
+msgid "Named SQL queries can be defined in the mapping document and called in exactly the same way as a named HQL query. In this case, you do <emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
+msgstr "å¯ä»¥å¨æ å°ææ¡£ä¸å®ä¹æ¥è¯¢çåå,ç¶åå°±å¯ä»¥è±¡è°ç¨ä¸ä¸ªå½åç HQL æ¥è¯¢ä¸æ ·ç´æ¥è°ç¨å½å SQL æ¥è¯¢.å¨è¿ç§æ
åµä¸ï¼æ们<emphasis>ä¸</emphasis> éè¦è°ç¨ <literal>addEntity()</literal> æ¹æ³ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal><return-join></literal> element is use to join "
-"associations and the <literal><load-collection></literal> element is "
-"used to define queries which initialize collections,"
-msgstr ""
-"<literal><return-join></literal> å <literal><load-collection></"
-"literal> å
ç´ æ¯ç¨æ¥è¿æ¥å
³è以åå°æ¥è¯¢å®ä¹ä¸ºé¢å
åå§åå个éåçã "
+msgid "The <literal><return-join></literal> element is use to join associations and the <literal><load-collection></literal> element is used to define queries which initialize collections,"
+msgstr "<literal><return-join></literal> å <literal><load-collection></literal> å
ç´ æ¯ç¨æ¥è¿æ¥å
³è以åå°æ¥è¯¢å®ä¹ä¸ºé¢å
åå§åå个éåçã "
#. Tag: para
#, no-c-format
-msgid ""
-"A named SQL query may return a scalar value. You must declare the column "
-"alias and Hibernate type using the <literal><return-scalar></literal> "
-"element:"
-msgstr ""
-"ä¸ä¸ªå½åæ¥è¯¢å¯è½ä¼è¿åä¸ä¸ªæ éå¼ãä½ å¿
é¡»ä½¿ç¨ <literal><return-scalar></"
-"literal> å
ç´ æ¥æå®å段çå«åå Hibernate ç±»åï¼"
+msgid "A named SQL query may return a scalar value. You must declare the column alias and Hibernate type using the <literal><return-scalar></literal> element:"
+msgstr "ä¸ä¸ªå½åæ¥è¯¢å¯è½ä¼è¿åä¸ä¸ªæ éå¼ãä½ å¿
é¡»ä½¿ç¨ <literal><return-scalar></literal> å
ç´ æ¥æå®å段çå«åå Hibernate ç±»åï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"You can externalize the resultset mapping information in a <literal><"
-"resultset></literal> element which will allow you to either reuse them "
-"across several named queries or through the <literal>setResultSetMapping()</"
-"literal> API."
-msgstr ""
-"ä½ å¯ä»¥æç»æéæ å°çä¿¡æ¯æ¾å¨å¤é¨ç <literal><resultset></literal> å
ç´ "
-"ä¸ï¼è¿æ ·å°±å¯ä»¥å¨å¤ä¸ªå½åæ¥è¯¢é´ï¼æè
éè¿ <literal>setResultSetMapping()</"
-"literal> API æ¥è®¿é®ã "
+msgid "You can externalize the resultset mapping information in a <literal><resultset></literal> element which will allow you to either reuse them across several named queries or through the <literal>setResultSetMapping()</literal> API."
+msgstr "ä½ å¯ä»¥æç»æéæ å°çä¿¡æ¯æ¾å¨å¤é¨ç <literal><resultset></literal> å
ç´ ä¸ï¼è¿æ ·å°±å¯ä»¥å¨å¤ä¸ªå½åæ¥è¯¢é´ï¼æè
éè¿ <literal>setResultSetMapping()</literal> API æ¥è®¿é®ã "
#. Tag: para
#, no-c-format
-msgid ""
-"You can, alternatively, use the resultset mapping information in your hbm "
-"files directly in java code."
+msgid "You can, alternatively, use the resultset mapping information in your hbm files directly in java code."
msgstr "å¦å¤ï¼ä½ å¯ä»¥å¨ java 代ç ä¸ç´æ¥ä½¿ç¨ hbm æ件ä¸çç»æéå®ä¹ä¿¡æ¯ã "
#. Tag: title
@@ -632,43 +441,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can explicitly tell Hibernate what column aliases to use with "
-"<literal><return-property></literal>, instead of using the <literal>{}"
-"</literal>-syntax to let Hibernate inject its own aliases.For example:"
-msgstr ""
-"ä½¿ç¨ <literal><return-property></literal> ä½ å¯ä»¥æç¡®çåè¯ Hibernate 使"
-"ç¨åªäºå段å«åï¼è¿å代äºä½¿ç¨ <literal>{}</literal>-è¯æ³ æ¥è®© Hibernate 注å
¥å®"
-"èªå·±çå«åãä¾å¦ï¼"
+msgid "You can explicitly tell Hibernate what column aliases to use with <literal><return-property></literal>, instead of using the <literal>{}</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr "ä½¿ç¨ <literal><return-property></literal> ä½ å¯ä»¥æç¡®çåè¯ Hibernate 使ç¨åªäºå段å«åï¼è¿å代äºä½¿ç¨ <literal>{}</literal>-è¯æ³ æ¥è®© Hibernate 注å
¥å®èªå·±çå«åãä¾å¦ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal><return-property></literal> also works with multiple columns. "
-"This solves a limitation with the <literal>{}</literal>-syntax which cannot "
-"allow fine grained control of multi-column properties."
-msgstr ""
-"<literal><return-property></literal> ä¹å¯ç¨äºå¤ä¸ªå段ï¼å®è§£å³äºä½¿ç¨ "
-"<literal>{}</literal>-è¯æ³ä¸è½ç»ç²åº¦æ§å¶å¤ä¸ªå段çéå¶ã "
+msgid "<literal><return-property></literal> also works with multiple columns. This solves a limitation with the <literal>{}</literal>-syntax which cannot allow fine grained control of multi-column properties."
+msgstr "<literal><return-property></literal> ä¹å¯ç¨äºå¤ä¸ªå段ï¼å®è§£å³äºä½¿ç¨ <literal>{}</literal>-è¯æ³ä¸è½ç»ç²åº¦æ§å¶å¤ä¸ªå段çéå¶ã "
#. Tag: para
#, no-c-format
-msgid ""
-"In this example <literal><return-property></literal> was used in "
-"combination with the <literal>{}</literal>-syntax for injection. This allows "
-"users to choose how they want to refer column and properties."
-msgstr ""
-"注æå¨è¿ä¸ªä¾åä¸ï¼æ们使ç¨äº <literal><return-property></literal> ç»å "
-"<literal>{}</literal> ç注å
¥è¯æ³ãå
许ç¨æ·æ¥éæ©å¦ä½å¼ç¨å段以åå±æ§ã "
+msgid "In this example <literal><return-property></literal> was used in combination with the <literal>{}</literal>-syntax for injection. This allows users to choose how they want to refer column and properties."
+msgstr "注æå¨è¿ä¸ªä¾åä¸ï¼æ们使ç¨äº <literal><return-property></literal> ç»å <literal>{}</literal> ç注å
¥è¯æ³ãå
许ç¨æ·æ¥éæ©å¦ä½å¼ç¨å段以åå±æ§ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If your mapping has a discriminator you must use <literal><return-"
-"discriminator></literal> to specify the discriminator column."
-msgstr ""
-"å¦æä½ æ å°ä¸ä¸ªè¯å«å¨ï¼discriminatorï¼ï¼ä½ å¿
é¡»ä½¿ç¨ <literal><return-"
-"discriminator></literal> æ¥æå®è¯å«å¨å段ã"
+msgid "If your mapping has a discriminator you must use <literal><return-discriminator></literal> to specify the discriminator column."
+msgstr "å¦æä½ æ å°ä¸ä¸ªè¯å«å¨ï¼discriminatorï¼ï¼ä½ å¿
é¡»ä½¿ç¨ <literal><return-discriminator></literal> æ¥æå®è¯å«å¨å段ã"
#. Tag: title
#, no-c-format
@@ -677,17 +466,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate3 provides support for queries via stored procedures and functions. "
-"Most of the following documentation is equivalent for both. The stored "
-"procedure/function must return a resultset as the first out-parameter to be "
-"able to work with Hibernate. An example of such a stored function in Oracle "
-"9 and higher is as follows:"
-msgstr ""
-"Hibernate 3 å¼å
¥äºå¯¹åå¨è¿ç¨æ¥è¯¢ï¼stored procedureï¼åå½æ°ï¼functionï¼çæ¯"
-"æã以ä¸ç说æä¸ï¼è¿äºè
ä¸è¬é½éç¨ãåå¨è¿ç¨ï¼å½æ°å¿
é¡»è¿åä¸ä¸ªç»æéï¼ä½ä¸º "
-"Hibernate è½å¤ä½¿ç¨ç第ä¸ä¸ªå¤é¨åæ°ãä¸é¢æ¯ä¸ä¸ª Oracle9 åæ´é«çæ¬çåå¨è¿ç¨ä¾"
-"åã "
+msgid "Hibernate3 provides support for queries via stored procedures and functions. Most of the following documentation is equivalent for both. The stored procedure/function must return a resultset as the first out-parameter to be able to work with Hibernate. An example of such a stored function in Oracle 9 and higher is as follows:"
+msgstr "Hibernate 3 å¼å
¥äºå¯¹åå¨è¿ç¨æ¥è¯¢ï¼stored procedureï¼åå½æ°ï¼functionï¼çæ¯æã以ä¸ç说æä¸ï¼è¿äºè
ä¸è¬é½éç¨ãåå¨è¿ç¨ï¼å½æ°å¿
é¡»è¿åä¸ä¸ªç»æéï¼ä½ä¸º Hibernate è½å¤ä½¿ç¨ç第ä¸ä¸ªå¤é¨åæ°ãä¸é¢æ¯ä¸ä¸ª Oracle9 åæ´é«çæ¬çåå¨è¿ç¨ä¾åã "
#. Tag: para
#, no-c-format
@@ -696,13 +476,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Stored procedures currently only return scalars and entities. <literal><"
-"return-join></literal> and <literal><load-collection></literal> are "
-"not supported."
-msgstr ""
-"注æåå¨è¿ç¨å½åä»
ä»
è¿åæ éåå®ä½ç°å¨ãä¸æ¯æ <literal><return-join></"
-"literal> å <literal><load-collection></literal>ã "
+msgid "Stored procedures currently only return scalars and entities. <literal><return-join></literal> and <literal><load-collection></literal> are not supported."
+msgstr "注æåå¨è¿ç¨å½åä»
ä»
è¿åæ éåå®ä½ç°å¨ãä¸æ¯æ <literal><return-join></literal> å <literal><load-collection></literal>ã "
#. Tag: title
#, no-c-format
@@ -711,38 +486,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You cannot use stored procedures with Hibernate unless you follow some "
-"procedure/function rules. If they do not follow those rules they are not "
-"usable with Hibernate. If you still want to use these procedures you have to "
-"execute them via <literal>session.connection()</literal>. The rules are "
-"different for each database, since database vendors have different stored "
-"procedure semantics/syntax."
-msgstr ""
-"为äºå¨ Hibernate ä¸ä½¿ç¨åå¨è¿ç¨ï¼ä½ å¿
é¡»éµå¾ªä¸äºè§åãä¸éµå¾ªè¿äºè§åçåå¨è¿ç¨"
-"å°ä¸å¯ç¨ãå¦æä½ ä»ç¶æ³ä½¿ç¨ä»ä»¬ï¼ä½ å¿
é¡»éè¿ <literal>session.connection()</"
-"literal> æ¥æ§è¡ä»ä»¬ãè¿äºè§åé对äºä¸åçæ°æ®åºãå 为æ°æ®åºæä¾åæåç§ä¸åç"
-"åå¨è¿ç¨è¯æ³åè¯ä¹ã "
+msgid "You cannot use stored procedures with Hibernate unless you follow some procedure/function rules. If they do not follow those rules they are not usable with Hibernate. If you still want to use these procedures you have to execute them via <literal>session.connection()</literal>. The rules are different for each database, since database vendors have different stored procedure semantics/syntax."
+msgstr "为äºå¨ Hibernate ä¸ä½¿ç¨åå¨è¿ç¨ï¼ä½ å¿
é¡»éµå¾ªä¸äºè§åãä¸éµå¾ªè¿äºè§åçåå¨è¿ç¨å°ä¸å¯ç¨ãå¦æä½ ä»ç¶æ³ä½¿ç¨ä»ä»¬ï¼ä½ å¿
é¡»éè¿ <literal>session.connection()</literal> æ¥æ§è¡ä»ä»¬ãè¿äºè§åé对äºä¸åçæ°æ®åºãå 为æ°æ®åºæä¾åæåç§ä¸åçåå¨è¿ç¨è¯æ³åè¯ä¹ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Stored procedure queries cannot be paged with <literal>setFirstResult()/"
-"setMaxResults()</literal>."
-msgstr ""
-"对åå¨è¿ç¨è¿è¡çæ¥è¯¢æ æ³ä½¿ç¨ <literal>setFirstResult()/setMaxResults()</"
-"literal> è¿è¡å页ã "
+msgid "Stored procedure queries cannot be paged with <literal>setFirstResult()/setMaxResults()</literal>."
+msgstr "对åå¨è¿ç¨è¿è¡çæ¥è¯¢æ æ³ä½¿ç¨ <literal>setFirstResult()/setMaxResults()</literal> è¿è¡å页ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The recommended call form is standard SQL92: <literal>{ ? = call functionName"
-"(<parameters>) }</literal> or <literal>{ ? = call procedureName(<"
-"parameters>}</literal>. Native call syntax is not supported."
-msgstr ""
-"建议éç¨çè°ç¨æ¹å¼æ¯æ å SQL92: <literal>{ ? = call functionName(<"
-"parameters>) }</literal> æè
<literal>{ ? = call procedureName(<"
-"parameters>) }</literal>ãåçè°ç¨è¯æ³ä¸è¢«æ¯æã "
+msgid "The recommended call form is standard SQL92: <literal>{ ? = call functionName(<parameters>) }</literal> or <literal>{ ? = call procedureName(<parameters>}</literal>. Native call syntax is not supported."
+msgstr "建议éç¨çè°ç¨æ¹å¼æ¯æ å SQL92: <literal>{ ? = call functionName(<parameters>) }</literal> æè
<literal>{ ? = call procedureName(<parameters>) }</literal>ãåçè°ç¨è¯æ³ä¸è¢«æ¯æã "
#. Tag: para
#, no-c-format
@@ -751,17 +506,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"A function must return a result set. The first parameter of a procedure must "
-"be an <literal>OUT</literal> that returns a result set. This is done by "
-"using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle "
-"you need to define a <literal>REF CURSOR</literal> type. See Oracle "
-"literature for further information."
-msgstr ""
-"å½æ°å¿
é¡»è¿åä¸ä¸ªç»æéãåå¨è¿ç¨ç第ä¸ä¸ªåæ°å¿
é¡»æ¯ <literal>OUT</literal>ï¼å®"
-"è¿åä¸ä¸ªç»æéãè¿æ¯éè¿ Oracle 9 æ 10 ç <literal>SYS_REFCURSOR</literal> "
-"ç±»åæ¥å®æçãå¨ Oracle ä¸ä½ éè¦å®ä¹ä¸ä¸ª <literal>REF CURSOR</literal> ç±»åï¼"
-"åè§ Oracle çæåã "
+msgid "A function must return a result set. The first parameter of a procedure must be an <literal>OUT</literal> that returns a result set. This is done by using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle you need to define a <literal>REF CURSOR</literal> type. See Oracle literature for further information."
+msgstr "å½æ°å¿
é¡»è¿åä¸ä¸ªç»æéãåå¨è¿ç¨ç第ä¸ä¸ªåæ°å¿
é¡»æ¯ <literal>OUT</literal>ï¼å®è¿åä¸ä¸ªç»æéãè¿æ¯éè¿ Oracle 9 æ 10 ç <literal>SYS_REFCURSOR</literal> ç±»åæ¥å®æçãå¨ Oracle ä¸ä½ éè¦å®ä¹ä¸ä¸ª <literal>REF CURSOR</literal> ç±»åï¼åè§ Oracle çæåã "
#. Tag: para
#, no-c-format
@@ -770,23 +516,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The procedure must return a result set. Note that since these servers can "
-"return multiple result sets and update counts, Hibernate will iterate the "
-"results and take the first result that is a result set as its return value. "
-"Everything else will be discarded."
-msgstr ""
-"åå¨è¿ç¨å¿
é¡»è¿åä¸ä¸ªç»æéã注æè¿äº servers å¯è½è¿åå¤ä¸ªç»æé以åæ´æ°çæ°"
-"ç®ãHibernate å°ååºç¬¬ä¸æ¡ç»æéä½ä¸ºå®çè¿åå¼ï¼å
¶ä»å°è¢«ä¸¢å¼ã "
+msgid "The procedure must return a result set. Note that since these servers can return multiple result sets and update counts, Hibernate will iterate the results and take the first result that is a result set as its return value. Everything else will be discarded."
+msgstr "åå¨è¿ç¨å¿
é¡»è¿åä¸ä¸ªç»æéã注æè¿äº servers å¯è½è¿åå¤ä¸ªç»æé以åæ´æ°çæ°ç®ãHibernate å°ååºç¬¬ä¸æ¡ç»æéä½ä¸ºå®çè¿åå¼ï¼å
¶ä»å°è¢«ä¸¢å¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it "
-"will probably be more efficient, but this is not a requirement."
-msgstr ""
-"å¦æä½ è½å¤å¨åå¨è¿ç¨éè®¾å® <literal>SET NOCOUNT ON</literal>ï¼è¿å¯è½ä¼æçæ´"
-"é«ï¼ä½è¿ä¸æ¯å¿
éçã"
+msgid "If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it will probably be more efficient, but this is not a requirement."
+msgstr "å¦æä½ è½å¤å¨åå¨è¿ç¨éè®¾å® <literal>SET NOCOUNT ON</literal>ï¼è¿å¯è½ä¼æçæ´é«ï¼ä½è¿ä¸æ¯å¿
éçã"
#. Tag: title
#, no-c-format
@@ -795,78 +531,38 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate3 can use custom SQL for create, update, and delete operations. The "
-"SQL can be overridden at the statement level or inidividual column level. "
-"This section describes statement overrides. For columns, see <xref linkend="
-"\"mapping-column-read-and-write\" />."
-msgstr ""
+msgid "Hibernate3 can use custom SQL for create, update, and delete operations. The SQL can be overridden at the statement level or inidividual column level. This section describes statement overrides. For columns, see <xref linkend=\"mapping-column-read-and-write\" />."
+msgstr "Hibernate3 å¯ä»¥èªå®ä¹ createãupdate å delete æä½ãSQL å¯ä»¥å¨è¯å¥æå个å段级å«è¿è¡è¦çãæ¬èæè¿°äºè¯å¥è¦çã对äºå段è¦çï¼è¯·åè <xref linkend=\"mapping-column-read-and-write\" />ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The class and collection persisters in Hibernate already contain a set of "
-"configuration time generated strings (insertsql, deletesql, updatesql etc.). "
-"The mapping tags <literal><sql-insert></literal>, <literal><sql-"
-"delete></literal>, and <literal><sql-update></literal> override "
-"these strings:"
-msgstr ""
-"Hibernate3 è½å¤ä½¿ç¨å®å¶ç SQL è¯å¥æ¥æ§è¡ createï¼update å delete æä½ãå¨ "
-"Hibernate ä¸ï¼æä¹
åçç±»åéåå·²ç»å
å«äºä¸å¥é
ç½®æ产ççè¯å¥ï¼insertsqlï¼"
-"deletesqlï¼updatesql ççï¼ï¼è¿äºæ å°æ è®° <literal><sql-insert></"
-"literal>ï¼<literal><sql-delete></literal> å <literal><sql-"
-"update></literal> éè½½äºè¿äºè¯å¥ã"
+#, no-c-format
+msgid "The class and collection persisters in Hibernate already contain a set of configuration time generated strings (insertsql, deletesql, updatesql etc.). The mapping tags <literal><sql-insert></literal>, <literal><sql-delete></literal>, and <literal><sql-update></literal> override these strings:"
+msgstr "Hibernate3 è½å¤ä½¿ç¨å®å¶ç SQL è¯å¥æ¥æ§è¡ createï¼update å delete æä½ãå¨ Hibernate ä¸ï¼æä¹
åçç±»åéåå·²ç»å
å«äºä¸å¥é
ç½®æ产ççè¯å¥ï¼insertsqlï¼deletesqlï¼updatesql ççï¼ï¼è¿äºæ å°æ è®° <literal><sql-insert></literal>ï¼<literal><sql-delete></literal> å <literal><sql-update></literal> éè½½äºè¿äºè¯å¥ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The SQL is directly executed in your database, so you can use any dialect "
-"you like. This will reduce the portability of your mapping if you use "
-"database specific SQL."
-msgstr ""
-"è¿äº SQL ç´æ¥å¨ä½ çæ°æ®åºéæ§è¡ï¼æä»¥ä½ å¯ä»¥èªç±ç使ç¨ä½ å欢çä»»æè¯æ³ãä½å¦æ"
-"ä½ ä½¿ç¨æ°æ®åºç¹å®çè¯æ³ï¼è¿å½ç¶ä¼éä½ä½ æ å°çå¯ç§»æ¤æ§ã "
+msgid "The SQL is directly executed in your database, so you can use any dialect you like. This will reduce the portability of your mapping if you use database specific SQL."
+msgstr "è¿äº SQL ç´æ¥å¨ä½ çæ°æ®åºéæ§è¡ï¼æä»¥ä½ å¯ä»¥èªç±ç使ç¨ä½ å欢çä»»æè¯æ³ãä½å¦æä½ ä½¿ç¨æ°æ®åºç¹å®çè¯æ³ï¼è¿å½ç¶ä¼éä½ä½ æ å°çå¯ç§»æ¤æ§ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Stored procedures are supported if the <literal>callable</literal> attribute "
-"is set:"
+msgid "Stored procedures are supported if the <literal>callable</literal> attribute is set:"
msgstr "å¦æè®¾å® <literal>callable</literal>ï¼åè½å¤æ¯æåå¨è¿ç¨äºã"
#. Tag: para
#, no-c-format
-msgid ""
-"The order of the positional parameters is vital, as they must be in the same "
-"sequence as Hibernate expects them."
+msgid "The order of the positional parameters is vital, as they must be in the same sequence as Hibernate expects them."
msgstr "åæ°çä½ç½®é¡ºåºæ¯é常éè¦çï¼ä»ä»¬å¿
é¡»å Hibernate ææå¾
ç顺åºç¸åã "
#. Tag: para
#, no-c-format
-msgid ""
-"You can view the expected order by enabling debug logging for the "
-"<literal>org.hibernate.persister.entity</literal> level. With this level "
-"enabled, Hibernate will print out the static SQL that is used to create, "
-"update, delete etc. entities. To view the expected sequence, do not include "
-"your custom SQL in the mapping files, as this will override the Hibernate "
-"generated static SQL."
-msgstr ""
-"ä½ è½å¤éè¿è®¾å®æ¥å¿è°è¯çº§å«ä¸º <literal>org.hiberante.persister.entity</"
-"literal> æ¥æ¥ç Hibernate ææå¾
ç顺åºãå¨è¿ä¸ªçº§å«ä¸ï¼Hibernate å°ä¼æå°åº"
-"createï¼update å delete å®ä½çéæ SQLãï¼å¦ææ³çå°é¢è®¡ç顺åºãè®°å¾ä¸è¦å°å®"
-"å¶ SQL å
å«å¨æ å°æ件éï¼å 为ä»ä»¬ä¼éè½½ Hibernate çæçéæ SQLãï¼ "
+msgid "You can view the expected order by enabling debug logging for the <literal>org.hibernate.persister.entity</literal> level. With this level enabled, Hibernate will print out the static SQL that is used to create, update, delete etc. entities. To view the expected sequence, do not include your custom SQL in the mapping files, as this will override the Hibernate generated static SQL."
+msgstr "ä½ è½å¤éè¿è®¾å®æ¥å¿è°è¯çº§å«ä¸º <literal>org.hiberante.persister.entity</literal> æ¥æ¥ç Hibernate ææå¾
ç顺åºãå¨è¿ä¸ªçº§å«ä¸ï¼Hibernate å°ä¼æå°åºcreateï¼update å delete å®ä½çéæ SQLãï¼å¦ææ³çå°é¢è®¡ç顺åºãè®°å¾ä¸è¦å°å®å¶ SQL å
å«å¨æ å°æ件éï¼å 为ä»ä»¬ä¼éè½½ Hibernate çæçéæ SQLãï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The stored procedures are in most cases required to return the number of "
-"rows inserted, updated and deleted, as Hibernate has some runtime checks for "
-"the success of the statement. Hibernate always registers the first statement "
-"parameter as a numeric output parameter for the CUD operations:"
-msgstr ""
-"å¨å¤§å¤æ°æ
åµä¸ï¼æ好è¿ä¹åï¼ï¼åå¨è¿ç¨éè¦è¿åæå
¥ï¼æ´æ°ï¼å é¤çè¡æ°ï¼å 为 "
-"Hibernate 对è¯å¥çæåæ§è¡æäºè¿è¡æ¶çæ£æ¥ãHibernate 常ä¼æè¿è¡ CUD æä½çè¯"
-"å¥ç第ä¸ä¸ªåæ°æ³¨å为ä¸ä¸ªæ°å¼åè¾åºåæ°ã "
+msgid "The stored procedures are in most cases required to return the number of rows inserted, updated and deleted, as Hibernate has some runtime checks for the success of the statement. Hibernate always registers the first statement parameter as a numeric output parameter for the CUD operations:"
+msgstr "å¨å¤§å¤æ°æ
åµä¸ï¼æ好è¿ä¹åï¼ï¼åå¨è¿ç¨éè¦è¿åæå
¥ï¼æ´æ°ï¼å é¤çè¡æ°ï¼å 为 Hibernate 对è¯å¥çæåæ§è¡æäºè¿è¡æ¶çæ£æ¥ãHibernate 常ä¼æè¿è¡ CUD æä½çè¯å¥ç第ä¸ä¸ªåæ°æ³¨å为ä¸ä¸ªæ°å¼åè¾åºåæ°ã "
#. Tag: title
#, no-c-format
@@ -875,21 +571,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can also declare your own SQL (or HQL) queries for entity loading. As "
-"with inserts, updates, and deletes, this can be done at the individual "
-"column level as described in <xref linkend=\"mapping-column-read-and-write"
-"\" /> or at the statement level. Here is an example of a statement level "
-"override:"
-msgstr ""
+msgid "You can also declare your own SQL (or HQL) queries for entity loading. As with inserts, updates, and deletes, this can be done at the individual column level as described in <xref linkend=\"mapping-column-read-and-write\" /> or at the statement level. Here is an example of a statement level override:"
+msgstr "ä½ ä¹å¯ä»¥ä¸ºå®ä½å 载声æèªå·±ç SQLï¼æ HQLï¼ãå¦ <xref linkend=\"mapping-column-read-and-write\" /> ææè¿°çï¼insertsãupdates å deletes å¯ä»¥å¨å段级å«æè¯å¥çº§å«æ¥å®æãä¸é¢æ¯ä¸ä¸ªè¯å¥è¦ççä¾åï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"This is just a named query declaration, as discussed earlier. You can "
-"reference this named query in a class mapping:"
-msgstr ""
-"è¿åªæ¯ä¸ä¸ªåé¢è®¨è®ºè¿çå½åæ¥è¯¢å£°æï¼ä½ å¯ä»¥å¨ç±»æ å°éå¼ç¨è¿ä¸ªå½åæ¥è¯¢ã "
+msgid "This is just a named query declaration, as discussed earlier. You can reference this named query in a class mapping:"
+msgstr "è¿åªæ¯ä¸ä¸ªåé¢è®¨è®ºè¿çå½åæ¥è¯¢å£°æï¼ä½ å¯ä»¥å¨ç±»æ å°éå¼ç¨è¿ä¸ªå½åæ¥è¯¢ã "
#. Tag: para
#, no-c-format
@@ -903,9 +591,7 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can also define an entity loader that loads a collection by join "
-"fetching:"
+msgid "You can also define an entity loader that loads a collection by join fetching:"
msgstr "ä½ çè³è¿å¯ä»¥å®ä¹ä¸ä¸ªå®ä½è£
è½½å¨ï¼å®éè¿è¿æ¥æåè£
è½½ä¸ä¸ªéåï¼ "
#~ msgid ""
@@ -1058,7 +744,6 @@
#, fuzzy
#~ msgid "{[aliasname].*}"
#~ msgstr "<literal>{[aliasname].*}</literal>"
-
#~ msgid "{item.*}"
#~ msgstr "{item.*}"
@@ -1097,7 +782,6 @@
#, fuzzy
#~ msgid "{coll.element.*}"
#~ msgstr "{coll.*}"
-
#~ msgid "{coll.*}"
#~ msgstr "{coll.*}"
@@ -1568,3 +1252,4 @@
#~ " ON pers.ID = emp.PERSON_ID\n"
#~ " WHERE ID=?\n"
#~ "</sql-query>"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/session_api.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/session_api.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/session_api.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -7,7 +7,7 @@
"Project-Id-Version: session_api\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-03-12T00:03:48\n"
-"PO-Revision-Date: 2009-12-04 14:00+1000\n"
+"PO-Revision-Date: 2010-03-16 09:58+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -22,31 +22,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate is a full object/relational mapping solution that not only shields "
-"the developer from the details of the underlying database management system, "
-"but also offers <emphasis>state management</emphasis> of objects. This is, "
-"contrary to the management of SQL <literal>statements</literal> in common "
-"JDBC/SQL persistence layers, a natural object-oriented view of persistence "
-"in Java applications."
-msgstr ""
-"Hibernate æ¯å®æ´ç对象/å
³ç³»æ å°è§£å³æ¹æ¡ï¼å®æä¾äºå¯¹è±¡<emphasis>ç¶æ管ç"
-"ï¼state managementï¼</emphasis>çåè½ï¼ä½¿å¼åè
ä¸åéè¦çä¼åºå±æ°æ®åºç³»ç»çç»"
-"èãä¹å°±æ¯è¯´ï¼ç¸å¯¹äºå¸¸è§ç JDBC/SQL æä¹
å±æ¹æ¡ä¸éè¦<literal>管ç SQL è¯å¥</"
-"literal>ï¼Hibernate éç¨äºæ´èªç¶çé¢å对象çè§è§æ¥æä¹
å Java åºç¨ä¸çæ°æ®ã "
+msgid "Hibernate is a full object/relational mapping solution that not only shields the developer from the details of the underlying database management system, but also offers <emphasis>state management</emphasis> of objects. This is, contrary to the management of SQL <literal>statements</literal> in common JDBC/SQL persistence layers, a natural object-oriented view of persistence in Java applications."
+msgstr "Hibernate æ¯å®æ´ç对象/å
³ç³»æ å°è§£å³æ¹æ¡ï¼å®æä¾äºå¯¹è±¡<emphasis>ç¶æ管çï¼state managementï¼</emphasis>çåè½ï¼ä½¿å¼åè
ä¸åéè¦çä¼åºå±æ°æ®åºç³»ç»çç»èãä¹å°±æ¯è¯´ï¼ç¸å¯¹äºå¸¸è§ç JDBC/SQL æä¹
å±æ¹æ¡ä¸éè¦<literal>管ç SQL è¯å¥</literal>ï¼Hibernate éç¨äºæ´èªç¶çé¢å对象çè§è§æ¥æä¹
å Java åºç¨ä¸çæ°æ®ã "
#. Tag: para
#, no-c-format
-msgid ""
-"In other words, Hibernate application developers should always think about "
-"the <emphasis>state</emphasis> of their objects, and not necessarily about "
-"the execution of SQL statements. This part is taken care of by Hibernate and "
-"is only relevant for the application developer when tuning the performance "
-"of the system."
-msgstr ""
-"æ¢å¥è¯è¯´ï¼ä½¿ç¨ Hibernate çå¼åè
åºè¯¥æ»æ¯å
³æ³¨å¯¹è±¡ç<emphasis>ç¶æï¼stateï¼</"
-"emphasis>ï¼ä¸å¿
èè SQL è¯å¥çæ§è¡ãè¿é¨åç»èå·²ç»ç± Hibernate æ管妥å½ï¼åªæ"
-"å¼åè
å¨è¿è¡ç³»ç»æ§è½è°ä¼çæ¶åæéè¦è¿è¡äºè§£ã"
+msgid "In other words, Hibernate application developers should always think about the <emphasis>state</emphasis> of their objects, and not necessarily about the execution of SQL statements. This part is taken care of by Hibernate and is only relevant for the application developer when tuning the performance of the system."
+msgstr "æ¢å¥è¯è¯´ï¼ä½¿ç¨ Hibernate çå¼åè
åºè¯¥æ»æ¯å
³æ³¨å¯¹è±¡ç<emphasis>ç¶æï¼stateï¼</emphasis>ï¼ä¸å¿
èè SQL è¯å¥çæ§è¡ãè¿é¨åç»èå·²ç»ç± Hibernate æ管妥å½ï¼åªæå¼åè
å¨è¿è¡ç³»ç»æ§è½è°ä¼çæ¶åæéè¦è¿è¡äºè§£ã"
#. Tag: title
#, no-c-format
@@ -60,76 +42,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Transient</emphasis> - an object is transient if it has just been "
-"instantiated using the <literal>new</literal> operator, and it is not "
-"associated with a Hibernate <literal>Session</literal>. It has no persistent "
-"representation in the database and no identifier value has been assigned. "
-"Transient instances will be destroyed by the garbage collector if the "
-"application does not hold a reference anymore. Use the Hibernate "
-"<literal>Session</literal> to make an object persistent (and let Hibernate "
-"take care of the SQL statements that need to be executed for this "
-"transition)."
-msgstr ""
-"<emphasis>ç¬æ¶ï¼Transientï¼</emphasis> â ç± <literal>new</literal> æä½ç¬¦å"
-"建ï¼ä¸å°æªä¸Hibernate <literal>Session</literal> å
³èç对象被认å®ä¸ºç¬æ¶"
-"ï¼Transientï¼çãç¬æ¶ï¼Transientï¼å¯¹è±¡ä¸ä¼è¢«æä¹
åå°æ°æ®åºä¸ï¼ä¹ä¸ä¼è¢«èµäºæ"
-"ä¹
åæ è¯ï¼identifierï¼ã å¦æç¬æ¶ï¼Transientï¼å¯¹è±¡å¨ç¨åºä¸æ²¡æ被å¼ç¨ï¼å®ä¼è¢«"
-"åå¾åæ¶å¨ï¼garbage collectorï¼éæ¯ã ä½¿ç¨ Hibernate <literal>Session</"
-"literal>å¯ä»¥å°å
¶å为æä¹
ï¼Persistentï¼ç¶æãï¼Hibernateä¼èªå¨æ§è¡å¿
è¦çSQLè¯"
-"å¥ï¼ "
+msgid "<emphasis>Transient</emphasis> - an object is transient if it has just been instantiated using the <literal>new</literal> operator, and it is not associated with a Hibernate <literal>Session</literal>. It has no persistent representation in the database and no identifier value has been assigned. Transient instances will be destroyed by the garbage collector if the application does not hold a reference anymore. Use the Hibernate <literal>Session</literal> to make an object persistent (and let Hibernate take care of the SQL statements that need to be executed for this transition)."
+msgstr "<emphasis>ç¬æ¶ï¼Transientï¼</emphasis> â ç± <literal>new</literal> æä½ç¬¦å建ï¼ä¸å°æªä¸Hibernate <literal>Session</literal> å
³èç对象被认å®ä¸ºç¬æ¶ï¼Transientï¼çãç¬æ¶ï¼Transientï¼å¯¹è±¡ä¸ä¼è¢«æä¹
åå°æ°æ®åºä¸ï¼ä¹ä¸ä¼è¢«èµäºæä¹
åæ è¯ï¼identifierï¼ã å¦æç¬æ¶ï¼Transientï¼å¯¹è±¡å¨ç¨åºä¸æ²¡æ被å¼ç¨ï¼å®ä¼è¢«åå¾åæ¶å¨ï¼garbage collectorï¼éæ¯ã ä½¿ç¨ Hibernate <literal>Session</literal>å¯ä»¥å°å
¶å为æä¹
ï¼Persistentï¼ç¶æãï¼Hibernateä¼èªå¨æ§è¡å¿
è¦çSQLè¯å¥ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Persistent</emphasis> - a persistent instance has a representation "
-"in the database and an identifier value. It might just have been saved or "
-"loaded, however, it is by definition in the scope of a <literal>Session</"
-"literal>. Hibernate will detect any changes made to an object in persistent "
-"state and synchronize the state with the database when the unit of work "
-"completes. Developers do not execute manual <literal>UPDATE</literal> "
-"statements, or <literal>DELETE</literal> statements when an object should be "
-"made transient."
-msgstr ""
-"<emphasis>æä¹
ï¼Persistentï¼</emphasis> â æä¹
ï¼Persistentï¼çå®ä¾å¨æ°æ®åºä¸"
-"æ对åºçè®°å½ï¼å¹¶æ¥æä¸ä¸ªæä¹
åæ è¯ï¼identifierï¼ã æä¹
ï¼Persistentï¼çå®ä¾å¯"
-"è½æ¯å被ä¿åçï¼æå被å è½½çï¼æ 论åªä¸ç§ï¼æå®ä¹ï¼å®åå¨äºç¸å
³èç"
-"<literal>Session</literal>ä½ç¨èå´å
ã Hibernateä¼æ£æµå°å¤äºæä¹
"
-"ï¼Persistentï¼ç¶æç对象çä»»ä½æ¹å¨ï¼å¨å½åæä½åå
ï¼unit of workï¼æ§è¡å®æ¯æ¶"
-"å°å¯¹è±¡æ°æ®ï¼stateï¼ä¸æ°æ®åºåæ¥ï¼synchronizeï¼ã å¼åè
ä¸éè¦æå¨æ§è¡"
-"<literal>UPDATE</literal>ãå°å¯¹è±¡ä»æä¹
ï¼Persistentï¼ç¶æåæç¬æ¶"
-"ï¼Transientï¼ç¶æåæ ·ä¹ä¸éè¦æå¨æ§è¡ <literal>DELETE</literal> è¯å¥ã "
+msgid "<emphasis>Persistent</emphasis> - a persistent instance has a representation in the database and an identifier value. It might just have been saved or loaded, however, it is by definition in the scope of a <literal>Session</literal>. Hibernate will detect any changes made to an object in persistent state and synchronize the state with the database when the unit of work completes. Developers do not execute manual <literal>UPDATE</literal> statements, or <literal>DELETE</literal> statements when an object should be made transient."
+msgstr "<emphasis>æä¹
ï¼Persistentï¼</emphasis> â æä¹
ï¼Persistentï¼çå®ä¾å¨æ°æ®åºä¸æ对åºçè®°å½ï¼å¹¶æ¥æä¸ä¸ªæä¹
åæ è¯ï¼identifierï¼ã æä¹
ï¼Persistentï¼çå®ä¾å¯è½æ¯å被ä¿åçï¼æå被å è½½çï¼æ 论åªä¸ç§ï¼æå®ä¹ï¼å®åå¨äºç¸å
³èç<literal>Session</literal>ä½ç¨èå´å
ã Hibernateä¼æ£æµå°å¤äºæä¹
ï¼Persistentï¼ç¶æç对象çä»»ä½æ¹å¨ï¼å¨å½åæä½åå
ï¼unit of workï¼æ§è¡å®æ¯æ¶å°å¯¹è±¡æ°æ®ï¼stateï¼ä¸æ°æ®åºåæ¥ï¼synchronizeï¼ã å¼åè
ä¸éè¦æå¨æ§è¡<literal>UPDATE</literal>ãå°å¯¹è±¡ä»æä¹
ï¼Persistentï¼ç¶æåæç¬æ¶ï¼Transientï¼ç¶æåæ ·ä¹ä¸éè¦æå¨æ§è¡ <literal>DELETE</literal> è¯å¥ã "
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Detached</emphasis> - a detached instance is an object that has "
-"been persistent, but its <literal>Session</literal> has been closed. The "
-"reference to the object is still valid, of course, and the detached instance "
-"might even be modified in this state. A detached instance can be reattached "
-"to a new <literal>Session</literal> at a later point in time, making it (and "
-"all the modifications) persistent again. This feature enables a programming "
-"model for long running units of work that require user think-time. We call "
-"them <emphasis>application transactions</emphasis>, i.e., a unit of work "
-"from the point of view of the user."
-msgstr ""
-"<emphasis>è±ç®¡ï¼Detachedï¼</emphasis> â ä¸æä¹
ï¼Persistentï¼å¯¹è±¡å
³èç"
-"<literal>Session</literal>被å
³éåï¼å¯¹è±¡å°±å为è±ç®¡ï¼Detachedï¼çã对è±ç®¡"
-"ï¼Detachedï¼å¯¹è±¡çå¼ç¨ä¾ç¶ææï¼å¯¹è±¡å¯ç»§ç»è¢«ä¿®æ¹ãè±ç®¡ï¼Detachedï¼å¯¹è±¡å¦æé"
-"æ°å
³èå°æ个æ°ç <literal>Session</literal> ä¸ï¼ ä¼å次转å为æä¹
"
-"ï¼Persistentï¼çï¼å¨Detachedå
¶é´çæ¹å¨å°è¢«æä¹
åå°æ°æ®åºï¼ã è¿ä¸ªåè½ä½¿å¾ä¸ç§"
-"ç¼ç¨æ¨¡åï¼å³ä¸é´ä¼ç»ç¨æ·æèæ¶é´ï¼user think-timeï¼çé¿æ¶é´è¿è¡çæä½åå
"
-"ï¼unit of workï¼çç¼ç¨æ¨¡åæ为å¯è½ãæ们称ä¹ä¸º<emphasis>åºç¨ç¨åºäºå¡</"
-"emphasis>ï¼å³ä»ç¨æ·è§ç¹çæ¯ä¸ä¸ªæä½åå
ï¼unit of workï¼ã "
+msgid "<emphasis>Detached</emphasis> - a detached instance is an object that has been persistent, but its <literal>Session</literal> has been closed. The reference to the object is still valid, of course, and the detached instance might even be modified in this state. A detached instance can be reattached to a new <literal>Session</literal> at a later point in time, making it (and all the modifications) persistent again. This feature enables a programming model for long running units of work that require user think-time. We call them <emphasis>application transactions</emphasis>, i.e., a unit of work from the point of view of the user."
+msgstr "<emphasis>è±ç®¡ï¼Detachedï¼</emphasis> â ä¸æä¹
ï¼Persistentï¼å¯¹è±¡å
³èç<literal>Session</literal>被å
³éåï¼å¯¹è±¡å°±å为è±ç®¡ï¼Detachedï¼çã对è±ç®¡ï¼Detachedï¼å¯¹è±¡çå¼ç¨ä¾ç¶ææï¼å¯¹è±¡å¯ç»§ç»è¢«ä¿®æ¹ãè±ç®¡ï¼Detachedï¼å¯¹è±¡å¦æéæ°å
³èå°æ个æ°ç <literal>Session</literal> ä¸ï¼ ä¼å次转å为æä¹
ï¼Persistentï¼çï¼å¨Detachedå
¶é´çæ¹å¨å°è¢«æä¹
åå°æ°æ®åºï¼ã è¿ä¸ªåè½ä½¿å¾ä¸ç§ç¼ç¨æ¨¡åï¼å³ä¸é´ä¼ç»ç¨æ·æèæ¶é´ï¼user think-timeï¼çé¿æ¶é´è¿è¡çæä½åå
ï¼unit of workï¼çç¼ç¨æ¨¡åæ为å¯è½ãæ们称ä¹ä¸º<emphasis>åºç¨ç¨åºäºå¡</emphasis>ï¼å³ä»ç¨æ·è§ç¹çæ¯ä¸ä¸ªæä½åå
ï¼unit of workï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"We will now discuss the states and state transitions (and the Hibernate "
-"methods that trigger a transition) in more detail."
-msgstr ""
-"æ¥ä¸æ¥æ们æ¥ç»è´å°è®¨è®ºä¸ç¶æï¼statesï¼åç¶æé´ç转æ¢ï¼state transitionsï¼ï¼ä»¥"
-"å触åç¶æ转æ¢ç Hibernate æ¹æ³ï¼ã "
+msgid "We will now discuss the states and state transitions (and the Hibernate methods that trigger a transition) in more detail."
+msgstr "æ¥ä¸æ¥æ们æ¥ç»è´å°è®¨è®ºä¸ç¶æï¼statesï¼åç¶æé´ç转æ¢ï¼state transitionsï¼ï¼ä»¥å触åç¶æ转æ¢ç Hibernate æ¹æ³ï¼ã "
#. Tag: title
#, no-c-format
@@ -137,105 +66,39 @@
msgstr "使对象æä¹
å"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Newly instantiated instances of a persistent class are considered "
-"<emphasis>transient</emphasis> by Hibernate. We can make a transient "
-"instance <emphasis>persistent</emphasis> by associating it with a session:"
-msgstr ""
-"Hibernate 认为æä¹
åç±»ï¼persistent classï¼æ°å®ä¾åç对象æ¯<emphasis>ç¬æ¶"
-"ï¼Transientï¼</emphasis>çãæ们å¯éè¿å°ç¬æ¶ï¼Transientï¼å¯¹è±¡ä¸ session å
³è"
-"èæå®å为<emphasis>æä¹
ï¼Persistentï¼</emphasis>çã"
+#, no-c-format
+msgid "Newly instantiated instances of a persistent class are considered <emphasis>transient</emphasis> by Hibernate. We can make a transient instance <emphasis>persistent</emphasis> by associating it with a session:"
+msgstr "Hibernate 认为æä¹
åç±»ï¼persistent classï¼æ°å®ä¾åç对象æ¯<emphasis>ç¬æ¶ï¼Transientï¼</emphasis>çãæ们å¯éè¿å°ç¬æ¶ï¼Transientï¼å¯¹è±¡ä¸ session å
³èèæå®å为<emphasis>æä¹
çï¼Persistentï¼</emphasis>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"If <literal>Cat</literal> has a generated identifier, the identifier is "
-"generated and assigned to the <literal>cat</literal> when <literal>save()</"
-"literal> is called. If <literal>Cat</literal> has an <literal>assigned</"
-"literal> identifier, or a composite key, the identifier should be assigned "
-"to the <literal>cat</literal> instance before calling <literal>save()</"
-"literal>. You can also use <literal>persist()</literal> instead of "
-"<literal>save()</literal>, with the semantics defined in the EJB3 early "
-"draft."
-msgstr ""
-"å¦æ <literal>Cat</literal> çæä¹
åæ è¯ï¼identifierï¼æ¯ <literal>generated</"
-"literal> ç±»åçï¼ é£ä¹è¯¥æ è¯ï¼identifierï¼ä¼èªå¨å¨ <literal>save()</literal> "
-"被è°ç¨æ¶äº§ç并åé
ç» <literal>cat</literal>ãå¦æ <literal>Cat</literal> çæ"
-"ä¹
åæ è¯ï¼identifierï¼æ¯<literal>assigned</literal>ç±»åçï¼ææ¯ä¸ä¸ªå¤å主é®"
-"ï¼composite keyï¼ï¼é£ä¹è¯¥æ è¯ï¼identifierï¼åºå½å¨è°ç¨ <literal>save()</"
-"literal> ä¹åæå¨èµäºç» <literal>cat</literal>ãä½ ä¹å¯ä»¥æç
§ EJB3 early "
-"draft ä¸å®ä¹çè¯ä¹ï¼ä½¿ç¨ <literal>persist()</literal> æ¿ä»£<literal>save()</"
-"literal>ã "
+msgid "If <literal>Cat</literal> has a generated identifier, the identifier is generated and assigned to the <literal>cat</literal> when <literal>save()</literal> is called. If <literal>Cat</literal> has an <literal>assigned</literal> identifier, or a composite key, the identifier should be assigned to the <literal>cat</literal> instance before calling <literal>save()</literal>. You can also use <literal>persist()</literal> instead of <literal>save()</literal>, with the semantics defined in the EJB3 early draft."
+msgstr "å¦æ <literal>Cat</literal> çæä¹
åæ è¯ï¼identifierï¼æ¯ <literal>generated</literal> ç±»åçï¼ é£ä¹è¯¥æ è¯ï¼identifierï¼ä¼èªå¨å¨ <literal>save()</literal> 被è°ç¨æ¶äº§ç并åé
ç» <literal>cat</literal>ãå¦æ <literal>Cat</literal> çæä¹
åæ è¯ï¼identifierï¼æ¯<literal>assigned</literal>ç±»åçï¼ææ¯ä¸ä¸ªå¤å主é®ï¼composite keyï¼ï¼é£ä¹è¯¥æ è¯ï¼identifierï¼åºå½å¨è°ç¨ <literal>save()</literal> ä¹åæå¨èµäºç» <literal>cat</literal>ãä½ ä¹å¯ä»¥æç
§ EJB3 early draft ä¸å®ä¹çè¯ä¹ï¼ä½¿ç¨ <literal>persist()</literal> æ¿ä»£<literal>save()</literal>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>persist()</literal> makes a transient instance persistent. However, "
-"it does not guarantee that the identifier value will be assigned to the "
-"persistent instance immediately, the assignment might happen at flush time. "
-"<literal>persist()</literal> also guarantees that it will not execute an "
-"<literal>INSERT</literal> statement if it is called outside of transaction "
-"boundaries. This is useful in long-running conversations with an extended "
-"Session/persistence context."
-msgstr ""
-"<literal>persist()</literal> 使ä¸ä¸ªä¸´æ¶å®ä¾æä¹
åãç¶èï¼å®ä¸ä¿è¯ç«å³ææ è¯ç¬¦"
-"å¼åé
ç»æä¹
æ§å®ä¾ï¼è¿ä¼åçå¨å²å·ï¼flushï¼çæ¶åã<literal>persist()</"
-"literal> ä¹ä¿è¯å®å¨äºå¡è¾¹çå¤è°ç¨æ¶ä¸ä¼æ§è¡ <literal>INSERT</literal> è¯å¥ã"
-"è¿å¯¹äºé¿æè¿è¡ç带ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¯å¾æç¨çã"
+msgid "<literal>persist()</literal> makes a transient instance persistent. However, it does not guarantee that the identifier value will be assigned to the persistent instance immediately, the assignment might happen at flush time. <literal>persist()</literal> also guarantees that it will not execute an <literal>INSERT</literal> statement if it is called outside of transaction boundaries. This is useful in long-running conversations with an extended Session/persistence context."
+msgstr "<literal>persist()</literal> 使ä¸ä¸ªä¸´æ¶å®ä¾æä¹
åãç¶èï¼å®ä¸ä¿è¯ç«å³ææ è¯ç¬¦å¼åé
ç»æä¹
æ§å®ä¾ï¼è¿ä¼åçå¨å²å·ï¼flushï¼çæ¶åã<literal>persist()</literal> ä¹ä¿è¯å®å¨äºå¡è¾¹çå¤è°ç¨æ¶ä¸ä¼æ§è¡ <literal>INSERT</literal> è¯å¥ãè¿å¯¹äºé¿æè¿è¡ç带ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¯å¾æç¨çã"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>save()</literal> does guarantee to return an identifier. If an "
-"INSERT has to be executed to get the identifier ( e.g. \"identity\" "
-"generator, not \"sequence\"), this INSERT happens immediately, no matter if "
-"you are inside or outside of a transaction. This is problematic in a long-"
-"running conversation with an extended Session/persistence context."
-msgstr ""
-"<literal>save()</literal> ä¿è¯è¿åä¸ä¸ªæ è¯ç¬¦ãå¦æéè¦è¿è¡ INSERT æ¥è·åæ è¯"
-"符ï¼å¦ \"identity\" èé \"sequence\" çæå¨ï¼ï¼è¿ä¸ª INSERT å°ç«å³æ§è¡ï¼ä¸ç®¡"
-"ä½ æ¯å¦å¨äºå¡å
é¨è¿æ¯å¤é¨ãè¿å¯¹äºé¿æè¿è¡ç带ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¥è¯´"
-"ä¼åºç°é®é¢ã"
+msgid "<literal>save()</literal> does guarantee to return an identifier. If an INSERT has to be executed to get the identifier ( e.g. \"identity\" generator, not \"sequence\"), this INSERT happens immediately, no matter if you are inside or outside of a transaction. This is problematic in a long-running conversation with an extended Session/persistence context."
+msgstr "<literal>save()</literal> ä¿è¯è¿åä¸ä¸ªæ è¯ç¬¦ãå¦æéè¦è¿è¡ INSERT æ¥è·åæ è¯ç¬¦ï¼å¦ \"identity\" èé \"sequence\" çæå¨ï¼ï¼è¿ä¸ª INSERT å°ç«å³æ§è¡ï¼ä¸ç®¡ä½ æ¯å¦å¨äºå¡å
é¨è¿æ¯å¤é¨ãè¿å¯¹äºé¿æè¿è¡ç带ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¥è¯´ä¼åºç°é®é¢ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Alternatively, you can assign the identifier using an overloaded version of "
-"<literal>save()</literal>."
+msgid "Alternatively, you can assign the identifier using an overloaded version of <literal>save()</literal>."
msgstr "æ¤å¤ï¼ä½ å¯ä»¥ç¨ä¸ä¸ªéè½½çæ¬ç <literal>save()</literal> æ¹æ³ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If the object you make persistent has associated objects (e.g. the "
-"<literal>kittens</literal> collection in the previous example), these "
-"objects can be made persistent in any order you like unless you have a "
-"<literal>NOT NULL</literal> constraint upon a foreign key column. There is "
-"never a risk of violating foreign key constraints. However, you might "
-"violate a <literal>NOT NULL</literal> constraint if you <literal>save()</"
-"literal> the objects in the wrong order."
-msgstr ""
-"å¦æä½ æä¹
åç对象æå
³èç对象ï¼associated objectsï¼ï¼ä¾å¦ä¸ä¾ä¸ç "
-"<literal>kittens</literal> éåï¼ é£ä¹å¯¹è¿äºå¯¹è±¡ï¼è¯æ³¨ï¼pk å kittensï¼è¿è¡æ"
-"ä¹
åç顺åºæ¯ä»»æçï¼ä¹å°±æ¯è¯´å¯ä»¥å
对 kittens è¿è¡æä¹
åä¹å¯ä»¥å
对 pk è¿è¡æä¹
"
-"åï¼ï¼ é¤éä½ å¨å¤é®åä¸æ <literal>NOT NULL</literal> 约æã Hibernate ä¸ä¼è¿"
-"åå¤é®çº¦æï¼ä½æ¯å¦æä½ ç¨é误ç顺åºæä¹
å对象ï¼è¯æ³¨ï¼å¨ pk æä¹
åä¹åæä¹
å"
-"kittenï¼ï¼é£ä¹å¯è½ä¼è¿å <literal>NOT NULL</literal> 约æã "
+msgid "If the object you make persistent has associated objects (e.g. the <literal>kittens</literal> collection in the previous example), these objects can be made persistent in any order you like unless you have a <literal>NOT NULL</literal> constraint upon a foreign key column. There is never a risk of violating foreign key constraints. However, you might violate a <literal>NOT NULL</literal> constraint if you <literal>save()</literal> the objects in the wrong order."
+msgstr "å¦æä½ æä¹
åç对象æå
³èç对象ï¼associated objectsï¼ï¼ä¾å¦ä¸ä¾ä¸ç <literal>kittens</literal> éåï¼ é£ä¹å¯¹è¿äºå¯¹è±¡ï¼è¯æ³¨ï¼pk å kittensï¼è¿è¡æä¹
åç顺åºæ¯ä»»æçï¼ä¹å°±æ¯è¯´å¯ä»¥å
对 kittens è¿è¡æä¹
åä¹å¯ä»¥å
对 pk è¿è¡æä¹
åï¼ï¼ é¤éä½ å¨å¤é®åä¸æ <literal>NOT NULL</literal> 约æã Hibernate ä¸ä¼è¿åå¤é®çº¦æï¼ä½æ¯å¦æä½ ç¨é误ç顺åºæä¹
å对象ï¼è¯æ³¨ï¼å¨ pk æä¹
åä¹åæä¹
åkittenï¼ï¼é£ä¹å¯è½ä¼è¿å <literal>NOT NULL</literal> 约æã "
#. Tag: para
#, no-c-format
-msgid ""
-"Usually you do not bother with this detail, as you will normally use "
-"Hibernate's <emphasis>transitive persistence</emphasis> feature to save the "
-"associated objects automatically. Then, even <literal>NOT NULL</literal> "
-"constraint violations do not occur - Hibernate will take care of everything. "
-"Transitive persistence is discussed later in this chapter."
-msgstr ""
-"éå¸¸ä½ ä¸ä¼ä¸ºè¿äºç»èç¦å¿ï¼å ä¸ºä½ å¾å¯è½ä¼ä½¿ç¨ Hibernate ç<emphasis>ä¼ ææ§æä¹
"
-"åï¼transitive persistenceï¼</emphasis>åè½èªå¨ä¿åç¸å
³èé£äºå¯¹è±¡ãè¿æ ·è¿è¿"
-"å <literal>NOT NULL</literal> 约æçæ
åµé½ä¸ä¼åºç°äº â Hibernate ä¼ç®¡å¥½ææ"
-"çäºæ
ãä¼ ææ§æä¹
åï¼transitive persistenceï¼å°å¨æ¬ç« ç¨å讨论ã"
+msgid "Usually you do not bother with this detail, as you will normally use Hibernate's <emphasis>transitive persistence</emphasis> feature to save the associated objects automatically. Then, even <literal>NOT NULL</literal> constraint violations do not occur - Hibernate will take care of everything. Transitive persistence is discussed later in this chapter."
+msgstr "éå¸¸ä½ ä¸ä¼ä¸ºè¿äºç»èç¦å¿ï¼å ä¸ºä½ å¾å¯è½ä¼ä½¿ç¨ Hibernate ç<emphasis>ä¼ ææ§æä¹
åï¼transitive persistenceï¼</emphasis>åè½èªå¨ä¿åç¸å
³èé£äºå¯¹è±¡ãè¿æ ·è¿è¿å <literal>NOT NULL</literal> 约æçæ
åµé½ä¸ä¼åºç°äº â Hibernate ä¼ç®¡å¥½ææçäºæ
ãä¼ ææ§æä¹
åï¼transitive persistenceï¼å°å¨æ¬ç« ç¨å讨论ã"
#. Tag: title
#, no-c-format
@@ -244,100 +107,43 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>load()</literal> methods of <literal>Session</literal> provide "
-"a way of retrieving a persistent instance if you know its identifier. "
-"<literal>load()</literal> takes a class object and loads the state into a "
-"newly instantiated instance of that class in a persistent state."
-msgstr ""
-"å¦æä½ ç¥éæ个å®ä¾çæä¹
åæ è¯ï¼identifierï¼ï¼ä½ å°±å¯ä»¥ä½¿ç¨ <literal>Session</"
-"literal> ç <literal>load()</literal> æ¹æ³æ¥è·åå®ã<literal>load()</"
-"literal> çå¦ä¸ä¸ªåæ°æ¯æå®ç±»ç对象ãæ¬æ¹æ³ä¼å建æå®ç±»çæä¹
åå®ä¾ï¼å¹¶ä»æ°æ®"
-"åºå è½½å
¶æ°æ®ï¼stateï¼ã "
+msgid "The <literal>load()</literal> methods of <literal>Session</literal> provide a way of retrieving a persistent instance if you know its identifier. <literal>load()</literal> takes a class object and loads the state into a newly instantiated instance of that class in a persistent state."
+msgstr "å¦æä½ ç¥éæ个å®ä¾çæä¹
åæ è¯ï¼identifierï¼ï¼ä½ å°±å¯ä»¥ä½¿ç¨ <literal>Session</literal> ç <literal>load()</literal> æ¹æ³æ¥è·åå®ã<literal>load()</literal> çå¦ä¸ä¸ªåæ°æ¯æå®ç±»ç对象ãæ¬æ¹æ³ä¼å建æå®ç±»çæä¹
åå®ä¾ï¼å¹¶ä»æ°æ®åºå è½½å
¶æ°æ®ï¼stateï¼ã "
#. Tag: para
#, no-c-format
msgid "Alternatively, you can load state into a given instance:"
-msgstr ""
-"æ¤å¤ï¼ä½ å¯ä»¥ææ°æ®ï¼stateï¼å è½½å°æå®ç对象å®ä¾ä¸ï¼è¦çæ该å®ä¾åæ¥çæ°æ®ï¼ã"
+msgstr "æ¤å¤ï¼ä½ å¯ä»¥ææ°æ®ï¼stateï¼å è½½å°æå®ç对象å®ä¾ä¸ï¼è¦çæ该å®ä¾åæ¥çæ°æ®ï¼ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Be aware that <literal>load()</literal> will throw an unrecoverable "
-"exception if there is no matching database row. If the class is mapped with "
-"a proxy, <literal>load()</literal> just returns an uninitialized proxy and "
-"does not actually hit the database until you invoke a method of the proxy. "
-"This is useful if you wish to create an association to an object without "
-"actually loading it from the database. It also allows multiple instances to "
-"be loaded as a batch if <literal>batch-size</literal> is defined for the "
-"class mapping."
-msgstr ""
-"请注æå¦æ没æå¹é
çæ°æ®åºè®°å½ï¼<literal>load()</literal> æ¹æ³å¯è½æåºæ æ³æ¢"
-"å¤çå¼å¸¸ï¼unrecoverable exceptionï¼ãå¦æç±»çæ å°ä½¿ç¨äºä»£çï¼proxyï¼ï¼"
-"<literal>load()</literal> æ¹æ³ä¼è¿åä¸ä¸ªæªåå§åç代çï¼ç´å°ä½ è°ç¨è¯¥ä»£ççæ"
-"æ¹æ³æ¶æä¼å»è®¿é®æ°æ®åºã è¥ä½ å¸æå¨æ对象ä¸å建ä¸ä¸ªæåå¦ä¸ä¸ªå¯¹è±¡çå
³èï¼åä¸"
-"æ³å¨ä»æ°æ®åºä¸è£
载该对象æ¶åæ¶è£
è½½ç¸å
³èçé£ä¸ªå¯¹è±¡ï¼é£ä¹è¿ç§æä½æ¹å¼å°±ç¨å¾ä¸"
-"çäºãå¦æ为ç¸åºç±»æ å°å
³ç³»è®¾ç½®äº <literal>batch-size</literal>ï¼é£ä¹ä½¿ç¨è¿ç§"
-"æä½æ¹å¼å
许å¤ä¸ªå¯¹è±¡è¢«ä¸æ¹è£
è½½ï¼å 为è¿åçæ¯ä»£çï¼æ éä»æ°æ®åºä¸æåææ对象"
-"çæ°æ®ï¼ã "
+msgid "Be aware that <literal>load()</literal> will throw an unrecoverable exception if there is no matching database row. If the class is mapped with a proxy, <literal>load()</literal> just returns an uninitialized proxy and does not actually hit the database until you invoke a method of the proxy. This is useful if you wish to create an association to an object without actually loading it from the database. It also allows multiple instances to be loaded as a batch if <literal>batch-size</literal> is defined for the class mapping."
+msgstr "请注æå¦æ没æå¹é
çæ°æ®åºè®°å½ï¼<literal>load()</literal> æ¹æ³å¯è½æåºæ æ³æ¢å¤çå¼å¸¸ï¼unrecoverable exceptionï¼ãå¦æç±»çæ å°ä½¿ç¨äºä»£çï¼proxyï¼ï¼<literal>load()</literal> æ¹æ³ä¼è¿åä¸ä¸ªæªåå§åç代çï¼ç´å°ä½ è°ç¨è¯¥ä»£ççææ¹æ³æ¶æä¼å»è®¿é®æ°æ®åºã è¥ä½ å¸æå¨æ对象ä¸å建ä¸ä¸ªæåå¦ä¸ä¸ªå¯¹è±¡çå
³èï¼åä¸æ³å¨ä»æ°æ®åºä¸è£
载该对象æ¶åæ¶è£
è½½ç¸å
³èçé£ä¸ªå¯¹è±¡ï¼é£ä¹è¿ç§æä½æ¹å¼å°±ç¨å¾ä¸çäºãå¦æ为ç¸åºç±»æ å°å
³ç³»è®¾ç½®äº <literal>batch-size</literal>ï¼é£ä¹ä½¿ç¨è¿ç§æä½æ¹å¼å
许å¤ä¸ªå¯¹è±¡è¢«ä¸æ¹è£
è½½ï¼å 为è¿åçæ¯ä»£çï¼æ éä»æ°æ®åºä¸æåææ对象çæ°æ®ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If you are not certain that a matching row exists, you should use the "
-"<literal>get()</literal> method which hits the database immediately and "
-"returns null if there is no matching row."
-msgstr ""
-"å¦æä½ ä¸ç¡®å®æ¯å¦æå¹é
çè¡åå¨ï¼åºè¯¥ä½¿ç¨ <literal>get()</literal> æ¹æ³ï¼å®ä¼"
-"ç«å»è®¿é®æ°æ®åºï¼å¦æ没æ对åºçè®°å½ï¼ä¼è¿å nullã "
+msgid "If you are not certain that a matching row exists, you should use the <literal>get()</literal> method which hits the database immediately and returns null if there is no matching row."
+msgstr "å¦æä½ ä¸ç¡®å®æ¯å¦æå¹é
çè¡åå¨ï¼åºè¯¥ä½¿ç¨ <literal>get()</literal> æ¹æ³ï¼å®ä¼ç«å»è®¿é®æ°æ®åºï¼å¦æ没æ对åºçè®°å½ï¼ä¼è¿å nullã "
#. Tag: para
#, no-c-format
-msgid ""
-"You can even load an object using an SQL <literal>SELECT ... FOR UPDATE</"
-"literal>, using a <literal>LockMode</literal>. See the API documentation for "
-"more information."
-msgstr ""
-"ä½ çè³å¯ä»¥éç¨æ个 <literal>LockMode</literal>ï¼ç¨ SQL ç "
-"<literal>SELECT ... FOR UPDATE</literal> è£
载对象ã 请æ¥é
API æ档以è·åæ´å¤"
-"ä¿¡æ¯ã "
+msgid "You can even load an object using an SQL <literal>SELECT ... FOR UPDATE</literal>, using a <literal>LockMode</literal>. See the API documentation for more information."
+msgstr "ä½ çè³å¯ä»¥éç¨æ个 <literal>LockMode</literal>ï¼ç¨ SQL ç <literal>SELECT ... FOR UPDATE</literal> è£
载对象ã 请æ¥é
API æ档以è·åæ´å¤ä¿¡æ¯ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Any associated instances or contained collections will <emphasis>not</"
-"emphasis> be selected <literal>FOR UPDATE</literal>, unless you decide to "
-"specify <literal>lock</literal> or <literal>all</literal> as a cascade style "
-"for the association."
-msgstr ""
-"注æï¼ä»»ä½å
³èç对象æè
å
å«çéåé½<emphasis>ä¸ä¼</emphasis>被以 "
-"<literal>FOR UPDATE</literal> æ¹å¼è¿åï¼ é¤éä½ æå®äº <literal>lock</"
-"literal> æè
<literal>all</literal> ä½ä¸ºå
³èï¼associationï¼ç级èé£æ ¼"
-"ï¼cascade styleï¼ã "
+msgid "Any associated instances or contained collections will <emphasis>not</emphasis> be selected <literal>FOR UPDATE</literal>, unless you decide to specify <literal>lock</literal> or <literal>all</literal> as a cascade style for the association."
+msgstr "注æï¼ä»»ä½å
³èç对象æè
å
å«çéåé½<emphasis>ä¸ä¼</emphasis>被以 <literal>FOR UPDATE</literal> æ¹å¼è¿åï¼ é¤éä½ æå®äº <literal>lock</literal> æè
<literal>all</literal> ä½ä¸ºå
³èï¼associationï¼ç级èé£æ ¼ï¼cascade styleï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"It is possible to re-load an object and all its collections at any time, "
-"using the <literal>refresh()</literal> method. This is useful when database "
-"triggers are used to initialize some of the properties of the object."
-msgstr ""
-"ä»»ä½æ¶åé½å¯ä»¥ä½¿ç¨ <literal>refresh()</literal> æ¹æ³å¼ºè¿«è£
载对象åå®çéåã"
-"å¦æä½ ä½¿ç¨æ°æ®åºè§¦åå¨åè½æ¥å¤ç对象çæäºå±æ§ï¼è¿ä¸ªæ¹æ³å°±å¾æç¨äºã"
+msgid "It is possible to re-load an object and all its collections at any time, using the <literal>refresh()</literal> method. This is useful when database triggers are used to initialize some of the properties of the object."
+msgstr "ä»»ä½æ¶åé½å¯ä»¥ä½¿ç¨ <literal>refresh()</literal> æ¹æ³å¼ºè¿«è£
载对象åå®çéåãå¦æä½ ä½¿ç¨æ°æ®åºè§¦åå¨åè½æ¥å¤ç对象çæäºå±æ§ï¼è¿ä¸ªæ¹æ³å°±å¾æç¨äºã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"How much does Hibernate load from the database and how many SQL "
-"<literal>SELECT</literal>s will it use? This depends on the "
-"<emphasis>fetching strategy</emphasis>. This is explained in <xref linkend="
-"\"performance-fetching\" />."
-msgstr ""
-"æ¤å¤é常ä¼åºç°ä¸ä¸ªéè¦é®é¢: Hibernate ä¼ä»æ°æ®åºä¸è£
è½½å¤å°ä¸è¥¿ï¼ä¼æ§è¡å¤å°æ¡"
-"ç¸åºç SQL<literal>SELECT</literal> è¯å¥ï¼è¿åå³äº<emphasis>æåçç¥"
-"ï¼fetching strategyï¼</emphasis>ï¼æ们ä¼å¨ <xref linkend=\"performance-"
-"fetching\" /> ä¸è§£éã "
+#, no-c-format
+msgid "How much does Hibernate load from the database and how many SQL <literal>SELECT</literal>s will it use? This depends on the <emphasis>fetching strategy</emphasis>. This is explained in <xref linkend=\"performance-fetching\" />."
+msgstr "æ¤å¤é常ä¼åºç°ä¸ä¸ªéè¦é®é¢: Hibernate ä¼ä»æ°æ®åºä¸è£
è½½å¤å°ä¸è¥¿ï¼ä¼æ§è¡å¤å°æ¡ç¸åºç SQL<literal>SELECT</literal> è¯å¥ï¼è¿åå³äº<emphasis>æåçç¥ï¼fetching strategyï¼</emphasis>ï¼æ们ä¼å¨ <xref linkend=\"performance-fetching\" /> ä¸è§£éã "
#. Tag: title
#, no-c-format
@@ -346,19 +152,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"If you do not know the identifiers of the objects you are looking for, you "
-"need a query. Hibernate supports an easy-to-use but powerful object oriented "
-"query language (HQL). For programmatic query creation, Hibernate supports a "
-"sophisticated Criteria and Example query feature (QBC and QBE). You can also "
-"express your query in the native SQL of your database, with optional support "
-"from Hibernate for result set conversion into objects."
-msgstr ""
-"å¦æä¸ç¥éæè¦å¯»æ¾ç对象çæä¹
åæ è¯ï¼é£ä¹ä½ éè¦ä½¿ç¨æ¥è¯¢ãHibernate æ¯æ强大"
-"ä¸æäºä½¿ç¨çé¢å对象æ¥è¯¢è¯è¨ï¼HQLï¼ãå¦æå¸æéè¿ç¼ç¨çæ¹å¼å建æ¥è¯¢ï¼"
-"Hibernate æä¾äºå®åçææ¡ä»¶ï¼Query By Criteriaï¼QBCï¼ä»¥åææ ·ä¾ï¼Query By "
-"Exampleï¼QBEï¼è¿è¡æ¥è¯¢çåè½ãä½ ä¹å¯ä»¥ç¨åç SQLï¼native SQLï¼æè¿°æ¥è¯¢ï¼"
-"Hibernate é¢å¤æä¾äºå°ç»æéï¼result setï¼è½¬å为对象çæ¯æã "
+msgid "If you do not know the identifiers of the objects you are looking for, you need a query. Hibernate supports an easy-to-use but powerful object oriented query language (HQL). For programmatic query creation, Hibernate supports a sophisticated Criteria and Example query feature (QBC and QBE). You can also express your query in the native SQL of your database, with optional support from Hibernate for result set conversion into objects."
+msgstr "å¦æä¸ç¥éæè¦å¯»æ¾ç对象çæä¹
åæ è¯ï¼é£ä¹ä½ éè¦ä½¿ç¨æ¥è¯¢ãHibernate æ¯æ强大ä¸æäºä½¿ç¨çé¢å对象æ¥è¯¢è¯è¨ï¼HQLï¼ãå¦æå¸æéè¿ç¼ç¨çæ¹å¼å建æ¥è¯¢ï¼Hibernate æä¾äºå®åçææ¡ä»¶ï¼Query By Criteriaï¼QBCï¼ä»¥åææ ·ä¾ï¼Query By Exampleï¼QBEï¼è¿è¡æ¥è¯¢çåè½ãä½ ä¹å¯ä»¥ç¨åç SQLï¼native SQLï¼æè¿°æ¥è¯¢ï¼Hibernate é¢å¤æä¾äºå°ç»æéï¼result setï¼è½¬å为对象çæ¯æã "
#. Tag: title
#, no-c-format
@@ -367,36 +162,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"HQL and native SQL queries are represented with an instance of <literal>org."
-"hibernate.Query</literal>. This interface offers methods for parameter "
-"binding, result set handling, and for the execution of the actual query. You "
-"always obtain a <literal>Query</literal> using the current <literal>Session</"
-"literal>:"
-msgstr ""
-"HQL ååç SQLï¼native SQLï¼æ¥è¯¢è¦éè¿ä¸º <literal>org.hibernate.Query</"
-"literal> çå®ä¾æ¥è¡¨è¾¾ã è¿ä¸ªæ¥å£æä¾äºåæ°ç»å®ãç»æéå¤ç以åè¿è¡å®é
æ¥è¯¢ç"
-"æ¹æ³ãä½ æ»æ¯å¯ä»¥éè¿å½å <literal>Session</literal> è·åä¸ä¸ª <literal>Query</"
-"literal> 对象ï¼"
+msgid "HQL and native SQL queries are represented with an instance of <literal>org.hibernate.Query</literal>. This interface offers methods for parameter binding, result set handling, and for the execution of the actual query. You always obtain a <literal>Query</literal> using the current <literal>Session</literal>:"
+msgstr "HQL ååç SQLï¼native SQLï¼æ¥è¯¢è¦éè¿ä¸º <literal>org.hibernate.Query</literal> çå®ä¾æ¥è¡¨è¾¾ã è¿ä¸ªæ¥å£æä¾äºåæ°ç»å®ãç»æéå¤ç以åè¿è¡å®é
æ¥è¯¢çæ¹æ³ãä½ æ»æ¯å¯ä»¥éè¿å½å <literal>Session</literal> è·åä¸ä¸ª <literal>Query</literal> 对象ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"A query is usually executed by invoking <literal>list()</literal>. The "
-"result of the query will be loaded completely into a collection in memory. "
-"Entity instances retrieved by a query are in a persistent state. The "
-"<literal>uniqueResult()</literal> method offers a shortcut if you know your "
-"query will only return a single object. Queries that make use of eager "
-"fetching of collections usually return duplicates of the root objects, but "
-"with their collections initialized. You can filter these duplicates through "
-"a <literal>Set</literal>."
-msgstr ""
-"ä¸ä¸ªæ¥è¯¢é常å¨è°ç¨ <literal>list()</literal> æ¶è¢«æ§è¡ï¼æ§è¡ç»æä¼å®å
¨è£
è½½è¿å
"
-"åä¸çä¸ä¸ªéåï¼collectionï¼ãæ¥è¯¢è¿åç对象å¤äºæä¹
ï¼persistentï¼ç¶æãå¦æ"
-"ä½ ç¥éçæ¥è¯¢åªä¼è¿åä¸ä¸ªå¯¹è±¡ï¼å¯ä½¿ç¨ <literal>list()</literal> çå¿«æ·æ¹å¼ "
-"<literal>uniqueResult()</literal>ã注æï¼ä½¿ç¨éåé¢å
æåçæ¥è¯¢å¾å¾ä¼è¿åå¤æ¬¡"
-"æ ¹å¯¹è±¡ï¼ä»ä»¬çéåç±»é½è¢«åå§åäºï¼ãä½ å¯ä»¥éè¿ä¸ä¸ª<literal>éåï¼Setï¼</"
-"literal>æ¥è¿æ»¤è¿äºéå¤å¯¹è±¡ã"
+msgid "A query is usually executed by invoking <literal>list()</literal>. The result of the query will be loaded completely into a collection in memory. Entity instances retrieved by a query are in a persistent state. The <literal>uniqueResult()</literal> method offers a shortcut if you know your query will only return a single object. Queries that make use of eager fetching of collections usually return duplicates of the root objects, but with their collections initialized. You can filter these duplicates through a <literal>Set</literal>."
+msgstr "ä¸ä¸ªæ¥è¯¢é常å¨è°ç¨ <literal>list()</literal> æ¶è¢«æ§è¡ï¼æ§è¡ç»æä¼å®å
¨è£
è½½è¿å
åä¸çä¸ä¸ªéåï¼collectionï¼ãæ¥è¯¢è¿åç对象å¤äºæä¹
ï¼persistentï¼ç¶æãå¦æä½ ç¥éçæ¥è¯¢åªä¼è¿åä¸ä¸ªå¯¹è±¡ï¼å¯ä½¿ç¨ <literal>list()</literal> çå¿«æ·æ¹å¼ <literal>uniqueResult()</literal>ã注æï¼ä½¿ç¨éåé¢å
æåçæ¥è¯¢å¾å¾ä¼è¿åå¤æ¬¡æ ¹å¯¹è±¡ï¼ä»ä»¬çéåç±»é½è¢«åå§åäºï¼ãä½ å¯ä»¥éè¿ä¸ä¸ª<literal>éåï¼Setï¼</literal>æ¥è¿æ»¤è¿äºéå¤å¯¹è±¡ã"
#. Tag: title
#, no-c-format
@@ -405,24 +177,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Occasionally, you might be able to achieve better performance by executing "
-"the query using the <literal>iterate()</literal> method. This will usually "
-"be the case if you expect that the actual entity instances returned by the "
-"query will already be in the session or second-level cache. If they are not "
-"already cached, <literal>iterate()</literal> will be slower than "
-"<literal>list()</literal> and might require many database hits for a simple "
-"query, usually <emphasis>1</emphasis> for the initial select which only "
-"returns identifiers, and <emphasis>n</emphasis> additional selects to "
-"initialize the actual instances."
-msgstr ""
-"æäºæ
åµä¸ï¼ä½ å¯ä»¥ä½¿ç¨ <literal>iterate()</literal> æ¹æ³å¾å°æ´å¥½çæ§è½ã è¿é"
-"常æ¯ä½ é¢æè¿åçç»æå¨ sessionï¼æäºçº§ç¼åï¼second-level cacheï¼ä¸å·²ç»åå¨æ¶"
-"çæ
åµãå¦è¥ä¸ç¶ï¼<literal>iterate()</literal> ä¼æ¯ <literal>list()</"
-"literal> æ
¢ï¼èä¸å¯è½ç®åæ¥è¯¢ä¹éè¦è¿è¡å¤æ¬¡æ°æ®åºè®¿é®ï¼<literal>iterate()</"
-"literal> ä¼é¦å
ä½¿ç¨ <emphasis>1</emphasis> æ¡è¯å¥å¾å°ææ对象çæä¹
åæ è¯"
-"ï¼identifiersï¼ï¼åæ ¹æ®æä¹
åæ è¯æ§è¡ <emphasis>n</emphasis> æ¡éå ç select "
-"è¯å¥å®ä¾åå®é
ç对象ã "
+msgid "Occasionally, you might be able to achieve better performance by executing the query using the <literal>iterate()</literal> method. This will usually be the case if you expect that the actual entity instances returned by the query will already be in the session or second-level cache. If they are not already cached, <literal>iterate()</literal> will be slower than <literal>list()</literal> and might require many database hits for a simple query, usually <emphasis>1</emphasis> for the initial select which only returns identifiers, and <emphasis>n</emphasis> additional selects to initialize the actual instances."
+msgstr "æäºæ
åµä¸ï¼ä½ å¯ä»¥ä½¿ç¨ <literal>iterate()</literal> æ¹æ³å¾å°æ´å¥½çæ§è½ã è¿é常æ¯ä½ é¢æè¿åçç»æå¨ sessionï¼æäºçº§ç¼åï¼second-level cacheï¼ä¸å·²ç»åå¨æ¶çæ
åµãå¦è¥ä¸ç¶ï¼<literal>iterate()</literal> ä¼æ¯ <literal>list()</literal> æ
¢ï¼èä¸å¯è½ç®åæ¥è¯¢ä¹éè¦è¿è¡å¤æ¬¡æ°æ®åºè®¿é®ï¼<literal>iterate()</literal> ä¼é¦å
ä½¿ç¨ <emphasis>1</emphasis> æ¡è¯å¥å¾å°ææ对象çæä¹
åæ è¯ï¼identifiersï¼ï¼åæ ¹æ®æä¹
åæ è¯æ§è¡ <emphasis>n</emphasis> æ¡éå ç select è¯å¥å®ä¾åå®é
ç对象ã "
#. Tag: title
#, no-c-format
@@ -431,12 +187,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
-"as an array:"
-msgstr ""
-"ï¼è¯æ³¨ï¼å
ç»ï¼tuplesï¼æä¸æ¡ç»æè¡å
å«å¤ä¸ªå¯¹è±¡ï¼ Hibernate æ¥è¯¢ææ¶è¿åå
ç»"
-"ï¼tuplesï¼ï¼æ¯ä¸ªå
ç»ï¼tuplesï¼ä»¥æ°ç»çå½¢å¼è¿å: "
+msgid "Hibernate queries sometimes return tuples of objects. Each tuple is returned as an array:"
+msgstr "ï¼è¯æ³¨ï¼å
ç»ï¼tuplesï¼æä¸æ¡ç»æè¡å
å«å¤ä¸ªå¯¹è±¡ï¼ Hibernate æ¥è¯¢ææ¶è¿åå
ç»ï¼tuplesï¼ï¼æ¯ä¸ªå
ç»ï¼tuplesï¼ä»¥æ°ç»çå½¢å¼è¿å: "
#. Tag: title
#, no-c-format
@@ -445,14 +197,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Queries can specify a property of a class in the <literal>select</literal> "
-"clause. They can even call SQL aggregate functions. Properties or aggregates "
-"are considered \"scalar\" results and not entities in persistent state."
-msgstr ""
-"æ¥è¯¢å¯å¨ <literal>select</literal> ä»å¥ä¸æå®ç±»çå±æ§ï¼çè³å¯ä»¥è°ç¨ SQL ç»è®¡"
-"ï¼aggregateï¼å½æ°ãå±æ§æç»è®¡ç»æ被认å®ä¸º\"æ éï¼Scalarï¼\"çç»æï¼èä¸æ¯æä¹
"
-"ï¼persistent stateï¼çå®ä½ï¼ã "
+msgid "Queries can specify a property of a class in the <literal>select</literal> clause. They can even call SQL aggregate functions. Properties or aggregates are considered \"scalar\" results and not entities in persistent state."
+msgstr "æ¥è¯¢å¯å¨ <literal>select</literal> ä»å¥ä¸æå®ç±»çå±æ§ï¼çè³å¯ä»¥è°ç¨ SQL ç»è®¡ï¼aggregateï¼å½æ°ãå±æ§æç»è®¡ç»æ被认å®ä¸º\"æ éï¼Scalarï¼\"çç»æï¼èä¸æ¯æä¹
ï¼persistent stateï¼çå®ä½ï¼ã "
#. Tag: title
#, no-c-format
@@ -461,23 +207,12 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Methods on <literal>Query</literal> are provided for binding values to named "
-"parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary "
-"to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters "
-"are identifiers of the form <literal>:name</literal> in the query string. "
-"The advantages of named parameters are as follows:"
-msgstr ""
-"æ¥å£ <literal>Query</literal> æä¾äºå¯¹å½ååæ°ï¼named parametersï¼ãJDBC é£æ ¼"
-"ç<literal>é®å·ï¼?ï¼</literal>åæ°è¿è¡ç»å®çæ¹æ³ã<emphasis>ä¸åäº JDBCï¼"
-"Hibernate 对åæ°ä» 0 å¼å§è®¡æ°ã</emphasis> å½ååæ°ï¼named parametersï¼å¨æ¥è¯¢"
-"å符串ä¸æ¯å½¢å¦ <literal>:name</literal> çæ è¯ç¬¦ãå½ååæ°ï¼named "
-"parametersï¼çä¼ç¹æ¯ï¼ "
+msgid "Methods on <literal>Query</literal> are provided for binding values to named parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters are identifiers of the form <literal>:name</literal> in the query string. The advantages of named parameters are as follows:"
+msgstr "æ¥å£ <literal>Query</literal> æä¾äºå¯¹å½ååæ°ï¼named parametersï¼ãJDBC é£æ ¼ç<literal>é®å·ï¼?ï¼</literal>åæ°è¿è¡ç»å®çæ¹æ³ã<emphasis>ä¸åäº JDBCï¼Hibernate 对åæ°ä» 0 å¼å§è®¡æ°ã</emphasis> å½ååæ°ï¼named parametersï¼å¨æ¥è¯¢å符串ä¸æ¯å½¢å¦ <literal>:name</literal> çæ è¯ç¬¦ãå½ååæ°ï¼named parametersï¼çä¼ç¹æ¯ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"named parameters are insensitive to the order they occur in the query string"
+msgid "named parameters are insensitive to the order they occur in the query string"
msgstr "å½ååæ°ï¼named parametersï¼ä¸å
¶å¨æ¥è¯¢ä¸²ä¸åºç°ç顺åºæ å
³"
#. Tag: para
@@ -497,22 +232,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"If you need to specify bounds upon your result set, that is, the maximum "
-"number of rows you want to retrieve and/or the first row you want to "
-"retrieve, you can use methods of the <literal>Query</literal> interface:"
-msgstr ""
-"å¦æä½ éè¦æå®ç»æéçèå´ï¼å¸æè¿åçæ大è¡æ°/æå¼å§çè¡æ°ï¼ï¼åºè¯¥ä½¿ç¨ "
-"<literal>Query</literal> æ¥å£æä¾çæ¹æ³ï¼ "
+msgid "If you need to specify bounds upon your result set, that is, the maximum number of rows you want to retrieve and/or the first row you want to retrieve, you can use methods of the <literal>Query</literal> interface:"
+msgstr "å¦æä½ éè¦æå®ç»æéçèå´ï¼å¸æè¿åçæ大è¡æ°/æå¼å§çè¡æ°ï¼ï¼åºè¯¥ä½¿ç¨ <literal>Query</literal> æ¥å£æä¾çæ¹æ³ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate knows how to translate this limit query into the native SQL of "
-"your DBMS."
-msgstr ""
-"Hibernate ç¥éå¦ä½å°è¿ä¸ªæéå®æ¡ä»¶çæ¥è¯¢è½¬æ¢æä½ çæ°æ®åºçåç SQLï¼native "
-"SQLï¼ã"
+msgid "Hibernate knows how to translate this limit query into the native SQL of your DBMS."
+msgstr "Hibernate ç¥éå¦ä½å°è¿ä¸ªæéå®æ¡ä»¶çæ¥è¯¢è½¬æ¢æä½ çæ°æ®åºçåç SQLï¼native SQLï¼ã"
#. Tag: title
#, no-c-format
@@ -521,26 +247,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the "
-"<literal>Query</literal> interface can be used to obtain a "
-"<literal>ScrollableResults</literal> object that allows flexible navigation "
-"of the query results."
-msgstr ""
-"å¦æä½ ç JDBC 驱å¨æ¯æå¯æ»å¨ç <literal>ResuleSet</literal>ï¼<literal>Query</"
-"literal> æ¥å£å¯ä»¥ä½¿ç¨ <literal>ScrollableResults</literal>ï¼å
è®¸ä½ å¨æ¥è¯¢ç»æ"
-"ä¸çµæ´»æ¸¸èµ°ã "
+msgid "If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the <literal>Query</literal> interface can be used to obtain a <literal>ScrollableResults</literal> object that allows flexible navigation of the query results."
+msgstr "å¦æä½ ç JDBC 驱å¨æ¯æå¯æ»å¨ç <literal>ResuleSet</literal>ï¼<literal>Query</literal> æ¥å£å¯ä»¥ä½¿ç¨ <literal>ScrollableResults</literal>ï¼å
è®¸ä½ å¨æ¥è¯¢ç»æä¸çµæ´»æ¸¸èµ°ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Note that an open database connection and cursor is required for this "
-"functionality. Use <literal>setMaxResult()</literal>/<literal>setFirstResult"
-"()</literal> if you need offline pagination functionality."
-msgstr ""
-"请注æï¼ä½¿ç¨æ¤åè½éè¦ä¿ææ°æ®åºè¿æ¥ï¼ä»¥å游æ ï¼cursorï¼ï¼å¤äºä¸ç´æå¼ç¶æã"
-"å¦æä½ éè¦æå¼è¿æ¥ä½¿ç¨å页åè½ï¼è¯·ä½¿ç¨ <literal>setMaxResult()</literal>/"
-"<literal>setFirstResult()</literal>ã "
+msgid "Note that an open database connection and cursor is required for this functionality. Use <literal>setMaxResult()</literal>/<literal>setFirstResult()</literal> if you need offline pagination functionality."
+msgstr "请注æï¼ä½¿ç¨æ¤åè½éè¦ä¿ææ°æ®åºè¿æ¥ï¼ä»¥å游æ ï¼cursorï¼ï¼å¤äºä¸ç´æå¼ç¶æãå¦æä½ éè¦æå¼è¿æ¥ä½¿ç¨å页åè½ï¼è¯·ä½¿ç¨ <literal>setMaxResult()</literal>/<literal>setFirstResult()</literal>ã "
#. Tag: title
#, no-c-format
@@ -549,13 +262,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can also define named queries in the mapping document. Remember to use a "
-"<literal>CDATA</literal> section if your query contains characters that "
-"could be interpreted as markup."
-msgstr ""
-"ä½ å¯ä»¥å¨æ å°æ件ä¸å®ä¹å½åæ¥è¯¢ï¼named queriesï¼ãå¦æä½ çæ¥è¯¢ä¸²ä¸å
å«å¯è½è¢«è§£"
-"é为 XML æ è®°ï¼markupï¼çå符ï¼å«å¿äºç¨<literal>CDATA</literal>å
裹起æ¥ã"
+msgid "You can also define named queries in the mapping document. Remember to use a <literal>CDATA</literal> section if your query contains characters that could be interpreted as markup."
+msgstr "ä½ å¯ä»¥å¨æ å°æ件ä¸å®ä¹å½åæ¥è¯¢ï¼named queriesï¼ãå¦æä½ çæ¥è¯¢ä¸²ä¸å
å«å¯è½è¢«è§£é为 XML æ è®°ï¼markupï¼çå符ï¼å«å¿äºç¨<literal>CDATA</literal>å
裹起æ¥ã"
#. Tag: para
#, no-c-format
@@ -564,28 +272,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The actual program code is independent of the query language that is used. "
-"You can also define native SQL queries in metadata, or migrate existing "
-"queries to Hibernate by placing them in mapping files."
-msgstr ""
-"请注æå®é
çç¨åºä»£ç ä¸æç¨çæ¥è¯¢è¯è¨æ å
³ï¼ä½ ä¹å¯å¨å
æ°æ®ä¸å®ä¹åç SQL"
-"ï¼native SQLï¼æ¥è¯¢ï¼æå°åæçå
¶ä»çæ¥è¯¢è¯å¥æ¾å¨é
ç½®æ件ä¸ï¼è¿æ ·å°±å¯ä»¥è®© "
-"Hibernate ç»ä¸ç®¡çï¼è¾¾å°è¿ç§»çç®çã "
+msgid "The actual program code is independent of the query language that is used. You can also define native SQL queries in metadata, or migrate existing queries to Hibernate by placing them in mapping files."
+msgstr "请注æå®é
çç¨åºä»£ç ä¸æç¨çæ¥è¯¢è¯è¨æ å
³ï¼ä½ ä¹å¯å¨å
æ°æ®ä¸å®ä¹åç SQLï¼native SQLï¼æ¥è¯¢ï¼æå°åæçå
¶ä»çæ¥è¯¢è¯å¥æ¾å¨é
ç½®æ件ä¸ï¼è¿æ ·å°±å¯ä»¥è®© Hibernate ç»ä¸ç®¡çï¼è¾¾å°è¿ç§»çç®çã "
#. Tag: para
#, no-c-format
-msgid ""
-"Also note that a query declaration inside a <literal><hibernate-"
-"mapping></literal> element requires a global unique name for the query, "
-"while a query declaration inside a <literal><class></literal> element "
-"is made unique automatically by prepending the fully qualified name of the "
-"class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
-msgstr ""
-"ä¹è¯·æ³¨æå¨ <literal><hibernate-mapping></literal> å
ç´ ä¸å£°æçæ¥è¯¢å¿
é¡»"
-"æä¸ä¸ªå
¨å±å¯ä¸çåå,èå¨ <literal><class></literal> å
ç´ ä¸å£°æçæ¥è¯¢èª"
-"å¨å
·æå
¨å±å,æ¯éè¿ç±»çå
¨åå 以éå®çãæ¯å¦ <literal>eg.Cat."
-"ByNameAndMaximumWeight</literal>ã "
+msgid "Also note that a query declaration inside a <literal><hibernate-mapping></literal> element requires a global unique name for the query, while a query declaration inside a <literal><class></literal> element is made unique automatically by prepending the fully qualified name of the class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr "ä¹è¯·æ³¨æå¨ <literal><hibernate-mapping></literal> å
ç´ ä¸å£°æçæ¥è¯¢å¿
é¡»æä¸ä¸ªå
¨å±å¯ä¸çåå,èå¨ <literal><class></literal> å
ç´ ä¸å£°æçæ¥è¯¢èªå¨å
·æå
¨å±å,æ¯éè¿ç±»çå
¨åå 以éå®çãæ¯å¦ <literal>eg.Cat.ByNameAndMaximumWeight</literal>ã "
#. Tag: title
#, no-c-format
@@ -594,43 +287,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"A collection <emphasis>filter</emphasis> is a special type of query that can "
-"be applied to a persistent collection or array. The query string can refer "
-"to <literal>this</literal>, meaning the current collection element."
-msgstr ""
-"éå<emphasis>è¿æ»¤å¨ï¼filterï¼</emphasis>æ¯ä¸ç§ç¨äºä¸ä¸ªæä¹
åéåæè
æ°ç»çç¹"
-"æ®çæ¥è¯¢ãæ¥è¯¢å符串ä¸å¯ä»¥ä½¿ç¨ <literal>\"this\"</literal> æ¥å¼ç¨éåä¸çå½å"
-"å
ç´ ã "
+msgid "A collection <emphasis>filter</emphasis> is a special type of query that can be applied to a persistent collection or array. The query string can refer to <literal>this</literal>, meaning the current collection element."
+msgstr "éå<emphasis>è¿æ»¤å¨ï¼filterï¼</emphasis>æ¯ä¸ç§ç¨äºä¸ä¸ªæä¹
åéåæè
æ°ç»çç¹æ®çæ¥è¯¢ãæ¥è¯¢å符串ä¸å¯ä»¥ä½¿ç¨ <literal>\"this\"</literal> æ¥å¼ç¨éåä¸çå½åå
ç´ ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The returned collection is considered a bag that is a copy of the given "
-"collection. The original collection is not modified. This is contrary to the "
-"implication of the name \"filter\", but consistent with expected behavior."
-msgstr ""
-"è¿åçéåå¯ä»¥è¢«è®¤ä¸ºæ¯ä¸ä¸ªå
ï¼bagï¼æ 顺åºå¯éå¤çéåï¼collectionï¼ï¼ï¼å®æ¯æ"
-"ç»éåçå¯æ¬ã åæ¥çéåä¸ä¼è¢«æ¹å¨ï¼è¿ä¸âè¿æ»¤å¨ï¼filterï¼âçéå«çå«ä¹ä¸ç¬¦ï¼"
-"ä¸è¿ä¸æ们æå¾
çè¡ä¸ºä¸è´ï¼ã "
+msgid "The returned collection is considered a bag that is a copy of the given collection. The original collection is not modified. This is contrary to the implication of the name \"filter\", but consistent with expected behavior."
+msgstr "è¿åçéåå¯ä»¥è¢«è®¤ä¸ºæ¯ä¸ä¸ªå
ï¼bagï¼æ 顺åºå¯éå¤çéåï¼collectionï¼ï¼ï¼å®æ¯æç»éåçå¯æ¬ã åæ¥çéåä¸ä¼è¢«æ¹å¨ï¼è¿ä¸âè¿æ»¤å¨ï¼filterï¼âçéå«çå«ä¹ä¸ç¬¦ï¼ä¸è¿ä¸æ们æå¾
çè¡ä¸ºä¸è´ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Observe that filters do not require a <literal>from</literal> clause, "
-"although they can have one if required. Filters are not limited to returning "
-"the collection elements themselves."
-msgstr ""
-"请注æè¿æ»¤å¨ï¼filterï¼å¹¶ä¸éè¦ <literal>from</literal> åå¥ï¼å½ç¶éè¦çè¯å®ä»¬"
-"ä¹å¯ä»¥å ä¸ï¼ãè¿æ»¤å¨ï¼filterï¼ä¸éå®äºåªè½è¿åéåå
ç´ æ¬èº«ã "
+msgid "Observe that filters do not require a <literal>from</literal> clause, although they can have one if required. Filters are not limited to returning the collection elements themselves."
+msgstr "请注æè¿æ»¤å¨ï¼filterï¼å¹¶ä¸éè¦ <literal>from</literal> åå¥ï¼å½ç¶éè¦çè¯å®ä»¬ä¹å¯ä»¥å ä¸ï¼ãè¿æ»¤å¨ï¼filterï¼ä¸éå®äºåªè½è¿åéåå
ç´ æ¬èº«ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Even an empty filter query is useful, e.g. to load a subset of elements in a "
-"large collection:"
-msgstr ""
-"å³ä½¿æ æ¡ä»¶çè¿æ»¤å¨ï¼filterï¼ä¹æ¯ææä¹çãä¾å¦ï¼ç¨äºå è½½ä¸ä¸ªå¤§éåçåéï¼ "
+msgid "Even an empty filter query is useful, e.g. to load a subset of elements in a large collection:"
+msgstr "å³ä½¿æ æ¡ä»¶çè¿æ»¤å¨ï¼filterï¼ä¹æ¯ææä¹çãä¾å¦ï¼ç¨äºå è½½ä¸ä¸ªå¤§éåçåéï¼ "
#. Tag: title
#, no-c-format
@@ -639,25 +312,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"HQL is extremely powerful, but some developers prefer to build queries "
-"dynamically using an object-oriented API, rather than building query "
-"strings. Hibernate provides an intuitive <literal>Criteria</literal> query "
-"API for these cases:"
-msgstr ""
-"HQL æ为强大ï¼ä½æ¯æäºäººå¸æè½å¤å¨æç使ç¨ä¸ç§é¢å对象 API å建æ¥è¯¢ï¼èéå¨ä»"
-"们ç Java 代ç ä¸åµå
¥å符串ã对äºé£é¨å人æ¥è¯´ï¼Hibernate æä¾äºç´è§ç "
-"<literal>Criteria</literal> æ¥è¯¢ APIã "
+msgid "HQL is extremely powerful, but some developers prefer to build queries dynamically using an object-oriented API, rather than building query strings. Hibernate provides an intuitive <literal>Criteria</literal> query API for these cases:"
+msgstr "HQL æ为强大ï¼ä½æ¯æäºäººå¸æè½å¤å¨æç使ç¨ä¸ç§é¢å对象 API å建æ¥è¯¢ï¼èéå¨ä»ä»¬ç Java 代ç ä¸åµå
¥å符串ã对äºé£é¨å人æ¥è¯´ï¼Hibernate æä¾äºç´è§ç <literal>Criteria</literal> æ¥è¯¢ APIã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>Criteria</literal> and the associated <literal>Example</"
-"literal> API are discussed in more detail in <xref linkend=\"querycriteria"
-"\" />."
-msgstr ""
-"<literal>Criteria</literal> 以åç¸å
³ç<literal>æ ·ä¾ï¼Exampleï¼</literal>API "
-"å°ä¼å¨ <xref linkend=\"querycriteria\"/> ä¸è¯¦ç»è®¨è®ºã "
+#, no-c-format
+msgid "The <literal>Criteria</literal> and the associated <literal>Example</literal> API are discussed in more detail in <xref linkend=\"querycriteria\" />."
+msgstr "<literal>Criteria</literal> 以åç¸å
³ç<literal>æ ·ä¾ï¼Exampleï¼</literal>API å°ä¼å¨ <xref linkend=\"querycriteria\"/> ä¸è¯¦ç»è®¨è®ºã"
#. Tag: title
#, no-c-format
@@ -666,28 +327,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can express a query in SQL, using <literal>createSQLQuery()</literal> "
-"and let Hibernate manage the mapping from result sets to objects. You can at "
-"any time call <literal>session.connection()</literal> and use the JDBC "
-"<literal>Connection</literal> directly. If you choose to use the Hibernate "
-"API, you must enclose SQL aliases in braces:"
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨ <literal>createSQLQuery()</literal> æ¹æ³ï¼ç¨ SQL æ¥æè¿°æ¥è¯¢ï¼å¹¶ç± "
-"Hibernate å°ç»æé转æ¢æ对象ã请注æï¼ä½ å¯ä»¥å¨ä»»ä½æ¶åè°ç¨ <literal>session."
-"connection()</literal> æ¥è·å¾å¹¶ä½¿ç¨ JDBC <literal>Connection</literal> 对"
-"象ã å¦æä½ éæ©ä½¿ç¨ Hibernate ç APIï¼ä½ å¿
é¡»æ SQL å«åç¨å¤§æ¬å·å
å´èµ·æ¥ï¼ "
+msgid "You can express a query in SQL, using <literal>createSQLQuery()</literal> and let Hibernate manage the mapping from result sets to objects. You can at any time call <literal>session.connection()</literal> and use the JDBC <literal>Connection</literal> directly. If you choose to use the Hibernate API, you must enclose SQL aliases in braces:"
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>createSQLQuery()</literal> æ¹æ³ï¼ç¨ SQL æ¥æè¿°æ¥è¯¢ï¼å¹¶ç± Hibernate å°ç»æé转æ¢æ对象ã请注æï¼ä½ å¯ä»¥å¨ä»»ä½æ¶åè°ç¨ <literal>session.connection()</literal> æ¥è·å¾å¹¶ä½¿ç¨ JDBC <literal>Connection</literal> 对象ã å¦æä½ éæ©ä½¿ç¨ Hibernate ç APIï¼ä½ å¿
é¡»æ SQL å«åç¨å¤§æ¬å·å
å´èµ·æ¥ï¼ "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"SQL queries can contain named and positional parameters, just like Hibernate "
-"queries. More information about native SQL queries in Hibernate can be found "
-"in <xref linkend=\"querysql\" />."
-msgstr ""
-"å Hibernate æ¥è¯¢ä¸æ ·ï¼SQL æ¥è¯¢ä¹å¯ä»¥å
å«å½ååæ°åå ä½åæ°ãå¯ä»¥å¨ <xref "
-"linkend=\"querysql\"/> æ¾å°æ´å¤å
³äº Hibernate ä¸åç SQLï¼native SQLï¼çä¿¡"
-"æ¯ã "
+#, no-c-format
+msgid "SQL queries can contain named and positional parameters, just like Hibernate queries. More information about native SQL queries in Hibernate can be found in <xref linkend=\"querysql\" />."
+msgstr "å Hibernate æ¥è¯¢ä¸æ ·ï¼SQL æ¥è¯¢ä¹å¯ä»¥å
å«å½ååæ°åå ä½åæ°ãå¯ä»¥å¨ <xref linkend=\"querysql\"/> æ¾å°æ´å¤å
³äº Hibernate ä¸åç SQLï¼native SQLï¼çä¿¡æ¯ã"
#. Tag: title
#, no-c-format
@@ -696,61 +342,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Transactional persistent instances</emphasis> (i.e. objects "
-"loaded, saved, created or queried by the <literal>Session</literal>) can be "
-"manipulated by the application, and any changes to persistent state will be "
-"persisted when the <literal>Session</literal> is <emphasis>flushed</"
-"emphasis>. This is discussed later in this chapter. There is no need to call "
-"a particular method (like <literal>update()</literal>, which has a different "
-"purpose) to make your modifications persistent. The most straightforward way "
-"to update the state of an object is to <literal>load()</literal> it and then "
-"manipulate it directly while the <literal>Session</literal> is open:"
-msgstr ""
-"<emphasis>äºå¡ä¸çæä¹
å®ä¾</emphasis>ï¼å°±æ¯éè¿ <literal>session</literal> è£
"
-"è½½ãä¿åãå建æè
æ¥è¯¢åºçå¯¹è±¡ï¼ è¢«åºç¨ç¨åºæä½æé æçä»»ä½ä¿®æ¹é½ä¼å¨ "
-"<literal>Session</literal> 被<emphasis>å·åºï¼flushedï¼</emphasis>çæ¶å被æä¹
"
-"åï¼æ¬ç« åé¢ä¼è¯¦ç»è®¨è®ºï¼ãè¿éä¸éè¦è°ç¨æ个ç¹å®çæ¹æ³ï¼æ¯å¦ <literal>update"
-"()</literal>ï¼è®¾è®¡å®çç®çæ¯ä¸åçï¼å°ä½ çä¿®æ¹æä¹
åãæ以æç´æ¥çæ´æ°ä¸ä¸ªå¯¹"
-"象çæ¹æ³å°±æ¯å¨ <literal>Session</literal> å¤äºæå¼ç¶ææ¶ <literal>load()</"
-"literal> å®ï¼ç¶åç´æ¥ä¿®æ¹å³å¯ï¼ "
+msgid "<emphasis>Transactional persistent instances</emphasis> (i.e. objects loaded, saved, created or queried by the <literal>Session</literal>) can be manipulated by the application, and any changes to persistent state will be persisted when the <literal>Session</literal> is <emphasis>flushed</emphasis>. This is discussed later in this chapter. There is no need to call a particular method (like <literal>update()</literal>, which has a different purpose) to make your modifications persistent. The most straightforward way to update the state of an object is to <literal>load()</literal> it and then manipulate it directly while the <literal>Session</literal> is open:"
+msgstr "<emphasis>äºå¡ä¸çæä¹
å®ä¾</emphasis>ï¼å°±æ¯éè¿ <literal>session</literal> è£
è½½ãä¿åãå建æè
æ¥è¯¢åºçå¯¹è±¡ï¼ è¢«åºç¨ç¨åºæä½æé æçä»»ä½ä¿®æ¹é½ä¼å¨ <literal>Session</literal> 被<emphasis>å·åºï¼flushedï¼</emphasis>çæ¶å被æä¹
åï¼æ¬ç« åé¢ä¼è¯¦ç»è®¨è®ºï¼ãè¿éä¸éè¦è°ç¨æ个ç¹å®çæ¹æ³ï¼æ¯å¦ <literal>update()</literal>ï¼è®¾è®¡å®çç®çæ¯ä¸åçï¼å°ä½ çä¿®æ¹æä¹
åãæ以æç´æ¥çæ´æ°ä¸ä¸ªå¯¹è±¡çæ¹æ³å°±æ¯å¨ <literal>Session</literal> å¤äºæå¼ç¶ææ¶ <literal>load()</literal> å®ï¼ç¶åç´æ¥ä¿®æ¹å³å¯ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Sometimes this programming model is inefficient, as it requires in the same "
-"session both an SQL <literal>SELECT</literal> to load an object and an SQL "
-"<literal>UPDATE</literal> to persist its updated state. Hibernate offers an "
-"alternate approach by using detached instances."
-msgstr ""
-"ææ¶è¿ç§ç¨åºæ¨¡åæçä½ä¸ï¼å 为å®å¨åä¸ Session ééè¦ä¸æ¡ SQL "
-"<literal>SELECT</literal> è¯å¥ï¼ç¨äºå è½½å¯¹è±¡ï¼ ä»¥åä¸æ¡ SQL <literal>UPDATE</"
-"literal> è¯å¥ï¼æä¹
åæ´æ°çç¶æï¼ãä¸ºæ¤ Hibernate æä¾äºå¦ä¸ç§éå¾ï¼ä½¿ç¨è±ç®¡"
-"ï¼detachedï¼å®ä¾ã "
+msgid "Sometimes this programming model is inefficient, as it requires in the same session both an SQL <literal>SELECT</literal> to load an object and an SQL <literal>UPDATE</literal> to persist its updated state. Hibernate offers an alternate approach by using detached instances."
+msgstr "ææ¶è¿ç§ç¨åºæ¨¡åæçä½ä¸ï¼å 为å®å¨åä¸ Session ééè¦ä¸æ¡ SQL <literal>SELECT</literal> è¯å¥ï¼ç¨äºå è½½å¯¹è±¡ï¼ ä»¥åä¸æ¡ SQL <literal>UPDATE</literal> è¯å¥ï¼æä¹
åæ´æ°çç¶æï¼ãä¸ºæ¤ Hibernate æä¾äºå¦ä¸ç§éå¾ï¼ä½¿ç¨è±ç®¡ï¼detachedï¼å®ä¾ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate does not offer its own API for direct execution of "
-"<literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate "
-"is a <emphasis>state management</emphasis> service, you do not have to think "
-"in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for "
-"executing SQL statements, you can get a JDBC <literal>Connection</literal> "
-"at any time by calling <literal>session.connection()</literal>. Furthermore, "
-"the notion of mass operations conflicts with object/relational mapping for "
-"online transaction processing-oriented applications. Future versions of "
-"Hibernate can, however, provide special mass operation functions. See <xref "
-"linkend=\"batch\" /> for some possible batch operation tricks."
-msgstr ""
-"请注æ Hibernate æ¬èº«ä¸æä¾ç´æ¥æ§è¡ <literal>UPDATE</literal> æ "
-"<literal>DELETE</literal> è¯å¥ç APIãHibernate æä¾çæ¯ <emphasis>state "
-"management</emphasis> æå¡ï¼ä½ ä¸å¿
èèè¦ä½¿ç¨ç <emphasis>statements</"
-"emphasis>ãJDBC æ¯åºè²çæ§è¡ SQL è¯å¥ç APIï¼ä»»ä½æ¶åè°ç¨ <literal>session."
-"connection()</literal> ä½ é½å¯ä»¥å¾å°ä¸ä¸ª <literal>Connection</literal> 对象ã "
-"æ¤å¤ï¼å¨èæºäºå¡å¤çï¼OLTPï¼ç¨åºä¸ï¼å¤§éæä½ï¼mass operationsï¼ä¸å¯¹è±¡/å
³ç³»æ "
-"å°çè§ç¹æ¯ç¸å²çªçãHibernate çå°æ¥çæ¬å¯è½ä¼æä¾ä¸é¨çè¿è¡å¤§éæä½ï¼mass "
-"operationï¼çåè½ãåè <xref linkend=\"batch\"/>ï¼å¯»æ¾ä¸äºå¯ç¨çæ¹é"
-"ï¼batchï¼æä½æå·§ã "
+#, no-c-format
+msgid "Hibernate does not offer its own API for direct execution of <literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate is a <emphasis>state management</emphasis> service, you do not have to think in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for executing SQL statements, you can get a JDBC <literal>Connection</literal> at any time by calling <literal>session.connection()</literal>. Furthermore, the notion of mass operations conflicts with object/relational mapping for online transaction processing-oriented applications. Future versions of Hibernate can, however, provide special mass operation functions. See <xref linkend=\"batch\" /> for some possible batch operation tricks."
+msgstr "请注æ Hibernate æ¬èº«ä¸æä¾ç´æ¥æ§è¡ <literal>UPDATE</literal> æ <literal>DELETE</literal> è¯å¥ç APIãHibernate æä¾çæ¯ <emphasis>state management</emphasis> æå¡ï¼ä½ ä¸å¿
èèè¦ä½¿ç¨ç <emphasis>statements</emphasis>ãJDBC æ¯åºè²çæ§è¡ SQL è¯å¥ç APIï¼ä»»ä½æ¶åè°ç¨ <literal>session.connection()</literal> ä½ é½å¯ä»¥å¾å°ä¸ä¸ª <literal>Connection</literal> 对象ã æ¤å¤ï¼å¨èæºäºå¡å¤çï¼OLTPï¼ç¨åºä¸ï¼å¤§éæä½ï¼mass operationsï¼ä¸å¯¹è±¡/å
³ç³»æ å°çè§ç¹æ¯ç¸å²çªçãHibernate çå°æ¥çæ¬å¯è½ä¼æä¾ä¸é¨çè¿è¡å¤§éæä½ï¼mass operationï¼çåè½ãåè <xref linkend=\"batch\"/>ï¼å¯»æ¾ä¸äºå¯ç¨çæ¹éï¼batchï¼æä½æå·§ã"
#. Tag: title
#, no-c-format
@@ -759,100 +362,43 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Many applications need to retrieve an object in one transaction, send it to "
-"the UI layer for manipulation, then save the changes in a new transaction. "
-"Applications that use this kind of approach in a high-concurrency "
-"environment usually use versioned data to ensure isolation for the \"long\" "
-"unit of work."
-msgstr ""
-"å¾å¤ç¨åºéè¦å¨æ个äºå¡ä¸è·å对象ï¼ç¶åå°å¯¹è±¡åéå°çé¢å±å»æä½ï¼æåå¨ä¸ä¸ªæ°"
-"çäºå¡ä¿åæåçä¿®æ¹ãå¨é«å¹¶å访é®çç¯å¢ä¸ä½¿ç¨è¿ç§æ¹å¼ï¼é常使ç¨é带çæ¬ä¿¡æ¯"
-"çæ°æ®æ¥ä¿è¯è¿äºâé¿âå·¥ä½åå
ä¹é´çé离ã"
+msgid "Many applications need to retrieve an object in one transaction, send it to the UI layer for manipulation, then save the changes in a new transaction. Applications that use this kind of approach in a high-concurrency environment usually use versioned data to ensure isolation for the \"long\" unit of work."
+msgstr "å¾å¤ç¨åºéè¦å¨æ个äºå¡ä¸è·å对象ï¼ç¶åå°å¯¹è±¡åéå°çé¢å±å»æä½ï¼æåå¨ä¸ä¸ªæ°çäºå¡ä¿åæåçä¿®æ¹ãå¨é«å¹¶å访é®çç¯å¢ä¸ä½¿ç¨è¿ç§æ¹å¼ï¼é常使ç¨é带çæ¬ä¿¡æ¯çæ°æ®æ¥ä¿è¯è¿äºâé¿âå·¥ä½åå
ä¹é´çé离ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate supports this model by providing for reattachment of detached "
-"instances using the <literal>Session.update()</literal> or <literal>Session."
-"merge()</literal> methods:"
-msgstr ""
-"Hibernate éè¿æä¾ <literal>Session.update()</literal> æ <literal>Session."
-"merge()</literal> éæ°å
³èè±ç®¡å®ä¾çåæ³æ¥æ¯æè¿ç§æ¨¡åã"
+msgid "Hibernate supports this model by providing for reattachment of detached instances using the <literal>Session.update()</literal> or <literal>Session.merge()</literal> methods:"
+msgstr "Hibernate éè¿æä¾ <literal>Session.update()</literal> æ <literal>Session.merge()</literal> éæ°å
³èè±ç®¡å®ä¾çåæ³æ¥æ¯æè¿ç§æ¨¡åã"
#. Tag: para
#, no-c-format
-msgid ""
-"If the <literal>Cat</literal> with identifier <literal>catId</literal> had "
-"already been loaded by <literal>secondSession</literal> when the application "
-"tried to reattach it, an exception would have been thrown."
-msgstr ""
-"å¦æå
·æ <literal>catId</literal> æä¹
åæ è¯ç <literal>Cat</literal> ä¹åå·²"
-"ç»è¢«<literal>å¦ä¸Sessionï¼secondSessionï¼</literal>è£
è½½äºï¼ åºç¨ç¨åºè¿è¡éå
³"
-"èæä½ï¼reattachï¼çæ¶åä¼æåºä¸ä¸ªå¼å¸¸ã"
+msgid "If the <literal>Cat</literal> with identifier <literal>catId</literal> had already been loaded by <literal>secondSession</literal> when the application tried to reattach it, an exception would have been thrown."
+msgstr "å¦æå
·æ <literal>catId</literal> æä¹
åæ è¯ç <literal>Cat</literal> ä¹åå·²ç»è¢«<literal>å¦ä¸Sessionï¼secondSessionï¼</literal>è£
è½½äºï¼ åºç¨ç¨åºè¿è¡éå
³èæä½ï¼reattachï¼çæ¶åä¼æåºä¸ä¸ªå¼å¸¸ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Use <literal>update()</literal> if you are certain that the session does not "
-"contain an already persistent instance with the same identifier. Use "
-"<literal>merge()</literal> if you want to merge your modifications at any "
-"time without consideration of the state of the session. In other words, "
-"<literal>update()</literal> is usually the first method you would call in a "
-"fresh session, ensuring that the reattachment of your detached instances is "
-"the first operation that is executed."
-msgstr ""
-"å¦æä½ ç¡®å®å½å session 没æå
å«ä¸ä¹å
·æç¸åæä¹
åæ è¯çæä¹
å®ä¾ï¼ä½¿ç¨ "
-"<literal>update()</literal>ãå¦ææ³éæ¶åå¹¶ä½ ççæ¹å¨èä¸èè session çç¶"
-"æï¼ä½¿ç¨ <literal>merge()</literal>ãæ¢å¥è¯è¯´ï¼å¨ä¸ä¸ªæ° session ä¸é常第ä¸ä¸ª"
-"è°ç¨çæ¯ <literal>update()</literal> æ¹æ³ï¼ä»¥ä¾¿ä¿è¯éæ°å
³èè±ç®¡ï¼detachedï¼å¯¹"
-"象çæä½é¦å
被æ§è¡ã "
+msgid "Use <literal>update()</literal> if you are certain that the session does not contain an already persistent instance with the same identifier. Use <literal>merge()</literal> if you want to merge your modifications at any time without consideration of the state of the session. In other words, <literal>update()</literal> is usually the first method you would call in a fresh session, ensuring that the reattachment of your detached instances is the first operation that is executed."
+msgstr "å¦æä½ ç¡®å®å½å session 没æå
å«ä¸ä¹å
·æç¸åæä¹
åæ è¯çæä¹
å®ä¾ï¼ä½¿ç¨ <literal>update()</literal>ãå¦ææ³éæ¶åå¹¶ä½ ççæ¹å¨èä¸èè session çç¶æï¼ä½¿ç¨ <literal>merge()</literal>ãæ¢å¥è¯è¯´ï¼å¨ä¸ä¸ªæ° session ä¸é常第ä¸ä¸ªè°ç¨çæ¯ <literal>update()</literal> æ¹æ³ï¼ä»¥ä¾¿ä¿è¯éæ°å
³èè±ç®¡ï¼detachedï¼å¯¹è±¡çæä½é¦å
被æ§è¡ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The application should individually <literal>update()</literal> detached "
-"instances that are reachable from the given detached instance "
-"<emphasis>only</emphasis> if it wants their state to be updated. This can be "
-"automated using <emphasis>transitive persistence</emphasis>. See <xref "
-"linkend=\"objectstate-transitive\" /> for more information."
-msgstr ""
-"å¦æå¸æç¸å
³èçè±ç®¡å¯¹è±¡ï¼éè¿å¼ç¨âå¯å°è¾¾âçè±ç®¡å¯¹è±¡ï¼çæ°æ®ä¹è¦æ´æ°å°æ°æ®åº"
-"æ¶ï¼å¹¶ä¸ä¹<emphasis>ä»
ä»
</emphasis>å¨è¿ç§æ
åµï¼ï¼å¯ä»¥å¯¹è¯¥ç¸å
³èçè±ç®¡å¯¹è±¡åç¬"
-"è°ç¨ <literal>update()</literal> å½ç¶è¿äºå¯ä»¥èªå¨å®æï¼å³éè¿ä½¿ç¨<emphasis>ä¼ "
-"ææ§æä¹
åï¼transitive persistenceï¼</emphasis>ï¼è¯·ç <xref linkend="
-"\"objectstate-transitive\"/>ã "
+#, no-c-format
+msgid "The application should individually <literal>update()</literal> detached instances that are reachable from the given detached instance <emphasis>only</emphasis> if it wants their state to be updated. This can be automated using <emphasis>transitive persistence</emphasis>. See <xref linkend=\"objectstate-transitive\" /> for more information."
+msgstr "å¦æå¸æç¸å
³èçè±ç®¡å¯¹è±¡ï¼éè¿å¼ç¨âå¯å°è¾¾âçè±ç®¡å¯¹è±¡ï¼çæ°æ®ä¹è¦æ´æ°å°æ°æ®åºæ¶ï¼å¹¶ä¸ä¹<emphasis>ä»
ä»
</emphasis>å¨è¿ç§æ
åµï¼ï¼å¯ä»¥å¯¹è¯¥ç¸å
³èçè±ç®¡å¯¹è±¡åç¬è°ç¨ <literal>update()</literal> å½ç¶è¿äºå¯ä»¥èªå¨å®æï¼å³éè¿ä½¿ç¨<emphasis>ä¼ ææ§æä¹
åï¼transitive persistenceï¼</emphasis>ï¼è¯·ç <xref linkend=\"objectstate-transitive\"/>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>lock()</literal> method also allows an application to "
-"reassociate an object with a new session. However, the detached instance has "
-"to be unmodified."
-msgstr ""
-"<literal>lock()</literal> æ¹æ³ä¹å
许ç¨åºéæ°å
³èæ个对象å°ä¸ä¸ªæ° session ä¸ã"
-"ä¸è¿ï¼è¯¥è±ç®¡ï¼detachedï¼ç对象å¿
é¡»æ¯æ²¡æä¿®æ¹è¿çã"
+msgid "The <literal>lock()</literal> method also allows an application to reassociate an object with a new session. However, the detached instance has to be unmodified."
+msgstr "<literal>lock()</literal> æ¹æ³ä¹å
许ç¨åºéæ°å
³èæ个对象å°ä¸ä¸ªæ° session ä¸ãä¸è¿ï¼è¯¥è±ç®¡ï¼detachedï¼ç对象å¿
é¡»æ¯æ²¡æä¿®æ¹è¿çã"
#. Tag: para
#, no-c-format
-msgid ""
-"Note that <literal>lock()</literal> can be used with various "
-"<literal>LockMode</literal>s. See the API documentation and the chapter on "
-"transaction handling for more information. Reattachment is not the only "
-"usecase for <literal>lock()</literal>."
-msgstr ""
-"请注æï¼<literal>lock()</literal> å¯ä»¥æé
å¤ç§ <literal>LockMode</literal>ï¼"
-"æ´å¤ä¿¡æ¯è¯·é
读 API æ档以åå
³äºäºå¡å¤çï¼transaction handlingï¼çç« èãéæ°å
³"
-"èä¸æ¯ <literal>lock()</literal> çå¯ä¸ç¨éã "
+msgid "Note that <literal>lock()</literal> can be used with various <literal>LockMode</literal>s. See the API documentation and the chapter on transaction handling for more information. Reattachment is not the only usecase for <literal>lock()</literal>."
+msgstr "请注æï¼<literal>lock()</literal> å¯ä»¥æé
å¤ç§ <literal>LockMode</literal>ï¼æ´å¤ä¿¡æ¯è¯·é
读 API æ档以åå
³äºäºå¡å¤çï¼transaction handlingï¼çç« èãéæ°å
³èä¸æ¯ <literal>lock()</literal> çå¯ä¸ç¨éã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Other models for long units of work are discussed in <xref linkend="
-"\"transactions-optimistic\" />."
-msgstr ""
-"å
¶ä»ç¨äºé¿æ¶é´å·¥ä½åå
ç模åä¼å¨ <xref linkend=\"transactions-optimistic\"/> "
-"ä¸è®¨è®ºã "
+#, no-c-format
+msgid "Other models for long units of work are discussed in <xref linkend=\"transactions-optimistic\" />."
+msgstr "å
¶ä»ç¨äºé¿æ¶é´å·¥ä½åå
ç模åä¼å¨ <xref linkend=\"transactions-optimistic\"/> ä¸è®¨è®ºã"
#. Tag: title
#, no-c-format
@@ -861,39 +407,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate users have requested a general purpose method that either saves a "
-"transient instance by generating a new identifier or updates/reattaches the "
-"detached instances associated with its current identifier. The "
-"<literal>saveOrUpdate()</literal> method implements this functionality."
-msgstr ""
-"Hibernate çç¨æ·æ¾è¦æ±ä¸ä¸ªæ¢å¯èªå¨åé
æ°æä¹
åæ è¯ï¼identifierï¼ä¿åç¬æ¶"
-"ï¼transientï¼å¯¹è±¡ï¼åå¯æ´æ°/éæ°å
³èè±ç®¡ï¼detachedï¼å®ä¾çéç¨æ¹æ³ã"
-"<literal>saveOrUpdate()</literal> æ¹æ³å®ç°äºè¿ä¸ªåè½ã"
+msgid "Hibernate users have requested a general purpose method that either saves a transient instance by generating a new identifier or updates/reattaches the detached instances associated with its current identifier. The <literal>saveOrUpdate()</literal> method implements this functionality."
+msgstr "Hibernate çç¨æ·æ¾è¦æ±ä¸ä¸ªæ¢å¯èªå¨åé
æ°æä¹
åæ è¯ï¼identifierï¼ä¿åç¬æ¶ï¼transientï¼å¯¹è±¡ï¼åå¯æ´æ°/éæ°å
³èè±ç®¡ï¼detachedï¼å®ä¾çéç¨æ¹æ³ã<literal>saveOrUpdate()</literal> æ¹æ³å®ç°äºè¿ä¸ªåè½ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The usage and semantics of <literal>saveOrUpdate()</literal> seems to be "
-"confusing for new users. Firstly, so long as you are not trying to use "
-"instances from one session in another new session, you should not need to "
-"use <literal>update()</literal>, <literal>saveOrUpdate()</literal>, or "
-"<literal>merge()</literal>. Some whole applications will never use either of "
-"these methods."
-msgstr ""
-"<literal>saveOrUpdate()</literal> ç¨éåè¯ä¹å¯è½ä¼ä½¿æ°ç¨æ·æå°è¿·æãé¦å
ï¼åª"
-"è¦ä½ 没æå°è¯å¨æ个 session ä¸ä½¿ç¨æ¥èªå¦ä¸ session çå®ä¾ï¼ä½ å°±åºè¯¥ä¸éè¦ä½¿"
-"ç¨ <literal>update()</literal>ï¼ <literal>saveOrUpdate()</literal>ï¼æ "
-"<literal>merge()</literal>ãæäºç¨åºä»æ¥ä¸ç¨è¿äºæ¹æ³ã"
+msgid "The usage and semantics of <literal>saveOrUpdate()</literal> seems to be confusing for new users. Firstly, so long as you are not trying to use instances from one session in another new session, you should not need to use <literal>update()</literal>, <literal>saveOrUpdate()</literal>, or <literal>merge()</literal>. Some whole applications will never use either of these methods."
+msgstr "<literal>saveOrUpdate()</literal> ç¨éåè¯ä¹å¯è½ä¼ä½¿æ°ç¨æ·æå°è¿·æãé¦å
ï¼åªè¦ä½ 没æå°è¯å¨æ个 session ä¸ä½¿ç¨æ¥èªå¦ä¸ session çå®ä¾ï¼ä½ å°±åºè¯¥ä¸éè¦ä½¿ç¨ <literal>update()</literal>ï¼ <literal>saveOrUpdate()</literal>ï¼æ <literal>merge()</literal>ãæäºç¨åºä»æ¥ä¸ç¨è¿äºæ¹æ³ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are "
-"used in the following scenario:"
-msgstr ""
-"é常ä¸é¢çåºæ¯ä¼ä½¿ç¨ <literal>update()</literal> æ <literal>saveOrUpdate()</"
-"literal>ï¼"
+msgid "Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are used in the following scenario:"
+msgstr "é常ä¸é¢çåºæ¯ä¼ä½¿ç¨ <literal>update()</literal> æ <literal>saveOrUpdate()</literal>ï¼"
#. Tag: para
#, no-c-format
@@ -917,9 +442,7 @@
#. Tag: para
#, no-c-format
-msgid ""
-"the application persists these modifications by calling <literal>update()</"
-"literal> in a second session"
+msgid "the application persists these modifications by calling <literal>update()</literal> in a second session"
msgstr "ç¨åºè°ç¨ç¬¬äºä¸ª session ç <literal>update()</literal> æ¹æ³æä¹
è¿äºæ¹å¨"
#. Tag: para
@@ -934,39 +457,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"if another object associated with the session has the same identifier, throw "
-"an exception"
-msgstr ""
-"å¦æå¦ä¸ä¸ªä¸æ¬ session å
³èç对象æ¥æç¸åçæä¹
åæ è¯ï¼identifierï¼ï¼æåºä¸ä¸ª"
-"å¼å¸¸"
+msgid "if another object associated with the session has the same identifier, throw an exception"
+msgstr "å¦æå¦ä¸ä¸ªä¸æ¬ session å
³èç对象æ¥æç¸åçæä¹
åæ è¯ï¼identifierï¼ï¼æåºä¸ä¸ªå¼å¸¸"
#. Tag: para
#, no-c-format
msgid "if the object has no identifier property, <literal>save()</literal> it"
-msgstr ""
-"å¦æ对象没ææä¹
åæ è¯ï¼identifierï¼å±æ§ï¼å¯¹å
¶è°ç¨ <literal>save()</literal>"
+msgstr "å¦æ对象没ææä¹
åæ è¯ï¼identifierï¼å±æ§ï¼å¯¹å
¶è°ç¨ <literal>save()</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"if the object's identifier has the value assigned to a newly instantiated "
-"object, <literal>save()</literal> it"
-msgstr ""
-"å¦æ对象çæä¹
æ è¯ï¼identifierï¼è¡¨æå
¶æ¯ä¸ä¸ªæ°å®ä¾åç对象ï¼å¯¹å
¶è°ç¨ "
-"<literal>save()</literal>ã"
+msgid "if the object's identifier has the value assigned to a newly instantiated object, <literal>save()</literal> it"
+msgstr "å¦æ对象çæä¹
æ è¯ï¼identifierï¼è¡¨æå
¶æ¯ä¸ä¸ªæ°å®ä¾åç对象ï¼å¯¹å
¶è°ç¨ <literal>save()</literal>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"if the object is versioned by a <literal><version></literal> or "
-"<literal><timestamp></literal>, and the version property value is the "
-"same value assigned to a newly instantiated object, <literal>save()</"
-"literal> it"
-msgstr ""
-"å¦æ对象æ¯é带çæ¬ä¿¡æ¯çï¼éè¿ <literal><version></literal> æ "
-"<literal><timestamp></literal>ï¼å¹¶ä¸çæ¬å±æ§çå¼è¡¨æå
¶æ¯ä¸ä¸ªæ°å®ä¾åç"
-"对象ï¼<literal>save()</literal> å®ã "
+msgid "if the object is versioned by a <literal><version></literal> or <literal><timestamp></literal>, and the version property value is the same value assigned to a newly instantiated object, <literal>save()</literal> it"
+msgstr "å¦æ对象æ¯é带çæ¬ä¿¡æ¯çï¼éè¿ <literal><version></literal> æ <literal><timestamp></literal>ï¼å¹¶ä¸çæ¬å±æ§çå¼è¡¨æå
¶æ¯ä¸ä¸ªæ°å®ä¾åç对象ï¼<literal>save()</literal> å®ã "
#. Tag: para
#, no-c-format
@@ -980,21 +487,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"if there is a persistent instance with the same identifier currently "
-"associated with the session, copy the state of the given object onto the "
-"persistent instance"
-msgstr ""
-"å¦æ session ä¸åå¨ç¸åæä¹
åæ è¯ï¼identifierï¼çå®ä¾ï¼ç¨ç¨æ·ç»åºç对象çç¶æ"
-"è¦çæ§æçæä¹
å®ä¾"
+msgid "if there is a persistent instance with the same identifier currently associated with the session, copy the state of the given object onto the persistent instance"
+msgstr "å¦æ session ä¸åå¨ç¸åæä¹
åæ è¯ï¼identifierï¼çå®ä¾ï¼ç¨ç¨æ·ç»åºç对象çç¶æè¦çæ§æçæä¹
å®ä¾"
#. Tag: para
#, no-c-format
-msgid ""
-"if there is no persistent instance currently associated with the session, "
-"try to load it from the database, or create a new persistent instance"
-msgstr ""
-"å¦æ session 没æç¸åºçæä¹
å®ä¾ï¼åå°è¯ä»æ°æ®åºä¸å è½½ï¼æå建æ°çæä¹
åå®ä¾"
+msgid "if there is no persistent instance currently associated with the session, try to load it from the database, or create a new persistent instance"
+msgstr "å¦æ session 没æç¸åºçæä¹
å®ä¾ï¼åå°è¯ä»æ°æ®åºä¸å è½½ï¼æå建æ°çæä¹
åå®ä¾"
#. Tag: para
#, no-c-format
@@ -1003,9 +502,7 @@
#. Tag: para
#, no-c-format
-msgid ""
-"the given instance does not become associated with the session, it remains "
-"detached"
+msgid "the given instance does not become associated with the session, it remains detached"
msgstr "ç¨æ·ç»åºçè¿ä¸ªå¯¹è±¡æ²¡æ被å
³èå° session ä¸ï¼å®ä¾æ§æ¯è±ç®¡ç"
#. Tag: title
@@ -1015,28 +512,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>Session.delete()</literal> will remove an object's state from the "
-"database. Your application, however, can still hold a reference to a deleted "
-"object. It is best to think of <literal>delete()</literal> as making a "
-"persistent instance, transient."
-msgstr ""
-"ä½¿ç¨ <literal>Session.delete()</literal> ä¼æ对象çç¶æä»æ°æ®åºä¸ç§»é¤ãå½ç¶ï¼"
-"ä½ çåºç¨ç¨åºå¯è½ä»ç¶ææä¸ä¸ªæåå·²å é¤å¯¹è±¡çå¼ç¨ãæ以ï¼æ好è¿æ ·ç解ï¼"
-"<literal>delete()</literal> çç¨éæ¯æä¸ä¸ªæä¹
å®ä¾åæç¬æ¶ï¼transientï¼å®"
-"ä¾ã "
+msgid "<literal>Session.delete()</literal> will remove an object's state from the database. Your application, however, can still hold a reference to a deleted object. It is best to think of <literal>delete()</literal> as making a persistent instance, transient."
+msgstr "ä½¿ç¨ <literal>Session.delete()</literal> ä¼æ对象çç¶æä»æ°æ®åºä¸ç§»é¤ãå½ç¶ï¼ä½ çåºç¨ç¨åºå¯è½ä»ç¶ææä¸ä¸ªæåå·²å é¤å¯¹è±¡çå¼ç¨ãæ以ï¼æ好è¿æ ·ç解ï¼<literal>delete()</literal> çç¨éæ¯æä¸ä¸ªæä¹
å®ä¾åæç¬æ¶ï¼transientï¼å®ä¾ã "
#. Tag: para
#, no-c-format
-msgid ""
-"You can delete objects in any order, without risk of foreign key constraint "
-"violations. It is still possible to violate a <literal>NOT NULL</literal> "
-"constraint on a foreign key column by deleting objects in the wrong order, e."
-"g. if you delete the parent, but forget to delete the children."
-msgstr ""
-"ä½ å¯ä»¥ç¨ä½ å欢çä»»ä½é¡ºåºå é¤å¯¹è±¡ï¼ä¸ç¨æ
å¿å¤é®çº¦æå²çªãå½ç¶ï¼å¦æä½ æéäºé¡º"
-"åºï¼è¿æ¯æå¯è½å¼åå¨å¤é®å段å®ä¹ç <literal>NOT NULL</literal> 约æå²çªãä¾å¦"
-"ä½ å é¤äºç¶å¯¹è±¡ï¼ä½æ¯å¿è®°å é¤å
¶å对象ã"
+msgid "You can delete objects in any order, without risk of foreign key constraint violations. It is still possible to violate a <literal>NOT NULL</literal> constraint on a foreign key column by deleting objects in the wrong order, e.g. if you delete the parent, but forget to delete the children."
+msgstr "ä½ å¯ä»¥ç¨ä½ å欢çä»»ä½é¡ºåºå é¤å¯¹è±¡ï¼ä¸ç¨æ
å¿å¤é®çº¦æå²çªãå½ç¶ï¼å¦æä½ æéäºé¡ºåºï¼è¿æ¯æå¯è½å¼åå¨å¤é®å段å®ä¹ç <literal>NOT NULL</literal> 约æå²çªãä¾å¦ä½ å é¤äºç¶å¯¹è±¡ï¼ä½æ¯å¿è®°å é¤å
¶å对象ã"
#. Tag: title
#, no-c-format
@@ -1045,71 +527,38 @@
#. Tag: para
#, no-c-format
-msgid ""
-"It is sometimes useful to be able to take a graph of persistent instances "
-"and make them persistent in a different datastore, without regenerating "
-"identifier values."
-msgstr ""
-"å¶å°ä¼ç¨å°ä¸éæ°çææä¹
åæ è¯ï¼identifierï¼ï¼å°æä¹
å®ä¾ä»¥åå
¶å
³èçå®ä¾æä¹
"
-"å°ä¸åçæ°æ®åºä¸çæä½ã "
+msgid "It is sometimes useful to be able to take a graph of persistent instances and make them persistent in a different datastore, without regenerating identifier values."
+msgstr "å¶å°ä¼ç¨å°ä¸éæ°çææä¹
åæ è¯ï¼identifierï¼ï¼å°æä¹
å®ä¾ä»¥åå
¶å
³èçå®ä¾æä¹
å°ä¸åçæ°æ®åºä¸çæä½ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>ReplicationMode</literal> determines how <literal>replicate()</"
-"literal> will deal with conflicts with existing rows in the database:"
-msgstr ""
-"<literal>ReplicationMode</literal> å³å®å¨åæ°æ®åºä¸å·²åå¨è®°å½ç±å²çªæ¶ï¼"
-"<literal>replicate()</literal> å¦ä½å¤çã "
+msgid "The <literal>ReplicationMode</literal> determines how <literal>replicate()</literal> will deal with conflicts with existing rows in the database:"
+msgstr "<literal>ReplicationMode</literal> å³å®å¨åæ°æ®åºä¸å·²åå¨è®°å½ç±å²çªæ¶ï¼<literal>replicate()</literal> å¦ä½å¤çã "
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is "
-"an existing database row with the same identifier"
-msgstr ""
-"<literal>ReplicationMode.IGNORE</literal>ï¼å½æ个ç°ææ°æ®åºè®°å½å
·æç¸åæ è¯ç¬¦"
-"æ¶å¿½ç¥å®"
+msgid "<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is an existing database row with the same identifier"
+msgstr "<literal>ReplicationMode.IGNORE</literal>ï¼å½æ个ç°ææ°æ®åºè®°å½å
·æç¸åæ è¯ç¬¦æ¶å¿½ç¥å®"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
-"database row with the same identifier"
-msgstr ""
-"<literal>ReplicationMode.OVERWRITE</literal>ï¼ç¨ç¸åçæ è¯ç¬¦è¦çç°ææ°æ®åºè®°"
-"å½"
+msgid "<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing database row with the same identifier"
+msgstr "<literal>ReplicationMode.OVERWRITE</literal>ï¼ç¨ç¸åçæ è¯ç¬¦è¦çç°ææ°æ®åºè®°å½"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there "
-"is an existing database row with the same identifier"
-msgstr ""
-"<literal>ReplicationMode.EXCEPTION</literal>ï¼å½æ个ç°ææ°æ®åºè®°å½å
·æç¸åæ "
-"è¯ç¬¦æ¶æåºå¼å¸¸"
+msgid "<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there is an existing database row with the same identifier"
+msgstr "<literal>ReplicationMode.EXCEPTION</literal>ï¼å½æ个ç°ææ°æ®åºè®°å½å
·æç¸åæ è¯ç¬¦æ¶æåºå¼å¸¸"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>ReplicationMode.LATEST_VERSION</literal>: overwrites the row if its "
-"version number is earlier than the version number of the object, or ignore "
-"the object otherwise"
-msgstr ""
-"<literal>ReplicationMode.LATEST_VERSION</literal>ï¼å¦æå½åççæ¬è¾æ°ï¼åè¦"
-"çï¼å¦å忽ç¥"
+msgid "<literal>ReplicationMode.LATEST_VERSION</literal>: overwrites the row if its version number is earlier than the version number of the object, or ignore the object otherwise"
+msgstr "<literal>ReplicationMode.LATEST_VERSION</literal>ï¼å¦æå½åççæ¬è¾æ°ï¼åè¦çï¼å¦å忽ç¥"
#. Tag: para
#, no-c-format
-msgid ""
-"Usecases for this feature include reconciling data entered into different "
-"database instances, upgrading system configuration information during "
-"product upgrades, rolling back changes made during non-ACID transactions and "
-"more."
-msgstr ""
-"è¿ä¸ªåè½çç¨éå
æ¬ä½¿å½å
¥çæ°æ®å¨ä¸åæ°æ®åºä¸ä¸è´ï¼äº§åå级æ¶å级系ç»é
置信"
-"æ¯ï¼åæ» non-ACID äºå¡ä¸çä¿®æ¹ççãï¼è¯æ³¨ï¼non-ACIDï¼é ACID;ACIDï¼Atomicï¼"
-"Consistentï¼Isolated and Durable ç缩åï¼"
+msgid "Usecases for this feature include reconciling data entered into different database instances, upgrading system configuration information during product upgrades, rolling back changes made during non-ACID transactions and more."
+msgstr "è¿ä¸ªåè½çç¨éå
æ¬ä½¿å½å
¥çæ°æ®å¨ä¸åæ°æ®åºä¸ä¸è´ï¼äº§åå级æ¶å级系ç»é
置信æ¯ï¼åæ» non-ACID äºå¡ä¸çä¿®æ¹ççãï¼è¯æ³¨ï¼non-ACIDï¼é ACID;ACIDï¼Atomicï¼Consistentï¼Isolated and Durable ç缩åï¼"
#. Tag: title
#, no-c-format
@@ -1118,15 +567,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Sometimes the <literal>Session</literal> will execute the SQL statements "
-"needed to synchronize the JDBC connection's state with the state of objects "
-"held in memory. This process, called <emphasis>flush</emphasis>, occurs by "
-"default at the following points:"
-msgstr ""
-"æ¯é´éä¸æ®µæ¶é´ï¼<literal>Session</literal> ä¼æ§è¡ä¸äºå¿
éç SQL è¯å¥æ¥æå
å"
-"ä¸ç对象çç¶æåæ¥å° JDBC è¿æ¥ä¸ãè¿ä¸ªè¿ç¨è¢«ç§°ä¸º<emphasis>å·åºï¼flushï¼</"
-"emphasis>ï¼é»è®¤ä¼å¨ä¸é¢çæ¶é´ç¹æ§è¡ï¼ "
+msgid "Sometimes the <literal>Session</literal> will execute the SQL statements needed to synchronize the JDBC connection's state with the state of objects held in memory. This process, called <emphasis>flush</emphasis>, occurs by default at the following points:"
+msgstr "æ¯é´éä¸æ®µæ¶é´ï¼<literal>Session</literal> ä¼æ§è¡ä¸äºå¿
éç SQL è¯å¥æ¥æå
åä¸ç对象çç¶æåæ¥å° JDBC è¿æ¥ä¸ãè¿ä¸ªè¿ç¨è¢«ç§°ä¸º<emphasis>å·åºï¼flushï¼</emphasis>ï¼é»è®¤ä¼å¨ä¸é¢çæ¶é´ç¹æ§è¡ï¼ "
#. Tag: para
#, no-c-format
@@ -1150,12 +592,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"all entity insertions in the same order the corresponding objects were saved "
-"using <literal>Session.save()</literal>"
-msgstr ""
-"ææ对å®ä½è¿è¡æå
¥çè¯å¥ï¼å
¶é¡ºåºæç
§å¯¹è±¡æ§è¡ <literal>Session.save()</"
-"literal> çæ¶é´é¡ºåº "
+msgid "all entity insertions in the same order the corresponding objects were saved using <literal>Session.save()</literal>"
+msgstr "ææ对å®ä½è¿è¡æå
¥çè¯å¥ï¼å
¶é¡ºåºæç
§å¯¹è±¡æ§è¡ <literal>Session.save()</literal> çæ¶é´é¡ºåº "
#. Tag: para
#, no-c-format
@@ -1179,67 +617,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"all entity deletions in the same order the corresponding objects were "
-"deleted using <literal>Session.delete()</literal>"
-msgstr ""
-"ææ对å®ä½è¿è¡å é¤çè¯å¥ï¼å
¶é¡ºåºæç
§å¯¹è±¡æ§è¡ <literal>Session.delete()</"
-"literal> çæ¶é´é¡ºåº "
+msgid "all entity deletions in the same order the corresponding objects were deleted using <literal>Session.delete()</literal>"
+msgstr "ææ对å®ä½è¿è¡å é¤çè¯å¥ï¼å
¶é¡ºåºæç
§å¯¹è±¡æ§è¡ <literal>Session.delete()</literal> çæ¶é´é¡ºåº "
#. Tag: para
#, no-c-format
-msgid ""
-"An exception is that objects using <literal>native</literal> ID generation "
-"are inserted when they are saved."
-msgstr ""
-"æä¸ä¸ªä¾å¤æ¯ï¼å¦æå¯¹è±¡ä½¿ç¨ <literal>native</literal> æ¹å¼æ¥çæ IDï¼æä¹
åæ "
-"è¯ï¼çè¯ï¼å®ä»¬ä¸æ§è¡ save å°±ä¼è¢«æå
¥ã"
+msgid "An exception is that objects using <literal>native</literal> ID generation are inserted when they are saved."
+msgstr "æä¸ä¸ªä¾å¤æ¯ï¼å¦æå¯¹è±¡ä½¿ç¨ <literal>native</literal> æ¹å¼æ¥çæ IDï¼æä¹
åæ è¯ï¼çè¯ï¼å®ä»¬ä¸æ§è¡ save å°±ä¼è¢«æå
¥ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Except when you explicitly <literal>flush()</literal>, there are absolutely "
-"no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> "
-"executes the JDBC calls, only the <emphasis>order</emphasis> in which they "
-"are executed. However, Hibernate does guarantee that the <literal>Query.list"
-"(..)</literal> will never return stale or incorrect data."
-msgstr ""
-"é¤éä½ æç¡®å°ååºäº <literal>flush()</literal> æ令ï¼å
³äº Session<emphasis> ä½"
-"æ¶</emphasis>ä¼æ§è¡è¿äº JDBC è°ç¨æ¯å®å
¨æ æ³ä¿è¯çï¼åªè½ä¿è¯å®ä»¬æ§è¡çåå顺"
-"åºãå½ç¶ï¼Hibernate ä¿è¯ï¼<literal>Query.list(..)</literal> ç»å¯¹ä¸ä¼è¿åå·²ç»"
-"失æçæ°æ®ï¼ä¹ä¸ä¼è¿åé误æ°æ®ã "
+msgid "Except when you explicitly <literal>flush()</literal>, there are absolutely no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> executes the JDBC calls, only the <emphasis>order</emphasis> in which they are executed. However, Hibernate does guarantee that the <literal>Query.list(..)</literal> will never return stale or incorrect data."
+msgstr "é¤éä½ æç¡®å°ååºäº <literal>flush()</literal> æ令ï¼å
³äº Session<emphasis> ä½æ¶</emphasis>ä¼æ§è¡è¿äº JDBC è°ç¨æ¯å®å
¨æ æ³ä¿è¯çï¼åªè½ä¿è¯å®ä»¬æ§è¡çåå顺åºãå½ç¶ï¼Hibernate ä¿è¯ï¼<literal>Query.list(..)</literal> ç»å¯¹ä¸ä¼è¿åå·²ç»å¤±æçæ°æ®ï¼ä¹ä¸ä¼è¿åé误æ°æ®ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"It is possible to change the default behavior so that flush occurs less "
-"frequently. The <literal>FlushMode</literal> class defines three different "
-"modes: only flush at commit time when the Hibernate <literal>Transaction</"
-"literal> API is used, flush automatically using the explained routine, or "
-"never flush unless <literal>flush()</literal> is called explicitly. The last "
-"mode is useful for long running units of work, where a <literal>Session</"
-"literal> is kept open and disconnected for a long time (see <xref linkend="
-"\"transactions-optimistic-longsession\" />)."
-msgstr ""
-"ä¹å¯ä»¥æ¹åé»è®¤ç设置ï¼æ¥è®©å·åºï¼flushï¼æä½åççä¸é£ä¹é¢ç¹ã"
-"<literal>FlushMode</literal> ç±»å®ä¹äºä¸ç§ä¸åçæ¹å¼ãä»
å¨æ交æ¶å·åºï¼ä»
å½ "
-"Hibernate ç <literal>Transaction</literal> API 被使ç¨æ¶ææï¼ï¼æç
§åæ说ç"
-"æ¹å¼å·åºï¼ä»¥åé¤éæç¡®ä½¿ç¨ <literal>flush()</literal> å¦åä»ä¸å·åºã æåä¸ç§"
-"模å¼å¯¹äºé£äºéè¦é¿æ¶é´ä¿æ <literal>Session</literal> 为æå¼æè
æ线ç¶æçé¿"
-"æ¶é´è¿è¡çå·¥ä½åå
å¾æç¨ãï¼åè§ <xref linkend=\"transactions-optimistic-"
-"longsession\"/>ï¼ã "
+#, no-c-format
+msgid "It is possible to change the default behavior so that flush occurs less frequently. The <literal>FlushMode</literal> class defines three different modes: only flush at commit time when the Hibernate <literal>Transaction</literal> API is used, flush automatically using the explained routine, or never flush unless <literal>flush()</literal> is called explicitly. The last mode is useful for long running units of work, where a <literal>Session</literal> is kept open and disconnected for a long time (see <xref linkend=\"transactions-optimistic-longsession\" />)."
+msgstr "ä¹å¯ä»¥æ¹åé»è®¤ç设置ï¼æ¥è®©å·åºï¼flushï¼æä½åççä¸é£ä¹é¢ç¹ã<literal>FlushMode</literal> ç±»å®ä¹äºä¸ç§ä¸åçæ¹å¼ãä»
å¨æ交æ¶å·åºï¼ä»
å½ Hibernate ç <literal>Transaction</literal> API 被使ç¨æ¶ææï¼ï¼æç
§åæ说çæ¹å¼å·åºï¼ä»¥åé¤éæç¡®ä½¿ç¨ <literal>flush()</literal> å¦åä»ä¸å·åºã æåä¸ç§æ¨¡å¼å¯¹äºé£äºéè¦é¿æ¶é´ä¿æ <literal>Session</literal> 为æå¼æè
æ线ç¶æçé¿æ¶é´è¿è¡çå·¥ä½åå
å¾æç¨ãï¼åè§ <xref linkend=\"transactions-optimistic-longsession\"/>ï¼ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"During flush, an exception might occur (e.g. if a DML operation violates a "
-"constraint). Since handling exceptions involves some understanding of "
-"Hibernate's transactional behavior, we discuss it in <xref linkend="
-"\"transactions\" />."
-msgstr ""
-"å·åºï¼flushï¼æé´ï¼å¯è½ä¼æåºå¼å¸¸ï¼ä¾å¦ä¸ä¸ª DML æä½è¿åäºçº¦æï¼ãå¼å¸¸å¤çæ¶"
-"åå°å¯¹ Hibernate äºå¡æ§è¡ä¸ºçç解ï¼å æ¤æ们å°å¨ <xref linkend=\"transactions"
-"\"/> ä¸è®¨è®ºã"
+#, no-c-format
+msgid "During flush, an exception might occur (e.g. if a DML operation violates a constraint). Since handling exceptions involves some understanding of Hibernate's transactional behavior, we discuss it in <xref linkend=\"transactions\" />."
+msgstr "å·åºï¼flushï¼æé´ï¼å¯è½ä¼æåºå¼å¸¸ï¼ä¾å¦ä¸ä¸ª DML æä½è¿åäºçº¦æï¼ãå¼å¸¸å¤çæ¶åå°å¯¹ Hibernate äºå¡æ§è¡ä¸ºçç解ï¼å æ¤æ们å°å¨ <xref linkend=\"transactions\"/> ä¸è®¨è®ºã "
#. Tag: title
#, no-c-format
@@ -1248,67 +647,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"It is quite cumbersome to save, delete, or reattach individual objects, "
-"especially if you deal with a graph of associated objects. A common case is "
-"a parent/child relationship. Consider the following example:"
-msgstr ""
-"对æ¯ä¸ä¸ªå¯¹è±¡é½è¦æ§è¡ä¿åï¼å é¤æéå
³èæä½è®©äººæè§æç¹éº»ç¦ï¼å°¤å
¶æ¯å¨å¤ç许å¤"
-"å½¼æ¤å
³èç对象çæ¶åãä¸ä¸ªå¸¸è§çä¾åæ¯ç¶åå
³ç³»ãèèä¸é¢çä¾åï¼"
+msgid "It is quite cumbersome to save, delete, or reattach individual objects, especially if you deal with a graph of associated objects. A common case is a parent/child relationship. Consider the following example:"
+msgstr "对æ¯ä¸ä¸ªå¯¹è±¡é½è¦æ§è¡ä¿åï¼å é¤æéå
³èæä½è®©äººæè§æç¹éº»ç¦ï¼å°¤å
¶æ¯å¨å¤ç许å¤å½¼æ¤å
³èç对象çæ¶åãä¸ä¸ªå¸¸è§çä¾åæ¯ç¶åå
³ç³»ãèèä¸é¢çä¾åï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"If the children in a parent/child relationship would be value typed (e.g. a "
-"collection of addresses or strings), their life cycle would depend on the "
-"parent and no further action would be required for convenient \"cascading\" "
-"of state changes. When the parent is saved, the value-typed child objects "
-"are saved and when the parent is deleted, the children will be deleted, etc. "
-"This works for operations such as the removal of a child from the "
-"collection. Since value-typed objects cannot have shared references, "
-"Hibernate will detect this and delete the child from the database."
-msgstr ""
-"å¦æä¸ä¸ªç¶åå
³ç³»ä¸çå对象æ¯å¼ç±»åï¼value typedï¼ï¼ä¾å¦ï¼å°åæå符串çéåï¼"
-"çï¼ä»ä»¬ççå½å¨æä¼ä¾èµäºç¶å¯¹è±¡ï¼å¯ä»¥äº«åæ¹ä¾¿ç级èæä½ï¼Cascadingï¼ï¼ä¸éè¦"
-"é¢å¤çå¨ä½ãç¶å¯¹è±¡è¢«ä¿åæ¶ï¼è¿äºå¼ç±»åï¼value typedï¼å对象ä¹å°è¢«ä¿åï¼ç¶å¯¹è±¡"
-"被å é¤æ¶ï¼å对象ä¹å°è¢«å é¤ãè¿å¯¹å°ä¸ä¸ªå对象ä»éåä¸ç§»é¤æ¯åæ ·ææï¼"
-"Hibernate ä¼æ£æµå°ï¼å¹¶ä¸å 为å¼ç±»åï¼value typedï¼ç对象ä¸å¯è½è¢«å
¶ä»å¯¹è±¡å¼ç¨ï¼"
-"æ以 Hibernate ä¼å¨æ°æ®åºä¸å é¤è¿ä¸ªå对象ã "
+msgid "If the children in a parent/child relationship would be value typed (e.g. a collection of addresses or strings), their life cycle would depend on the parent and no further action would be required for convenient \"cascading\" of state changes. When the parent is saved, the value-typed child objects are saved and when the parent is deleted, the children will be deleted, etc. This works for operations such as the removal of a child from the collection. Since value-typed objects cannot have shared references, Hibernate will detect this and delete the child from the database."
+msgstr "å¦æä¸ä¸ªç¶åå
³ç³»ä¸çå对象æ¯å¼ç±»åï¼value typedï¼ï¼ä¾å¦ï¼å°åæå符串çéåï¼çï¼ä»ä»¬ççå½å¨æä¼ä¾èµäºç¶å¯¹è±¡ï¼å¯ä»¥äº«åæ¹ä¾¿ç级èæä½ï¼Cascadingï¼ï¼ä¸éè¦é¢å¤çå¨ä½ãç¶å¯¹è±¡è¢«ä¿åæ¶ï¼è¿äºå¼ç±»åï¼value typedï¼å对象ä¹å°è¢«ä¿åï¼ç¶å¯¹è±¡è¢«å é¤æ¶ï¼å对象ä¹å°è¢«å é¤ãè¿å¯¹å°ä¸ä¸ªå对象ä»éåä¸ç§»é¤æ¯åæ ·ææï¼Hibernate ä¼æ£æµå°ï¼å¹¶ä¸å 为å¼ç±»åï¼value typedï¼ç对象ä¸å¯è½è¢«å
¶ä»å¯¹è±¡å¼ç¨ï¼æ以 Hibernate ä¼å¨æ°æ®åºä¸å é¤è¿ä¸ªå对象ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Now consider the same scenario with parent and child objects being entities, "
-"not value-types (e.g. categories and items, or parent and child cats). "
-"Entities have their own life cycle and support shared references. Removing "
-"an entity from the collection does not mean it can be deleted), and there is "
-"by default no cascading of state from one entity to any other associated "
-"entities. Hibernate does not implement <emphasis>persistence by "
-"reachability</emphasis> by default."
-msgstr ""
-"ç°å¨èèåæ ·çåºæ¯ï¼ä¸è¿ç¶å对象é½æ¯å®ä½ï¼entitiesï¼ç±»åï¼èéå¼ç±»åï¼value "
-"typedï¼ï¼ä¾å¦ï¼ç±»å«ä¸ä¸ªä½ï¼ææ¯ç«åå°ç«ï¼ãå®ä½æèªå·±ççå½æï¼å
许å
±äº«å¯¹å
¶ç"
-"å¼ç¨ï¼å æ¤ä»éåä¸ç§»é¤ä¸ä¸ªå®ä½ï¼ä¸æå³çå®å¯ä»¥è¢«å é¤ï¼ï¼å¹¶ä¸å®ä½å°å
¶ä»å
³èå®"
-"ä½ä¹é´é»è®¤æ²¡æ级èæä½ç设置ã Hibernate é»è®¤ä¸å®ç°æè°ç<emphasis>å¯å°è¾¾å³æ"
-"ä¹
åï¼persistence by reachabilityï¼</emphasis>ççç¥ã "
+msgid "Now consider the same scenario with parent and child objects being entities, not value-types (e.g. categories and items, or parent and child cats). Entities have their own life cycle and support shared references. Removing an entity from the collection does not mean it can be deleted), and there is by default no cascading of state from one entity to any other associated entities. Hibernate does not implement <emphasis>persistence by reachability</emphasis> by default."
+msgstr "ç°å¨èèåæ ·çåºæ¯ï¼ä¸è¿ç¶å对象é½æ¯å®ä½ï¼entitiesï¼ç±»åï¼èéå¼ç±»åï¼value typedï¼ï¼ä¾å¦ï¼ç±»å«ä¸ä¸ªä½ï¼ææ¯ç«åå°ç«ï¼ãå®ä½æèªå·±ççå½æï¼å
许å
±äº«å¯¹å
¶çå¼ç¨ï¼å æ¤ä»éåä¸ç§»é¤ä¸ä¸ªå®ä½ï¼ä¸æå³çå®å¯ä»¥è¢«å é¤ï¼ï¼å¹¶ä¸å®ä½å°å
¶ä»å
³èå®ä½ä¹é´é»è®¤æ²¡æ级èæä½ç设置ã Hibernate é»è®¤ä¸å®ç°æè°ç<emphasis>å¯å°è¾¾å³æä¹
åï¼persistence by reachabilityï¼</emphasis>ççç¥ã "
#. Tag: para
#, no-c-format
-msgid ""
-"For each basic operation of the Hibernate session - including "
-"<literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), "
-"evict(), replicate()</literal> - there is a corresponding cascade style. "
-"Respectively, the cascade styles are named <literal>create, merge, save-"
-"update, delete, lock, refresh, evict, replicate</literal>. If you want an "
-"operation to be cascaded along an association, you must indicate that in the "
-"mapping document. For example:"
-msgstr ""
-"æ¯ä¸ª Hibernate session çåºæ¬æä½ â å
æ¬ <literal>persist(), merge(), "
-"saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> "
-"â é½æ对åºç级èé£æ ¼ï¼cascade styleï¼ãè¿äºçº§èé£æ ¼ï¼cascade styleï¼é£æ ¼åå«"
-"å½å为 <literal>create, merge, save-update, delete, lock, refresh, evict, "
-"replicate</literal>ãå¦æä½ å¸æä¸ä¸ªæä½è¢«é¡ºçå
³èå
³ç³»çº§èä¼ æï¼ä½ å¿
é¡»å¨æ å°æ"
-"件ä¸æåºè¿ä¸ç¹ãä¾å¦ï¼"
+msgid "For each basic operation of the Hibernate session - including <literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> - there is a corresponding cascade style. Respectively, the cascade styles are named <literal>create, merge, save-update, delete, lock, refresh, evict, replicate</literal>. If you want an operation to be cascaded along an association, you must indicate that in the mapping document. For example:"
+msgstr "æ¯ä¸ª Hibernate session çåºæ¬æä½ â å
æ¬ <literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> â é½æ对åºç级èé£æ ¼ï¼cascade styleï¼ãè¿äºçº§èé£æ ¼ï¼cascade styleï¼é£æ ¼åå«å½å为 <literal>create, merge, save-update, delete, lock, refresh, evict, replicate</literal>ãå¦æä½ å¸æä¸ä¸ªæä½è¢«é¡ºçå
³èå
³ç³»çº§èä¼ æï¼ä½ å¿
é¡»å¨æ å°æ件ä¸æåºè¿ä¸ç¹ãä¾å¦ï¼"
#. Tag: para
#, no-c-format
@@ -1317,27 +672,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can even use <literal>cascade=\"all\"</literal> to specify that "
-"<emphasis>all</emphasis> operations should be cascaded along the "
-"association. The default <literal>cascade=\"none\"</literal> specifies that "
-"no operations are to be cascaded."
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨ <literal>cascade=\"all\"</literal> æ¥æå®<emphasis>å
¨é¨</emphasis>"
-"æä½é½é¡ºçå
³èå
³ç³»çº§èï¼cascadedï¼ãé»è®¤å¼æ¯ <literal>cascade=\"none\"</"
-"literal>ï¼å³ä»»ä½æä½é½ä¸ä¼è¢«çº§èï¼cascadedï¼ã "
+msgid "You can even use <literal>cascade=\"all\"</literal> to specify that <emphasis>all</emphasis> operations should be cascaded along the association. The default <literal>cascade=\"none\"</literal> specifies that no operations are to be cascaded."
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>cascade=\"all\"</literal> æ¥æå®<emphasis>å
¨é¨</emphasis>æä½é½é¡ºçå
³èå
³ç³»çº§èï¼cascadedï¼ãé»è®¤å¼æ¯ <literal>cascade=\"none\"</literal>ï¼å³ä»»ä½æä½é½ä¸ä¼è¢«çº§èï¼cascadedï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"A special cascade style, <literal>delete-orphan</literal>, applies only to "
-"one-to-many associations, and indicates that the <literal>delete()</literal> "
-"operation should be applied to any child object that is removed from the "
-"association."
-msgstr ""
-"注ææä¸ä¸ªç¹æ®ç级èé£æ ¼ï¼cascade styleï¼ <literal>delete-orphan</literal>ï¼"
-"åªåºç¨äº one-to-many å
³èï¼è¡¨æ <literal>delete()</literal> æä½åºè¯¥è¢«åºç¨äº"
-"ææä»å
³èä¸å é¤ç对象ã"
+msgid "A special cascade style, <literal>delete-orphan</literal>, applies only to one-to-many associations, and indicates that the <literal>delete()</literal> operation should be applied to any child object that is removed from the association."
+msgstr "注ææä¸ä¸ªç¹æ®ç级èé£æ ¼ï¼cascade styleï¼ <literal>delete-orphan</literal>ï¼åªåºç¨äº one-to-many å
³èï¼è¡¨æ <literal>delete()</literal> æä½åºè¯¥è¢«åºç¨äºææä»å
³èä¸å é¤ç对象ã"
#. Tag: para
#, no-c-format
@@ -1346,144 +687,63 @@
#. Tag: para
#, no-c-format
-msgid ""
-"It does not usually make sense to enable cascade on a <literal><many-to-"
-"one></literal> or <literal><many-to-many></literal> association. "
-"Cascade is often useful for <literal><one-to-one></literal> and "
-"<literal><one-to-many></literal> associations."
-msgstr ""
-"éå¸¸å¨ <literal><many-to-one></literal> æ <literal><many-to-"
-"many></literal> å
³ç³»ä¸åºç¨çº§èï¼cascadeï¼æ²¡ä»ä¹æä¹ã级èï¼cascadeï¼é常"
-"å¨ <literal><one-to-one></literal> å <literal><one-to-many></"
-"literal> å
³ç³»ä¸æ¯è¾æç¨ã "
+msgid "It does not usually make sense to enable cascade on a <literal><many-to-one></literal> or <literal><many-to-many></literal> association. Cascade is often useful for <literal><one-to-one></literal> and <literal><one-to-many></literal> associations."
+msgstr "éå¸¸å¨ <literal><many-to-one></literal> æ <literal><many-to-many></literal> å
³ç³»ä¸åºç¨çº§èï¼cascadeï¼æ²¡ä»ä¹æä¹ã级èï¼cascadeï¼éå¸¸å¨ <literal><one-to-one></literal> å <literal><one-to-many></literal> å
³ç³»ä¸æ¯è¾æç¨ã "
#. Tag: para
#, no-c-format
-msgid ""
-"If the child object's lifespan is bounded by the lifespan of the parent "
-"object, make it a <emphasis>life cycle object</emphasis> by specifying "
-"<literal>cascade=\"all,delete-orphan\"</literal>."
-msgstr ""
-"å¦æå对象ç寿å½éå®å¨ç¶äº²å¯¹è±¡ç寿å½ä¹å
ï¼å¯éè¿æå® <literal>cascade=\"all,"
-"delete-orphan\"</literal> å°å
¶å为<emphasis>èªå¨çå½å¨æ管çç对象"
-"ï¼lifecycle objectï¼</emphasis>ã "
+msgid "If the child object's lifespan is bounded by the lifespan of the parent object, make it a <emphasis>life cycle object</emphasis> by specifying <literal>cascade=\"all,delete-orphan\"</literal>."
+msgstr "å¦æå对象ç寿å½éå®å¨ç¶äº²å¯¹è±¡ç寿å½ä¹å
ï¼å¯éè¿æå® <literal>cascade=\"all,delete-orphan\"</literal> å°å
¶å为<emphasis>èªå¨çå½å¨æ管çç对象ï¼lifecycle objectï¼</emphasis>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Otherwise, you might not need cascade at all. But if you think that you will "
-"often be working with the parent and children together in the same "
-"transaction, and you want to save yourself some typing, consider using "
-"<literal>cascade=\"persist,merge,save-update\"</literal>."
-msgstr ""
-"å
¶ä»æ
åµï¼ä½ å¯æ ¹æ¬ä¸éè¦çº§èï¼cascadeï¼ãä½æ¯å¦æä½ è®¤ä¸ºä½ ä¼ç»å¸¸å¨æ个äºå¡ä¸å"
-"æ¶ç¨å°ç¶å¯¹è±¡ä¸å对象ï¼å¹¶ä¸ä½ å¸æå°æç¹å¿åï¼å¯ä»¥èèä½¿ç¨ <literal>cascade="
-"\"persist,merge,save-update\"</literal>ã"
+msgid "Otherwise, you might not need cascade at all. But if you think that you will often be working with the parent and children together in the same transaction, and you want to save yourself some typing, consider using <literal>cascade=\"persist,merge,save-update\"</literal>."
+msgstr "å
¶ä»æ
åµï¼ä½ å¯æ ¹æ¬ä¸éè¦çº§èï¼cascadeï¼ãä½æ¯å¦æä½ è®¤ä¸ºä½ ä¼ç»å¸¸å¨æ个äºå¡ä¸åæ¶ç¨å°ç¶å¯¹è±¡ä¸å对象ï¼å¹¶ä¸ä½ å¸æå°æç¹å¿åï¼å¯ä»¥èèä½¿ç¨ <literal>cascade=\"persist,merge,save-update\"</literal>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Mapping an association (either a single valued association, or a collection) "
-"with <literal>cascade=\"all\"</literal> marks the association as a "
-"<emphasis>parent/child</emphasis> style relationship where save/update/"
-"delete of the parent results in save/update/delete of the child or children."
-msgstr ""
-"å¯ä»¥ä½¿ç¨ <literal>cascade=\"all\"</literal> å°ä¸ä¸ªå
³èå
³ç³»ï¼æ 论æ¯å¯¹å¼å¯¹è±¡ç"
-"å
³èï¼æè
对ä¸ä¸ªéåçå
³èï¼æ 记为<emphasis>ç¶/å</emphasis>å
³ç³»çå
³èã è¿æ ·"
-"对ç¶å¯¹è±¡è¿è¡ save/update/delete æä½å°±ä¼å¯¼è´å对象ä¹è¿è¡ save/update/delete "
-"æä½ã"
+msgid "Mapping an association (either a single valued association, or a collection) with <literal>cascade=\"all\"</literal> marks the association as a <emphasis>parent/child</emphasis> style relationship where save/update/delete of the parent results in save/update/delete of the child or children."
+msgstr "å¯ä»¥ä½¿ç¨ <literal>cascade=\"all\"</literal> å°ä¸ä¸ªå
³èå
³ç³»ï¼æ 论æ¯å¯¹å¼å¯¹è±¡çå
³èï¼æè
对ä¸ä¸ªéåçå
³èï¼æ 记为<emphasis>ç¶/å</emphasis>å
³ç³»çå
³èã è¿æ ·å¯¹ç¶å¯¹è±¡è¿è¡ save/update/delete æä½å°±ä¼å¯¼è´å对象ä¹è¿è¡ save/update/delete æä½ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Furthermore, a mere reference to a child from a persistent parent will "
-"result in save/update of the child. This metaphor is incomplete, however. A "
-"child which becomes unreferenced by its parent is <emphasis>not</emphasis> "
-"automatically deleted, except in the case of a <literal><one-to-many></"
-"literal> association mapped with <literal>cascade=\"delete-orphan\"</"
-"literal>. The precise semantics of cascading operations for a parent/child "
-"relationship are as follows:"
-msgstr ""
-"æ¤å¤ï¼ä¸ä¸ªæä¹
çç¶å¯¹è±¡å¯¹å对象çæµ
å¼ç¨ï¼mere referenceï¼ä¼å¯¼è´å对象被åæ¥ "
-"save/updateãä¸è¿ï¼è¿ä¸ªéå»ï¼metaphorï¼ç说æ³å¹¶ä¸å®æ´ãé¤éå
³èæ¯ "
-"<literal><one-to-many></literal> å
³è并ä¸è¢«æ 记为 <literal>cascade="
-"\"delete-orphan\"</literal>ï¼å¦åç¶å¯¹è±¡å¤±å»å¯¹æ个å对象çå¼ç¨<emphasis>ä¸ä¼</"
-"emphasis>导è´è¯¥å对象被èªå¨å é¤ãç¶åå
³ç³»ç级èï¼cascadingï¼æä½åç¡®è¯ä¹å¦"
-"ä¸ï¼ "
+msgid "Furthermore, a mere reference to a child from a persistent parent will result in save/update of the child. This metaphor is incomplete, however. A child which becomes unreferenced by its parent is <emphasis>not</emphasis> automatically deleted, except in the case of a <literal><one-to-many></literal> association mapped with <literal>cascade=\"delete-orphan\"</literal>. The precise semantics of cascading operations for a parent/child relationship are as follows:"
+msgstr "æ¤å¤ï¼ä¸ä¸ªæä¹
çç¶å¯¹è±¡å¯¹å对象çæµ
å¼ç¨ï¼mere referenceï¼ä¼å¯¼è´å对象被åæ¥ save/updateãä¸è¿ï¼è¿ä¸ªéå»ï¼metaphorï¼ç说æ³å¹¶ä¸å®æ´ãé¤éå
³èæ¯ <literal><one-to-many></literal> å
³è并ä¸è¢«æ 记为 <literal>cascade=\"delete-orphan\"</literal>ï¼å¦åç¶å¯¹è±¡å¤±å»å¯¹æ个å对象çå¼ç¨<emphasis>ä¸ä¼</emphasis>导è´è¯¥å对象被èªå¨å é¤ãç¶åå
³ç³»ç级èï¼cascadingï¼æä½åç¡®è¯ä¹å¦ä¸ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"If a parent is passed to <literal>persist()</literal>, all children are "
-"passed to <literal>persist()</literal>"
-msgstr ""
-"å¦æç¶å¯¹è±¡è¢« <literal>persist()</literal>ï¼é£ä¹ææå对象ä¹ä¼è¢« "
-"<literal>persist()</literal>"
+msgid "If a parent is passed to <literal>persist()</literal>, all children are passed to <literal>persist()</literal>"
+msgstr "å¦æç¶å¯¹è±¡è¢« <literal>persist()</literal>ï¼é£ä¹ææå对象ä¹ä¼è¢« <literal>persist()</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"If a parent is passed to <literal>merge()</literal>, all children are passed "
-"to <literal>merge()</literal>"
-msgstr ""
-"å¦æç¶å¯¹è±¡è¢« <literal>merge()</literal>ï¼é£ä¹ææå对象ä¹ä¼è¢« <literal>merge"
-"()</literal>"
+msgid "If a parent is passed to <literal>merge()</literal>, all children are passed to <literal>merge()</literal>"
+msgstr "å¦æç¶å¯¹è±¡è¢« <literal>merge()</literal>ï¼é£ä¹ææå对象ä¹ä¼è¢« <literal>merge()</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"If a parent is passed to <literal>save()</literal>, <literal>update()</"
-"literal> or <literal>saveOrUpdate()</literal>, all children are passed to "
-"<literal>saveOrUpdate()</literal>"
-msgstr ""
-"å¦æç¶å¯¹è±¡è¢« <literal>save()</literal>ï¼<literal>update()</literal> æ "
-"<literal>saveOrUpdate()</literal>ï¼é£ä¹ææå对象åä¼è¢« <literal>saveOrUpdate"
-"()</literal>"
+msgid "If a parent is passed to <literal>save()</literal>, <literal>update()</literal> or <literal>saveOrUpdate()</literal>, all children are passed to <literal>saveOrUpdate()</literal>"
+msgstr "å¦æç¶å¯¹è±¡è¢« <literal>save()</literal>ï¼<literal>update()</literal> æ <literal>saveOrUpdate()</literal>ï¼é£ä¹ææå对象åä¼è¢« <literal>saveOrUpdate()</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"If a transient or detached child becomes referenced by a persistent parent, "
-"it is passed to <literal>saveOrUpdate()</literal>"
-msgstr ""
-"å¦ææ个æä¹
çç¶å¯¹è±¡å¼ç¨äºç¬æ¶ï¼transientï¼æè
è±ç®¡ï¼detachedï¼çå对象ï¼é£ä¹"
-"å对象å°ä¼è¢« <literal>saveOrUpdate()</literal>"
+msgid "If a transient or detached child becomes referenced by a persistent parent, it is passed to <literal>saveOrUpdate()</literal>"
+msgstr "å¦ææ个æä¹
çç¶å¯¹è±¡å¼ç¨äºç¬æ¶ï¼transientï¼æè
è±ç®¡ï¼detachedï¼çå对象ï¼é£ä¹å对象å°ä¼è¢« <literal>saveOrUpdate()</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"If a parent is deleted, all children are passed to <literal>delete()</"
-"literal>"
+msgid "If a parent is deleted, all children are passed to <literal>delete()</literal>"
msgstr "å¦æç¶å¯¹è±¡è¢«å é¤ï¼é£ä¹ææå对象ä¹ä¼è¢« <literal>delete()</literal>"
#. Tag: para
#, no-c-format
-msgid ""
-"If a child is dereferenced by a persistent parent, <emphasis>nothing special "
-"happens</emphasis> - the application should explicitly delete the child if "
-"necessary - unless <literal>cascade=\"delete-orphan\"</literal>, in which "
-"case the \"orphaned\" child is deleted."
-msgstr ""
-"é¤é被æ 记为 <literal>cascade=\"delete-orphan\"</literal>ï¼å é¤âå¤å¿â模å¼ï¼æ¤"
-"æ¶ä¸è¢«ä»»ä½ä¸ä¸ªç¶å¯¹è±¡å¼ç¨çå对象ä¼è¢«å é¤ï¼ï¼å¦åå对象失æç¶å¯¹è±¡å¯¹å
¶çå¼ç¨"
-"æ¶ï¼<emphasis>ä»ä¹äºä¹ä¸ä¼åç</emphasis>ãå¦ææç¹æ®éè¦ï¼åºç¨ç¨åºå¯éè¿æ¾å¼"
-"è°ç¨ delete() å é¤å对象ã"
+msgid "If a child is dereferenced by a persistent parent, <emphasis>nothing special happens</emphasis> - the application should explicitly delete the child if necessary - unless <literal>cascade=\"delete-orphan\"</literal>, in which case the \"orphaned\" child is deleted."
+msgstr "é¤é被æ 记为 <literal>cascade=\"delete-orphan\"</literal>ï¼å é¤âå¤å¿â模å¼ï¼æ¤æ¶ä¸è¢«ä»»ä½ä¸ä¸ªç¶å¯¹è±¡å¼ç¨çå对象ä¼è¢«å é¤ï¼ï¼å¦åå对象失æç¶å¯¹è±¡å¯¹å
¶çå¼ç¨æ¶ï¼<emphasis>ä»ä¹äºä¹ä¸ä¼åç</emphasis>ãå¦ææç¹æ®éè¦ï¼åºç¨ç¨åºå¯éè¿æ¾å¼è°ç¨ delete() å é¤å对象ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Finally, note that cascading of operations can be applied to an object graph "
-"at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All "
-"operations, if enabled, are cascaded to associated entities reachable when "
-"the operation is executed. However, <literal>save-update</literal> and "
-"<literal>delete-orphan</literal> are transitive for all associated entities "
-"reachable during flush of the <literal>Session</literal>."
-msgstr ""
-"æåï¼æ³¨ææä½ç级èå¯è½æ¯å¨<emphasis>è°ç¨æï¼call timeï¼</emphasis>æè
"
-"<emphasis>åå
¥æï¼flush timeï¼</emphasis>ä½ç¨å°å¯¹è±¡å¾ä¸çãææçæä½ï¼å¦æå
"
-"许ï¼é½å¨æä½è¢«æ§è¡çæ¶å级èå°å¯è§¦åçå
³èå®ä½ä¸ãç¶èï¼<literal>save-upate</"
-"literal> å <literal>delete-orphan</literal> æ¯å¨<literal>Session</literal> "
-"flush çæ¶åæä½ç¨å°ææå¯è§¦åç被å
³è对象ä¸çã "
+msgid "Finally, note that cascading of operations can be applied to an object graph at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All operations, if enabled, are cascaded to associated entities reachable when the operation is executed. However, <literal>save-update</literal> and <literal>delete-orphan</literal> are transitive for all associated entities reachable during flush of the <literal>Session</literal>."
+msgstr "æåï¼æ³¨ææä½ç级èå¯è½æ¯å¨<emphasis>è°ç¨æï¼call timeï¼</emphasis>æè
<emphasis>åå
¥æï¼flush timeï¼</emphasis>ä½ç¨å°å¯¹è±¡å¾ä¸çãææçæä½ï¼å¦æå
许ï¼é½å¨æä½è¢«æ§è¡çæ¶å级èå°å¯è§¦åçå
³èå®ä½ä¸ãç¶èï¼<literal>save-upate</literal> å <literal>delete-orphan</literal> æ¯å¨<literal>Session</literal> flush çæ¶åæä½ç¨å°ææå¯è§¦åç被å
³è对象ä¸çã "
#. Tag: title
#, no-c-format
@@ -1492,32 +752,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate requires a rich meta-level model of all entity and value types. "
-"This model can be useful to the application itself. For example, the "
-"application might use Hibernate's metadata to implement a \"smart\" deep-"
-"copy algorithm that understands which objects should be copied (eg. mutable "
-"value types) and which objects that should not (e.g. immutable value types "
-"and, possibly, associated entities)."
-msgstr ""
-"Hibernate ä¸æä¸ä¸ªé常丰å¯çå
级å«ï¼meta-levelï¼ç模åï¼å«æææçå®ä½åå¼ç±»"
-"åæ°æ®çå
æ°æ®ã ææ¶è¿ä¸ªæ¨¡å对åºç¨ç¨åºæ¬èº«ä¹ä¼é常æç¨ãæ¯å¦è¯´ï¼åºç¨ç¨åºå¯è½"
-"å¨å®ç°ä¸ç§âæºè½âç深度æ·è´ç®æ³æ¶ï¼éè¿ä½¿ç¨ Hibernate çå
æ°æ®æ¥äºè§£åªäºå¯¹è±¡åº"
-"该被æ·è´ï¼æ¯å¦ï¼å¯åçå¼ç±»åæ°æ®ï¼ï¼é£äºä¸åºè¯¥ï¼ä¸å¯åçå¼ç±»åæ°æ®ï¼ä¹è®¸è¿æ"
-"æäºè¢«å
³èçå®ä½ï¼ã "
+msgid "Hibernate requires a rich meta-level model of all entity and value types. This model can be useful to the application itself. For example, the application might use Hibernate's metadata to implement a \"smart\" deep-copy algorithm that understands which objects should be copied (eg. mutable value types) and which objects that should not (e.g. immutable value types and, possibly, associated entities)."
+msgstr "Hibernate ä¸æä¸ä¸ªé常丰å¯çå
级å«ï¼meta-levelï¼ç模åï¼å«æææçå®ä½åå¼ç±»åæ°æ®çå
æ°æ®ã ææ¶è¿ä¸ªæ¨¡å对åºç¨ç¨åºæ¬èº«ä¹ä¼é常æç¨ãæ¯å¦è¯´ï¼åºç¨ç¨åºå¯è½å¨å®ç°ä¸ç§âæºè½âç深度æ·è´ç®æ³æ¶ï¼éè¿ä½¿ç¨ Hibernate çå
æ°æ®æ¥äºè§£åªäºå¯¹è±¡åºè¯¥è¢«æ·è´ï¼æ¯å¦ï¼å¯åçå¼ç±»åæ°æ®ï¼ï¼é£äºä¸åºè¯¥ï¼ä¸å¯åçå¼ç±»åæ°æ®ï¼ä¹è®¸è¿ææäºè¢«å
³èçå®ä½ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate exposes metadata via the <literal>ClassMetadata</literal> and "
-"<literal>CollectionMetadata</literal> interfaces and the <literal>Type</"
-"literal> hierarchy. Instances of the metadata interfaces can be obtained "
-"from the <literal>SessionFactory</literal>."
-msgstr ""
-"Hibernate æä¾äº <literal>ClassMetadata</literal> æ¥å£ï¼"
-"<literal>CollectionMetadata</literal> æ¥å£å <literal>Type</literal> å±æ¬¡ä½ç³»"
-"æ¥è®¿é®å
æ°æ®ãå¯ä»¥éè¿ <literal>SessionFactory</literal> è·åå
æ°æ®æ¥å£çå®"
-"ä¾ã "
+msgid "Hibernate exposes metadata via the <literal>ClassMetadata</literal> and <literal>CollectionMetadata</literal> interfaces and the <literal>Type</literal> hierarchy. Instances of the metadata interfaces can be obtained from the <literal>SessionFactory</literal>."
+msgstr "Hibernate æä¾äº <literal>ClassMetadata</literal> æ¥å£ï¼<literal>CollectionMetadata</literal> æ¥å£å <literal>Type</literal> å±æ¬¡ä½ç³»æ¥è®¿é®å
æ°æ®ãå¯ä»¥éè¿ <literal>SessionFactory</literal> è·åå
æ°æ®æ¥å£çå®ä¾ã "
#~ msgid ""
#~ "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
@@ -1531,7 +772,6 @@
#~ "fritz.setSex('M');\n"
#~ "fritz.setName(\"Fritz\");\n"
#~ "Long generatedId = (Long) sess.save(fritz);]]>"
-
#~ msgid ""
#~ "<![CDATA[DomesticCat pk = new DomesticCat();\n"
#~ "pk.setColor(Color.TABBY);\n"
@@ -1548,10 +788,8 @@
#~ "pk.setKittens( new HashSet() );\n"
#~ "pk.addKitten(fritz);\n"
#~ "sess.save( pk, new Long(1234) );]]>"
-
#~ msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
#~ msgstr "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
-
#~ msgid ""
#~ "<![CDATA[// you need to wrap primitive identifiers\n"
#~ "long id = 1234;\n"
@@ -1562,7 +800,6 @@
#~ "long id = 1234;\n"
#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
#~ "(id) );]]>"
-
#~ msgid ""
#~ "<![CDATA[Cat cat = new DomesticCat();\n"
#~ "// load pk's state into cat\n"
@@ -1573,7 +810,6 @@
#~ "// load pk's state into cat\n"
#~ "sess.load( cat, new Long(pkId) );\n"
#~ "Set kittens = cat.getKittens();]]>"
-
#~ msgid ""
#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
#~ "if (cat==null) {\n"
@@ -1588,12 +824,10 @@
#~ " sess.save(cat, id);\n"
#~ "}\n"
#~ "return cat;]]>"
-
#~ msgid ""
#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
#~ msgstr ""
#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
-
#~ msgid ""
#~ "<![CDATA[sess.save(cat);\n"
#~ "sess.flush(); //force the SQL INSERT\n"
@@ -1602,7 +836,6 @@
#~ "<![CDATA[sess.save(cat);\n"
#~ "sess.flush(); //force the SQL INSERT\n"
#~ "sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
-
#~ msgid ""
#~ "<![CDATA[List cats = session.createQuery(\n"
#~ " \"from Cat as cat where cat.birthdate < ?\")\n"
@@ -1655,7 +888,6 @@
#~ " \"select mother from Cat as mother left join fetch mother.kittens"
#~ "\");\n"
#~ "Set uniqueMothers = new HashSet(mothersWithKittens.list());]]>"
-
#~ msgid ""
#~ "<![CDATA[// fetch ids\n"
#~ "Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\")."
@@ -1684,7 +916,6 @@
#~ " break;\n"
#~ " }\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
#~ " \"select kitten, mother from Cat kitten join kitten.mother "
@@ -1711,7 +942,6 @@
#~ " Cat mother = (Cat) tuple[1];\n"
#~ " ....\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[Iterator results = sess.createQuery(\n"
#~ " \"select cat.color, min(cat.birthdate), count(cat) from Cat cat "
@@ -1742,7 +972,6 @@
#~ " Integer count = (Integer) row[2];\n"
#~ " .....\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[//named parameter (preferred)\n"
#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
@@ -1755,7 +984,6 @@
#~ "\");\n"
#~ "q.setString(\"name\", \"Fritz\");\n"
#~ "Iterator cats = q.iterate();]]>"
-
#~ msgid ""
#~ "<![CDATA[//positional parameter\n"
#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
@@ -1766,7 +994,6 @@
#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
#~ "q.setString(0, \"Izi\");\n"
#~ "Iterator cats = q.iterate();]]>"
-
#~ msgid ""
#~ "<![CDATA[//named parameter list\n"
#~ "List names = new ArrayList();\n"
@@ -1785,7 +1012,6 @@
#~ "namesList)\");\n"
#~ "q.setParameterList(\"namesList\", names);\n"
#~ "List cats = q.list();]]>"
-
#~ msgid ""
#~ "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
#~ "q.setFirstResult(20);\n"
@@ -1796,7 +1022,6 @@
#~ "q.setFirstResult(20);\n"
#~ "q.setMaxResults(10);\n"
#~ "List cats = q.list();]]>"
-
#~ msgid ""
#~ "<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from "
#~ "DomesticCat cat \" +\n"
@@ -1847,7 +1072,6 @@
#~ "\n"
#~ "}\n"
#~ "cats.close()]]>"
-
#~ msgid ""
#~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
#~ " from eg.DomesticCat as cat\n"
@@ -1860,7 +1084,6 @@
#~ " where cat.name = ?\n"
#~ " and cat.weight > ?\n"
#~ "] ]></query>]]>"
-
#~ msgid ""
#~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
#~ "q.setString(0, name);\n"
@@ -1871,7 +1094,6 @@
#~ "q.setString(0, name);\n"
#~ "q.setInt(1, minWeight);\n"
#~ "List cats = q.list();]]>"
-
#~ msgid ""
#~ "<![CDATA[Collection blackKittens = session.createFilter(\n"
#~ " pk.getKittens(), \n"
@@ -1886,7 +1108,6 @@
#~ " .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
#~ " .list()\n"
#~ ");]]>"
-
#~ msgid ""
#~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
#~ " pk.getKittens(), \n"
@@ -1897,7 +1118,6 @@
#~ " pk.getKittens(), \n"
#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
#~ " .list();]]>"
-
#~ msgid ""
#~ "<![CDATA[Collection tenKittens = session.createFilter(\n"
#~ " mother.getKittens(), \"\")\n"
@@ -1908,7 +1128,6 @@
#~ " mother.getKittens(), \"\")\n"
#~ " .setFirstResult(0).setMaxResults(10)\n"
#~ " .list();]]>"
-
#~ msgid ""
#~ "<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
#~ "crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
@@ -1919,7 +1138,6 @@
#~ "crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
#~ "crit.setMaxResults(10);\n"
#~ "List cats = crit.list();]]>"
-
#~ msgid ""
#~ "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT "
#~ "{cat} WHERE ROWNUM<10\")\n"
@@ -1930,7 +1148,6 @@
#~ "{cat} WHERE ROWNUM<10\")\n"
#~ " .addEntity(\"cat\", Cat.class)\n"
#~ ".list();]]>"
-
#~ msgid ""
#~ "<![CDATA[List cats = session.createSQLQuery(\n"
#~ " \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +\n"
@@ -1947,7 +1164,6 @@
#~ " \"FROM CAT {cat} WHERE ROWNUM<10\")\n"
#~ " .addEntity(\"cat\", Cat.class)\n"
#~ ".list()]]>"
-
#~ msgid ""
#~ "<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long"
#~ "(69) );\n"
@@ -1960,7 +1176,6 @@
#~ "cat.setName(\"PK\");\n"
#~ "sess.flush(); // changes to cat are automatically detected and "
#~ "persisted]]>"
-
#~ msgid ""
#~ "<![CDATA[// in the first session\n"
#~ "Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
@@ -1985,7 +1200,6 @@
#~ "// later, in a new session\n"
#~ "secondSession.update(cat); // update cat\n"
#~ "secondSession.update(mate); // update mate]]>"
-
#~ msgid ""
#~ "<![CDATA[//just reassociate:\n"
#~ "sess.lock(fritz, LockMode.NONE);\n"
@@ -2000,7 +1214,6 @@
#~ "sess.lock(izi, LockMode.READ);\n"
#~ "//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
#~ "sess.lock(pk, LockMode.UPGRADE);]]>"
-
#~ msgid ""
#~ "<![CDATA[// in the first session\n"
#~ "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
@@ -2027,10 +1240,8 @@
#~ "non-null id)\n"
#~ "secondSession.saveOrUpdate(mate); // save the new instance (mate has a "
#~ "null id)]]>"
-
#~ msgid "<![CDATA[sess.delete(cat);]]>"
#~ msgstr "<![CDATA[sess.delete(cat);]]>"
-
#~ msgid ""
#~ "<![CDATA[//retrieve a cat from one database\n"
#~ "Session session1 = factory1.openSession();\n"
@@ -2059,7 +1270,6 @@
#~ "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
#~ "tx2.commit();\n"
#~ "session2.close();]]>"
-
#~ msgid ""
#~ "<![CDATA[sess = sf.openSession();\n"
#~ "Transaction tx = sess.beginTransaction();\n"
@@ -2092,15 +1302,12 @@
#~ "...\n"
#~ "tx.commit(); // flush occurs\n"
#~ "sess.close();]]>"
-
#~ msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
#~ msgstr "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
-
#~ msgid ""
#~ "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
#~ msgstr ""
#~ "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
-
#~ msgid ""
#~ "<![CDATA[Cat fritz = ......;\n"
#~ "ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
@@ -2133,3 +1340,4 @@
#~ " namedValues.put( propertyNames[i], propertyValues[i] );\n"
#~ " }\n"
#~ "}]]>"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:16\n"
-"PO-Revision-Date: 2009-12-04 15:04+1000\n"
+"PO-Revision-Date: 2010-03-16 10:12+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,80 +21,38 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Roundtrip engineering with Hibernate is possible using a set of Eclipse "
-"plugins, commandline tools, and Ant tasks."
-msgstr ""
-"å¯ä»¥éè¿ä¸ç³»å Eclipse æ件ãå½ä»¤è¡å·¥å
·å Ant ä»»å¡æ¥è¿è¡ä¸ Hibernate å
³èç转"
-"æ¢ã "
+msgid "Roundtrip engineering with Hibernate is possible using a set of Eclipse plugins, commandline tools, and Ant tasks."
+msgstr "å¯ä»¥éè¿ä¸ç³»å Eclipse æ件ãå½ä»¤è¡å·¥å
·å Ant ä»»å¡æ¥è¿è¡ä¸ Hibernate å
³èç转æ¢ã "
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Hibernate Tools</emphasis> currently include plugins for the "
-"Eclipse IDE as well as Ant tasks for reverse engineering of existing "
-"databases:"
-msgstr ""
-"é¤äº Ant ä»»å¡å¤ï¼å½åç <emphasis>Hibernate Tools</emphasis> ä¹å
å«äº "
-"Eclipse IDE çæ件ï¼ç¨äºä¸ç°åæ°æ®åºçéåå·¥ç¨ã "
+msgid "<emphasis>Hibernate Tools</emphasis> currently include plugins for the Eclipse IDE as well as Ant tasks for reverse engineering of existing databases:"
+msgstr "é¤äº Ant ä»»å¡å¤ï¼å½åç <emphasis>Hibernate Tools</emphasis> ä¹å
å«äº Eclipse IDE çæ件ï¼ç¨äºä¸ç°åæ°æ®åºçéåå·¥ç¨ã "
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping "
-"files that supports auto-completion and syntax highlighting. It also "
-"supports semantic auto-completion for class names and property/field names, "
-"making it more versatile than a normal XML editor."
-msgstr ""
-"<emphasis>Mapping Editor:</emphasis> Hibernate XML æ å°æ件çç¼è¾å¨ï¼æ¯æèªå¨"
-"å®æåè¯æ³é«äº®ãå®ä¹æ¯æ对类ååå±æ§/å段åçè¯ä¹èªå¨å®æï¼æ¯é常ç XML ç¼è¾"
-"å¨æ¹ä¾¿å¾å¤ã "
+msgid "<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping files that supports auto-completion and syntax highlighting. It also supports semantic auto-completion for class names and property/field names, making it more versatile than a normal XML editor."
+msgstr "<emphasis>Mapping Editor:</emphasis> Hibernate XML æ å°æ件çç¼è¾å¨ï¼æ¯æèªå¨å®æåè¯æ³é«äº®ãå®ä¹æ¯æ对类ååå±æ§/å段åçè¯ä¹èªå¨å®æï¼æ¯é常ç XML ç¼è¾å¨æ¹ä¾¿å¾å¤ã "
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Console:</emphasis> the console is a new view in Eclipse. In "
-"addition to a tree overview of your console configurations, you are also "
-"provided with an interactive view of your persistent classes and their "
-"relationships. The console allows you to execute HQL queries against your "
-"database and browse the result directly in Eclipse."
-msgstr ""
-"<emphasis>Console:</emphasis> Console æ¯ Eclipse çä¸ä¸ªæ°è§å¾ãé¤äºå¯¹ä½ ç "
-"console é
ç½®çæ ç¶æ¦è§ï¼ä½ è¿å¯ä»¥è·å¾å¯¹ä½ æä¹
åç±»åå
¶å
³èç交äºå¼è§å¾ã"
-"Console å
è®¸ä½ å¯¹æ°æ®åºæ§è¡ HQL æ¥è¯¢ï¼å¹¶ç´æ¥å¨ Eclipse ä¸æµè§ç»æã "
+msgid "<emphasis>Console:</emphasis> the console is a new view in Eclipse. In addition to a tree overview of your console configurations, you are also provided with an interactive view of your persistent classes and their relationships. The console allows you to execute HQL queries against your database and browse the result directly in Eclipse."
+msgstr "<emphasis>Console:</emphasis> Console æ¯ Eclipse çä¸ä¸ªæ°è§å¾ãé¤äºå¯¹ä½ ç console é
ç½®çæ ç¶æ¦è§ï¼ä½ è¿å¯ä»¥è·å¾å¯¹ä½ æä¹
åç±»åå
¶å
³èç交äºå¼è§å¾ãConsole å
è®¸ä½ å¯¹æ°æ®åºæ§è¡ HQL æ¥è¯¢ï¼å¹¶ç´æ¥å¨ Eclipse ä¸æµè§ç»æã "
#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>Development Wizards:</emphasis> several wizards are provided with "
-"the Hibernate Eclipse tools. You can use a wizard to quickly generate "
-"Hibernate configuration (cfg.xml) files, or to reverse engineer an existing "
-"database schema into POJO source files and Hibernate mapping files. The "
-"reverse engineering wizard supports customizable templates."
-msgstr ""
-"<emphasis>Development Wizards:</emphasis> å¨ Hibernate Eclipse tools ä¸è¿æä¾"
-"äºå 个å导ï¼ä½ å¯ä»¥ç¨å导快éçæ Hibernate é
ç½®æ件ï¼cfg.xmlï¼ï¼ä½ çè³è¿å¯ä»¥"
-"åç°åçæ°æ®åº schema ä¸ååå·¥ç¨åº POJO æºä»£ç ä¸ Hibernate æ å°æ件ãååå·¥ç¨"
-"æ¯æå¯å®å¶ç模çã "
+msgid "<emphasis>Development Wizards:</emphasis> several wizards are provided with the Hibernate Eclipse tools. You can use a wizard to quickly generate Hibernate configuration (cfg.xml) files, or to reverse engineer an existing database schema into POJO source files and Hibernate mapping files. The reverse engineering wizard supports customizable templates."
+msgstr "<emphasis>Development Wizards:</emphasis> å¨ Hibernate Eclipse tools ä¸è¿æä¾äºå 个å导ï¼ä½ å¯ä»¥ç¨å导快éçæ Hibernate é
ç½®æ件ï¼cfg.xmlï¼ï¼ä½ çè³è¿å¯ä»¥åç°åçæ°æ®åº schema ä¸ååå·¥ç¨åº POJO æºä»£ç ä¸ Hibernate æ å°æ件ãååå·¥ç¨æ¯æå¯å®å¶ç模çã "
#. Tag: para
#, no-c-format
-msgid ""
-"Please refer to the <emphasis>Hibernate Tools</emphasis> package "
-"documentation for more information."
-msgstr ""
-"è¦å¾å°æ´å¤ä¿¡æ¯ï¼è¯·æ¥é
<emphasis>Hibernate Tools</emphasis> å
åå
¶ææ¡£ã "
+msgid "Please refer to the <emphasis>Hibernate Tools</emphasis> package documentation for more information."
+msgstr "è¦å¾å°æ´å¤ä¿¡æ¯ï¼è¯·æ¥é
<emphasis>Hibernate Tools</emphasis> å
åå
¶ææ¡£ã "
#. Tag: para
#, no-c-format
-msgid ""
-"However, the Hibernate main package comes bundled with an integrated tool : "
-"<emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even "
-"be used from \"inside\" Hibernate."
-msgstr ""
-"åæ¶ï¼Hibernate 主åè¡å
è¿é带äºä¸ä¸ªéæçå·¥å
·ï¼å®çè³å¯ä»¥å¨ Hibernateâå
"
-"é¨âå¿«éè¿è¡ï¼<emphasis>SchemaExport</emphasis> ï¼ä¹å°±æ¯ <literal>hbm2ddl</"
-"literal>ã "
+msgid "However, the Hibernate main package comes bundled with an integrated tool : <emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even be used from \"inside\" Hibernate."
+msgstr "åæ¶ï¼Hibernate 主åè¡å
è¿é带äºä¸ä¸ªéæçå·¥å
·ï¼å®çè³å¯ä»¥å¨ Hibernateâå
é¨âå¿«éè¿è¡ï¼<emphasis>SchemaExport</emphasis> ï¼ä¹å°±æ¯ <literal>hbm2ddl</literal>ã "
#. Tag: title
#, no-c-format
@@ -103,34 +61,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"DDL can be generated from your mapping files by a Hibernate utility. The "
-"generated schema includes referential integrity constraints, primary and "
-"foreign keys, for entity and collection tables. Tables and sequences are "
-"also created for mapped identifier generators."
-msgstr ""
-"å¯ä»¥ä»ä½ çæ å°æ件使ç¨ä¸ä¸ª Hibernate å·¥å
·çæ DDLãçæç schema å
å«æ对å®ä½"
-"åéå类表çå®æ´æ§å¼ç¨çº¦æï¼ä¸»é®åå¤é®ï¼ãæ¶åå°çæ 示符çæå¨æéç表å "
-"sequence ä¹ä¼åæ¶çæã "
+msgid "DDL can be generated from your mapping files by a Hibernate utility. The generated schema includes referential integrity constraints, primary and foreign keys, for entity and collection tables. Tables and sequences are also created for mapped identifier generators."
+msgstr "å¯ä»¥ä»ä½ çæ å°æ件使ç¨ä¸ä¸ª Hibernate å·¥å
·çæ DDLãçæç schema å
å«æ对å®ä½åéå类表çå®æ´æ§å¼ç¨çº¦æï¼ä¸»é®åå¤é®ï¼ãæ¶åå°çæ 示符çæå¨æéç表å sequence ä¹ä¼åæ¶çæã "
#. Tag: para
#, no-c-format
-msgid ""
-"You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via "
-"the <literal>hibernate.dialect</literal> property when using this tool, as "
-"DDL is highly vendor-specific."
-msgstr ""
-"å¨ä½¿ç¨è¿ä¸ªå·¥å
·çæ¶åï¼ä½ <emphasis>å¿
é¡»</emphasis> éè¿ <literal>hibernate."
-"dialet</literal> å±æ§æå®ä¸ä¸ª SQL<literal> æ¹è¨ï¼Dialetï¼</literal>ï¼å 为 "
-"DDL æ¯ä¸ä¾åºåé«åº¦ç¸å
³çã "
+msgid "You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via the <literal>hibernate.dialect</literal> property when using this tool, as DDL is highly vendor-specific."
+msgstr "å¨ä½¿ç¨è¿ä¸ªå·¥å
·çæ¶åï¼ä½ <emphasis>å¿
é¡»</emphasis> éè¿ <literal>hibernate.dialet</literal> å±æ§æå®ä¸ä¸ª SQL<literal> æ¹è¨ï¼Dialetï¼</literal>ï¼å 为 DDL æ¯ä¸ä¾åºåé«åº¦ç¸å
³çã "
#. Tag: para
#, no-c-format
-msgid ""
-"First, you must customize your mapping files to improve the generated "
-"schema. The next section covers schema customization."
-msgstr ""
-"é¦å
ï¼è¦å®å¶ä½ çæ å°æ件ï¼æ¥æ¹åçæç schemaãä¸ç« å°æ¶µç schema å®å¶ã"
+msgid "First, you must customize your mapping files to improve the generated schema. The next section covers schema customization."
+msgstr "é¦å
ï¼è¦å®å¶ä½ çæ å°æ件ï¼æ¥æ¹åçæç schemaãä¸ç« å°æ¶µç schema å®å¶ã"
#. Tag: title
#, no-c-format
@@ -139,94 +81,47 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Many Hibernate mapping elements define optional attributes named "
-"<literal>length</literal>, <literal>precision</literal> and <literal>scale</"
-"literal>. You can set the length, precision and scale of a column with this "
-"attribute."
-msgstr ""
-"å¾å¤ Hibernate æ å°å
ç´ å®ä¹äºå¯éç <literal>length</literal>ã"
-"<literal>precision</literal> æè
<literal>scale</literal> å±æ§ãä½ å¯ä»¥éè¿è¿"
-"个å±æ§è®¾ç½®å段çé¿åº¦ã精度ãå°æ°ç¹ä½æ°ã "
+msgid "Many Hibernate mapping elements define optional attributes named <literal>length</literal>, <literal>precision</literal> and <literal>scale</literal>. You can set the length, precision and scale of a column with this attribute."
+msgstr "å¾å¤ Hibernate æ å°å
ç´ å®ä¹äºå¯éç <literal>length</literal>ã<literal>precision</literal> æè
<literal>scale</literal> å±æ§ãä½ å¯ä»¥éè¿è¿ä¸ªå±æ§è®¾ç½®å段çé¿åº¦ã精度ãå°æ°ç¹ä½æ°ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Some tags also accept a <literal>not-null</literal> attribute for generating "
-"a <literal>NOT NULL</literal> constraint on table columns, and a "
-"<literal>unique</literal> attribute for generating <literal>UNIQUE</literal> "
-"constraint on table columns."
-msgstr ""
-"æäº tag è¿æ¥å <literal>not-null</literal> å±æ§ï¼ç¨æ¥å¨è¡¨å段ä¸çæ "
-"<literal>NOT NULL</literal> 约æï¼å <literal>unique</literal> å±æ§ï¼ç¨æ¥å¨è¡¨"
-"å段ä¸çæ <literal>UNIQUE</literal> 约æï¼ã "
+msgid "Some tags also accept a <literal>not-null</literal> attribute for generating a <literal>NOT NULL</literal> constraint on table columns, and a <literal>unique</literal> attribute for generating <literal>UNIQUE</literal> constraint on table columns."
+msgstr "æäº tag è¿æ¥å <literal>not-null</literal> å±æ§ï¼ç¨æ¥å¨è¡¨å段ä¸çæ <literal>NOT NULL</literal> 约æï¼å <literal>unique</literal> å±æ§ï¼ç¨æ¥å¨è¡¨å段ä¸çæ <literal>UNIQUE</literal> 约æï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"A <literal>unique-key</literal> attribute can be used to group columns in a "
-"single, unique key constraint. Currently, the specified value of the "
-"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
-"name the constraint in the generated DDL. It is only used to group the "
-"columns in the mapping file."
-msgstr ""
-"<literal>unique-key</literal> å±æ§å¯ä»¥å¯¹æç»çå段æå®ä¸ä¸ªå¯ä¸é®çº¦æï¼unique "
-"key constraintï¼ãç®åï¼<literal>unique-key</literal> å±æ§æå®çå¼å¨çæ DDL "
-"æ¶<emphasis>并ä¸ä¼</emphasis>被å½ä½è¿ä¸ªçº¦æçååï¼å®ä»¬åªæ¯å¨ç¨æ¥å¨æ å°æ件å
"
-"é¨ç¨ä½åºåçã "
+msgid "A <literal>unique-key</literal> attribute can be used to group columns in a single, unique key constraint. Currently, the specified value of the <literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to name the constraint in the generated DDL. It is only used to group the columns in the mapping file."
+msgstr "<literal>unique-key</literal> å±æ§å¯ä»¥å¯¹æç»çå段æå®ä¸ä¸ªå¯ä¸é®çº¦æï¼unique key constraintï¼ãç®åï¼<literal>unique-key</literal> å±æ§æå®çå¼å¨çæ DDL æ¶<emphasis>并ä¸ä¼</emphasis>被å½ä½è¿ä¸ªçº¦æçååï¼å®ä»¬åªæ¯å¨ç¨æ¥å¨æ å°æ件å
é¨ç¨ä½åºåçã "
#. Tag: para
#, no-c-format
-msgid ""
-"An <literal>index</literal> attribute specifies the name of an index that "
-"will be created using the mapped column or columns. Multiple columns can be "
-"grouped into the same index by simply specifying the same index name."
-msgstr ""
-"<literal>index</literal> å±æ§ä¼ç¨å¯¹åºçå段ï¼ä¸ä¸ªæå¤ä¸ªï¼çæä¸ä¸ª indexï¼å®æ"
-"åºäºè¿ä¸ª index çååãå¦æå¤ä¸ªå段对åºç index ååç¸åï¼å°±ä¼çæå
å«è¿äºå"
-"段ç indexã "
+msgid "An <literal>index</literal> attribute specifies the name of an index that will be created using the mapped column or columns. Multiple columns can be grouped into the same index by simply specifying the same index name."
+msgstr "<literal>index</literal> å±æ§ä¼ç¨å¯¹åºçå段ï¼ä¸ä¸ªæå¤ä¸ªï¼çæä¸ä¸ª indexï¼å®æåºäºè¿ä¸ª index çååãå¦æå¤ä¸ªå段对åºç index ååç¸åï¼å°±ä¼çæå
å«è¿äºå段ç indexã "
#. Tag: para
#, no-c-format
-msgid ""
-"A <literal>foreign-key</literal> attribute can be used to override the name "
-"of any generated foreign key constraint."
-msgstr ""
-"<literal>foreign-key</literal> å±æ§å¯ä»¥ç¨æ¥è¦çä»»ä½çæçå¤é®çº¦æçååã "
+msgid "A <literal>foreign-key</literal> attribute can be used to override the name of any generated foreign key constraint."
+msgstr "<literal>foreign-key</literal> å±æ§å¯ä»¥ç¨æ¥è¦çä»»ä½çæçå¤é®çº¦æçååã "
#. Tag: para
#, no-c-format
-msgid ""
-"Many mapping elements also accept a child <literal><column></literal> "
-"element. This is particularly useful for mapping multi-column types:"
-msgstr ""
-"å¾å¤æ å°å
ç´ è¿æ¥å <literal><column></literal> åå
ç´ ãè¿å¨å®ä¹è·¨è¶å¤å"
-"段çç±»åæ¶ç¹å«æç¨ã"
+msgid "Many mapping elements also accept a child <literal><column></literal> element. This is particularly useful for mapping multi-column types:"
+msgstr "å¾å¤æ å°å
ç´ è¿æ¥å <literal><column></literal> åå
ç´ ãè¿å¨å®ä¹è·¨è¶å¤å段çç±»åæ¶ç¹å«æç¨ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>default</literal> attribute allows you to specify a default "
-"value for a column.You should assign the same value to the mapped property "
-"before saving a new instance of the mapped class."
-msgstr ""
-"<literal>default</literal> å±æ§ä¸ºå段æå®ä¸ä¸ªé»è®¤å¼ï¼å¨ä¿å被æ å°çç±»çæ°å®ä¾"
-"ä¹åï¼ä½ åºè¯¥å°åæ ·çå¼èµäºå¯¹åºçå±æ§ï¼ã"
+msgid "The <literal>default</literal> attribute allows you to specify a default value for a column.You should assign the same value to the mapped property before saving a new instance of the mapped class."
+msgstr "<literal>default</literal> å±æ§ä¸ºå段æå®ä¸ä¸ªé»è®¤å¼ï¼å¨ä¿å被æ å°çç±»çæ°å®ä¾ä¹åï¼ä½ åºè¯¥å°åæ ·çå¼èµäºå¯¹åºçå±æ§ï¼ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>sql-type</literal> attribute allows the user to override the "
-"default mapping of a Hibernate type to SQL datatype."
-msgstr ""
-"<literal>sql-type</literal> å±æ§å
许ç¨æ·è¦çé»è®¤ç Hibernate ç±»åå° SQL æ°æ®"
-"ç±»åçæ å°ã"
+msgid "The <literal>sql-type</literal> attribute allows the user to override the default mapping of a Hibernate type to SQL datatype."
+msgstr "<literal>sql-type</literal> å±æ§å
许ç¨æ·è¦çé»è®¤ç Hibernate ç±»åå° SQL æ°æ®ç±»åçæ å°ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>check</literal> attribute allows you to specify a check "
-"constraint."
+msgid "The <literal>check</literal> attribute allows you to specify a check constraint."
msgstr "<literal>check</literal> å±æ§å
许ç¨æ·æå®ä¸ä¸ªçº¦ææ£æ¥ã"
#. Tag: para
@@ -356,18 +251,8 @@
#. Tag: entry
#, no-c-format
-msgid ""
-"specifies the name of the foreign key constraint generated for an "
-"association, for a <literal><one-to-one></literal>, <literal><many-"
-"to-one></literal>, <literal><key></literal>, or <literal><many-"
-"to-many></literal> mapping element. Note that <literal>inverse=\"true\"</"
-"literal> sides will not be considered by <literal>SchemaExport</literal>."
-msgstr ""
-"ææä¸ä¸ªå¤é®çååï¼å®æ¯ä¸ºå
³èçæçï¼æè
æ¯ä¸º <literal><one-to-one></"
-"literal>, <literal><many-to-one></literal>, <literal><key></"
-"literal>, or <literal><many-to-many></literal> æ å°å
ç´ ã注æ "
-"<literal>inverse=\"true\"</literal> ä¼è¢« <literal>SchemaExport</literal> 忽"
-"ç¥ã"
+msgid "specifies the name of the foreign key constraint generated for an association, for a <literal><one-to-one></literal>, <literal><many-to-one></literal>, <literal><key></literal>, or <literal><many-to-many></literal> mapping element. Note that <literal>inverse=\"true\"</literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr "ææä¸ä¸ªå¤é®çååï¼å®æ¯ä¸ºå
³èçæçï¼æè
æ¯ä¸º <literal><one-to-one></literal>, <literal><many-to-one></literal>, <literal><key></literal>, or <literal><many-to-many></literal> æ å°å
ç´ ã注æ <literal>inverse=\"true\"</literal> ä¼è¢« <literal>SchemaExport</literal> 忽ç¥ã"
#. Tag: entry
#, no-c-format
@@ -375,15 +260,13 @@
msgstr "<literal>sql-type</literal>"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>SQL column type</literal>"
-msgstr "<literal>sql-type</literal>"
+msgstr "<literal>SQL column type</literal>"
#. Tag: entry
#, no-c-format
-msgid ""
-"overrides the default column type (attribute of <literal><column></"
-"literal> element only)"
+msgid "overrides the default column type (attribute of <literal><column></literal> element only)"
msgstr "è¦çé»è®¤çå段类åï¼åªè½ç¨äº <literal><column></literal> å±æ§ï¼"
#. Tag: entry
@@ -413,20 +296,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal><comment></literal> element allows you to specify "
-"comments for the generated schema."
-msgstr ""
-"<literal><comment></literal> å
ç´ å¯ä»¥è®©ä½ å¨çæç schema ä¸å å
¥æ³¨éã"
+msgid "The <literal><comment></literal> element allows you to specify comments for the generated schema."
+msgstr "<literal><comment></literal> å
ç´ å¯ä»¥è®©ä½ å¨çæç schema ä¸å å
¥æ³¨éã"
#. Tag: para
#, no-c-format
-msgid ""
-"This results in a <literal>comment on table</literal> or <literal>comment on "
-"column</literal> statement in the generated DDL where supported."
-msgstr ""
-"ç»ææ¯å¨çæç DDL ä¸å
å« <literal>comment on table</literal> æè
"
-"<literal>comment on column</literal> è¯å¥ï¼åè¥æ¯æçè¯ï¼ã "
+msgid "This results in a <literal>comment on table</literal> or <literal>comment on column</literal> statement in the generated DDL where supported."
+msgstr "ç»ææ¯å¨çæç DDL ä¸å
å« <literal>comment on table</literal> æè
<literal>comment on column</literal> è¯å¥ï¼åè¥æ¯æçè¯ï¼ã "
#. Tag: title
#, no-c-format
@@ -435,30 +311,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>SchemaExport</literal> tool writes a DDL script to standard out "
-"and/or executes the DDL statements."
-msgstr ""
-"<literal>SchemaExport</literal> å·¥å
·æ DDL èæ¬åå°æ åè¾åºï¼åæ¶/æè
æ§è¡ "
-"DDL è¯å¥ã"
+msgid "The <literal>SchemaExport</literal> tool writes a DDL script to standard out and/or executes the DDL statements."
+msgstr "<literal>SchemaExport</literal> å·¥å
·æ DDL èæ¬åå°æ åè¾åºï¼åæ¶/æè
æ§è¡ DDL è¯å¥ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The following table displays the <literal>SchemaExport</literal> command "
-"line options"
+msgid "The following table displays the <literal>SchemaExport</literal> command line options"
msgstr "ä¸è¡¨æ¾ç¤ºäº <literal>SchemaExport</literal> å½ä»¤è¡é项"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
-"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
-"mapping_files</emphasis>"
-msgstr ""
-"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
-"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
-"mapping_files</emphasis>"
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options mapping_files</emphasis>"
+msgstr "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options mapping_files</emphasis>"
#. Tag: title
#, no-c-format
@@ -516,9 +380,9 @@
msgstr "ä¸æ§è¡å¨æ°æ®åºä¸è¿è¡çæ¥éª¤ "
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>--output=my_schema.ddl</literal>"
-msgstr "<literal>scale</literal>"
+msgstr "<literal>--output=my_schema.ddl</literal>"
#. Tag: entry
#, no-c-format
@@ -526,9 +390,9 @@
msgstr "æè¾åºç ddl èæ¬è¾åºå°ä¸ä¸ªæ件"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
-msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "<literal>--naming=eg.MyNamingStrategy</literal> "
#. Tag: entry
#, no-c-format
@@ -536,9 +400,9 @@
msgstr "éæ© <literal>NamingStrategy</literal>"
#. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>--config=hibernate.cfg.xml</literal>"
-msgstr "<literal>hibernate.dialect</literal>"
+msgstr "<literal>--config=hibernate.cfg.xml</literal>"
#. Tag: entry
#, no-c-format
@@ -592,11 +456,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"as system properties with <literal>-D</literal><emphasis><property></"
-"emphasis>"
-msgstr ""
-"éè¿ <literal>-D</literal><emphasis><property></emphasis> ç³»ç»åæ°"
+msgid "as system properties with <literal>-D</literal><emphasis><property></emphasis>"
+msgstr "éè¿ <literal>-D</literal><emphasis><property></emphasis> ç³»ç»åæ°"
#. Tag: para
#, no-c-format
@@ -606,9 +467,7 @@
#. Tag: para
#, no-c-format
msgid "in a named properties file with <literal>--properties</literal>"
-msgstr ""
-"ä½äºä¸ä¸ªå
¶å®ååç properties æ件ä¸,ç¶åç¨ <literal>--properties</literal> "
-"åæ°æå®"
+msgstr "ä½äºä¸ä¸ªå
¶å®ååç properties æ件ä¸,ç¶åç¨ <literal>--properties</literal> åæ°æå®"
#. Tag: para
#, no-c-format
@@ -682,8 +541,7 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgid "You can call <literal>SchemaExport</literal> from your Ant build script:"
msgstr "ä½ å¯ä»¥å¨ä½ ç Ant build èæ¬ä¸è°ç¨ <literal>SchemaExport</literal>ï¼"
#. Tag: title
@@ -693,25 +551,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>SchemaUpdate</literal> tool will update an existing schema with "
-"\"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon "
-"the JDBC metadata API and, as such, will not work with all JDBC drivers."
-msgstr ""
-"<literal>SchemaUpdate</literal> å·¥å
·å¯¹å·²åå¨ç schema éç¨\"å¢é\"æ¹å¼è¿è¡æ´"
-"æ°ã注æ <literal>SchemaUpdate</literal> 严éä¾èµäº JDBC metadata APIï¼æ以å®"
-"并é对ææ JDBC 驱å¨é½ææã "
+msgid "The <literal>SchemaUpdate</literal> tool will update an existing schema with \"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon the JDBC metadata API and, as such, will not work with all JDBC drivers."
+msgstr "<literal>SchemaUpdate</literal> å·¥å
·å¯¹å·²åå¨ç schema éç¨\"å¢é\"æ¹å¼è¿è¡æ´æ°ã注æ <literal>SchemaUpdate</literal> 严éä¾èµäº JDBC metadata APIï¼æ以å®å¹¶é对ææ JDBC 驱å¨é½ææã "
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
-"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
-"mapping_files</emphasis>"
-msgstr ""
-"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
-"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
-"mapping_files</emphasis>"
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options mapping_files</emphasis>"
+msgstr "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options mapping_files</emphasis>"
#. Tag: title
#, no-c-format
@@ -750,33 +596,17 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>SchemaValidator</literal> tool will validate that the existing "
-"database schema \"matches\" your mapping documents. The "
-"<literal>SchemaValidator</literal> depends heavily upon the JDBC metadata "
-"API and, as such, will not work with all JDBC drivers. This tool is "
-"extremely useful for testing."
-msgstr ""
-"<literal>SchemaValidator</literal> å·¥å
·ä¼æ¯è¾æ°æ®åºç°ç¶æ¯å¦ä¸æ å°ææ¡£âå¹é
âã"
-"注æï¼<literal>SchemaValidator</literal> 严éä¾èµäº JDBC ç metadata APIï¼å "
-"æ¤ä¸æ¯å¯¹ææç JDBC 驱å¨é½éç¨ãè¿ä¸å·¥å
·å¨æµè¯çæ¶åç¹å«æç¨ã "
+msgid "The <literal>SchemaValidator</literal> tool will validate that the existing database schema \"matches\" your mapping documents. The <literal>SchemaValidator</literal> depends heavily upon the JDBC metadata API and, as such, will not work with all JDBC drivers. This tool is extremely useful for testing."
+msgstr "<literal>SchemaValidator</literal> å·¥å
·ä¼æ¯è¾æ°æ®åºç°ç¶æ¯å¦ä¸æ å°ææ¡£âå¹é
âã注æï¼<literal>SchemaValidator</literal> 严éä¾èµäº JDBC ç metadata APIï¼å æ¤ä¸æ¯å¯¹ææç JDBC 驱å¨é½éç¨ãè¿ä¸å·¥å
·å¨æµè¯çæ¶åç¹å«æç¨ã "
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
-"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
-"<emphasis>options mapping_files</emphasis>"
-msgstr ""
-"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
-"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
-"<emphasis>options mapping_files</emphasis>"
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> <emphasis>options mapping_files</emphasis>"
+msgstr "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> <emphasis>options mapping_files</emphasis>"
#. Tag: para
#, no-c-format
-msgid ""
-"The following table displays the <literal>SchemaValidator</literal> command "
-"line options:"
+msgid "The following table displays the <literal>SchemaValidator</literal> command line options:"
msgstr "ä¸è¡¨æ¾ç¤ºäº <literal>SchemaValidator</literal> å½ä»¤è¡åæ°ï¼"
#. Tag: title
@@ -917,54 +747,40 @@
#~ " ...\n"
#~ " <property name=\"bar\" type=\"float\"/>\n"
#~ "</class>"
-
#~ msgid "length"
#~ msgstr "length"
-
#~ msgid "precision"
#~ msgstr "precision"
-
#~ msgid "scale"
#~ msgstr "scale"
-
#~ msgid "not-null"
#~ msgstr "not-null"
-
#~ msgid "true|false"
#~ msgstr "true|false"
-
#~ msgid "unique"
#~ msgstr "unique"
-
#~ msgid "index"
#~ msgstr "index"
-
#~ msgid "index_name"
#~ msgstr "index_name"
-
#~ msgid "unique-key"
#~ msgstr "unique-key"
-
#~ msgid "unique_key_name"
#~ msgstr "unique_key_name"
-
#~ msgid "foreign-key"
#~ msgstr "foreign-key"
#, fuzzy
#~ msgid "foreign_key_name"
#~ msgstr "foreign-key"
-
#~ msgid "sql-type"
#~ msgstr "sql-type"
#, fuzzy
#~ msgid "SQL column type"
#~ msgstr "<literal>SQL column type</literal>"
-
#~ msgid "default"
#~ msgstr "default"
-
#~ msgid "check"
#~ msgstr "check"
@@ -993,16 +809,12 @@
#~ " <comment>Balance in USD</comment>\n"
#~ " </column>\n"
#~ "</property>"
-
#~ msgid "--quiet"
#~ msgstr "--quiet"
-
#~ msgid "--drop"
#~ msgstr "--drop"
-
#~ msgid "--create"
#~ msgstr "--create"
-
#~ msgid "--text"
#~ msgstr "--text"
@@ -1013,13 +825,10 @@
#, fuzzy
#~ msgid "--config=hibernate.cfg.xml"
#~ msgstr "<literal>--config=hibernate.cfg.xml</literal>"
-
#~ msgid "--properties=hibernate.properties"
#~ msgstr "--properties=hibernate.properties"
-
#~ msgid "--format"
#~ msgstr "--format"
-
#~ msgid "--delimiter=;"
#~ msgstr "--delimiter=;"
@@ -1034,16 +843,12 @@
#, fuzzy
#~ msgid "hibernate.connection.driver_class"
#~ msgstr "hibernate.connection.url"
-
#~ msgid "hibernate.connection.url"
#~ msgstr "hibernate.connection.url"
-
#~ msgid "hibernate.connection.username"
#~ msgstr "hibernate.connection.username"
-
#~ msgid "hibernate.connection.password"
#~ msgstr "hibernate.connection.password"
-
#~ msgid "hibernate.dialect"
#~ msgstr "hibernate.dialect"
@@ -1158,6 +963,6 @@
#~ " </fileset>\n"
#~ " </schemaupdate>\n"
#~ "</target>"
-
#~ msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
#~ msgstr "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/transactions.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/transactions.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/transactions.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:16\n"
-"PO-Revision-Date: 2010-01-11 10:41+1000\n"
+"PO-Revision-Date: 2010-03-16 09:58+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,54 +21,23 @@
#. Tag: para
#, 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 æ¥"
-"询è¯è¨åä½ ä½¿ç¨çæ°æ®åºç³»ç»çäºå¡é离è§èã "
+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
#, 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ï¼ã "
+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
#, 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ã "
+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
#, 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 ç并è¡æ§å¶ãæ°æ®åºäºå¡"
-"ååºç¨ç¨åºçé¿äºå¡ã "
+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
#, no-c-format
@@ -77,58 +46,23 @@
#. Tag: para
#, 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> çå®ä¾æ¥å建ã "
+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
#, 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>ï¼å¯¹è±¡ï¼å "
-"æ¤åè¥ä¸ä½¿ç¨çæ¶åå®ä¸æ¶è´¹ä»»ä½èµæºã "
+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
#, 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 ""
-"æ¤å¤æ们è¿è¦èèæ°æ®åºäºå¡ãæ°æ®åºäºå¡åºè¯¥å°½å¯è½ççï¼éä½æ°æ®åºä¸çéäºç¨ã"
-"æ°æ®åºé¿äºå¡ä¼é»æ¢ä½ çåºç¨ç¨åºæ©å±å°é«ç并åè´è½½ãå æ¤ï¼åè¥å¨ç¨æ·æèæé´è®©"
-"æ°æ®åºäºå¡å¼çï¼ç´å°æ´ä¸ªå·¥ä½åå
å®ææå
³éè¿ä¸ªäºå¡ï¼è¿ç»ä¸æ¯ä¸ä¸ªå¥½ç设计ã "
+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
#, 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>ï¼ä½ åå¦ä½ååæ°æ®åºäºå¡çè¾¹çå¢ï¼æ们å°å¨åç»ç« "
-"è解å³è¿äºé®é¢ã"
+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
#, no-c-format
@@ -136,138 +70,34 @@
msgstr "æä½åå
ï¼Unit of workï¼"
#. Tag: para
-#, fuzzy, 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 ""
-"é¦å
ï¼è®©æ们å®ä¹ä¸ä¸ªå·¥ä½åå
ï¼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\" ææ¶ä¹åå·¥ä½åå
ä¸èµ·ä½¿ç¨ã "
+#, 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 "é¦å
ï¼è®©æ们å®ä¹ä¸ä¸ªå·¥ä½åå
ï¼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
#, 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 è¡ä¸ºï¼å 为å¾å¤å°çäºå¡æ¯ä¸ä¸ªæ¸
æ°å®ä¹çå·¥ä½åå
æ§è½å·®ãåè
ä¹æ´å®¹æç»´æ¤"
-"åæ©å±ã "
+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
#, 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> ä¹åæ交äºå¡ãä¼è¯å请æ±ä¹é´"
-"çå
³ç³»æ¯ä¸å¯¹ä¸çå
³ç³»ï¼è¿ç§æ¨¡å¼å¯¹ äºå¤§å¤æ°åºç¨ç¨åºæ¥è¯´æ¯å¾æ£çã "
+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
#, 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ï¼è¿å¯¹"
-"æç¨æ§å代ç å¯ç§»æ¤æ§é½æ好å¤ã "
+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
-#, 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-current-session\"/"
-">ã "
+#, 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
#, 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> è¿ä¸æ¨¡å¼çæ"
-"示å示ä¾ã "
+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
#, no-c-format
@@ -276,141 +106,53 @@
#. Tag: para
#, 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 çåºç¨åä¼ä¸åºç¨ä¸ï¼è·¨ç¨æ·äº¤äºçæ°æ®åºäºå¡æ¯æ æ³æ¥åçãèèä¸"
-"é¢çä¾åï¼ "
+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
#, 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ï¼çãç¨æ·å¯ä»¥éæä¿®æ¹å¯¹è¯æ¡ä¸çæ°æ®å¯¹è±¡ã "
+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
#, 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 åéåï¼ç¨æ·ç¹å»âä¿åâï¼æææååºçä¿®æ¹è¢«æä¹
åï¼åæ¶ä»ä¹ææèªå·±æ¯å¯ä¸ä¿®"
-"æ¹è¿ä¸ªä¿¡æ¯ç人ï¼ä¸ä¼åºç°ä¿®æ¹å²çªã "
+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
#, 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ï¼ãå¨ä½ çåºç¨ç¨åºä¸ï¼å¯ä»¥æå¾å¤ç§æ¹æ³æ¥å®ç°å®ã"
+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
#, 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> åæ°"
-"æ®åºäºå¡æ¯æå¼çï¼ä¿ææ°æ®åºéå®ï¼ä»¥é»æ¢å¹¶åä¿®æ¹ï¼ä»èä¿è¯æ°æ®åºäºå¡é离级å«"
-"åååæä½ãè¿ç§æ¹å¼å½ç¶æ¯ä¸ä¸ªå模å¼ï¼å 为éäºç¨ä¼å¯¼è´åºç¨ç¨åºæ æ³æ©å±å¹¶åç¨"
-"æ·çæ°ç®ã "
+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
#, 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 çä¸è¿°ç¹æ§çæ¶åï¼ "
+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
#, 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 è½å¤èªå¨æ£æµå°ãä¸è¬æ们åªå¨å¯¹è¯ç»ææ¶"
-"ææ£æ¥ã"
+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
#, 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>ãèªå¨çæ¬å被"
-"ç¨æ¥é离并åä¿®æ¹ã"
+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
#, 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ã "
+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
#, 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> åæä¼ç¼ºç¹ï¼æ们å¨æ¬ç« åé¢ä¹è§"
-"并åæ§å¶é£é¨ååè¿è¡è®¨è®ºã "
+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
#, no-c-format
@@ -419,15 +161,8 @@
#. Tag: para
#, 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> ä¸å
±äº«ãå "
-"æ¤æ两ç§ä¸åçæ è¯è¯ä¹ï¼ "
+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
#, no-c-format
@@ -435,9 +170,9 @@
msgstr "æ°æ®åºæ è¯"
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
-msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "<literal>foo.getId().equals( bar.getId() )</literal> "
#. Tag: term
#, no-c-format
@@ -451,79 +186,18 @@
#. Tag: para
#, 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 è¯å«æ¥çï¼ãè¿ç§å²çªå¯ä»¥éè¿å¨åæ¥åæ"
-"交çæ¶å使ç¨èªå¨çæ¬ååä¹è§éå®æ¹æ³æ¥è§£å³ã "
+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
#, 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> è¿è¡å¯¹è±¡æ¯è¾ã "
+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
#, 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 对象æ è¯å"
-"å¤çè¡ä¸ºå¦ä½å®ç°çé®é¢ã "
+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
#, no-c-format
@@ -532,79 +206,23 @@
#. Tag: para
#, 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>ï¼å½ç¶ï¼è¿ä¸ªè§å®å ä¹æ²¡æä¾å¤ï¼ã"
-"请注æï¼ä¸è¿°ä¸äºé®é¢å¯è½ä¹ä¼åºç°å¨æ们æ¨èç模å¼ä¸ï¼å¨ä½ ä½åºæ个设计å³å®ä¹"
-"åï¼è¯·å¡å¿
ç解该模å¼çåºç¨åæã "
+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
#, 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>ã "
+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
#, 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> ç»å®å°ä¸ä¸ªåºç¨ç¨åºä¸ï¼ä½ å¿
é¡»åæ¢è¯¥åºç¨ç¨åºãåæ»æ°æ®åºäºå¡å¹¶ä¸ä¼æä½ "
-"çä¸å¡å¯¹è±¡éåå°äºå¡å¯å¨æ¶åçç¶æãè¿æå³çæ°æ®åºç¶æåä¸å¡å¯¹è±¡ç¶æä¸åæ¥ã"
-"é常æ
åµä¸ï¼è¿ä¸æ¯ä»ä¹é®é¢ï¼å 为å¼å¸¸æ¯ä¸å¯æ¢å¤çï¼ä½ å¿
é¡»å¨åæ»ä¹åéæ°å¼å§æ§"
-"è¡ã "
+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
-#, 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\"/>ä¸æä¸äºè§£å³æ¹æ¡ãå¨ç¨æ·ä¼è¯æé´ä¸ç´"
-"ä¿æ <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\"/>ä¸æä¸äºè§£å³æ¹æ¡ãå¨ç¨æ·ä¼è¯æé´ä¸ç´ä¿æ <literal>Session</literal> æå¼ä¹æå³çåºç°èæ°æ®çå¯è½æ§å¾é«ã "
#. Tag: title
#, no-c-format
@@ -613,64 +231,22 @@
#. Tag: para
#, 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 ""
-"æ°æ®åºï¼æè
ç³»ç»ï¼äºå¡ç声ææ»æ¯å¿
é¡»çãå¨æ°æ®åºäºå¡ä¹å¤ï¼å°±æ æ³åæ°æ®åºé讯"
-"ï¼è¿å¯è½ä¼è®©é£äºä¹ æ¯äºèªå¨æ交äºå¡æ¨¡å¼çå¼å人åæå°è¿·æï¼ãæ°¸è¿ä½¿ç¨æ¸
æ°çäº"
-"å¡å£°æï¼å³ä½¿åªè¯»æä½ä¹æ¯å¦æ¤ãè¿è¡ æ¾å¼çäºå¡å£°æ并ä¸æ»æ¯éè¦çï¼è¿åå³äºä½ ç"
-"äºå¡é离级å«åæ°æ®åºçè½åï¼ä½ä¸ç®¡æä¹è¯´ï¼å£°æäºå¡æ»å½æçæ 害ãå½ç¶ï¼ä¸ä¸ªå"
-"ç¬çæ°æ®åºäºå¡æ»æ¯æ¯å¾å¤çç¢çäºå¡æ§è½æ´å¥½ï¼å³æ¶å¯¹è¯»æ°æ®èè¨ä¹æ¯ä¸æ ·ã "
+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
#, 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> çåæ¥ä¹å¯ä»¥èªå¨å®æã "
+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
#, 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ã "
+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
#, no-c-format
-msgid ""
-"Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
msgstr "é常æ
åµä¸ï¼ç»æ <literal>Session</literal> å
å«äºå个ä¸åçé¶æ®µï¼ "
#. Tag: para
@@ -695,13 +271,8 @@
#. Tag: para
#, 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ï¼å·åºï¼åé¢å·²ç»è®¨è®ºè¿äºï¼æ们ç°å¨è¿ä¸æ¥èå¯å¨æ管åéæ"
-"管ç¯å¢ä¸çäºå¡å£°æåå¼å¸¸å¤çã "
+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
#, no-c-format
@@ -710,73 +281,28 @@
#. Tag: para
#, 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 å¤çæ¹å¼å¦ä¸æç¤ºï¼ "
+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: para
-#, 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 <link linkend=\"objectstate-flushing"
-"\">FlushMode</link> 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\" />ï¼ãè°ç¨ <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 <link linkend=\"objectstate-flushing\">FlushMode</link> 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\" />ï¼ãè°ç¨ <literal>close()</literal> æ å¿ session çç»æã<literal>close()</literal> æ¹æ³éè¦çæ示æ¯ï¼<literal>session</literal> éæ¾äº JDBC è¿æ¥ãè¿æ®µ Java 代ç å¨éæ管ç¯å¢ä¸å JTA ç¯å¢ä¸é½å¯ä»¥è¿è¡ã "
#. Tag: para
#, 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\" ä¸ä¸æ管çï¼åæå·²ç»è®²"
-"è¿ï¼ "
+msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
+msgstr "æ´å çµæ´»çæ¹æ¡æ¯ Hibernate å
ç½®ç \"current session\" ä¸ä¸æ管çï¼åæå·²ç»è®²è¿ï¼ "
#. Tag: para
#, 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>ãå¼å¸¸"
-"å¤çå°å¨æ¬ç« ç¨åè¿è¡è®¨è®ºã "
+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
#, 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>ã"
+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
#, no-c-format
@@ -785,110 +311,38 @@
#. Tag: para
#, 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 éæã "
+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
#, 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 äºå¡ãå "
-"æ¤ï¼äºå¡ç®¡ç代ç åå¨éæ管ç¯å¢ä¸æ¯ä¸æ ·çã "
+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: para
#, 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ã "
+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: para
#, 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 çé¨ç½²æ述符ä¸ï¼èä¸éè¦ç¼ç¨ãå æ¤ï¼"
-"代ç 被ç®å为ï¼"
+msgid "With CMT, transaction demarcation is completed in session bean deployment descriptors, not programmatically. The code is reduced to:"
+msgstr "å¨ CMT æ¹å¼ä¸ï¼äºå¡å£°ææ¯å¨ session bean çé¨ç½²æ述符ä¸ï¼èä¸éè¦ç¼ç¨ãå æ¤ï¼ä»£ç 被ç®å为ï¼"
#. Tag: para
#, 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>"
+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
#, 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>ã "
+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
#, 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>ãï¼ "
+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
#, no-c-format
@@ -897,117 +351,43 @@
#. Tag: para
#, 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>ã"
+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
#, 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> çéæ£æ¥æå¼å¸¸ãè¿äºå¼å¸¸åæ ·ä¹æ¯æ æ³æ¢"
-"å¤çï¼åºè¯¥ éåæäºç¸åºçæä½å»å¤çã"
+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
#, 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> åç±»åæ¯ï¼ "
+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
#, no-c-format
-msgid ""
-"<literal>JDBCConnectionException</literal>: indicates an error with the "
-"underlying JDBC communication."
-msgstr ""
-"<literal>JDBCConnectionException</literal>ï¼ææåºå±ç JDBC é讯åºç°é误ã"
+msgid "<literal>JDBCConnectionException</literal>: indicates an error with the underlying JDBC communication."
+msgstr "<literal>JDBCConnectionException</literal>ï¼ææåºå±ç JDBC é讯åºç°é误ã"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
-"problem with the issued SQL."
-msgstr ""
-"<literal>SQLGrammarException</literal>ï¼ææåéç SQL è¯å¥çè¯æ³æè
æ ¼å¼é"
-"误ã"
+msgid "<literal>SQLGrammarException</literal>: indicates a grammar or syntax problem with the issued SQL."
+msgstr "<literal>SQLGrammarException</literal>ï¼ææåéç SQL è¯å¥çè¯æ³æè
æ ¼å¼é误ã"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>ConstraintViolationException</literal>: indicates some form of "
-"integrity constraint violation."
-msgstr ""
-"<literal>ConstraintViolationException</literal>ï¼æææç§ç±»åç约æè¿ä¾é误"
+msgid "<literal>ConstraintViolationException</literal>: indicates some form of integrity constraint violation."
+msgstr "<literal>ConstraintViolationException</literal>ï¼æææç§ç±»åç约æè¿ä¾é误"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
-"lock level necessary to perform the requested operation."
-msgstr ""
-"<literal>LockAcquisitionException</literal>ï¼ææäºå¨æ§è¡è¯·æ±æä½æ¶ï¼è·åæé"
-"çé级å«æ¶åºç°çé误ã"
+msgid "<literal>LockAcquisitionException</literal>: indicates an error acquiring a lock level necessary to perform the requested operation."
+msgstr "<literal>LockAcquisitionException</literal>ï¼ææäºå¨æ§è¡è¯·æ±æä½æ¶ï¼è·åæéçé级å«æ¶åºç°çé误ã"
#. Tag: para
#, no-c-format
-msgid ""
-"<literal>GenericJDBCException</literal>: a generic exception which did not "
-"fall into any of the other categories."
-msgstr ""
-"<literal>GenericJDBCException</literal>ï¼ä¸å±äºä»»ä½å
¶ä»ç§ç±»çåçå¼å¸¸ã"
+msgid "<literal>GenericJDBCException</literal>: a generic exception which did not fall into any of the other categories."
+msgstr "<literal>GenericJDBCException</literal>ï¼ä¸å±äºä»»ä½å
¶ä»ç§ç±»çåçå¼å¸¸ã"
#. Tag: title
#, no-c-format
@@ -1016,33 +396,13 @@
#. Tag: para
#, 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> 对象è¿è¡æ½è±¡ã "
+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: para
#, 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 ä¸è°ç¨ï¼æ¤æ¶äºå¡è¶
æ¶å¼"
-"åºè¯¥æ¯è¢«å£°æå¼å®ä¹çã "
+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
#, no-c-format
@@ -1051,20 +411,8 @@
#. Tag: para
#, 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 为使"
-"ç¨ä¹è§å¹¶åæ§å¶ç代ç æä¾äºä¸ç§å¯ è½çæ¹æ³ï¼åºç¨ç¨åºå¨ç¼åè¿äºä»£ç æ¶ï¼å¯ä»¥éç¨"
-"å®ä»¬ãæ们已ç»å¨åé¢åºç¨ç¨åºå¯¹è¯é£é¨åå±ç¤ºäº ä¹è§å¹¶åæ§å¶çåºç¨åºæ¯ï¼æ¤å¤ï¼å¨"
-"å个æ°æ®åºäºå¡èå´å
ï¼çæ¬æ£æ¥ä¹æä¾äºé²æ¢æ´æ°ä¸¢å¤±ç好å¤ã "
+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
#, no-c-format
@@ -1073,60 +421,23 @@
#. Tag: para
#, 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 æç¸ä¼¼ã "
+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: para
#, 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
#, 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>ï¼å°±æ¯ä½ çé¿å¯¹è¯çé»è®¤å¤ç"
-"çç¥ã请记ä½è¿ç§çç¥å¯è½ä¼è®©åºç¨è½¯ä»¶çç¨æ·æå°å°æï¼å 为ä»ä»¬æå¯è½ä¼ç¢°ä¸æ´æ°"
-"丢失æå´æ²¡æåºéä¿¡æ¯ï¼æè
éè¦å并æ´æ¹å²çªçæ
åµã "
+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
#, 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> çæ¹å¼ï¼æè
è±ç®¡å¯¹è±¡å®ä¾çæ¹å¼æ¥æä¾èªå¨ç"
-"æ¬æ£æ¥ã "
+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
#, no-c-format
@@ -1135,80 +446,23 @@
#. Tag: para
#, 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 å¨"
-"åæ¥çæ¶åè¿è¡å¯¹è±¡å®ä¾ççæ¬æ£æ¥ï¼å¦ææ£æµå°å¹¶åä¿®æ¹åæåºå¼å¸¸ãç±å¼å人åæ¥"
-"å³å®æ¯å¦éè¦æè·åå¤çè¿ä¸ªå¼å¸¸ï¼é常çææ©æ¯ç»ç¨æ· æä¾ä¸ä¸ªå并æ´æ¹ï¼æè
å¨æ "
-"èæ°æ®æ
åµä¸éæ°è¿è¡ä¸å¡å¯¹è¯çæºä¼ï¼ã "
+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
#, 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 è¿æ¥ãè¿ç§"
-"æ¹å¼ä»¥æ°æ®åºè®¿é®çè§åº¦æ¥è¯´æ¯æé«æçæ¹å¼ãåºç¨ç¨åºä¸éè¦å
³å¿çæ¬æ£æ¥æè±ç®¡å¯¹"
-"象å®ä¾çéæ°å
³èï¼å¨æ¯ä¸ªæ°æ®åºäºå¡ä¸ï¼åºç¨ç¨åºä¹ä¸éè¦è½½å
¥è¯»å对象å®ä¾ã "
+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: para
#, 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ã "
+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
#, 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> ç¨äºå个对è¯ï¼å 为å®å¾å¿«å°±ä¼åºç°èæ°æ®ã "
+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
#, no-c-format
@@ -1217,42 +471,18 @@
#. Tag: para
#, 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ãè¿äºæ¹æ³ç°å¨å·²ç»è¿æ¶äºï¼æå¼äºå¡åå
³éäºå¡ä¼èµ·å°åæ ·"
-"çææã"
+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
#, 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> ä¸ã "
+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
#, 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 以è·å¾ç¤ºä¾ã "
+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
#, no-c-format
@@ -1261,42 +491,18 @@
#. Tag: para
#, 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: para
#, no-c-format
-msgid ""
-"Again, Hibernate will check instance versions during flush, throwing an "
-"exception if conflicting updates occurred."
-msgstr ""
-"Hibernate ä¼åä¸æ¬¡å¨åæ¥çæ¶åæ£æ¥å¯¹è±¡å®ä¾ççæ¬ï¼å¦æåçæ´æ°å²çªï¼å°±æåºå¼"
-"常ã "
+msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occurred."
+msgstr "Hibernate ä¼åä¸æ¬¡å¨åæ¥çæ¶åæ£æ¥å¯¹è±¡å®ä¾ççæ¬ï¼å¦æåçæ´æ°å²çªï¼å°±æåºå¼å¸¸ã "
#. Tag: para
#, 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> æä½ã "
+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
#, no-c-format
@@ -1305,77 +511,23 @@
#. Tag: para
#, 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 å°ä¸åå¢å çæ¬å·ã "
+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
#, 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 模å¼ã "
+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
#, 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 å¨åæ¥çæ¶åå°åªæ¯è¾æèæ°æ®çå段ã "
+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
#, 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> è¿ä¸ªå¯¹è±¡å®ä¾ï¼ä»èä¿è¯ï¼å¨æ´æ°è®°å½ä¹åï¼"
-"对象çç¡®æ¯è¢«ä¿®æ¹è¿ã "
+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
#, no-c-format
@@ -1384,103 +536,53 @@
#. Tag: para
#, 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 è¿æ¥"
-"æå®ä¸ä¸é离级å«ï¼ç¶å让æ°æ®åºå»æå®ä¸åå°±å¤äºãç¶èï¼é«çº§ç¨æ·ææ¶åå¸æè¿è¡"
-"ä¸ä¸ªæå®çæ²è§éå®ï¼æè
å¨ä¸ä¸ªæ°çäºå¡å¯å¨çæ¶åï¼éæ°è¿è¡éå®ã "
+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
#, no-c-format
-msgid ""
-"Hibernate will always use the locking mechanism of the database; it never "
-"lock objects in memory."
+msgid "Hibernate will always use the locking mechanism of the database; it never lock objects in memory."
msgstr "Hibernate æ»æ¯ä½¿ç¨æ°æ®åºçéå®æºå¶ï¼ä»ä¸å¨å
åä¸éå®å¯¹è±¡ã"
#. Tag: para
#, 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 æéçä¸åçéå®çº§å«ãä¸ä¸ªé"
-"å®å¯ä»¥éè¿ä»¥ä¸çæºå¶æ¥è®¾ç½®ï¼"
+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
#, 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
#, 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>ã "
+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
#, 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>ã "
+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
#, 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>ãè¿ç§æ¨¡å¼ä¹å¯ä»¥éè¿ç¨æ·æ¾å¼æå®"
-"è¿è¡è®¾ç½®ã "
+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
#, 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
#, 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
#, 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
#, no-c-format
@@ -1494,46 +596,18 @@
#. Tag: para
#, 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
#, 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è¯å¥ãï¼"
+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
#, 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 å°ä½¿ç¨éå½çæ¿ä»£æ¨¡å¼ï¼èä¸æ¯æ"
-"åºå¼å¸¸ï¼ãè¿ä¸ç¹å¯ä»¥ç¡®ä¿åºç¨ç¨åºçå¯ç§»æ¤æ§ã "
+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
#, no-c-format
@@ -1542,133 +616,51 @@
#. Tag: para
#, 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> çä¸åæ举å¼æ¥ä½¿ç¨ä¸ç¨çéæ¾æ¨¡å¼ï¼"
+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
#, 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 å
³éã"
+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
#, 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> ç»æåéæ¾è¿æ¥ã"
+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
#, 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>ã"
+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
#, 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> é
ç½®åæ°ç¨æ¥æå®ä½¿ç¨åªä¸"
-"ç§éæ¾æ¨¡å¼ãå¯è½çå¼æï¼ "
+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
#, 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ï¼"
-"æè
ç»ç¨æ·ä»£ç 带æ¥è¯¯å¯¼ã"
+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
#, 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ãè¿ç§æ¹å¼æ¯"
-"为äºåä¸å
¼å®¹ç,ä½æ¯å·²ç»å®å
¨ä¸è¢«é¼å±ä½¿ç¨äºã"
+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
#, 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 é£æ ·è¢«éæ¾ã"
+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
#, 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 ç¯å¢ä¸ï¼ä½ å¯ä»¥ä¸ç®¡æ¯å¦æ¯æ¬¡é½è·"
-"å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ææ¯å®å
¨çã"
+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 ç¯å¢ä¸ï¼ä½ å¯ä»¥ä¸ç®¡æ¯å¦æ¯æ¬¡é½è·å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ææ¯å®å
¨çã"
#~ msgid "foo==bar"
#~ msgstr "foo==bar"
-
#~ msgid ""
#~ "<![CDATA[// Non-managed environment idiom\n"
#~ "Session sess = factory.openSession();\n"
@@ -1707,7 +699,6 @@
#~ "finally {\n"
#~ " sess.close();\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
#~ "try {\n"
@@ -1736,7 +727,6 @@
#~ " factory.getCurrentSession().getTransaction().rollback();\n"
#~ " throw e; // or display error message\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[// BMT idiom\n"
#~ "Session sess = factory.openSession();\n"
@@ -1775,7 +765,6 @@
#~ "finally {\n"
#~ " sess.close();\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[// BMT idiom with getCurrentSession()\n"
#~ "try {\n"
@@ -1812,7 +801,6 @@
#~ " tx.rollback();\n"
#~ " throw e; // or display error message\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[// CMT idiom\n"
#~ " Session sess = factory.getCurrentSession();\n"
@@ -1827,7 +815,6 @@
#~ " // do some work\n"
#~ " ...\n"
#~ "]]>"
-
#~ msgid ""
#~ "<![CDATA[\n"
#~ "Session sess = factory.openSession();\n"
@@ -1868,7 +855,6 @@
#~ "finally {\n"
#~ " sess.close();\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
#~ "session = factory.openSession();\n"
@@ -1895,7 +881,6 @@
#~ "\n"
#~ "t.commit();\n"
#~ "session.close();]]>"
-
#~ msgid ""
#~ "<![CDATA[// foo is an instance loaded earlier by the old session\n"
#~ "Transaction t = session.beginTransaction(); // Obtain a new JDBC "
@@ -1916,7 +901,6 @@
#~ "session.flush(); // Only for last transaction in conversation\n"
#~ "t.commit(); // Also return JDBC connection\n"
#~ "session.close(); // Only for last transaction in conversation]]>"
-
#~ msgid ""
#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
#~ "foo.setProperty(\"bar\");\n"
@@ -1935,3 +919,4 @@
#~ "loaded already\n"
#~ "t.commit();\n"
#~ "session.close();]]>"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -7,7 +7,7 @@
"Project-Id-Version: tutorial\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:16\n"
-"PO-Revision-Date: 2010-01-11 10:56+1000\n"
+"PO-Revision-Date: 2010-03-16 09:56+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -22,34 +22,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Intended for new users, this chapter provides an step-by-step introduction "
-"to Hibernate, starting with a simple application using an in-memory "
-"database. The tutorial is based on an earlier tutorial developed by Michael "
-"Gloegl. All code is contained in the <filename>tutorials/web</filename> "
-"directory of the project source."
-msgstr ""
-"é¢åæ°ç¨æ·ï¼ä»ä¸ä¸ªç®åç使ç¨å
åæ°æ®åºçä¾åå¼å§ï¼æ¬ç« æä¾å¯¹ Hibernate çéæ¥"
-"ä»ç»ãæ¬æç¨åºäº Michael Gloegl æ©æç¼åçæåãææ代ç é½å
å«å¨ "
-"<filename>tutorials/web</filename> ç®å½ä¸ã"
+msgid "Intended for new users, this chapter provides an step-by-step introduction to Hibernate, starting with a simple application using an in-memory database. The tutorial is based on an earlier tutorial developed by Michael Gloegl. All code is contained in the <filename>tutorials/web</filename> directory of the project source."
+msgstr "é¢åæ°ç¨æ·ï¼ä»ä¸ä¸ªç®åç使ç¨å
åæ°æ®åºçä¾åå¼å§ï¼æ¬ç« æä¾å¯¹ Hibernate çéæ¥ä»ç»ãæ¬æç¨åºäº Michael Gloegl æ©æç¼åçæåãææ代ç é½å
å«å¨ <filename>tutorials/web</filename> ç®å½ä¸ã"
#. Tag: para
#, no-c-format
-msgid ""
-"This tutorial expects the user have knowledge of both Java and SQL. If you "
-"have a limited knowledge of JAVA or SQL, it is advised that you start with a "
-"good introduction to that technology prior to attempting to learn Hibernate."
-msgstr ""
-"æ¬æç¨ææç¨æ·å
·å¤ Java å SQL ç¥è¯ãå¦æä½ è¿æ¹é¢çç¥è¯æéï¼æä»¬å»ºè®®ä½ å¨å¦"
-"ä¹ Hibernate ä¹åå
好好äºè§£è¿äºææ¯ã"
+msgid "This tutorial expects the user have knowledge of both Java and SQL. If you have a limited knowledge of JAVA or SQL, it is advised that you start with a good introduction to that technology prior to attempting to learn Hibernate."
+msgstr "æ¬æç¨ææç¨æ·å
·å¤ Java å SQL ç¥è¯ãå¦æä½ è¿æ¹é¢çç¥è¯æéï¼æä»¬å»ºè®®ä½ å¨å¦ä¹ Hibernate ä¹åå
好好äºè§£è¿äºææ¯ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The distribution contains another example application under the "
-"<filename>tutorial/eg</filename> project source directory."
-msgstr ""
-"æ¬çæ¬å¨æºä»£ç ç®å½ <filename>tutorial/eg</filename> ä¸è¿å
å«å¦å¤ä¸ä¸ªä¾ç¨ã"
+msgid "The distribution contains another example application under the <filename>tutorial/eg</filename> project source directory."
+msgstr "æ¬çæ¬å¨æºä»£ç ç®å½ <filename>tutorial/eg</filename> ä¸è¿å
å«å¦å¤ä¸ä¸ªä¾ç¨ã"
#. Tag: title
#, no-c-format
@@ -58,25 +42,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"For this example, we will set up a small database application that can store "
-"events we want to attend and information about the host(s) of these events."
-msgstr ""
-"å¨è¿ä¸ªä¾åéï¼æ们å°è®¾ç«ä¸ä¸ªå°åºç¨ç¨åºå¯ä»¥ä¿åæ们å¸æåå çæ´»å¨ï¼eventsï¼å"
-"è¿äºæ´»å¨ä¸»åæ¹çç¸å
³ä¿¡æ¯ãï¼è¯è
注ï¼å¨æ¬æç¨çåé¢é¨åï¼æ们å°ç´æ¥ä½¿ç¨ event "
-"èä¸æ¯å®çä¸æç¿»è¯âæ´»å¨âï¼ä»¥å
æ··æ·ãï¼"
+msgid "For this example, we will set up a small database application that can store events we want to attend and information about the host(s) of these events."
+msgstr "å¨è¿ä¸ªä¾åéï¼æ们å°è®¾ç«ä¸ä¸ªå°åºç¨ç¨åºå¯ä»¥ä¿åæ们å¸æåå çæ´»å¨ï¼eventsï¼åè¿äºæ´»å¨ä¸»åæ¹çç¸å
³ä¿¡æ¯ãï¼è¯è
注ï¼å¨æ¬æç¨çåé¢é¨åï¼æ们å°ç´æ¥ä½¿ç¨ event èä¸æ¯å®çä¸æç¿»è¯âæ´»å¨âï¼ä»¥å
æ··æ·ãï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Although you can use whatever database you feel comfortable using, we will "
-"use <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink> (an in-memory, Java "
-"database) to avoid describing installation/setup of any particular database "
-"servers."
-msgstr ""
-"è½ç¶ä½ å¯ä»¥ä½¿ç¨ä»»ä½æ°æ®åºï¼æ们è¿æ¯ç¨ <ulink url=\"http://hsqldb.org/"
-"\">HSQLDB</ulink>ï¼ä¸ä¸ªç¨ Java ç¼åçå
åæ°æ®åºï¼æ¥é¿å
è±è´¹ç¯ç« 对æ°æ®åºæå¡å¨"
-"çå®è£
/é
ç½®è¿è¡è§£éã"
+msgid "Although you can use whatever database you feel comfortable using, we will use <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink> (an in-memory, Java database) to avoid describing installation/setup of any particular database servers."
+msgstr "è½ç¶ä½ å¯ä»¥ä½¿ç¨ä»»ä½æ°æ®åºï¼æ们è¿æ¯ç¨ <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink>ï¼ä¸ä¸ªç¨ Java ç¼åçå
åæ°æ®åºï¼æ¥é¿å
è±è´¹ç¯ç« 对æ°æ®åºæå¡å¨çå®è£
/é
ç½®è¿è¡è§£éã"
#. Tag: title
#, no-c-format
@@ -85,65 +57,22 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The first thing we need to do is to set up the development environment. We "
-"will be using the \"standard layout\" advocated by alot of build tools such "
-"as <ulink url=\"http://maven.org\">Maven</ulink>. Maven, in particular, has "
-"a good resource describing this <ulink url=\"http://maven.apache.org/guides/"
-"introduction/introduction-to-the-standard-directory-layout.html\">layout</"
-"ulink>. As this tutorial is to be a web application, we will be creating and "
-"making use of <filename>src/main/java</filename>, <filename>src/main/"
-"resources</filename> and <filename>src/main/webapp</filename> directories."
-msgstr ""
-"æ们éè¦åç第ä¸ä»¶äºæ
æ¯è®¾ç½®å¼åç¯å¢ãæ们å°ä½¿ç¨è®¸å¤æ建工å
·å¦ <ulink url="
-"\"http://maven.org\">Maven</ulink> æé¼å¹çâæ åæ ¼å¼âãç¹å«æ¯ Mavenï¼å®çèµæº"
-"对è¿ä¸ª<ulink url=\"http://maven.apache.org/guides/introduction/introduction-"
-"to-the-standard-directory-layout.html\">æ ¼å¼ï¼layoutï¼</ulink>æçå¾å¥½çæ"
-"è¿°ãå 为æ¬æç¨ä½¿ç¨çæ¯ web åºç¨ç¨åºï¼æä¹å°å建åä½¿ç¨ <filename>src/main/"
-"java</filename>ã<filename>src/main/resources</filename> å <filename>src/"
-"main/webapp</filename> ç®å½ã"
+msgid "The first thing we need to do is to set up the development environment. We will be using the \"standard layout\" advocated by alot of build tools such as <ulink url=\"http://maven.org\">Maven</ulink>. Maven, in particular, has a good resource describing this <ulink url=\"http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html\">layout</ulink>. As this tutorial is to be a web application, we will be creating and making use of <filename>src/main/java</filename>, <filename>src/main/resources</filename> and <filename>src/main/webapp</filename> directories."
+msgstr "æ们éè¦åç第ä¸ä»¶äºæ
æ¯è®¾ç½®å¼åç¯å¢ãæ们å°ä½¿ç¨è®¸å¤æ建工å
·å¦ <ulink url=\"http://maven.org\">Maven</ulink> æé¼å¹çâæ åæ ¼å¼âãç¹å«æ¯ Mavenï¼å®çèµæºå¯¹è¿ä¸ª<ulink url=\"http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html\">æ ¼å¼ï¼layoutï¼</ulink>æçå¾å¥½çæè¿°ãå 为æ¬æç¨ä½¿ç¨çæ¯ web åºç¨ç¨åºï¼æä¹å°å建åä½¿ç¨ <filename>src/main/java</filename>ã<filename>src/main/resources</filename> å <filename>src/main/webapp</filename> ç®å½ã"
#. Tag: para
#, no-c-format
-msgid ""
-"We will be using Maven in this tutorial, taking advantage of its transitive "
-"dependency management capabilities as well as the ability of many IDEs to "
-"automatically set up a project for us based on the maven descriptor."
-msgstr ""
-"å¨æ¬æç¨éæ们å°ä½¿ç¨ Mavenï¼å©ç¨å
¶ transitive dependency 管ç以åæ ¹æ® Maven "
-"æè¿°ç¬¦ç¨ IDE èªå¨è®¾ç½®é¡¹ç®çè½åã"
+msgid "We will be using Maven in this tutorial, taking advantage of its transitive dependency management capabilities as well as the ability of many IDEs to automatically set up a project for us based on the maven descriptor."
+msgstr "å¨æ¬æç¨éæ们å°ä½¿ç¨ Mavenï¼å©ç¨å
¶ transitive dependency 管ç以åæ ¹æ® Maven æè¿°ç¬¦ç¨ IDE èªå¨è®¾ç½®é¡¹ç®çè½åã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"It is not a requirement to use Maven. If you wish to use something else to "
-"build this tutoial (such as Ant), the layout will remain the same. The only "
-"change is that you will need to manually account for all the needed "
-"dependencies. If you use something like <ulink url=\"http://ant.apache.org/"
-"ivy/\">Ivy</ulink> providing transitive dependency management you would "
-"still use the dependencies mentioned below. Otherwise, you'd need to grab "
-"<emphasis>all</emphasis> dependencies, both explicit and transitive, and add "
-"them to the project's classpath. If working from the Hibernate distribution "
-"bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts "
-"in the <filename>lib/required</filename> directory and all files from either "
-"the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/"
-"javassist</filename> directory; additionally you will need both the servlet-"
-"api jar and one of the slf4j logging backends."
-msgstr ""
-"Maven 并ä¸è¦æ±è¿æ ·ãå¦æä½ å¸æ使ç¨å
¶ä»ææ¯æ¥æ建è¿ä¸ªæç¨ï¼å¦ Antï¼ï¼æ ¼å¼å°ä¿"
-"æä¸åãå¯ä¸çæ¹åæ¯ä½ å°éè¦æ工管çææçä¾èµå
³ç³»ãå¦æä½ ä½¿ç¨ <ulink url="
-"\"http://ant.apache.org/ivy/\">Ivy</ulink> æ¥æä¾ transitive dependency 管"
-"çï¼ä½ å°ä»ç¶ä¸é¢æå°çä¾èµå
³ç³»ãå¦åï¼ä½ å°éè¦æ¾å°ææçä¾èµå
³ç³»ï¼æ¾æ§çåè¿"
-"渡çï¼å¹¶æå®ä»¬æ·»å å°é¡¹ç®ç classpath éãå¦æä½¿ç¨ Hibernate æç»çæ¬ï¼è¿æå³"
-"ç <filename>hibernate3.jar</filename>ã<filename>lib/required</filename> ç®"
-"å½ä¸çææ artifact å <filename>lib/bytecode/cglib</filename> æ "
-"<filename>lib/bytecode/javassist</filename> ä¸çæææ件ï¼æ¤å¤ä½ å°éè¦ "
-"servlet-api jar åä¸ä¸ª slf4j æ¥å¿åå°æ件ã "
+#, no-c-format
+msgid "It is not a requirement to use Maven. If you wish to use something else to build this tutoial (such as Ant), the layout will remain the same. The only change is that you will need to manually account for all the needed dependencies. If you use something like <ulink url=\"http://ant.apache.org/ivy/\">Ivy</ulink> providing transitive dependency management you would still use the dependencies mentioned below. Otherwise, you'd need to grab <emphasis>all</emphasis> dependencies, both explicit and transitive, and add them to the project's classpath. If working from the Hibernate distribution bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts in the <filename>lib/required</filename> directory and all files from either the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/javassist</filename> directory; additionally you will need both the servlet-api jar and one of the slf4j logging backends."
+msgstr "Maven 并ä¸è¦æ±è¿æ ·ãå¦æä½ å¸æ使ç¨å
¶ä»ææ¯æ¥æ建è¿ä¸ªæç¨ï¼å¦ Antï¼ï¼æ ¼å¼å°ä¿æä¸åãå¯ä¸çæ¹åæ¯ä½ å°éè¦æ工管çææçä¾èµå
³ç³»ãå¦æä½ ä½¿ç¨ <ulink url=\"http://ant.apache.org/ivy/\">Ivy</ulink> æ¥æä¾ transitive dependency 管çï¼ä½ å°ä»ç¶ä¸é¢æå°çä¾èµå
³ç³»ãå¦åï¼ä½ å°éè¦æ¾å°ææçä¾èµå
³ç³»ï¼æ¾æ§çåè¿æ¸¡çï¼å¹¶æå®ä»¬æ·»å å°é¡¹ç®ç classpath éãå¦æä½¿ç¨ Hibernate æç»çæ¬ï¼è¿æå³ç <filename>hibernate3.jar</filename>ã<filename>lib/required</filename> ç®å½ä¸çææ artifact å <filename>lib/bytecode/cglib</filename> æ <filename>lib/bytecode/javassist</filename> ä¸çæææ件ï¼æ¤å¤ä½ å°éè¦ servlet-api jar åä¸ä¸ª slf4j æ¥å¿åå°æ件ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Save this file as <filename>pom.xml</filename> in the project root directory."
+msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
msgstr "æè¿ä¸ªæ件ä¿å为项ç®æ ¹ç®å½ä¸ç <filename>pom.xml</filename>ã"
#. Tag: title
@@ -153,75 +82,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Next, we create a class that represents the event we want to store in the "
-"database; it is a simple JavaBean class with some properties:"
-msgstr ""
-"æ¥ä¸æ¥æ们å建ä¸ä¸ªç±»ï¼ç¨æ¥ä»£è¡¨é£äºæ们å¸æå¨åå¨æ°æ®åºéç eventï¼è¿æ¯ä¸ä¸ªå
·"
-"æä¸äºå±æ§çç®å JavaBean ç±»ï¼"
+msgid "Next, we create a class that represents the event we want to store in the database; it is a simple JavaBean class with some properties:"
+msgstr "æ¥ä¸æ¥æ们å建ä¸ä¸ªç±»ï¼ç¨æ¥ä»£è¡¨é£äºæ们å¸æå¨åå¨æ°æ®åºéç eventï¼è¿æ¯ä¸ä¸ªå
·æä¸äºå±æ§çç®å JavaBean ç±»ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"This class uses standard JavaBean naming conventions for property getter and "
-"setter methods, as well as private visibility for the fields. Although this "
-"is the recommended design, it is not required. Hibernate can also access "
-"fields directly, the benefit of accessor methods is robustness for "
-"refactoring."
-msgstr ""
-"ä½ å¯ä»¥çå°è¿ä¸ªç±»å¯¹å±æ§çååæ¹æ³ï¼getter and setter methodï¼ä½¿ç¨äºæ å "
-"JavaBean å½å约å®ï¼åæ¶æç±»å±æ§ï¼fieldï¼ç访é®çº§å«è®¾æç§æçï¼privateï¼ãè¿æ¯"
-"æ¨èç设计ï¼ä½å¹¶ä¸æ¯å¿
é¡»çãHibernate ä¹å¯ä»¥ç´æ¥è®¿é®è¿äº fieldï¼è使ç¨è®¿é®æ¹"
-"æ³ï¼accessor methodï¼ç好å¤æ¯æä¾äºéææ¶çå¥å£®æ§ï¼robustnessï¼ã"
+msgid "This class uses standard JavaBean naming conventions for property getter and setter methods, as well as private visibility for the fields. Although this is the recommended design, it is not required. Hibernate can also access fields directly, the benefit of accessor methods is robustness for refactoring."
+msgstr "ä½ å¯ä»¥çå°è¿ä¸ªç±»å¯¹å±æ§çååæ¹æ³ï¼getter and setter methodï¼ä½¿ç¨äºæ å JavaBean å½å约å®ï¼åæ¶æç±»å±æ§ï¼fieldï¼ç访é®çº§å«è®¾æç§æçï¼privateï¼ãè¿æ¯æ¨èç设计ï¼ä½å¹¶ä¸æ¯å¿
é¡»çãHibernate ä¹å¯ä»¥ç´æ¥è®¿é®è¿äº fieldï¼è使ç¨è®¿é®æ¹æ³ï¼accessor methodï¼ç好å¤æ¯æä¾äºéææ¶çå¥å£®æ§ï¼robustnessï¼ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>id</literal> property holds a unique identifier value for a "
-"particular event. All persistent entity classes (there are less important "
-"dependent classes as well) will need such an identifier property if we want "
-"to use the full feature set of Hibernate. In fact, most applications, "
-"especially web applications, need to distinguish objects by identifier, so "
-"you should consider this a feature rather than a limitation. However, we "
-"usually do not manipulate the identity of an object, hence the setter method "
-"should be private. Only Hibernate will assign identifiers when an object is "
-"saved. Hibernate can access public, private, and protected accessor methods, "
-"as well as public, private and protected fields directly. The choice is up "
-"to you and you can match it to fit your application design."
-msgstr ""
-"对ä¸ç¹å®ç event, <literal>id</literal> å±æ§ææå¯ä¸çæ è¯ç¬¦ï¼identifierï¼ç"
-"å¼ãå¦ææ们å¸æä½¿ç¨ Hibernate æä¾çææç¹æ§ï¼é£ä¹ææçæä¹
åå®ä½"
-"ï¼persistent entityï¼ç±»ï¼è¿éä¹å
æ¬ä¸äºæ¬¡è¦ä¾èµç±»ï¼é½éè¦ä¸ä¸ªè¿æ ·çæ è¯ç¬¦å±"
-"æ§ãèäºå®ä¸ï¼å¤§å¤æ°åºç¨ç¨åºï¼ç¹å«æ¯ web åºç¨ç¨åºï¼é½éè¦éè¿æ è¯ç¬¦æ¥åºå«å¯¹"
-"象ï¼æä»¥ä½ åºè¯¥èè使ç¨æ è¯ç¬¦å±æ§èä¸æ¯æå®å½ä½ä¸ç§éå¶ãç¶èï¼æ们é常ä¸ä¼æ"
-"ä½å¯¹è±¡çæ è¯ï¼identityï¼ï¼å æ¤å®ç setter æ¹æ³ç访é®çº§å«åºè¯¥å£°æ privateãè¿"
-"æ ·å½å¯¹è±¡è¢«ä¿åçæ¶åï¼åªæ Hibernate å¯ä»¥ä¸ºå®åé
æ è¯ç¬¦å¼ãä½ å¯çå°Hibernate"
-"å¯ä»¥ç´æ¥è®¿é® publicï¼private å protected ç访é®æ¹æ³å fieldãæ以éæ©åªç§æ¹"
-"å¼å®å
¨åå³äºä½ ï¼ä½ å¯ä»¥ä½¿ä½ çéæ©ä¸ä½ çåºç¨ç¨åºè®¾è®¡ç¸å»åã "
+msgid "The <literal>id</literal> property holds a unique identifier value for a particular event. All persistent entity classes (there are less important dependent classes as well) will need such an identifier property if we want to use the full feature set of Hibernate. In fact, most applications, especially web applications, need to distinguish objects by identifier, so you should consider this a feature rather than a limitation. However, we usually do not manipulate the identity of an object, hence the setter method should be private. Only Hibernate will assign identifiers when an object is saved. Hibernate can access public, private, and protected accessor methods, as well as public, private and protected fields directly. The choice is up to you and you can match it to fit your application design."
+msgstr "对ä¸ç¹å®ç event, <literal>id</literal> å±æ§ææå¯ä¸çæ è¯ç¬¦ï¼identifierï¼çå¼ãå¦ææ们å¸æä½¿ç¨ Hibernate æä¾çææç¹æ§ï¼é£ä¹ææçæä¹
åå®ä½ï¼persistent entityï¼ç±»ï¼è¿éä¹å
æ¬ä¸äºæ¬¡è¦ä¾èµç±»ï¼é½éè¦ä¸ä¸ªè¿æ ·çæ è¯ç¬¦å±æ§ãèäºå®ä¸ï¼å¤§å¤æ°åºç¨ç¨åºï¼ç¹å«æ¯ web åºç¨ç¨åºï¼é½éè¦éè¿æ è¯ç¬¦æ¥åºå«å¯¹è±¡ï¼æä»¥ä½ åºè¯¥èè使ç¨æ è¯ç¬¦å±æ§èä¸æ¯æå®å½ä½ä¸ç§éå¶ãç¶èï¼æ们é常ä¸ä¼æä½å¯¹è±¡çæ è¯ï¼identityï¼ï¼å æ¤å®ç setter æ¹æ³ç访é®çº§å«åºè¯¥å£°æ privateãè¿æ ·å½å¯¹è±¡è¢«ä¿åçæ¶åï¼åªæ Hibernate å¯ä»¥ä¸ºå®åé
æ è¯ç¬¦å¼ãä½ å¯çå°Hibernateå¯ä»¥ç´æ¥è®¿é® publicï¼private å protected ç访é®æ¹æ³å fieldãæ以éæ©åªç§æ¹å¼å®å
¨åå³äºä½ ï¼ä½ å¯ä»¥ä½¿ä½ çéæ©ä¸ä½ çåºç¨ç¨åºè®¾è®¡ç¸å»åã "
#. Tag: para
#, no-c-format
-msgid ""
-"The no-argument constructor is a requirement for all persistent classes; "
-"Hibernate has to create objects for you, using Java Reflection. The "
-"constructor can be private, however package or public visibility is required "
-"for runtime proxy generation and efficient data retrieval without bytecode "
-"instrumentation."
-msgstr ""
-"ææçæä¹
åç±»ï¼persistent classesï¼é½è¦æ±ææ åçæé å¨ï¼å 为 Hibernate å¿
é¡»"
-"ä½¿ç¨ Java åå°æºå¶æ¥ä¸ºä½ å建对象ãæé å¨ï¼constructorï¼ç访é®çº§å«å¯ä»¥æ¯ "
-"privateï¼ç¶èå½çæè¿è¡æ¶ä»£çï¼runtime proxyï¼çæ¶ååè¦æ±ä½¿ç¨è³å°æ¯ package "
-"级å«ç访é®æ§å¶ï¼è¿æ ·å¨æ²¡æåèç æ令ï¼bytecode instrumentationï¼çæ
åµä¸ï¼ä»"
-"æä¹
åç±»éè·åæ°æ®ä¼æ´ææçã "
+msgid "The no-argument constructor is a requirement for all persistent classes; Hibernate has to create objects for you, using Java Reflection. The constructor can be private, however package or public visibility is required for runtime proxy generation and efficient data retrieval without bytecode instrumentation."
+msgstr "ææçæä¹
åç±»ï¼persistent classesï¼é½è¦æ±ææ åçæé å¨ï¼å 为 Hibernate å¿
é¡»ä½¿ç¨ Java åå°æºå¶æ¥ä¸ºä½ å建对象ãæé å¨ï¼constructorï¼ç访é®çº§å«å¯ä»¥æ¯ privateï¼ç¶èå½çæè¿è¡æ¶ä»£çï¼runtime proxyï¼çæ¶ååè¦æ±ä½¿ç¨è³å°æ¯ package 级å«ç访é®æ§å¶ï¼è¿æ ·å¨æ²¡æåèç æ令ï¼bytecode instrumentationï¼çæ
åµä¸ï¼ä»æä¹
åç±»éè·åæ°æ®ä¼æ´ææçã "
#. Tag: para
#, no-c-format
-msgid ""
-"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
-"filename> directory."
-msgstr ""
-"æè¿ä¸ªæ件ä¿åå° <filename>src/main/java/org/hibernate/tutorial/domain</"
-"filename> ç®å½ä¸ã"
+msgid "Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</filename> directory."
+msgstr "æè¿ä¸ªæ件ä¿åå° <filename>src/main/java/org/hibernate/tutorial/domain</filename> ç®å½ä¸ã"
#. Tag: title
#, no-c-format
@@ -230,15 +112,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate needs to know how to load and store objects of the persistent "
-"class. This is where the Hibernate mapping file comes into play. The mapping "
-"file tells Hibernate what table in the database it has to access, and what "
-"columns in that table it should use."
-msgstr ""
-"Hibernate éè¦ç¥éææ ·å»å è½½ï¼loadï¼ååå¨ï¼storeï¼æä¹
åç±»ç对象ãè¿æ£æ¯ "
-"Hibernate æ å°æ件åæ¥ä½ç¨çå°æ¹ãæ å°æ件åè¯ Hibernate å®åºè¯¥è®¿é®æ°æ®åº"
-"ï¼databaseï¼éé¢çåªä¸ªè¡¨ï¼tableï¼ååºè¯¥ä½¿ç¨è¡¨éé¢çåªäºå段ï¼columnï¼ã"
+msgid "Hibernate needs to know how to load and store objects of the persistent class. This is where the Hibernate mapping file comes into play. The mapping file tells Hibernate what table in the database it has to access, and what columns in that table it should use."
+msgstr "Hibernate éè¦ç¥éææ ·å»å è½½ï¼loadï¼ååå¨ï¼storeï¼æä¹
åç±»ç对象ãè¿æ£æ¯ Hibernate æ å°æ件åæ¥ä½ç¨çå°æ¹ãæ å°æ件åè¯ Hibernate å®åºè¯¥è®¿é®æ°æ®åºï¼databaseï¼éé¢çåªä¸ªè¡¨ï¼tableï¼ååºè¯¥ä½¿ç¨è¡¨éé¢çåªäºå段ï¼columnï¼ã"
#. Tag: para
#, no-c-format
@@ -247,194 +122,68 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate DTD is sophisticated. You can use it for auto-completion of XML "
-"mapping elements and attributes in your editor or IDE. Opening up the DTD "
-"file in your text editor is the easiest way to get an overview of all "
-"elements and attributes, and to view the defaults, as well as some comments. "
-"Hibernate will not load the DTD file from the web, but first look it up from "
-"the classpath of the application. The DTD file is included in "
-"<filename>hibernate-core.jar</filename> (it is also included in the "
-"<filename>hibernate3.jar</filename>, if using the distribution bundle)."
-msgstr ""
-"注æ Hibernate ç DTD æ¯é常å¤æçãä½ çç¼è¾å¨æè
IDE é使ç¨å®æ¥èªå¨å®æé£äº"
-"ç¨æ¥æ å°ç XML å
ç´ ï¼elementï¼åå±æ§ï¼attributeï¼ãä½ ä¹å¯ä»¥å¨ææ¬ç¼è¾å¨éæ"
-"å¼ DTD â è¿æ¯æç®åçæ¹å¼æ¥æ¦è§ææçå
ç´ å attributeï¼å¹¶æ¥çå®ä»¬ç缺çå¼ä»¥å"
-"注éã注æ Hibernate ä¸ä¼ä» web å è½½ DTD æ件ï¼ä½å®ä¼é¦å
å¨åºç¨ç¨åºç "
-"classpath ä¸æ¥æ¾ãDTD æ件已å
æ¬å¨ <literal>hibernate3.jar</literal> éï¼åæ¶"
-"ä¹å¨ Hibernate åå¸å
ç <literal>src/</literal> ç®å½ä¸ã "
+msgid "Hibernate DTD is sophisticated. You can use it for auto-completion of XML mapping elements and attributes in your editor or IDE. Opening up the DTD file in your text editor is the easiest way to get an overview of all elements and attributes, and to view the defaults, as well as some comments. Hibernate will not load the DTD file from the web, but first look it up from the classpath of the application. The DTD file is included in <filename>hibernate-core.jar</filename> (it is also included in the <filename>hibernate3.jar</filename>, if using the distribution bundle)."
+msgstr "注æ Hibernate ç DTD æ¯é常å¤æçãä½ çç¼è¾å¨æè
IDE é使ç¨å®æ¥èªå¨å®æé£äºç¨æ¥æ å°ç XML å
ç´ ï¼elementï¼åå±æ§ï¼attributeï¼ãä½ ä¹å¯ä»¥å¨ææ¬ç¼è¾å¨éæå¼ DTD â è¿æ¯æç®åçæ¹å¼æ¥æ¦è§ææçå
ç´ å attributeï¼å¹¶æ¥çå®ä»¬ç缺çå¼ä»¥å注éã注æ Hibernate ä¸ä¼ä» web å è½½ DTD æ件ï¼ä½å®ä¼é¦å
å¨åºç¨ç¨åºç classpath ä¸æ¥æ¾ãDTD æ件已å
æ¬å¨ <literal>hibernate3.jar</literal> éï¼åæ¶ä¹å¨ Hibernate åå¸å
ç <literal>src/</literal> ç®å½ä¸ã "
#. Tag: para
#, no-c-format
-msgid ""
-"We will omit the DTD declaration in future examples to shorten the code. It "
-"is, of course, not optional."
-msgstr ""
-"为缩ç代ç é¿åº¦ï¼å¨ä»¥åçä¾åéæ们ä¼çç¥ DTD ç声æãå½ç¶ï¼å¨å®é
çåºç¨ç¨åº"
-"ä¸ï¼DTD 声ææ¯å¿
éçã "
+msgid "We will omit the DTD declaration in future examples to shorten the code. It is, of course, not optional."
+msgstr "为缩ç代ç é¿åº¦ï¼å¨ä»¥åçä¾åéæ们ä¼çç¥ DTD ç声æãå½ç¶ï¼å¨å®é
çåºç¨ç¨åºä¸ï¼DTD 声ææ¯å¿
éçã "
#. Tag: para
#, no-c-format
-msgid ""
-"Between the two <literal>hibernate-mapping</literal> tags, include a "
-"<literal>class</literal> element. All persistent entity classes (again, "
-"there might be dependent classes later on, which are not first-class "
-"entities) need a mapping to a table in the SQL database:"
-msgstr ""
-"å¨ <literal>hibernate-mapping</literal> æ ç¾ï¼tagï¼ä¹é´, å«æä¸ä¸ª "
-"<literal>class</literal> å
ç´ ãææçæä¹
åå®ä½ç±»ï¼å次声æï¼æ许æ¥ä¸æ¥ä¼æä¾"
-"èµç±»ï¼å°±æ¯é£äºæ¬¡è¦çå®ä½ï¼é½éè¦ä¸ä¸ªè¿æ ·çæ å°ï¼æ¥æ类对象æ å°å° SQL æ°æ®åºé"
-"ç表ï¼"
+msgid "Between the two <literal>hibernate-mapping</literal> tags, include a <literal>class</literal> element. All persistent entity classes (again, there might be dependent classes later on, which are not first-class entities) need a mapping to a table in the SQL database:"
+msgstr "å¨ <literal>hibernate-mapping</literal> æ ç¾ï¼tagï¼ä¹é´, å«æä¸ä¸ª <literal>class</literal> å
ç´ ãææçæä¹
åå®ä½ç±»ï¼å次声æï¼æ许æ¥ä¸æ¥ä¼æä¾èµç±»ï¼å°±æ¯é£äºæ¬¡è¦çå®ä½ï¼é½éè¦ä¸ä¸ªè¿æ ·çæ å°ï¼æ¥æ类对象æ å°å° SQL æ°æ®åºéç表ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"So far we have told Hibernate how to persist and load object of class "
-"<literal>Event</literal> to the table <literal>EVENTS</literal>. Each "
-"instance is now represented by a row in that table. Now we can continue by "
-"mapping the unique identifier property to the tables primary key. As we do "
-"not want to care about handling this identifier, we configure Hibernate's "
-"identifier generation strategy for a surrogate primary key column:"
-msgstr ""
-"å°ç®å为æ¢ï¼æ们åè¯äº Hibernate ææ ·æ <literal>Events</literal> ç±»ç对象æ"
-"ä¹
åå°æ°æ®åºç <literal>EVENTS</literal> 表éï¼ä»¥åææ ·ä» <literal>EVENTS</"
-"literal> 表å è½½å° <literal>Events</literal> ç±»ç对象ãæ¯ä¸ªå®ä¾å¯¹åºçæ°æ®åºè¡¨"
-"ä¸çä¸è¡ãç°å¨æ们å°ç»§ç»è®¨è®ºæå
³å¯ä¸æ è¯ç¬¦å±æ§å°æ°æ®åºè¡¨çæ å°ãå¦å¤ï¼ç±äºæ"
-"们ä¸å
³å¿ææ ·å¤çè¿ä¸ªæ è¯ç¬¦ï¼æ们就é
ç½®ç± Hibernate çæ è¯ç¬¦çæçç¥æ¥äº§ç代ç"
-"主é®å段ï¼"
+msgid "So far we have told Hibernate how to persist and load object of class <literal>Event</literal> to the table <literal>EVENTS</literal>. Each instance is now represented by a row in that table. Now we can continue by mapping the unique identifier property to the tables primary key. As we do not want to care about handling this identifier, we configure Hibernate's identifier generation strategy for a surrogate primary key column:"
+msgstr "å°ç®å为æ¢ï¼æ们åè¯äº Hibernate ææ ·æ <literal>Events</literal> ç±»ç对象æä¹
åå°æ°æ®åºç <literal>EVENTS</literal> 表éï¼ä»¥åææ ·ä» <literal>EVENTS</literal> 表å è½½å° <literal>Events</literal> ç±»ç对象ãæ¯ä¸ªå®ä¾å¯¹åºçæ°æ®åºè¡¨ä¸çä¸è¡ãç°å¨æ们å°ç»§ç»è®¨è®ºæå
³å¯ä¸æ è¯ç¬¦å±æ§å°æ°æ®åºè¡¨çæ å°ãå¦å¤ï¼ç±äºæ们ä¸å
³å¿ææ ·å¤çè¿ä¸ªæ è¯ç¬¦ï¼æ们就é
ç½®ç± Hibernate çæ è¯ç¬¦çæçç¥æ¥äº§ç代ç主é®å段ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>id</literal> element is the declaration of the identifier "
-"property. The <literal>name=\"id\"</literal> mapping attribute declares the "
-"name of the JavaBean property and tells Hibernate to use the <literal>getId()"
-"</literal> and <literal>setId()</literal> methods to access the property. "
-"The column attribute tells Hibernate which column of the <literal>EVENTS</"
-"literal> table holds the primary key value."
-msgstr ""
-"<literal>id</literal> å
ç´ æ¯å¯¹ identifier å±æ§ç声æã<literal>name=\"id\"</"
-"literal> æ å°å±æ§å£°æäº JavaBean å±æ§çå称并åè¯ Hibernate ä½¿ç¨ "
-"<literal>getId()</literal> å <literal>setId()</literal> æ¹æ³æ¥è®¿é®è¿ä¸ªå±æ§ã"
-"column å±æ§åè¯ Hibernate <literal>EVENTS</literal> 表çåªä¸ªå段ææ主é®å¼ã"
+msgid "The <literal>id</literal> element is the declaration of the identifier property. The <literal>name=\"id\"</literal> mapping attribute declares the name of the JavaBean property and tells Hibernate to use the <literal>getId()</literal> and <literal>setId()</literal> methods to access the property. The column attribute tells Hibernate which column of the <literal>EVENTS</literal> table holds the primary key value."
+msgstr "<literal>id</literal> å
ç´ æ¯å¯¹ identifier å±æ§ç声æã<literal>name=\"id\"</literal> æ å°å±æ§å£°æäº JavaBean å±æ§çå称并åè¯ Hibernate ä½¿ç¨ <literal>getId()</literal> å <literal>setId()</literal> æ¹æ³æ¥è®¿é®è¿ä¸ªå±æ§ãcolumn å±æ§åè¯ Hibernate <literal>EVENTS</literal> 表çåªä¸ªå段ææ主é®å¼ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The nested <literal>generator</literal> element specifies the identifier "
-"generation strategy (aka how are identifier values generated?). In this case "
-"we choose <literal>native</literal>, which offers a level of portability "
-"depending on the configured database dialect. Hibernate supports database "
-"generated, globally unique, as well as application assigned, identifiers. "
-"Identifier value generation is also one of Hibernate's many extension points "
-"and you can plugin in your own strategy."
-msgstr ""
-"åµå¥ç <literal>generator</literal> å
ç´ æå®æ è¯ç¬¦ççæçç¥ï¼ä¹å°±æ¯æ è¯ç¬¦å¼"
-"æ¯æä¹äº§ççï¼ãå¨è¿ä¸ªä¾åéï¼æ们éæ© <literal>native</literal>ï¼å®æä¾äºå"
-"å³äºæ°æ®åºæ¹è¨çå¯ç§»æ¤æ§ãHibernate æ°æ®åºçæçãå
¨å±æ§å¯ä¸ç以ååºç¨ç¨åºå"
-"é
çæ è¯ç¬¦ãæ è¯ç¬¦å¼ççæä¹æ¯ Hibernate çæ©å±åè½ä¹ä¸ï¼ä½ å¯ä»¥æå
¥èªå·±çç"
-"ç¥ã"
+msgid "The nested <literal>generator</literal> element specifies the identifier generation strategy (aka how are identifier values generated?). In this case we choose <literal>native</literal>, which offers a level of portability depending on the configured database dialect. Hibernate supports database generated, globally unique, as well as application assigned, identifiers. Identifier value generation is also one of Hibernate's many extension points and you can plugin in your own strategy."
+msgstr "åµå¥ç <literal>generator</literal> å
ç´ æå®æ è¯ç¬¦ççæçç¥ï¼ä¹å°±æ¯æ è¯ç¬¦å¼æ¯æä¹äº§ççï¼ãå¨è¿ä¸ªä¾åéï¼æ们éæ© <literal>native</literal>ï¼å®æä¾äºåå³äºæ°æ®åºæ¹è¨çå¯ç§»æ¤æ§ãHibernate æ°æ®åºçæçãå
¨å±æ§å¯ä¸ç以ååºç¨ç¨åºåé
çæ è¯ç¬¦ãæ è¯ç¬¦å¼ççæä¹æ¯ Hibernate çæ©å±åè½ä¹ä¸ï¼ä½ å¯ä»¥æå
¥èªå·±ççç¥ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>native</literal> is no longer consider the best strategy in terms "
-"of portability. for further discussion, see <xref linkend=\"portability-idgen"
-"\" />"
-msgstr ""
-"ä»ç§»æ¤æ§æ¥è¯´ï¼<literal>native</literal> ä¸å被认为æ¯æ好ççç¥ãè¿ä¸æ¥ç讨"
-"论ï¼è¯·åè <xref linkend=\"portability-idgen\" />ã"
+#, no-c-format
+msgid "<literal>native</literal> is no longer consider the best strategy in terms of portability. for further discussion, see <xref linkend=\"portability-idgen\" />"
+msgstr "ä»ç§»æ¤æ§æ¥è¯´ï¼<literal>native</literal> ä¸å被认为æ¯æ好ççç¥ãè¿ä¸æ¥ç讨论ï¼è¯·åè <xref linkend=\"portability-idgen\" />ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Lastly, we need to tell Hibernate about the remaining entity class "
-"properties. By default, no properties of the class are considered persistent:"
-msgstr ""
-"æåæ们å¨æ å°æ件éé¢å
å«éè¦æä¹
åå±æ§ç声æãé»è®¤æ
åµä¸ï¼ç±»éé¢çå±æ§é½è¢«"
-"è§ä¸ºéæä¹
åçï¼ "
+msgid "Lastly, we need to tell Hibernate about the remaining entity class properties. By default, no properties of the class are considered persistent:"
+msgstr "æåæ们å¨æ å°æ件éé¢å
å«éè¦æä¹
åå±æ§ç声æãé»è®¤æ
åµä¸ï¼ç±»éé¢çå±æ§é½è¢«è§ä¸ºéæä¹
åçï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Similar to the <literal>id</literal> element, the <literal>name</literal> "
-"attribute of the <literal>property</literal> element tells Hibernate which "
-"getter and setter methods to use. In this case, Hibernate will search for "
-"<literal>getDate()</literal>, <literal>setDate()</literal>, <literal>getTitle"
-"()</literal> and <literal>setTitle()</literal> methods."
-msgstr ""
-"å <literal>id</literal> å
ç´ ä¸æ ·ï¼<literal>property</literal> å
ç´ ç "
-"<literal>name</literal> å±æ§åè¯ Hibernate 使ç¨åªä¸ª getter å setter æ¹æ³ãå¨"
-"æ¤ä¾ä¸ï¼Hibernate ä¼å¯»æ¾ <literal>getDate()</literal>ã<literal>setDate()</"
-"literal>ã<literal>getTitle()</literal> å <literal>setTitle()</literal> æ¹"
-"æ³ã "
+msgid "Similar to the <literal>id</literal> element, the <literal>name</literal> attribute of the <literal>property</literal> element tells Hibernate which getter and setter methods to use. In this case, Hibernate will search for <literal>getDate()</literal>, <literal>setDate()</literal>, <literal>getTitle()</literal> and <literal>setTitle()</literal> methods."
+msgstr "å <literal>id</literal> å
ç´ ä¸æ ·ï¼<literal>property</literal> å
ç´ ç <literal>name</literal> å±æ§åè¯ Hibernate 使ç¨åªä¸ª getter å setter æ¹æ³ãå¨æ¤ä¾ä¸ï¼Hibernate ä¼å¯»æ¾ <literal>getDate()</literal>ã<literal>setDate()</literal>ã<literal>getTitle()</literal> å <literal>setTitle()</literal> æ¹æ³ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Why does the <literal>date</literal> property mapping include the "
-"<literal>column</literal> attribute, but the <literal>title</literal> does "
-"not? Without the <literal>column</literal> attribute, Hibernate by default "
-"uses the property name as the column name. This works for <literal>title</"
-"literal>, however, <literal>date</literal> is a reserved keyword in most "
-"databases so you will need to map it to a different name."
-msgstr ""
-"为ä»ä¹ <literal>date</literal> å±æ§çæ å°å«æ <literal>column</literal> "
-"attributeï¼è <literal>title</literal> å´æ²¡æï¼å½æ²¡æè®¾å® <literal>column</"
-"literal> attribute çæ¶åï¼Hibernate 缺çå°ä½¿ç¨ JavaBean çå±æ§åä½ä¸ºå段åã"
-"å¯¹äº <literal>title</literal>ï¼è¿æ ·å·¥ä½å¾å¾å¥½ãç¶èï¼<literal>date</literal> "
-"å¨å¤æ°çæ°æ®åºéï¼æ¯ä¸ä¸ªä¿çå
³é®åï¼æ以æ们æ好æå®æ å°æä¸ä¸ªä¸åçååã "
+msgid "Why does the <literal>date</literal> property mapping include the <literal>column</literal> attribute, but the <literal>title</literal> does not? Without the <literal>column</literal> attribute, Hibernate by default uses the property name as the column name. This works for <literal>title</literal>, however, <literal>date</literal> is a reserved keyword in most databases so you will need to map it to a different name."
+msgstr "为ä»ä¹ <literal>date</literal> å±æ§çæ å°å«æ <literal>column</literal> attributeï¼è <literal>title</literal> å´æ²¡æï¼å½æ²¡æè®¾å® <literal>column</literal> attribute çæ¶åï¼Hibernate 缺çå°ä½¿ç¨ JavaBean çå±æ§åä½ä¸ºå段åãå¯¹äº <literal>title</literal>ï¼è¿æ ·å·¥ä½å¾å¾å¥½ãç¶èï¼<literal>date</literal> å¨å¤æ°çæ°æ®åºéï¼æ¯ä¸ä¸ªä¿çå
³é®åï¼æ以æ们æ好æå®æ å°æä¸ä¸ªä¸åçååã "
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>title</literal> mapping also lacks a <literal>type</literal> "
-"attribute. The types declared and used in the mapping files are not Java "
-"data types; they are not SQL database types either. These types are called "
-"<emphasis>Hibernate mapping types</emphasis>, converters which can translate "
-"from Java to SQL data types and vice versa. Again, Hibernate will try to "
-"determine the correct conversion and mapping type itself if the "
-"<literal>type</literal> attribute is not present in the mapping. In some "
-"cases this automatic detection using Reflection on the Java class might not "
-"have the default you expect or need. This is the case with the "
-"<literal>date</literal> property. Hibernate cannot know if the property, "
-"which is of <literal>java.util.Date</literal>, should map to a SQL "
-"<literal>date</literal>, <literal>timestamp</literal>, or <literal>time</"
-"literal> column. Full date and time information is preserved by mapping the "
-"property with a <literal>timestamp</literal> converter."
-msgstr ""
-"å¦ä¸æ趣çäºæ
æ¯ <literal>title</literal> å±æ§ç¼ºå°ä¸ä¸ª <literal>type</"
-"literal> attributeãæ们å¨æ å°æ件é声æ并使ç¨çç±»åï¼å´ä¸æ¯æ们ææçé£æ ·ï¼"
-"æ¯ Java æ°æ®ç±»åï¼åæ¶ä¹ä¸æ¯ SQL æ°æ®åºçæ°æ®ç±»åãè¿äºç±»åå°±æ¯æè°ç "
-"Hibernate æ å°ç±»å<emphasis>ï¼mapping typesï¼</emphasis>ï¼å®ä»¬è½æ Java æ°æ®"
-"ç±»å转æ¢å° SQL æ°æ®ç±»åï¼åä¹äº¦ç¶ãå次éç³ï¼å¦æå¨æ å°æ件ä¸æ²¡æ设置 "
-"<literal>type</literal> å±æ§çè¯ï¼Hibernate ä¼èªå·±è¯çå»ç¡®å®æ£ç¡®ç转æ¢ç±»åå"
-"å®çæ å°ç±»åãå¨æäºæ
åµä¸è¿ä¸ªèªå¨æ£æµæºå¶ï¼å¨ Java ç±»ä¸ä½¿ç¨åå°æºå¶ï¼ä¸ä¼äº§"
-"çä½ ææå¾
æéè¦ç缺çå¼ã<literal>date</literal> å±æ§å°±æ¯ä¸ªå¾å¥½çä¾åï¼"
-"Hibernate æ æ³ç¥éè¿ä¸ªå±æ§ï¼<literal>java.util.Date</literal> ç±»åçï¼åºè¯¥è¢«"
-"æ å°æï¼SQL <literal>date</literal>ï¼æ <literal>timestamp</literal>ï¼è¿æ¯ "
-"<literal>time</literal> å段ãå¨æ¤ä¾ä¸ï¼æè¿ä¸ªå±æ§æ å°æ <literal>timestamp</"
-"literal> 转æ¢å¨ï¼è¿æ ·æ们é¢çäºæ¥æåæ¶é´çå
¨é¨ä¿¡æ¯ã "
+msgid "The <literal>title</literal> mapping also lacks a <literal>type</literal> attribute. The types declared and used in the mapping files are not Java data types; they are not SQL database types either. These types are called <emphasis>Hibernate mapping types</emphasis>, converters which can translate from Java to SQL data types and vice versa. Again, Hibernate will try to determine the correct conversion and mapping type itself if the <literal>type</literal> attribute is not present in the mapping. In some cases this automatic detection using Reflection on the Java class might not have the default you expect or need. This is the case with the <literal>date</literal> property. Hibernate cannot know if the property, which is of <literal>java.util.Date</literal>, should map to a SQL <literal>date</literal>, <literal>timestamp</literal>, or <literal>time</literal> column. Full date and time information is preserved by mapping the property with a <literal>timestamp</literal>!
converter."
+msgstr "å¦ä¸æ趣çäºæ
æ¯ <literal>title</literal> å±æ§ç¼ºå°ä¸ä¸ª <literal>type</literal> attributeãæ们å¨æ å°æ件é声æ并使ç¨çç±»åï¼å´ä¸æ¯æ们ææçé£æ ·ï¼æ¯ Java æ°æ®ç±»åï¼åæ¶ä¹ä¸æ¯ SQL æ°æ®åºçæ°æ®ç±»åãè¿äºç±»åå°±æ¯æè°ç Hibernate æ å°ç±»å<emphasis>ï¼mapping typesï¼</emphasis>ï¼å®ä»¬è½æ Java æ°æ®ç±»å转æ¢å° SQL æ°æ®ç±»åï¼åä¹äº¦ç¶ãå次éç³ï¼å¦æå¨æ å°æ件ä¸æ²¡æ设置 <literal>type</literal> å±æ§çè¯ï¼Hibernate ä¼èªå·±è¯çå»ç¡®å®æ£ç¡®ç转æ¢ç±»ååå®çæ å°ç±»åãå¨æäºæ
åµä¸è¿ä¸ªèªå¨æ£æµæºå¶ï¼å¨ Java ç±»ä¸ä½¿ç¨åå°æºå¶ï¼ä¸ä¼äº§çä½ ææå¾
æéè¦ç缺çå¼ã<literal>date</literal> å±æ§å°±æ¯ä¸ªå¾å¥½çä¾åï¼Hibernate æ æ³ç¥éè¿ä¸ªå±æ§ï¼<literal>java.util.Date</literal> ç±»åçï¼åºè¯¥è¢«æ å°æï¼SQL <literal>date</literal>ï¼æ <literal>timestamp</literal>ï¼è¿æ¯ <literal>time</litera!
l> å段ãå¨æ¤ä¾ä¸ï¼æè¿ä¸ªå±æ§æ å°æ <literal>timestamp</literal> 转æ¢å¨ï¼è¿æ ·æ们é¢çäºæ¥æåæ¶é´çå
¨é¨ä¿¡æ¯ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate makes this mapping type determination using reflection when the "
-"mapping files are processed. This can take time and resources, so if startup "
-"performance is important you should consider explicitly defining the type to "
-"use."
-msgstr ""
-"å½å¤çæ å°æ件æ¶ï¼Hibernate ç¨åå°ï¼reflectionï¼æ¥å³å®è¿ä¸ªæ å°ç±»åãè¿éè¦æ¶"
-"é´åèµæºï¼æ以å¦æä½ æ³¨éå¯å¨æ§è½ï¼ä½ åºè¯¥èèæ¾æ§å°å®ä¹æç¨çç±»åã"
+msgid "Hibernate makes this mapping type determination using reflection when the mapping files are processed. This can take time and resources, so if startup performance is important you should consider explicitly defining the type to use."
+msgstr "å½å¤çæ å°æ件æ¶ï¼Hibernate ç¨åå°ï¼reflectionï¼æ¥å³å®è¿ä¸ªæ å°ç±»åãè¿éè¦æ¶é´åèµæºï¼æ以å¦æä½ æ³¨éå¯å¨æ§è½ï¼ä½ åºè¯¥èèæ¾æ§å°å®ä¹æç¨çç±»åã"
#. Tag: para
#, no-c-format
-msgid ""
-"Save this mapping file as <filename>src/main/resources/org/hibernate/"
-"tutorial/domain/Event.hbm.xml</filename>."
-msgstr ""
-"æè¿ä¸ªæ å°æ件ä¿å为 <filename>src/main/resources/org/hibernate/tutorial/"
-"domain/Event.hbm.xml</filename>ã"
+msgid "Save this mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml</filename>."
+msgstr "æè¿ä¸ªæ å°æ件ä¿å为 <filename>src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml</filename>ã"
#. Tag: title
#, no-c-format
@@ -443,76 +192,33 @@
#. Tag: para
#, no-c-format
-msgid ""
-"At this point, you should have the persistent class and its mapping file in "
-"place. It is now time to configure Hibernate. First let's set up HSQLDB to "
-"run in \"server mode\""
-msgstr ""
-"æ¤æ¶ï¼ä½ åºè¯¥æäºæä¹
åç±»åå®çæ å°æ件ãç°å¨æ¯é
ç½® Hibernate çæ¶åäºãé¦å
让"
-"æä»¬è®¾ç« HSQLDB 使å
¶è¿è¡å¨âæå¡å¨æ¨¡å¼âã"
+msgid "At this point, you should have the persistent class and its mapping file in place. It is now time to configure Hibernate. First let's set up HSQLDB to run in \"server mode\""
+msgstr "æ¤æ¶ï¼ä½ åºè¯¥æäºæä¹
åç±»åå®çæ å°æ件ãç°å¨æ¯é
ç½® Hibernate çæ¶åäºãé¦å
让æä»¬è®¾ç« HSQLDB 使å
¶è¿è¡å¨âæå¡å¨æ¨¡å¼âã"
#. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
msgid "We do this do that the data remains between runs."
-msgstr "æ°æ®å¨ç¨åºè¿è¡æé´éè¦ä¿æææã"
+msgstr "æ°æ®å¨ç¨åºè¿è¡æé´éè¦ä¿æææã "
#. Tag: para
#, no-c-format
-msgid ""
-"We will utilize the Maven exec plugin to launch the HSQLDB server by "
-"running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -"
-"Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see "
-"it start up and bind to a TCP/IP socket; this is where our application will "
-"connect later. If you want to start with a fresh database during this "
-"tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</"
-"filename> directory, and start HSQLDB again."
-msgstr ""
-"å¨å¼åçæ ¹ç®å½ä¸å建ä¸ä¸ª <literal>data</literal> ç®å½ ï¼ è¿æ¯ HSQL DB åå¨æ°"
-"æ®æ件çå°æ¹ãæ¤æ¶å¨ data ç®å½ä¸è¿è¡ <literal>java -classpath ../lib/hsqldb."
-"jar org.hsqldb.Server</literal> å°±å¯å¯å¨æ°æ®åºãä½ å¯ä»¥å¨ log ä¸çå°å®çå¯å¨ï¼"
-"åç»å®å° TCP/IP å¥æ¥åï¼è¿æ£æ¯æ们çåºç¨ç¨åºç¨åä¼è¿æ¥çå°æ¹ãå¦æä½ å¸æå¨æ¬"
-"ä¾ä¸è¿è¡ä¸ä¸ªå
¨æ°çæ°æ®åºï¼å°±å¨çªå£ä¸æä¸ <literal>CTRL + C</literal> æ¥å
³é "
-"HSQL æ°æ®åºï¼å¹¶å é¤ <literal>data/</literal> ç®å½ä¸çæææ件ï¼åéæ°å¯å¨ "
-"HSQL æ°æ®åºã "
+msgid "We will utilize the Maven exec plugin to launch the HSQLDB server by running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see it start up and bind to a TCP/IP socket; this is where our application will connect later. If you want to start with a fresh database during this tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</filename> directory, and start HSQLDB again."
+msgstr "å¨å¼åçæ ¹ç®å½ä¸å建ä¸ä¸ª <literal>data</literal> ç®å½ ï¼ è¿æ¯ HSQL DB åå¨æ°æ®æ件çå°æ¹ãæ¤æ¶å¨ data ç®å½ä¸è¿è¡ <literal>java -classpath ../lib/hsqldb.jar org.hsqldb.Server</literal> å°±å¯å¯å¨æ°æ®åºãä½ å¯ä»¥å¨ log ä¸çå°å®çå¯å¨ï¼åç»å®å° TCP/IP å¥æ¥åï¼è¿æ£æ¯æ们çåºç¨ç¨åºç¨åä¼è¿æ¥çå°æ¹ãå¦æä½ å¸æå¨æ¬ä¾ä¸è¿è¡ä¸ä¸ªå
¨æ°çæ°æ®åºï¼å°±å¨çªå£ä¸æä¸ <literal>CTRL + C</literal> æ¥å
³é HSQL æ°æ®åºï¼å¹¶å é¤ <literal>data/</literal> ç®å½ä¸çæææ件ï¼åéæ°å¯å¨ HSQL æ°æ®åºã "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate will be connecting to the database on behalf of your application, "
-"so it needs to know how to obtain connections. For this tutorial we will be "
-"using a standalone connection pool (as opposed to a <interfacename>javax.sql."
-"DataSource</interfacename>). Hibernate comes with support for two third-"
-"party open source JDBC connection pools: <ulink url=\"https://sourceforge."
-"net/projects/c3p0\">c3p0</ulink> and <ulink url=\"http://proxool.sourceforge."
-"net/\">proxool</ulink>. However, we will be using the Hibernate built-in "
-"connection pool for this tutorial."
-msgstr ""
-"Hibernate å°ä¸ºä½ çåºç¨ç¨åºè¿æ¥å°æ°æ®åºï¼æ以å®éè¦ç¥éå¦ä½è·åè¿æ¥ãå¨è¿ä¸ªæ"
-"ç¨éï¼æ们使ç¨ä¸ä¸ªç¬ç«è¿æ¥æ± ï¼å <interfacename>javax.sql.DataSource</"
-"interfacename> ç¸åï¼ãHibernate æ¯æ两个第ä¸æ¹çå¼æº JDBC è¿æ¥æ± ï¼<ulink "
-"url=\"https://sourceforge.net/projects/c3p0\">c3p0</ulink> å <ulink url="
-"\"http://proxool.sourceforge.net/\">proxool</ulink>ãç¶èï¼å¨æ¬æç¨éæ们å°ä½¿"
-"ç¨ Hibernate å
ç½®çè¿æ¥æ± ã"
+msgid "Hibernate will be connecting to the database on behalf of your application, so it needs to know how to obtain connections. For this tutorial we will be using a standalone connection pool (as opposed to a <interfacename>javax.sql.DataSource</interfacename>). Hibernate comes with support for two third-party open source JDBC connection pools: <ulink url=\"https://sourceforge.net/projects/c3p0\">c3p0</ulink> and <ulink url=\"http://proxool.sourceforge.net/\">proxool</ulink>. However, we will be using the Hibernate built-in connection pool for this tutorial."
+msgstr "Hibernate å°ä¸ºä½ çåºç¨ç¨åºè¿æ¥å°æ°æ®åºï¼æ以å®éè¦ç¥éå¦ä½è·åè¿æ¥ãå¨è¿ä¸ªæç¨éï¼æ们使ç¨ä¸ä¸ªç¬ç«è¿æ¥æ± ï¼å <interfacename>javax.sql.DataSource</interfacename> ç¸åï¼ãHibernate æ¯æ两个第ä¸æ¹çå¼æº JDBC è¿æ¥æ± ï¼<ulink url=\"https://sourceforge.net/projects/c3p0\">c3p0</ulink> å <ulink url=\"http://proxool.sourceforge.net/\">proxool</ulink>ãç¶èï¼å¨æ¬æç¨éæ们å°ä½¿ç¨ Hibernate å
ç½®çè¿æ¥æ± ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The built-in Hibernate connection pool is in no way intended for production "
-"use. It lacks several features found on any decent connection pool."
-msgstr "åµå
¥ç Hibernate è¿æ¥æ± ä¸ç¨äºäº§åç¯å¢ã"
+#, no-c-format
+msgid "The built-in Hibernate connection pool is in no way intended for production use. It lacks several features found on any decent connection pool."
+msgstr "åµå
¥ç Hibernate è¿æ¥æ± ä¸ç¨äºäº§åç¯å¢ãå®ç¼ºä¹è¿æ¥æ± éçå 个åè½ã"
#. Tag: para
#, no-c-format
-msgid ""
-"For Hibernate's configuration, we can use a simple <literal>hibernate."
-"properties</literal> file, a more sophisticated <literal>hibernate.cfg.xml</"
-"literal> file, or even complete programmatic setup. Most users prefer the "
-"XML configuration file:"
-msgstr ""
-"为äºä¿å Hibernate çé
ç½®ï¼æ们å¯ä»¥ä½¿ç¨ä¸ä¸ªç®åç <literal>hibernate."
-"properties</literal> æ件ï¼æè
ä¸ä¸ªç¨å¾®å¤æç <literal>hibernate.cfg.xml</"
-"literal>ï¼çè³å¯ä»¥å®å
¨ä½¿ç¨ç¨åºæ¥é
ç½® Hibernateãå¤æ°ç¨æ·æ´åæ¬¢ä½¿ç¨ XML é
ç½®æ"
-"ä»¶ï¼ "
+msgid "For Hibernate's configuration, we can use a simple <literal>hibernate.properties</literal> file, a more sophisticated <literal>hibernate.cfg.xml</literal> file, or even complete programmatic setup. Most users prefer the XML configuration file:"
+msgstr "为äºä¿å Hibernate çé
ç½®ï¼æ们å¯ä»¥ä½¿ç¨ä¸ä¸ªç®åç <literal>hibernate.properties</literal> æ件ï¼æè
ä¸ä¸ªç¨å¾®å¤æç <literal>hibernate.cfg.xml</literal>ï¼çè³å¯ä»¥å®å
¨ä½¿ç¨ç¨åºæ¥é
ç½® Hibernateãå¤æ°ç¨æ·æ´åæ¬¢ä½¿ç¨ XML é
ç½®æä»¶ï¼ "
#. Tag: para
#, no-c-format
@@ -521,63 +227,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
-"is a global factory responsible for a particular database. If you have "
-"several databases, for easier startup you should use several <literal><"
-"session-factory></literal> configurations in several configuration files."
-msgstr ""
-"注æè¿ä¸ª XML é
置使ç¨äºä¸ä¸ªä¸åç DTDãå¨è¿éï¼æ们é
ç½®äº Hibernate ç"
-"<literal>SessionFactory</literal> â ä¸ä¸ªå
³èäºç¹å®æ°æ®åºå
¨å±çå·¥å"
-"ï¼factoryï¼ãå¦æä½ è¦ä½¿ç¨å¤ä¸ªæ°æ®åºï¼å°±è¦ç¨å¤ä¸ªç <literal><session-"
-"factory></literal>ï¼é常æå®ä»¬æ¾å¨å¤ä¸ªé
ç½®æ件ä¸ï¼ä¸ºäºæ´å®¹æå¯å¨ï¼ã "
+msgid "You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory is a global factory responsible for a particular database. If you have several databases, for easier startup you should use several <literal><session-factory></literal> configurations in several configuration files."
+msgstr "注æè¿ä¸ª XML é
置使ç¨äºä¸ä¸ªä¸åç DTDãå¨è¿éï¼æ们é
ç½®äº Hibernate ç<literal>SessionFactory</literal> â ä¸ä¸ªå
³èäºç¹å®æ°æ®åºå
¨å±çå·¥åï¼factoryï¼ãå¦æä½ è¦ä½¿ç¨å¤ä¸ªæ°æ®åºï¼å°±è¦ç¨å¤ä¸ªç <literal><session-factory></literal>ï¼é常æå®ä»¬æ¾å¨å¤ä¸ªé
ç½®æ件ä¸ï¼ä¸ºäºæ´å®¹æå¯å¨ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The first four <literal>property</literal> elements contain the necessary "
-"configuration for the JDBC connection. The dialect <literal>property</"
-"literal> element specifies the particular SQL variant Hibernate generates."
-msgstr ""
-"ç¾å 4 个 <literal>property</literal> å
ç´ å
å«äº JDBC è¿æ¥æå¿
éçé
ç½®ãæ¹è¨ "
-"<literal>property</literal> å
ç´ æå®äº Hibernate çæçç¹å® SQL è¯å¥ã"
+msgid "The first four <literal>property</literal> elements contain the necessary configuration for the JDBC connection. The dialect <literal>property</literal> element specifies the particular SQL variant Hibernate generates."
+msgstr "ç¾å 4 个 <literal>property</literal> å
ç´ å
å«äº JDBC è¿æ¥æå¿
éçé
ç½®ãæ¹è¨ <literal>property</literal> å
ç´ æå®äº Hibernate çæçç¹å® SQL è¯å¥ã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"In most cases, Hibernate is able to properly determine which dialect to use. "
-"See <xref linkend=\"portability-dialectresolver\" /> for more information."
-msgstr ""
-"å¨å¤§å¤æ°æ
åµä¸ï¼Hibernate é½è½å¤æ£ç¡®å°å³å®æ使ç¨çæ¹è¨ãæ´å¤ä¿¡æ¯è¯·åè <xref "
-"linkend=\"portability-dialectresolver\" />ã"
+#, no-c-format
+msgid "In most cases, Hibernate is able to properly determine which dialect to use. See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr "å¨å¤§å¤æ°æ
åµä¸ï¼Hibernate é½è½å¤æ£ç¡®å°å³å®æ使ç¨çæ¹è¨ãæ´å¤ä¿¡æ¯è¯·åè <xref linkend=\"portability-dialectresolver\" />ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate's automatic session management for persistence contexts is "
-"particularly useful in this context. The <literal>hbm2ddl.auto</literal> "
-"option turns on automatic generation of database schemas directly into the "
-"database. This can also be turned off by removing the configuration option, "
-"or redirected to a file with the help of the <literal>SchemaExport</literal> "
-"Ant task. Finally, add the mapping file(s) for persistent classes to the "
-"configuration."
-msgstr ""
-"æå¼å§ç 4 个 <literal>property</literal> å
ç´ å
å«å¿
è¦ç JDBC è¿æ¥ä¿¡æ¯ãæ¹è¨"
-"ï¼dialectï¼ç <literal>property</literal> å
ç´ ææ Hibernate çæçç¹å® SQL "
-"åéãä½ å¾å¿«ä¼çå°ï¼Hibernate 对æä¹
åä¸ä¸æçèªå¨ session 管çå°±ä¼æ´¾ä¸ç¨"
-"åºã æå¼ <literal>hbm2ddl.auto</literal> é项å°èªå¨çææ°æ®åºæ¨¡å¼ï¼schemaï¼"
-"ï¼ ç´æ¥å å
¥æ°æ®åºä¸ãå½ç¶è¿ä¸ªé项ä¹å¯ä»¥è¢«å
³éï¼éè¿å»é¤è¿ä¸ªé
ç½®é项ï¼æè
é"
-"è¿ Ant ä»»å¡ <literal>SchemaExport</literal> ç帮å©æ¥ææ°æ®åº schema éå®åå°"
-"æ件ä¸ãæåï¼å¨é
ç½®ä¸ä¸ºæä¹
åç±»å å
¥æ å°æ件ã "
+msgid "Hibernate's automatic session management for persistence contexts is particularly useful in this context. The <literal>hbm2ddl.auto</literal> option turns on automatic generation of database schemas directly into the database. This can also be turned off by removing the configuration option, or redirected to a file with the help of the <literal>SchemaExport</literal> Ant task. Finally, add the mapping file(s) for persistent classes to the configuration."
+msgstr "æå¼å§ç 4 个 <literal>property</literal> å
ç´ å
å«å¿
è¦ç JDBC è¿æ¥ä¿¡æ¯ãæ¹è¨ï¼dialectï¼ç <literal>property</literal> å
ç´ ææ Hibernate çæçç¹å® SQL åéãä½ å¾å¿«ä¼çå°ï¼Hibernate 对æä¹
åä¸ä¸æçèªå¨ session 管çå°±ä¼æ´¾ä¸ç¨åºã æå¼ <literal>hbm2ddl.auto</literal> é项å°èªå¨çææ°æ®åºæ¨¡å¼ï¼schemaï¼ï¼ ç´æ¥å å
¥æ°æ®åºä¸ãå½ç¶è¿ä¸ªé项ä¹å¯ä»¥è¢«å
³éï¼éè¿å»é¤è¿ä¸ªé
ç½®é项ï¼æè
éè¿ Ant ä»»å¡ <literal>SchemaExport</literal> ç帮å©æ¥ææ°æ®åº schema éå®åå°æ件ä¸ãæåï¼å¨é
ç½®ä¸ä¸ºæä¹
åç±»å å
¥æ å°æ件ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Save this file as <filename>hibernate.cfg.xml</filename> into the "
-"<filename>src/main/resources</filename> directory."
-msgstr ""
-"æè¿ä¸ªæ件ä¿å为 <filename>src/main/resources</filename> ç®å½ä¸ç "
-"<filename>hibernate.cfg.xml</filename>ã"
+msgid "Save this file as <filename>hibernate.cfg.xml</filename> into the <filename>src/main/resources</filename> directory."
+msgstr "æè¿ä¸ªæ件ä¿å为 <filename>src/main/resources</filename> ç®å½ä¸ç <filename>hibernate.cfg.xml</filename>ã"
#. Tag: title
#, no-c-format
@@ -586,19 +257,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"We will now build the tutorial with Maven. You will need to have Maven "
-"installed; it is available from the <ulink url=\"http://maven.apache.org/"
-"download.html\">Maven download page</ulink>. Maven will read the <filename>/"
-"pom.xml</filename> file we created earlier and know how to perform some "
-"basic project tasks. First, lets run the <literal>compile</literal> goal to "
-"make sure we can compile everything so far:"
-msgstr ""
-"æ们å°ç¨ Maven æ建è¿ä¸ªæç¨ãä½ å°éè¦å®è£
Mavenï¼ä½ å¯ä»¥ä» <ulink url="
-"\"http://maven.apache.org/download.html\">Maven ä¸è½½é¡µé¢</ulink>è·å¾ Mavenã"
-"Maen å°è¯»åæ们å
åå建ç <filename>/pom.xml</filename> 并ç¥éæ§è¡åºæ¬ç项ç®"
-"ä»»å¡ãé¦å
ï¼è®©æ们è¿è¡ <literal>compile</literal> ç®æ æ¥ç¡®ä¿æ们å¯ä»¥ç¼è¯å°ç®"
-"å为æ¢çææç¨åºï¼"
+msgid "We will now build the tutorial with Maven. You will need to have Maven installed; it is available from the <ulink url=\"http://maven.apache.org/download.html\">Maven download page</ulink>. Maven will read the <filename>/pom.xml</filename> file we created earlier and know how to perform some basic project tasks. First, lets run the <literal>compile</literal> goal to make sure we can compile everything so far:"
+msgstr "æ们å°ç¨ Maven æ建è¿ä¸ªæç¨ãä½ å°éè¦å®è£
Mavenï¼ä½ å¯ä»¥ä» <ulink url=\"http://maven.apache.org/download.html\">Maven ä¸è½½é¡µé¢</ulink>è·å¾ MavenãMaen å°è¯»åæ们å
åå建ç <filename>/pom.xml</filename> 并ç¥éæ§è¡åºæ¬ç项ç®ä»»å¡ãé¦å
ï¼è®©æ们è¿è¡ <literal>compile</literal> ç®æ æ¥ç¡®ä¿æ们å¯ä»¥ç¼è¯å°ç®å为æ¢çææç¨åºï¼"
#. Tag: title
#, no-c-format
@@ -607,102 +267,37 @@
#. Tag: para
#, no-c-format
-msgid ""
-"It is time to load and store some <literal>Event</literal> objects, but "
-"first you have to complete the setup with some infrastructure code. You have "
-"to startup Hibernate by building a global <interfacename>org.hibernate."
-"SessionFactory</interfacename> object and storing it somewhere for easy "
-"access in application code. A <interfacename>org.hibernate.SessionFactory</"
-"interfacename> is used to obtain <interfacename>org.hibernate.Session</"
-"interfacename> instances. A <interfacename>org.hibernate.Session</"
-"interfacename> represents a single-threaded unit of work. The "
-"<interfacename>org.hibernate.SessionFactory</interfacename> is a thread-safe "
-"global object that is instantiated once."
-msgstr ""
-"æ¯æ¶åæ¥å è½½åå¨åä¸äº <literal>Event</literal> 对象äºï¼ä½é¦å
æ们å¾ç¼åä¸äº"
-"åºç¡ç代ç 以å®æ设置ãæ们å¿
é¡»å¯å¨ Hibernateï¼æ¤è¿ç¨å
æ¬å建ä¸ä¸ªå
¨å±ç "
-"<literal>SessoinFactory</literal>ï¼å¹¶æå®å¨åå¨åºç¨ç¨åºä»£ç 容æ访é®çå°æ¹ã"
-"<literal>SessionFactory</literal> å¯ä»¥å建并æå¼æ°ç <literal>Session</"
-"literal>ãä¸ä¸ª <literal>Session</literal> 代表ä¸ä¸ªå线ç¨çåå
æä½ï¼"
-"<interfacename>org.hibernate.SessionFactory</interfacename> åæ¯ä¸ªçº¿ç¨å®å
¨ç"
-"å
¨å±å¯¹è±¡ï¼åªéè¦è¢«å®ä¾åä¸æ¬¡ã "
+msgid "It is time to load and store some <literal>Event</literal> objects, but first you have to complete the setup with some infrastructure code. You have to startup Hibernate by building a global <interfacename>org.hibernate.SessionFactory</interfacename> object and storing it somewhere for easy access in application code. A <interfacename>org.hibernate.SessionFactory</interfacename> is used to obtain <interfacename>org.hibernate.Session</interfacename> instances. A <interfacename>org.hibernate.Session</interfacename> represents a single-threaded unit of work. The <interfacename>org.hibernate.SessionFactory</interfacename> is a thread-safe global object that is instantiated once."
+msgstr "æ¯æ¶åæ¥å è½½åå¨åä¸äº <literal>Event</literal> 对象äºï¼ä½é¦å
æ们å¾ç¼åä¸äºåºç¡ç代ç 以å®æ设置ãæ们å¿
é¡»å¯å¨ Hibernateï¼æ¤è¿ç¨å
æ¬å建ä¸ä¸ªå
¨å±ç <literal>SessoinFactory</literal>ï¼å¹¶æå®å¨åå¨åºç¨ç¨åºä»£ç 容æ访é®çå°æ¹ã<literal>SessionFactory</literal> å¯ä»¥å建并æå¼æ°ç <literal>Session</literal>ãä¸ä¸ª <literal>Session</literal> 代表ä¸ä¸ªå线ç¨çåå
æä½ï¼<interfacename>org.hibernate.SessionFactory</interfacename> åæ¯ä¸ªçº¿ç¨å®å
¨çå
¨å±å¯¹è±¡ï¼åªéè¦è¢«å®ä¾åä¸æ¬¡ã "
#. Tag: para
#, no-c-format
-msgid ""
-"We will create a <literal>HibernateUtil</literal> helper class that takes "
-"care of startup and makes accessing the <interfacename>org.hibernate."
-"SessionFactory</interfacename> more convenient."
-msgstr ""
-"æ们å°å建ä¸ä¸ª <literal>HibernateUtil</literal> è¾
å©ç±»ï¼helper classï¼æ¥è´è´£"
-"å¯å¨ Hibernate åæ´æ¹ä¾¿å°æä½ <interfacename>org.hibernate.SessionFactory</"
-"interfacename>ã让æ们æ¥çä¸ä¸å®çå®ç°ï¼"
+msgid "We will create a <literal>HibernateUtil</literal> helper class that takes care of startup and makes accessing the <interfacename>org.hibernate.SessionFactory</interfacename> more convenient."
+msgstr "æ们å°å建ä¸ä¸ª <literal>HibernateUtil</literal> è¾
å©ç±»ï¼helper classï¼æ¥è´è´£å¯å¨ Hibernate åæ´æ¹ä¾¿å°æä½ <interfacename>org.hibernate.SessionFactory</interfacename>ã让æ们æ¥çä¸ä¸å®çå®ç°ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
-"HibernateUtil.java</filename>"
-msgstr ""
-"æè¿æ®µä»£ç ä¿å为 <filename>src/main/java/org/hibernate/tutorial/util/"
-"HibernateUtil.java</filename>ã"
+msgid "Save this code as <filename>src/main/java/org/hibernate/tutorial/util/HibernateUtil.java</filename>"
+msgstr "æè¿æ®µä»£ç ä¿å为 <filename>src/main/java/org/hibernate/tutorial/util/HibernateUtil.java</filename>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"This class not only produces the global <interfacename>org.hibernate."
-"SessionFactory</interfacename> reference in its static initializer; it also "
-"hides the fact that it uses a static singleton. We might just as well have "
-"looked up the <interfacename>org.hibernate.SessionFactory</interfacename> "
-"reference from JNDI in an application server or any other location for that "
-"matter."
-msgstr ""
-"è¿ä¸ªç±»ä¸ä½å¨å®çéæåå§åè¿ç¨ï¼ä»
å½å è½½è¿ä¸ªç±»çæ¶å被 JVM æ§è¡ä¸æ¬¡ï¼ä¸äº§çå
¨"
-"å±ç <interfacename>org.hibernate.SessionFactory</interfacename>ï¼èä¸éèäº"
-"å®ä½¿ç¨äºéæ singleton çäºå®ãå®ä¹å¯è½å¨åºç¨ç¨åºæå¡å¨ä¸ç JNDI æ¥æ¾ "
-"<interfacename>org.hibernate.SessionFactory</interfacename>ã"
+msgid "This class not only produces the global <interfacename>org.hibernate.SessionFactory</interfacename> reference in its static initializer; it also hides the fact that it uses a static singleton. We might just as well have looked up the <interfacename>org.hibernate.SessionFactory</interfacename> reference from JNDI in an application server or any other location for that matter."
+msgstr "è¿ä¸ªç±»ä¸ä½å¨å®çéæåå§åè¿ç¨ï¼ä»
å½å è½½è¿ä¸ªç±»çæ¶å被 JVM æ§è¡ä¸æ¬¡ï¼ä¸äº§çå
¨å±ç <interfacename>org.hibernate.SessionFactory</interfacename>ï¼èä¸éèäºå®ä½¿ç¨äºéæ singleton çäºå®ãå®ä¹å¯è½å¨åºç¨ç¨åºæå¡å¨ä¸ç JNDI æ¥æ¾ <interfacename>org.hibernate.SessionFactory</interfacename>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"If you give the <interfacename>org.hibernate.SessionFactory</interfacename> "
-"a name in your configuration, Hibernate will try to bind it to JNDI under "
-"that name after it has been built. Another, better option is to use a JMX "
-"deployment and let the JMX-capable container instantiate and bind a "
-"<literal>HibernateService</literal> to JNDI. Such advanced options are "
-"discussed later."
-msgstr ""
-"å¦æä½ å¨é
ç½®æ件ä¸ç» <interfacename>org.hibernate.SessionFactory</"
-"interfacename> ä¸ä¸ªååï¼å¨ å®å建åï¼Hibernate ä¼è¯çæå®ç»å®å° JNDIãè¦å®å
¨"
-"é¿å
è¿æ ·ç代ç ï¼ä½ ä¹å¯ä»¥ä½¿ç¨ JMX é¨ç½²ï¼è®©å
·æ JMX è½åç容å¨æ¥å®ä¾å "
-"<literal>HibernateService</literal> 并æå®ç»å®å° JNDIãè¿äºé«çº§å¯é项å¨åé¢ç"
-"ç« èä¸ä¼è®¨è®ºå°ã"
+msgid "If you give the <interfacename>org.hibernate.SessionFactory</interfacename> a name in your configuration, Hibernate will try to bind it to JNDI under that name after it has been built. Another, better option is to use a JMX deployment and let the JMX-capable container instantiate and bind a <literal>HibernateService</literal> to JNDI. Such advanced options are discussed later."
+msgstr "å¦æä½ å¨é
ç½®æ件ä¸ç» <interfacename>org.hibernate.SessionFactory</interfacename> ä¸ä¸ªååï¼å¨ å®å建åï¼Hibernate ä¼è¯çæå®ç»å®å° JNDIãè¦å®å
¨é¿å
è¿æ ·ç代ç ï¼ä½ ä¹å¯ä»¥ä½¿ç¨ JMX é¨ç½²ï¼è®©å
·æ JMX è½åç容å¨æ¥å®ä¾å <literal>HibernateService</literal> 并æå®ç»å®å° JNDIãè¿äºé«çº§å¯é项å¨åé¢çç« èä¸ä¼è®¨è®ºå°ã"
#. Tag: para
#, no-c-format
-msgid ""
-"You now need to configure a logging system. Hibernate uses commons logging "
-"and provides two choices: Log4j and JDK 1.4 logging. Most developers prefer "
-"Log4j: copy <literal>log4j.properties</literal> from the Hibernate "
-"distribution in the <literal>etc/</literal> directory to your <literal>src</"
-"literal> directory, next to <literal>hibernate.cfg.xml</literal>. If you "
-"prefer to have more verbose output than that provided in the example "
-"configuration, you can change the settings. By default, only the Hibernate "
-"startup message is shown on stdout."
-msgstr ""
-"å次ç¼è¯è¿ä¸ªåºç¨ç¨åºåºè¯¥ä¸ä¼æé®é¢ãæåæ们éè¦é
ç½®ä¸ä¸ªæ¥å¿ï¼logging)ç³»ç» â "
-"Hibernate 使ç¨éç¨æ¥å¿æ¥å£ï¼å
è®¸ä½ å¨ Log4j å JDK 1.4 æ¥å¿ä¹é´è¿è¡éæ©ãå¤æ°"
-"å¼åè
æ´å欢 Log4jï¼ä» Hibernate çåå¸å
ä¸ï¼å®å¨ <literal>etc/</literal> ç®"
-"å½ä¸ï¼æ·è´ <literal>log4j.properties</literal> å°ä½ ç <literal>src</literal> "
-"ç®å½ï¼ä¸ <literal>hibernate.cfg.xml</literal> æ¾å¨ä¸èµ·ãçä¸ä¸é
置示ä¾ï¼å¦æ"
-"ä½ å¸æçå°æ´å 详ç»çè¾åºä¿¡æ¯ï¼ä½ å¯ä»¥ä¿®æ¹é
ç½®ãé»è®¤æ
åµä¸ï¼åªæ Hibernate çå¯"
-"å¨ä¿¡æ¯æä¼æ¾ç¤ºå¨æ åè¾åºä¸ã "
+msgid "You now need to configure a logging system. Hibernate uses commons logging and provides two choices: Log4j and JDK 1.4 logging. Most developers prefer Log4j: copy <literal>log4j.properties</literal> from the Hibernate distribution in the <literal>etc/</literal> directory to your <literal>src</literal> directory, next to <literal>hibernate.cfg.xml</literal>. If you prefer to have more verbose output than that provided in the example configuration, you can change the settings. By default, only the Hibernate startup message is shown on stdout."
+msgstr "å次ç¼è¯è¿ä¸ªåºç¨ç¨åºåºè¯¥ä¸ä¼æé®é¢ãæåæ们éè¦é
ç½®ä¸ä¸ªæ¥å¿ï¼logging)ç³»ç» â Hibernate 使ç¨éç¨æ¥å¿æ¥å£ï¼å
è®¸ä½ å¨ Log4j å JDK 1.4 æ¥å¿ä¹é´è¿è¡éæ©ãå¤æ°å¼åè
æ´å欢 Log4jï¼ä» Hibernate çåå¸å
ä¸ï¼å®å¨ <literal>etc/</literal> ç®å½ä¸ï¼æ·è´ <literal>log4j.properties</literal> å°ä½ ç <literal>src</literal> ç®å½ï¼ä¸ <literal>hibernate.cfg.xml</literal> æ¾å¨ä¸èµ·ãçä¸ä¸é
置示ä¾ï¼å¦æä½ å¸æçå°æ´å 详ç»çè¾åºä¿¡æ¯ï¼ä½ å¯ä»¥ä¿®æ¹é
ç½®ãé»è®¤æ
åµä¸ï¼åªæ Hibernate çå¯å¨ä¿¡æ¯æä¼æ¾ç¤ºå¨æ åè¾åºä¸ã "
#. Tag: para
#, no-c-format
-msgid ""
-"The tutorial infrastructure is complete and you are now ready to do some "
-"real work with Hibernate."
+msgid "The tutorial infrastructure is complete and you are now ready to do some real work with Hibernate."
msgstr "示ä¾çåºæ¬æ¡æ¶å®æäº â ç°å¨æ们å¯ä»¥ç¨ Hibernate æ¥åäºçæ£çå·¥ä½ã "
#. Tag: title
@@ -712,140 +307,48 @@
#. Tag: para
#, no-c-format
-msgid ""
-"We are now ready to start doing some real worjk with Hibernate. Let's start "
-"by writing an <literal>EventManager</literal> class with a <literal>main()</"
-"literal> method:"
-msgstr ""
-"æ们ç»äºå¯ä»¥ä½¿ç¨ Hibernate æ¥å è½½ååå¨å¯¹è±¡äºï¼ç¼åä¸ä¸ªå¸¦æ <literal>main()</"
-"literal> æ¹æ³ç <literal>EventManager</literal> ç±»ï¼ "
+msgid "We are now ready to start doing some real worjk with Hibernate. Let's start by writing an <literal>EventManager</literal> class with a <literal>main()</literal> method:"
+msgstr "æ们ç»äºå¯ä»¥ä½¿ç¨ Hibernate æ¥å è½½ååå¨å¯¹è±¡äºï¼ç¼åä¸ä¸ªå¸¦æ <literal>main()</literal> æ¹æ³ç <literal>EventManager</literal> ç±»ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</"
-"literal> object and handed it over to Hibernate. At that point, Hibernate "
-"takes care of the SQL and executes an <literal>INSERT</literal> on the "
-"database."
-msgstr ""
-"å¨ <literal>createAndStoreEvent()</literal> æ¥éæ们å建äºä¸ä¸ªæ°ç "
-"<literal>Event</literal> 对象并æå®ä¼ éç» Hibernateãç°å¨ Hibernate è´è´£ä¸ "
-"SQL æ交éï¼å¹¶æ <literal>INSERT</literal> å½ä»¤ä¼ ç»æ°æ®åºã"
+msgid "In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</literal> object and handed it over to Hibernate. At that point, Hibernate takes care of the SQL and executes an <literal>INSERT</literal> on the database."
+msgstr "å¨ <literal>createAndStoreEvent()</literal> æ¥éæ们å建äºä¸ä¸ªæ°ç <literal>Event</literal> 对象并æå®ä¼ éç» Hibernateãç°å¨ Hibernate è´è´£ä¸ SQL æ交éï¼å¹¶æ <literal>INSERT</literal> å½ä»¤ä¼ ç»æ°æ®åºã"
#. Tag: para
#, no-c-format
-msgid ""
-"A <interface>org.hibernate.Session</interface> is designed to represent a "
-"single unit of work (a single atmoic piece of work to be performed). For now "
-"we will keep things simple and assume a one-to-one granularity between a "
-"Hibernate <interface>org.hibernate.Session</interface> and a database "
-"transaction. To shield our code from the actual underlying transaction "
-"system we use the Hibernate <interfacename>org.hibernate.Transaction</"
-"interfacename> API. In this particular case we are using JDBC-based "
-"transactional semantics, but it could also run with JTA."
-msgstr ""
-"ä¸ä¸ª <interface>org.hibernate.Session</interface> å°±æ¯ä¸ªåä¸çå·¥ä½åå
ãæ们"
-"ææ¶è®©äºæ
ç®åä¸äºï¼å¹¶å设 Hibernate <interface>org.hibernate.Session</"
-"interface> åæ°æ®åºäºå¡æ¯ä¸ä¸å¯¹åºçã为äºè®©æ们ç代ç ä»åºå±çäºå¡ç³»ç»ä¸è±ç¦»åº"
-"æ¥ï¼æ¤ä¾ä¸æ¯ JDBCï¼ä½ä¹å¯è½æ¯ JTAï¼ï¼æä»¬ä½¿ç¨ <interfacename>org.hibernate."
-"Transaction</interfacename> APIãå¨è¿ä¸ªä¾åéæ们使ç¨åºäº JDBC çäºå¡æ§ "
-"semanticï¼ä½å®ä¹å¯ä»¥å JTA ä¸èµ·è¿è¡ã"
+msgid "A <interface>org.hibernate.Session</interface> is designed to represent a single unit of work (a single atmoic piece of work to be performed). For now we will keep things simple and assume a one-to-one granularity between a Hibernate <interface>org.hibernate.Session</interface> and a database transaction. To shield our code from the actual underlying transaction system we use the Hibernate <interfacename>org.hibernate.Transaction</interfacename> API. In this particular case we are using JDBC-based transactional semantics, but it could also run with JTA."
+msgstr "ä¸ä¸ª <interface>org.hibernate.Session</interface> å°±æ¯ä¸ªåä¸çå·¥ä½åå
ãæ们ææ¶è®©äºæ
ç®åä¸äºï¼å¹¶å设 Hibernate <interface>org.hibernate.Session</interface> åæ°æ®åºäºå¡æ¯ä¸ä¸å¯¹åºçã为äºè®©æ们ç代ç ä»åºå±çäºå¡ç³»ç»ä¸è±ç¦»åºæ¥ï¼æ¤ä¾ä¸æ¯ JDBCï¼ä½ä¹å¯è½æ¯ JTAï¼ï¼æä»¬ä½¿ç¨ <interfacename>org.hibernate.Transaction</interfacename> APIãå¨è¿ä¸ªä¾åéæ们使ç¨åºäº JDBC çäºå¡æ§ semanticï¼ä½å®ä¹å¯ä»¥å JTA ä¸èµ·è¿è¡ã"
#. Tag: para
#, no-c-format
-msgid ""
-"What does <literal>sessionFactory.getCurrentSession()</literal> do? First, "
-"you can call it as many times and anywhere you like once you get hold of "
-"your <interfacename>org.hibernate.SessionFactory</interfacename>. The "
-"<literal>getCurrentSession()</literal> method always returns the \"current\" "
-"unit of work. Remember that we switched the configuration option for this "
-"mechanism to \"thread\" in our <filename>src/main/resources/hibernate.cfg."
-"xml</filename>? Due to that setting, the context of a current unit of work "
-"is bound to the current Java thread that executes the application."
-msgstr ""
-"<literal>sessionFactory.getCurrentSession()</literal> æ¯å¹²ä»ä¹çå¢ï¼é¦å
ï¼åª"
-"è¦ä½ ææ <interfacename>org.hibernate.SessionFactory</interfacename>ï¼å¤§å¯å¨"
-"ä»»ä½æ¶åãä»»ä½å°ç¹è°ç¨è¿ä¸ªæ¹æ³ã<literal>getCurrentSession()</literal> æ¹æ³æ»"
-"ä¼è¿åâå½åçâå·¥ä½åå
ãè®°å¾æä»¬å¨ <filename>src/main/resources/hibernate."
-"cfg.xml</filename> ä¸æè¿ä¸é
ç½®é项è°æ´ä¸º \"thread\" äºåï¼å æ¤ï¼å æ¤ï¼å½åå·¥"
-"ä½åå
被ç»å®å°å½åæ§è¡æ们åºç¨ç¨åºç Java 线ç¨ãä½æ¯ï¼è¿å¹¶éæ¯å®å
¨åç¡®ç,ä½ è¿"
-"å¾èèå·¥ä½åå
ççå½å¨æèå´ï¼scopeï¼ï¼å®ä½æ¶å¼å§,åä½æ¶ç»æã"
+msgid "What does <literal>sessionFactory.getCurrentSession()</literal> do? First, you can call it as many times and anywhere you like once you get hold of your <interfacename>org.hibernate.SessionFactory</interfacename>. The <literal>getCurrentSession()</literal> method always returns the \"current\" unit of work. Remember that we switched the configuration option for this mechanism to \"thread\" in our <filename>src/main/resources/hibernate.cfg.xml</filename>? Due to that setting, the context of a current unit of work is bound to the current Java thread that executes the application."
+msgstr "<literal>sessionFactory.getCurrentSession()</literal> æ¯å¹²ä»ä¹çå¢ï¼é¦å
ï¼åªè¦ä½ ææ <interfacename>org.hibernate.SessionFactory</interfacename>ï¼å¤§å¯å¨ä»»ä½æ¶åãä»»ä½å°ç¹è°ç¨è¿ä¸ªæ¹æ³ã<literal>getCurrentSession()</literal> æ¹æ³æ»ä¼è¿åâå½åçâå·¥ä½åå
ãè®°å¾æä»¬å¨ <filename>src/main/resources/hibernate.cfg.xml</filename> ä¸æè¿ä¸é
ç½®é项è°æ´ä¸º \"thread\" äºåï¼å æ¤ï¼å æ¤ï¼å½åå·¥ä½åå
被ç»å®å°å½åæ§è¡æ们åºç¨ç¨åºç Java 线ç¨ãä½æ¯ï¼è¿å¹¶éæ¯å®å
¨åç¡®ç,ä½ è¿å¾èèå·¥ä½åå
ççå½å¨æèå´ï¼scopeï¼ï¼å®ä½æ¶å¼å§,åä½æ¶ç»æã"
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate offers three methods of current session tracking. The \"thread\" "
-"based method is not intended for production use; it is merely useful for "
-"prototyping and tutorials such as this one. Current session tracking is "
-"discussed in more detail later on."
-msgstr ""
-"Hibernate æä¾ä¸ç§è·è¸ªå½åä¼è¯çæ¹æ³ãåºäºâ线ç¨âçæ¹æ³ä¸éåäºäº§åç¯å¢ï¼å®ä»
"
-"ç¨äº prototyping åæå¦ç¨éãåé¢å°æ´è¯¦ç»å°è®¨è®ºä¼è¯è·è¸ªã"
+msgid "Hibernate offers three methods of current session tracking. The \"thread\" based method is not intended for production use; it is merely useful for prototyping and tutorials such as this one. Current session tracking is discussed in more detail later on."
+msgstr "Hibernate æä¾ä¸ç§è·è¸ªå½åä¼è¯çæ¹æ³ãåºäºâ线ç¨âçæ¹æ³ä¸éåäºäº§åç¯å¢ï¼å®ä»
ç¨äº prototyping åæå¦ç¨éãåé¢å°æ´è¯¦ç»å°è®¨è®ºä¼è¯è·è¸ªã"
#. Tag: para
#, no-c-format
-msgid ""
-"A <interface>org.hibernate.Session</interface> begins when the first call to "
-"<literal>getCurrentSession()</literal> is made for the current thread. It is "
-"then bound by Hibernate to the current thread. When the transaction ends, "
-"either through commit or rollback, Hibernate automatically unbinds the "
-"<interface>org.hibernate.Session</interface> from the thread and closes it "
-"for you. If you call <literal>getCurrentSession()</literal> again, you get a "
-"new <interface>org.hibernate.Session</interface> and can start a new unit of "
-"work."
-msgstr ""
-"<interface>org.hibernate.Session</interface> å¨ç¬¬ä¸æ¬¡è¢«ä½¿ç¨çæ¶åï¼å³ç¬¬ä¸æ¬¡è°"
-"ç¨ <literal>getCurrentSession()</literal> çæ¶å,å
¶çå½å¨æå°±å¼å§ãç¶åå®è¢« "
-"Hibernate ç»å®å°å½å线ç¨ãå½äºå¡ç»æçæ¶åï¼ä¸ç®¡æ¯æ交è¿æ¯åæ»ï¼Hibernate ä¼"
-"èªå¨æ <interface>org.hibernate.Session</interface> ä»å½å线ç¨å¥ç¦»ï¼å¹¶ä¸å
³é"
-"å®ãåè¥ä½ å次è°ç¨ <literal>getCurrentSession()</literal>ï¼ä½ ä¼å¾å°ä¸ä¸ªæ°ç "
-"<interface>org.hibernate.Session</interface>ï¼å¹¶ä¸å¼å§ä¸ä¸ªæ°çå·¥ä½åå
ã"
+msgid "A <interface>org.hibernate.Session</interface> begins when the first call to <literal>getCurrentSession()</literal> is made for the current thread. It is then bound by Hibernate to the current thread. When the transaction ends, either through commit or rollback, Hibernate automatically unbinds the <interface>org.hibernate.Session</interface> from the thread and closes it for you. If you call <literal>getCurrentSession()</literal> again, you get a new <interface>org.hibernate.Session</interface> and can start a new unit of work."
+msgstr "<interface>org.hibernate.Session</interface> å¨ç¬¬ä¸æ¬¡è¢«ä½¿ç¨çæ¶åï¼å³ç¬¬ä¸æ¬¡è°ç¨ <literal>getCurrentSession()</literal> çæ¶å,å
¶çå½å¨æå°±å¼å§ãç¶åå®è¢« Hibernate ç»å®å°å½å线ç¨ãå½äºå¡ç»æçæ¶åï¼ä¸ç®¡æ¯æ交è¿æ¯åæ»ï¼Hibernate ä¼èªå¨æ <interface>org.hibernate.Session</interface> ä»å½å线ç¨å¥ç¦»ï¼å¹¶ä¸å
³éå®ãåè¥ä½ å次è°ç¨ <literal>getCurrentSession()</literal>ï¼ä½ ä¼å¾å°ä¸ä¸ªæ°ç <interface>org.hibernate.Session</interface>ï¼å¹¶ä¸å¼å§ä¸ä¸ªæ°çå·¥ä½åå
ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Related to the unit of work scope, should the Hibernate <interface>org."
-"hibernate.Session</interface> be used to execute one or several database "
-"operations? The above example uses one <interface>org.hibernate.Session</"
-"interface> for one operation. However this is pure coincidence; the example "
-"is just not complex enough to show any other approach. The scope of a "
-"Hibernate <interface>org.hibernate.Session</interface> is flexible but you "
-"should never design your application to use a new Hibernate <interface>org."
-"hibernate.Session</interface> for <emphasis>every</emphasis> database "
-"operation. Even though it is used in the following examples, consider "
-"<emphasis>session-per-operation</emphasis> an anti-pattern. A real web "
-"application is shown later in the tutorial which will help illustrate this."
-msgstr ""
-"åå·¥ä½åå
ççå½å¨æè¿ä¸ªè¯é¢ç¸å
³ï¼Hibernate <interface>org.hibernate."
-"Session</interface> æ¯å¦è¢«åºè¯¥ç¨æ¥æ§è¡å¤æ¬¡æ°æ®åºæä½ï¼ä¸é¢çä¾å对æ¯ä¸æ¬¡æä½"
-"使ç¨äºä¸ä¸ª <interface>org.hibernate.Session</interface>ï¼è¿å®å
¨æ¯å·§åï¼è¿ä¸ªä¾"
-"åä¸æ¯å¾å¤æï¼æ æ³å±ç¤ºå
¶ä»æ¹å¼ãHibernate <interface>org.hibernate.Session</"
-"interface> ççå½å¨æå¯ä»¥å¾çµæ´»ï¼ä½æ¯ä½ ç»ä¸è¦æä½ çåºç¨ç¨åºè®¾è®¡æ为<emphasis>"
-"æ¯ä¸æ¬¡</emphasis>æ°æ®åºæä½é½ç¨ä¸ä¸ªæ°ç Hibernate <interface>org.hibernate."
-"Session</interface>ãå æ¤å°±ç®ä¸é¢çä¾åï¼å®ä»¬é½å¾ç®åï¼ä¸ä½ å¯ä»¥çå°è¿ç§ç¨æ³ï¼"
-"è®°ä½<emphasis>æ¯æ¬¡æä½ä¸ä¸ª session</emphasis> æ¯ä¸ä¸ªå模å¼ãå¨æ¬æç¨çåé¢ä¼"
-"å±ç¤ºä¸ä¸ªçæ£çï¼webï¼ç¨åºã"
+msgid "Related to the unit of work scope, should the Hibernate <interface>org.hibernate.Session</interface> be used to execute one or several database operations? The above example uses one <interface>org.hibernate.Session</interface> for one operation. However this is pure coincidence; the example is just not complex enough to show any other approach. The scope of a Hibernate <interface>org.hibernate.Session</interface> is flexible but you should never design your application to use a new Hibernate <interface>org.hibernate.Session</interface> for <emphasis>every</emphasis> database operation. Even though it is used in the following examples, consider <emphasis>session-per-operation</emphasis> an anti-pattern. A real web application is shown later in the tutorial which will help illustrate this."
+msgstr "åå·¥ä½åå
ççå½å¨æè¿ä¸ªè¯é¢ç¸å
³ï¼Hibernate <interface>org.hibernate.Session</interface> æ¯å¦è¢«åºè¯¥ç¨æ¥æ§è¡å¤æ¬¡æ°æ®åºæä½ï¼ä¸é¢çä¾å对æ¯ä¸æ¬¡æä½ä½¿ç¨äºä¸ä¸ª <interface>org.hibernate.Session</interface>ï¼è¿å®å
¨æ¯å·§åï¼è¿ä¸ªä¾åä¸æ¯å¾å¤æï¼æ æ³å±ç¤ºå
¶ä»æ¹å¼ãHibernate <interface>org.hibernate.Session</interface> ççå½å¨æå¯ä»¥å¾çµæ´»ï¼ä½æ¯ä½ ç»ä¸è¦æä½ çåºç¨ç¨åºè®¾è®¡æ为<emphasis>æ¯ä¸æ¬¡</emphasis>æ°æ®åºæä½é½ç¨ä¸ä¸ªæ°ç Hibernate <interface>org.hibernate.Session</interface>ãå æ¤å°±ç®ä¸é¢çä¾åï¼å®ä»¬é½å¾ç®åï¼ä¸ä½ å¯ä»¥çå°è¿ç§ç¨æ³ï¼è®°ä½<emphasis>æ¯æ¬¡æä½ä¸ä¸ª session</emphasis> æ¯ä¸ä¸ªå模å¼ãå¨æ¬æç¨çåé¢ä¼å±ç¤ºä¸ä¸ªçæ£çï¼webï¼ç¨åºã"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"See <xref linkend=\"transactions\" /> for more information about transaction "
-"handling and demarcation. The previous example also skipped any error "
-"handling and rollback."
-msgstr ""
-"å
³äºäºå¡å¤çåäºå¡è¾¹ççå®ç详ç»ä¿¡æ¯ï¼è¯·åç <xref linkend=\"transactions\" /"
-"> ãå¨ä¸é¢çä¾åä¸ï¼æ们ä¹å¿½ç¥äºææçé误ä¸åæ»çå¤çã"
+#, no-c-format
+msgid "See <xref linkend=\"transactions\" /> for more information about transaction handling and demarcation. The previous example also skipped any error handling and rollback."
+msgstr "å
³äºäºå¡å¤çåäºå¡è¾¹ççå®ç详ç»ä¿¡æ¯ï¼è¯·åç <xref linkend=\"transactions\" /> ãå¨ä¸é¢çä¾åä¸ï¼æ们ä¹å¿½ç¥äºææçé误ä¸åæ»çå¤çã "
#. Tag: para
#, no-c-format
-msgid ""
-"To run this, we will make use of the Maven exec plugin to call our class "
-"with the necessary classpath setup: <command>mvn exec:java -Dexec.mainClass="
-"\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>"
-msgstr ""
-"è¦è¿è¡å®ï¼æ们å°ä½¿ç¨ Maven exec æ件以åå¿
è¦ç classpath 设置æ¥è¿è¡è°ç¨ï¼"
-"<command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager"
-"\" -Dexec.args=\"store\"</command>ã"
+msgid "To run this, we will make use of the Maven exec plugin to call our class with the necessary classpath setup: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>"
+msgstr "è¦è¿è¡å®ï¼æ们å°ä½¿ç¨ Maven exec æ件以åå¿
è¦ç classpath 设置æ¥è¿è¡è°ç¨ï¼<command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>ã"
#. Tag: para
#, no-c-format
@@ -854,12 +357,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You should see Hibernate starting up and, depending on your configuration, "
-"lots of log output. Towards the end, the following line will be displayed:"
-msgstr ""
-"ä½ åºè¯¥ä¼çå°ï¼ç¼è¯ä»¥åï¼Hibernate æ ¹æ®ä½ çé
ç½®å¯å¨ï¼å¹¶äº§çä¸å¤§å çè¾åºæ¥å¿ã"
-"å¨æ¥å¿æåä½ ä¼çå°ä¸é¢è¿è¡ï¼ "
+msgid "You should see Hibernate starting up and, depending on your configuration, lots of log output. Towards the end, the following line will be displayed:"
+msgstr "ä½ åºè¯¥ä¼çå°ï¼ç¼è¯ä»¥åï¼Hibernate æ ¹æ®ä½ çé
ç½®å¯å¨ï¼å¹¶äº§çä¸å¤§å çè¾åºæ¥å¿ãå¨æ¥å¿æåä½ ä¼çå°ä¸é¢è¿è¡ï¼ "
#. Tag: para
#, no-c-format
@@ -869,8 +368,7 @@
#. Tag: para
#, no-c-format
msgid "To list stored events an option is added to the main method:"
-msgstr ""
-"æ们æ³è¦ååºææå·²ç»è¢«åå¨ç eventsï¼å°±è¦å¢å ä¸ä¸ªæ¡ä»¶åæ¯éé¡¹å° main æ¹æ³ä¸ï¼"
+msgstr "æ们æ³è¦ååºææå·²ç»è¢«åå¨ç eventsï¼å°±è¦å¢å ä¸ä¸ªæ¡ä»¶åæ¯éé¡¹å° main æ¹æ³ä¸ï¼"
#. Tag: para
#, no-c-format
@@ -878,30 +376,14 @@
msgstr "æ们ä¹å¢å ä¸ä¸ªæ°ç <literal>listEvents()</literal> æ¹æ³ï¼ "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Here, we are using a Hibernate Query Language (HQL) query to load all "
-"existing <literal>Event</literal> objects from the database. Hibernate will "
-"generate the appropriate SQL, send it to the database and populate "
-"<literal>Event</literal> objects with the data. You can create more complex "
-"queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
-msgstr ""
-"æ们å¨è¿éæ¯ç¨ä¸ä¸ª HQLï¼Hibernate Query Languageï¼Hibernateæ¥è¯¢è¯è¨ï¼æ¥è¯¢è¯å¥"
-"æ¥ä»æ°æ®åºä¸å è½½ææåå¨ç <literal>Event</literal> 对象ãHibernate ä¼çæé"
-"å½ç SQLï¼æå®åéå°æ°æ®åºï¼å¹¶æä½ä»æ¥è¯¢å¾å°æ°æ®ç <literal>Event</literal> "
-"对象ãå½ç¶ï¼ä½ å¯ä»¥ä½¿ç¨ HQL æ¥å建æ´å å¤æçæ¥è¯¢ãæ´å¤ä¿¡æ¯è¯·åè <xref "
-"linkend=\"queryhql\"/>ã"
+#, no-c-format
+msgid "Here, we are using a Hibernate Query Language (HQL) query to load all existing <literal>Event</literal> objects from the database. Hibernate will generate the appropriate SQL, send it to the database and populate <literal>Event</literal> objects with the data. You can create more complex queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
+msgstr "æ们å¨è¿éæ¯ç¨ä¸ä¸ª HQLï¼Hibernate Query Languageï¼Hibernateæ¥è¯¢è¯è¨ï¼æ¥è¯¢è¯å¥æ¥ä»æ°æ®åºä¸å è½½ææåå¨ç <literal>Event</literal> 对象ãHibernate ä¼çæéå½ç SQLï¼æå®åéå°æ°æ®åºï¼å¹¶æä½ä»æ¥è¯¢å¾å°æ°æ®ç <literal>Event</literal> 对象ãå½ç¶ï¼ä½ å¯ä»¥ä½¿ç¨ HQL æ¥å建æ´å å¤æçæ¥è¯¢ãæ´å¤ä¿¡æ¯è¯·åè <xref linkend=\"queryhql\"/>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Now we can call our new functionality, again using the Maven exec plugin: "
-"<command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager"
-"\" -Dexec.args=\"list\"</command>"
-msgstr ""
-"ç°å¨æ们å¯ä»¥åæ¬¡ç¨ Maven exec plugin - <command>mvn exec:java -Dexec."
-"mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</"
-"command> è°ç¨æ°çåè½äºã"
+msgid "Now we can call our new functionality, again using the Maven exec plugin: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</command>"
+msgstr "ç°å¨æ们å¯ä»¥åæ¬¡ç¨ Maven exec plugin - <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</command> è°ç¨æ°çåè½äºã"
#. Tag: title
#, no-c-format
@@ -910,16 +392,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"So far we have mapped a single persistent entity class to a table in "
-"isolation. Let's expand on that a bit and add some class associations. We "
-"will add people to the application and store a list of events in which they "
-"participate."
-msgstr ""
-"æ们已ç»æ å°äºä¸ä¸ªæä¹
åå®ä½ç±»å°è¡¨ä¸ã让æ们å¨è¿ä¸ªåºç¡ä¸å¢å ä¸äºç±»ä¹é´çå
³"
-"èãé¦å
æ们å¾åºç¨ç¨åºéå¢å 人ï¼peopleï¼çæ¦å¿µï¼å¹¶åå¨ä»ä»¬æåä¸çä¸ä¸ª Event "
-"å表ãï¼è¯è
注ï¼ä¸ Event ä¸æ ·ï¼æ们å¨åé¢å°ç´æ¥ä½¿ç¨ person æ¥è¡¨ç¤ºâ人âèä¸æ¯å®"
-"çä¸æç¿»è¯ï¼ "
+msgid "So far we have mapped a single persistent entity class to a table in isolation. Let's expand on that a bit and add some class associations. We will add people to the application and store a list of events in which they participate."
+msgstr "æ们已ç»æ å°äºä¸ä¸ªæä¹
åå®ä½ç±»å°è¡¨ä¸ã让æ们å¨è¿ä¸ªåºç¡ä¸å¢å ä¸äºç±»ä¹é´çå
³èãé¦å
æ们å¾åºç¨ç¨åºéå¢å 人ï¼peopleï¼çæ¦å¿µï¼å¹¶åå¨ä»ä»¬æåä¸çä¸ä¸ª Event å表ãï¼è¯è
注ï¼ä¸ Event ä¸æ ·ï¼æ们å¨åé¢å°ç´æ¥ä½¿ç¨ person æ¥è¡¨ç¤ºâ人âèä¸æ¯å®çä¸æç¿»è¯ï¼ "
#. Tag: title
#, no-c-format
@@ -933,21 +407,13 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
-"domain/Person.java</filename>"
-msgstr ""
-"æå®ä¿å为æ件 <filename>src/main/java/org/hibernate/tutorial/domain/Person."
-"java</filename>ã"
+msgid "Save this to a file named <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>"
+msgstr "æå®ä¿å为æ件 <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Next, create the new mapping file as <filename>src/main/resources/org/"
-"hibernate/tutorial/domain/Person.hbm.xml</filename>"
-msgstr ""
-"ç¶åï¼å建æ°çæ å°æ件 <filename>src/main/resources/org/hibernate/tutorial/"
-"domain/Person.hbm.xml</filename>ã"
+msgid "Next, create the new mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>"
+msgstr "ç¶åï¼å建æ°çæ å°æ件 <filename>src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>ã"
#. Tag: para
#, no-c-format
@@ -956,14 +422,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Create an association between these two entities. Persons can participate in "
-"events, and events have participants. The design questions you have to deal "
-"with are: directionality, multiplicity, and collection behavior."
-msgstr ""
-"ç°å¨æ们å¨è¿ä¸¤ä¸ªå®ä½ä¹é´å建ä¸ä¸ªå
³èãæ¾ç¶ï¼persons å¯ä»¥åä¸ä¸ç³»å eventsï¼"
-"è events ä¹æä¸åçåå è
ï¼personsï¼ãæ们éè¦å¤çç设计é®é¢æ¯å
³èæ¹å"
-"ï¼directionalityï¼ï¼é¶æ°ï¼multiplicityï¼åéåï¼collectionï¼çè¡ä¸ºã "
+msgid "Create an association between these two entities. Persons can participate in events, and events have participants. The design questions you have to deal with are: directionality, multiplicity, and collection behavior."
+msgstr "ç°å¨æ们å¨è¿ä¸¤ä¸ªå®ä½ä¹é´å建ä¸ä¸ªå
³èãæ¾ç¶ï¼persons å¯ä»¥åä¸ä¸ç³»å eventsï¼è events ä¹æä¸åçåå è
ï¼personsï¼ãæ们éè¦å¤çç设计é®é¢æ¯å
³èæ¹åï¼directionalityï¼ï¼é¶æ°ï¼multiplicityï¼åéåï¼collectionï¼çè¡ä¸ºã "
#. Tag: title
#, no-c-format
@@ -972,65 +432,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"By adding a collection of events to the <literal>Person</literal> class, you "
-"can easily navigate to the events for a particular person, without executing "
-"an explicit query - by calling <literal>Person#getEvents</literal>. Multi-"
-"valued associations are represented in Hibernate by one of the Java "
-"Collection Framework contracts; here we choose a <interfacename>java.util."
-"Set</interfacename> because the collection will not contain duplicate "
-"elements and the ordering is not relevant to our examples:"
-msgstr ""
-"æ们å°å <literal>Person</literal> ç±»å¢å ä¸è¿ä¸²ç eventsãé£æ ·ï¼éè¿è°ç¨ "
-"<literal>aPerson.getEvents()</literal>ï¼å°±å¯ä»¥è½»æ¾å°å¯¼èªå°ç¹å® person æåä¸"
-"ç eventsï¼èä¸ç¨å»æ§è¡ä¸ä¸ªæ¾å¼çæ¥è¯¢ãæä»¬ä½¿ç¨ Java çéåç±»ï¼collectionï¼ï¼"
-"<literal>Set</literal>ï¼å 为 set ä¸å
å«éå¤çå
ç´ åä¸æ们æ å
³çæåºã "
+msgid "By adding a collection of events to the <literal>Person</literal> class, you can easily navigate to the events for a particular person, without executing an explicit query - by calling <literal>Person#getEvents</literal>. Multi-valued associations are represented in Hibernate by one of the Java Collection Framework contracts; here we choose a <interfacename>java.util.Set</interfacename> because the collection will not contain duplicate elements and the ordering is not relevant to our examples:"
+msgstr "æ们å°å <literal>Person</literal> ç±»å¢å ä¸è¿ä¸²ç eventsãé£æ ·ï¼éè¿è°ç¨ <literal>aPerson.getEvents()</literal>ï¼å°±å¯ä»¥è½»æ¾å°å¯¼èªå°ç¹å® person æåä¸ç eventsï¼èä¸ç¨å»æ§è¡ä¸ä¸ªæ¾å¼çæ¥è¯¢ãæä»¬ä½¿ç¨ Java çéåç±»ï¼collectionï¼ï¼<literal>Set</literal>ï¼å 为 set ä¸å
å«éå¤çå
ç´ åä¸æ们æ å
³çæåºã "
#. Tag: para
#, no-c-format
-msgid ""
-"Before mapping this association, let's consider the other side. We could "
-"just keep this unidirectional or create another collection on the "
-"<literal>Event</literal>, if we wanted to be able to navigate it from both "
-"directions. This is not necessary, from a functional perspective. You can "
-"always execute an explicit query to retrieve the participants for a "
-"particular event. This is a design choice left to you, but what is clear "
-"from this discussion is the multiplicity of the association: \"many\" valued "
-"on both sides is called a <emphasis>many-to-many</emphasis> association. "
-"Hence, we use Hibernate's many-to-many mapping:"
-msgstr ""
-"å¨æ å°è¿ä¸ªå
³èä¹åï¼å
èèä¸ä¸æ¤å
³èçå¦å¤ä¸ç«¯ãå¾æ¾ç¶ï¼æ们å¯ä»¥ä¿æè¿ä¸ªå
³è"
-"æ¯ååçãæè
ï¼æ们å¯ä»¥å¨ <literal>Event</literal> éå建å¦å¤ä¸ä¸ªéåï¼å¦æ"
-"å¸æè½å¤ååå°å¯¼èªï¼å¦ï¼<literal>anEvent.getParticipants()</literal>ãä»åè½"
-"çè§åº¦æ¥è¯´ï¼è¿å¹¶ä¸æ¯å¿
é¡»çãå ä¸ºä½ æ»å¯ä»¥æ¾å¼å°æ§è¡ä¸ä¸ªæ¥è¯¢ï¼ä»¥è·å¾æ个ç¹å® "
-"event çææåä¸è
ãè¿æ¯ä¸ªå¨è®¾è®¡æ¶éè¦ååºçéæ©ï¼å®å
¨ç±ä½ æ¥å³å®ï¼ä½æ¤è®¨è®ºä¸"
-"å
³äºå
³èçé¶æ°æ¯æ¸
æ¥çï¼å³ä¸¤ç«¯é½æ¯âå¤âå¼çï¼æ们æå®å«å<emphasis>å¤å¯¹å¤"
-"ï¼many-to-manyï¼</emphasis>å
³èãå èï¼æä»¬ä½¿ç¨ Hibernate çå¤å¯¹å¤æ å°ï¼ "
+msgid "Before mapping this association, let's consider the other side. We could just keep this unidirectional or create another collection on the <literal>Event</literal>, if we wanted to be able to navigate it from both directions. This is not necessary, from a functional perspective. You can always execute an explicit query to retrieve the participants for a particular event. This is a design choice left to you, but what is clear from this discussion is the multiplicity of the association: \"many\" valued on both sides is called a <emphasis>many-to-many</emphasis> association. Hence, we use Hibernate's many-to-many mapping:"
+msgstr "å¨æ å°è¿ä¸ªå
³èä¹åï¼å
èèä¸ä¸æ¤å
³èçå¦å¤ä¸ç«¯ãå¾æ¾ç¶ï¼æ们å¯ä»¥ä¿æè¿ä¸ªå
³èæ¯ååçãæè
ï¼æ们å¯ä»¥å¨ <literal>Event</literal> éå建å¦å¤ä¸ä¸ªéåï¼å¦æå¸æè½å¤ååå°å¯¼èªï¼å¦ï¼<literal>anEvent.getParticipants()</literal>ãä»åè½çè§åº¦æ¥è¯´ï¼è¿å¹¶ä¸æ¯å¿
é¡»çãå ä¸ºä½ æ»å¯ä»¥æ¾å¼å°æ§è¡ä¸ä¸ªæ¥è¯¢ï¼ä»¥è·å¾æ个ç¹å® event çææåä¸è
ãè¿æ¯ä¸ªå¨è®¾è®¡æ¶éè¦ååºçéæ©ï¼å®å
¨ç±ä½ æ¥å³å®ï¼ä½æ¤è®¨è®ºä¸å
³äºå
³èçé¶æ°æ¯æ¸
æ¥çï¼å³ä¸¤ç«¯é½æ¯âå¤âå¼çï¼æ们æå®å«å<emphasis>å¤å¯¹å¤ï¼many-to-manyï¼</emphasis>å
³èãå èï¼æä»¬ä½¿ç¨ Hibernate çå¤å¯¹å¤æ å°ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Hibernate supports a broad range of collection mappings, a <literal>set</"
-"literal> being most common. For a many-to-many association, or <emphasis>n:"
-"m</emphasis> entity relationship, an association table is required. Each row "
-"in this table represents a link between a person and an event. The table "
-"name is decalred using the <literal>table</literal> attribute of the "
-"<literal>set</literal> element. The identifier column name in the "
-"association, for the person side, is defined with the <literal>key</literal> "
-"element, the column name for the event's side with the <literal>column</"
-"literal> attribute of the <literal>many-to-many</literal>. You also have to "
-"tell Hibernate the class of the objects in your collection (the class on the "
-"other side of the collection of references)."
-msgstr ""
-"Hibernate æ¯æåç§åæ ·çéåæ å°ï¼<literal><set></literal> 使ç¨çæ为æ®"
-"éã对äºå¤å¯¹å¤å
³èï¼æå« <emphasis>n:m</emphasis> å®ä½å
³ç³»ï¼, éè¦ä¸ä¸ªå
³è表"
-"ï¼association tableï¼ã<literal>表</literal>éé¢çæ¯ä¸è¡ä»£è¡¨ä» person å° "
-"event çä¸ä¸ªå
³èã表åæ¯ç± <literal>set</literal> å
ç´ ç <literal>table</"
-"literal> å±æ§é
ç½®çãå
³èéé¢çæ è¯ç¬¦å段åï¼å¯¹äº person çä¸ç«¯ï¼æ¯ç± "
-"<literal><key></literal> å
ç´ å®ä¹ï¼è event ä¸ç«¯çå段åæ¯ç± "
-"<literal><many-to-many></literal> å
ç´ ç <literal>column</literal> å±æ§"
-"å®ä¹ãä½ ä¹å¿
é¡»åè¯ Hibernate éåä¸å¯¹è±¡çç±»ï¼ä¹å°±æ¯ä½äºè¿ä¸ªéåæ代表çå
³èå¦"
-"å¤ä¸ç«¯çç±»ï¼ã "
+msgid "Hibernate supports a broad range of collection mappings, a <literal>set</literal> being most common. For a many-to-many association, or <emphasis>n:m</emphasis> entity relationship, an association table is required. Each row in this table represents a link between a person and an event. The table name is decalred using the <literal>table</literal> attribute of the <literal>set</literal> element. The identifier column name in the association, for the person side, is defined with the <literal>key</literal> element, the column name for the event's side with the <literal>column</literal> attribute of the <literal>many-to-many</literal>. You also have to tell Hibernate the class of the objects in your collection (the class on the other side of the collection of references)."
+msgstr "Hibernate æ¯æåç§åæ ·çéåæ å°ï¼<literal><set></literal> 使ç¨çæ为æ®éã对äºå¤å¯¹å¤å
³èï¼æå« <emphasis>n:m</emphasis> å®ä½å
³ç³»ï¼, éè¦ä¸ä¸ªå
³è表ï¼association tableï¼ã<literal>表</literal>éé¢çæ¯ä¸è¡ä»£è¡¨ä» person å° event çä¸ä¸ªå
³èã表åæ¯ç± <literal>set</literal> å
ç´ ç <literal>table</literal> å±æ§é
ç½®çãå
³èéé¢çæ è¯ç¬¦å段åï¼å¯¹äº person çä¸ç«¯ï¼æ¯ç± <literal><key></literal> å
ç´ å®ä¹ï¼è event ä¸ç«¯çå段åæ¯ç± <literal><many-to-many></literal> å
ç´ ç <literal>column</literal> å±æ§å®ä¹ãä½ ä¹å¿
é¡»åè¯ Hibernate éåä¸å¯¹è±¡çç±»ï¼ä¹å°±æ¯ä½äºè¿ä¸ªéåæ代表çå
³èå¦å¤ä¸ç«¯çç±»ï¼ã "
#. Tag: para
#, no-c-format
@@ -1044,122 +457,38 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Now we will bring some people and events together in a new method in "
-"<literal>EventManager</literal>:"
-msgstr ""
-"æ们æä¸äº people å events ä¸èµ·æ¾å° <literal>EventManager</literal> çæ°æ¹æ³"
-"ä¸ï¼ "
+msgid "Now we will bring some people and events together in a new method in <literal>EventManager</literal>:"
+msgstr "æ们æä¸äº people å events ä¸èµ·æ¾å° <literal>EventManager</literal> çæ°æ¹æ³ä¸ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"After loading a <literal>Person</literal> and an <literal>Event</literal>, "
-"simply modify the collection using the normal collection methods. There is "
-"no explicit call to <literal>update()</literal> or <literal>save()</"
-"literal>; Hibernate automatically detects that the collection has been "
-"modified and needs to be updated. This is called <emphasis>automatic dirty "
-"checking</emphasis>. You can also try it by modifying the name or the date "
-"property of any of your objects. As long as they are in "
-"<emphasis>persistent</emphasis> state, that is, bound to a particular "
-"Hibernate <interfacename>org.hibernate.Session</interfacename>, Hibernate "
-"monitors any changes and executes SQL in a write-behind fashion. The process "
-"of synchronizing the memory state with the database, usually only at the end "
-"of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the "
-"unit of work ends with a commit, or rollback, of the database transaction."
-msgstr ""
-"å¨å è½½ä¸ <literal>Person</literal> å <literal>Event</literal> åï¼ä½¿ç¨æ®éç"
-"éåæ¹æ³å°±å¯å®¹æå°ä¿®æ¹æ们å®ä¹çéåãå¦ä½ æè§ï¼æ²¡ææ¾å¼ç <literal>update()"
-"</literal> æ <literal>save()</literal>ï¼Hibernate ä¼èªå¨æ£æµå°éåå·²ç»è¢«ä¿®æ¹"
-"并éè¦æ´æ°åæ°æ®åºãè¿å«åèªå¨èæ£æ¥ï¼<emphasis>automatic dirty checking</"
-"emphasis>ï¼ï¼ä½ ä¹å¯ä»¥å°è¯ä¿®æ¹ä»»ä½å¯¹è±¡ç name æè
date å±æ§ï¼åªè¦ä»ä»¬å¤äº"
-"<emphasis>æä¹
å</emphasis>ç¶æï¼ä¹å°±æ¯è¢«ç»å®å°æ个 Hibernate ç "
-"<literal>Session</literal> ä¸ï¼å¦ï¼ä»ä»¬ååå¨ä¸ä¸ªåå
æä½è¢«å è½½æè
ä¿åï¼ï¼"
-"Hibernate çè§ä»»ä½æ¹å并å¨åå°éå¼åçæ¹å¼æ§è¡ SQLãåæ¥å
åç¶æåæ°æ®åºçè¿"
-"ç¨ï¼é常åªå¨åå
æä½ç»æçæ¶ååçï¼ç§°æ¤è¿ç¨ä¸ºæ¸
çç¼å<emphasis>ï¼flushingï¼"
-"</emphasis>ãå¨æ们ç代ç ä¸ï¼å·¥ä½åå
ç±æ°æ®åºäºå¡çæ交ï¼æè
åæ»ï¼æ¥ç»æââè¿"
-"æ¯ç± <literal>CurrentSessionContext</literal> ç±»ç <literal>thread</literal> "
-"é
ç½®é项å®ä¹çã "
+msgid "After loading a <literal>Person</literal> and an <literal>Event</literal>, simply modify the collection using the normal collection methods. There is no explicit call to <literal>update()</literal> or <literal>save()</literal>; Hibernate automatically detects that the collection has been modified and needs to be updated. This is called <emphasis>automatic dirty checking</emphasis>. You can also try it by modifying the name or the date property of any of your objects. As long as they are in <emphasis>persistent</emphasis> state, that is, bound to a particular Hibernate <interfacename>org.hibernate.Session</interfacename>, Hibernate monitors any changes and executes SQL in a write-behind fashion. The process of synchronizing the memory state with the database, usually only at the end of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the unit of work ends with a commit, or rollback, of the database transaction."
+msgstr "å¨å è½½ä¸ <literal>Person</literal> å <literal>Event</literal> åï¼ä½¿ç¨æ®éçéåæ¹æ³å°±å¯å®¹æå°ä¿®æ¹æ们å®ä¹çéåãå¦ä½ æè§ï¼æ²¡ææ¾å¼ç <literal>update()</literal> æ <literal>save()</literal>ï¼Hibernate ä¼èªå¨æ£æµå°éåå·²ç»è¢«ä¿®æ¹å¹¶éè¦æ´æ°åæ°æ®åºãè¿å«åèªå¨èæ£æ¥ï¼<emphasis>automatic dirty checking</emphasis>ï¼ï¼ä½ ä¹å¯ä»¥å°è¯ä¿®æ¹ä»»ä½å¯¹è±¡ç name æè
date å±æ§ï¼åªè¦ä»ä»¬å¤äº<emphasis>æä¹
å</emphasis>ç¶æï¼ä¹å°±æ¯è¢«ç»å®å°æ个 Hibernate ç <literal>Session</literal> ä¸ï¼å¦ï¼ä»ä»¬ååå¨ä¸ä¸ªåå
æä½è¢«å è½½æè
ä¿åï¼ï¼Hibernate çè§ä»»ä½æ¹å并å¨åå°éå¼åçæ¹å¼æ§è¡ SQLãåæ¥å
åç¶æåæ°æ®åºçè¿ç¨ï¼é常åªå¨åå
æä½ç»æçæ¶ååçï¼ç§°æ¤è¿ç¨ä¸ºæ¸
çç¼å<emphasis>ï¼flushingï¼</emphasis>ãå¨æ们ç代ç ä¸ï¼å·¥ä½åå
ç±æ°æ®åºäºå¡çæ交ï¼æè
åæ»ï¼æ¥ç»æââ!
è¿æ¯ç± <literal>CurrentSessionContext</literal> ç±»ç <literal>thread</literal> é
ç½®é项å®ä¹çã "
#. Tag: para
#, no-c-format
-msgid ""
-"You can load person and event in different units of work. Or you can modify "
-"an object outside of a <interfacename>org.hibernate.Session</interfacename>, "
-"when it is not in persistent state (if it was persistent before, this state "
-"is called <emphasis>detached</emphasis>). You can even modify a collection "
-"when it is detached:"
-msgstr ""
-"å½ç¶ï¼ä½ ä¹å¯ä»¥å¨ä¸åçåå
æä½éé¢å è½½ person å eventãæå¨ "
-"<literal>Session</literal> 以å¤ä¿®æ¹ä¸æ¯å¤å¨æä¹
åï¼persistentï¼ç¶æä¸ç对象"
-"ï¼å¦æ该对象以åæ¾ç»è¢«æä¹
åï¼é£ä¹æ们称è¿ä¸ªç¶æ为<emphasis>è±ç®¡ï¼detachedï¼"
-"</emphasis>ï¼ãä½ çè³å¯ä»¥å¨ä¸ä¸ªéå被è±ç®¡æ¶ä¿®æ¹å®ï¼ "
+msgid "You can load person and event in different units of work. Or you can modify an object outside of a <interfacename>org.hibernate.Session</interfacename>, when it is not in persistent state (if it was persistent before, this state is called <emphasis>detached</emphasis>). You can even modify a collection when it is detached:"
+msgstr "å½ç¶ï¼ä½ ä¹å¯ä»¥å¨ä¸åçåå
æä½éé¢å è½½ person å eventãæå¨ <literal>Session</literal> 以å¤ä¿®æ¹ä¸æ¯å¤å¨æä¹
åï¼persistentï¼ç¶æä¸ç对象ï¼å¦æ该对象以åæ¾ç»è¢«æä¹
åï¼é£ä¹æ们称è¿ä¸ªç¶æ为<emphasis>è±ç®¡ï¼detachedï¼</emphasis>ï¼ãä½ çè³å¯ä»¥å¨ä¸ä¸ªéå被è±ç®¡æ¶ä¿®æ¹å®ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The call to <literal>update</literal> makes a detached object persistent "
-"again by binding it to a new unit of work, so any modifications you made to "
-"it while detached can be saved to the database. This includes any "
-"modifications (additions/deletions) you made to a collection of that entity "
-"object."
-msgstr ""
-"对 <literal>update</literal> çè°ç¨ä½¿ä¸ä¸ªè±ç®¡å¯¹è±¡éæ°æä¹
åï¼ä½ å¯ä»¥è¯´å®è¢«ç»å®"
-"å°ä¸ä¸ªæ°çåå
æä½ä¸ï¼æ以å¨è±ç®¡ç¶æä¸å¯¹å®æåçä»»ä½ä¿®æ¹é½ä¼è¢«ä¿åå°æ°æ®åº"
-"éãè¿ä¹å
æ¬ä½ 对è¿ä¸ªå®ä½å¯¹è±¡çéåæä½çä»»ä½æ¹å¨ï¼å¢å /å é¤ï¼ã "
+msgid "The call to <literal>update</literal> makes a detached object persistent again by binding it to a new unit of work, so any modifications you made to it while detached can be saved to the database. This includes any modifications (additions/deletions) you made to a collection of that entity object."
+msgstr "对 <literal>update</literal> çè°ç¨ä½¿ä¸ä¸ªè±ç®¡å¯¹è±¡éæ°æä¹
åï¼ä½ å¯ä»¥è¯´å®è¢«ç»å®å°ä¸ä¸ªæ°çåå
æä½ä¸ï¼æ以å¨è±ç®¡ç¶æä¸å¯¹å®æåçä»»ä½ä¿®æ¹é½ä¼è¢«ä¿åå°æ°æ®åºéãè¿ä¹å
æ¬ä½ 对è¿ä¸ªå®ä½å¯¹è±¡çéåæä½çä»»ä½æ¹å¨ï¼å¢å /å é¤ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"This is not much use in our example, but it is an important concept you can "
-"incorporate into your own application. Complete this exercise by adding a "
-"new action to the main method of the <literal>EventManager</literal> and "
-"call it from the command line. If you need the identifiers of a person and "
-"an event - the <literal>save()</literal> method returns it (you might have "
-"to modify some of the previous methods to return that identifier):"
-msgstr ""
-"è¿å¯¹æ们å½åçæ
å½¢ä¸æ¯å¾æç¨ï¼ä½å®æ¯é常éè¦çæ¦å¿µï¼ä½ å¯ä»¥æå®èå
¥å°ä½ èªå·±ç"
-"åºç¨ç¨åºè®¾è®¡ä¸ãå¨<literal>EventManager</literal>ç main æ¹æ³ä¸æ·»å ä¸ä¸ªæ°çå¨"
-"ä½ï¼å¹¶ä»å½ä»¤è¡è¿è¡å®æ¥å®ææ们æåçç»ä¹ ãå¦æä½ éè¦ person å event çæ è¯"
-"符 â é£å°±ç¨ <literal>save()</literal> æ¹æ³è¿åå®ï¼ä½ å¯è½éè¦ä¿®æ¹åé¢çä¸äºæ¹"
-"æ³æ¥è¿åé£ä¸ªæ è¯ç¬¦ï¼ï¼ "
+msgid "This is not much use in our example, but it is an important concept you can incorporate into your own application. Complete this exercise by adding a new action to the main method of the <literal>EventManager</literal> and call it from the command line. If you need the identifiers of a person and an event - the <literal>save()</literal> method returns it (you might have to modify some of the previous methods to return that identifier):"
+msgstr "è¿å¯¹æ们å½åçæ
å½¢ä¸æ¯å¾æç¨ï¼ä½å®æ¯é常éè¦çæ¦å¿µï¼ä½ å¯ä»¥æå®èå
¥å°ä½ èªå·±çåºç¨ç¨åºè®¾è®¡ä¸ãå¨<literal>EventManager</literal>ç main æ¹æ³ä¸æ·»å ä¸ä¸ªæ°çå¨ä½ï¼å¹¶ä»å½ä»¤è¡è¿è¡å®æ¥å®ææ们æåçç»ä¹ ãå¦æä½ éè¦ person å event çæ è¯ç¬¦ â é£å°±ç¨ <literal>save()</literal> æ¹æ³è¿åå®ï¼ä½ å¯è½éè¦ä¿®æ¹åé¢çä¸äºæ¹æ³æ¥è¿åé£ä¸ªæ è¯ç¬¦ï¼ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"This is an example of an association between two equally important classes : "
-"two entities. As mentioned earlier, there are other classes and types in a "
-"typical model, usually \"less important\". Some you have already seen, like "
-"an <literal>int</literal> or a <classname>java.lang.String</classname>. We "
-"call these classes <emphasis>value types</emphasis>, and their instances "
-"<emphasis>depend</emphasis> on a particular entity. Instances of these types "
-"do not have their own identity, nor are they shared between entities. Two "
-"persons do not reference the same <literal>firstname</literal> object, even "
-"if they have the same first name. Value types cannot only be found in the "
-"JDK , but you can also write dependent classes yourself such as an "
-"<literal>Address</literal> or <literal>MonetaryAmount</literal> class. In "
-"fact, in a Hibernate application all JDK classes are considered value types."
-msgstr ""
-"ä¸é¢æ¯ä¸ªå
³äºä¸¤ä¸ªåçéè¦çå®ä½ç±»é´å
³èçä¾åãååé¢ææå°çé£æ ·ï¼å¨ç¹å®ç模"
-"åä¸ä¹åå¨å
¶å®çç±»åç±»åï¼è¿äºç±»åç±»åé常æ¯â次è¦çâãä½ å·²çå°è¿å
¶ä¸çä¸äºï¼"
-"å <literal>int</literal> æ <literal>String</literal>ãæ们称è¿äºç±»ä¸º"
-"<emphasis>å¼ç±»åï¼value typeï¼</emphasis>ï¼å®ä»¬çå®ä¾<emphasis>ä¾èµï¼dependï¼"
-"</emphasis>å¨æ个ç¹å®çå®ä½ä¸ãè¿äºç±»åçå®ä¾æ²¡æå®ä»¬èªå·±çæ è¯ï¼identityï¼ï¼"
-"ä¹ä¸è½å¨å®ä½é´è¢«å
±äº«ï¼æ¯å¦ï¼ä¸¤ä¸ª person ä¸è½å¼ç¨åä¸ä¸ª <literal>firstname</"
-"literal> 对象ï¼å³ä½¿ä»ä»¬æç¸åç first nameï¼ãå½ç¶ï¼å¼ç±»å并ä¸ä»
ä»
å¨ JDK ä¸å"
-"å¨ï¼äºå®ä¸ï¼å¨ä¸ä¸ª Hibernate åºç¨ç¨åºä¸ï¼ææç JDK ç±»é½è¢«è§ä¸ºå¼ç±»åï¼ï¼èä¸"
-"ä½ ä¹å¯ä»¥ç¼åä½ èªå·±çä¾èµç±»ï¼ä¾å¦ <literal>Address</literal>ï¼"
-"<literal>MonetaryAmount</literal>ã "
+msgid "This is an example of an association between two equally important classes : two entities. As mentioned earlier, there are other classes and types in a typical model, usually \"less important\". Some you have already seen, like an <literal>int</literal> or a <classname>java.lang.String</classname>. We call these classes <emphasis>value types</emphasis>, and their instances <emphasis>depend</emphasis> on a particular entity. Instances of these types do not have their own identity, nor are they shared between entities. Two persons do not reference the same <literal>firstname</literal> object, even if they have the same first name. Value types cannot only be found in the JDK , but you can also write dependent classes yourself such as an <literal>Address</literal> or <literal>MonetaryAmount</literal> class. In fact, in a Hibernate application all JDK classes are considered value types."
+msgstr "ä¸é¢æ¯ä¸ªå
³äºä¸¤ä¸ªåçéè¦çå®ä½ç±»é´å
³èçä¾åãååé¢ææå°çé£æ ·ï¼å¨ç¹å®ç模åä¸ä¹åå¨å
¶å®çç±»åç±»åï¼è¿äºç±»åç±»åé常æ¯â次è¦çâãä½ å·²çå°è¿å
¶ä¸çä¸äºï¼å <literal>int</literal> æ <literal>String</literal>ãæ们称è¿äºç±»ä¸º<emphasis>å¼ç±»åï¼value typeï¼</emphasis>ï¼å®ä»¬çå®ä¾<emphasis>ä¾èµï¼dependï¼</emphasis>å¨æ个ç¹å®çå®ä½ä¸ãè¿äºç±»åçå®ä¾æ²¡æå®ä»¬èªå·±çæ è¯ï¼identityï¼ï¼ä¹ä¸è½å¨å®ä½é´è¢«å
±äº«ï¼æ¯å¦ï¼ä¸¤ä¸ª person ä¸è½å¼ç¨åä¸ä¸ª <literal>firstname</literal> 对象ï¼å³ä½¿ä»ä»¬æç¸åç first nameï¼ãå½ç¶ï¼å¼ç±»å并ä¸ä»
ä»
å¨ JDK ä¸åå¨ï¼äºå®ä¸ï¼å¨ä¸ä¸ª Hibernate åºç¨ç¨åºä¸ï¼ææç JDK ç±»é½è¢«è§ä¸ºå¼ç±»åï¼ï¼èä¸ä½ ä¹å¯ä»¥ç¼åä½ èªå·±çä¾èµç±»ï¼ä¾å¦ <literal>Address</literal>ï¼<literal>MonetaryAmount</literal>ã "
#. Tag: para
#, no-c-format
-msgid ""
-"You can also design a collection of value types. This is conceptually "
-"different from a collection of references to other entities, but looks "
-"almost the same in Java."
-msgstr ""
-"ä½ ä¹å¯ä»¥è®¾è®¡ä¸ä¸ªå¼ç±»åçéåï¼è¿å¨æ¦å¿µä¸ä¸å¼ç¨å
¶å®å®ä½çéåæå¾å¤§çä¸åï¼ä½"
-"æ¯å¨ Java éé¢çèµ·æ¥å ä¹æ¯ä¸æ ·çã "
+msgid "You can also design a collection of value types. This is conceptually different from a collection of references to other entities, but looks almost the same in Java."
+msgstr "ä½ ä¹å¯ä»¥è®¾è®¡ä¸ä¸ªå¼ç±»åçéåï¼è¿å¨æ¦å¿µä¸ä¸å¼ç¨å
¶å®å®ä½çéåæå¾å¤§çä¸åï¼ä½æ¯å¨ Java éé¢çèµ·æ¥å ä¹æ¯ä¸æ ·çã "
#. Tag: title
#, no-c-format
@@ -1168,14 +497,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Let's add a collection of email addresses to the <literal>Person</literal> "
-"entity. This will be represented as a <interfacename>java.util.Set</"
-"interfacename> of <classname>java.lang.String</classname> instances:"
-msgstr ""
-"让æä»¬å¨ <literal>Person</literal> å®ä½éæ·»å ä¸ä¸ªçµåé®ä»¶çéåãè¿å°ä»¥ "
-"<classname>java.lang.String</classname> å®ä¾ç <interfacename>java.util.Set</"
-"interfacename> åºç°ï¼"
+msgid "Let's add a collection of email addresses to the <literal>Person</literal> entity. This will be represented as a <interfacename>java.util.Set</interfacename> of <classname>java.lang.String</classname> instances:"
+msgstr "让æä»¬å¨ <literal>Person</literal> å®ä½éæ·»å ä¸ä¸ªçµåé®ä»¶çéåãè¿å°ä»¥ <classname>java.lang.String</classname> å®ä¾ç <interfacename>java.util.Set</interfacename> åºç°ï¼"
#. Tag: para
#, no-c-format
@@ -1184,26 +507,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"The difference compared with the earlier mapping is the use of the "
-"<literal>element</literal> part which tells Hibernate that the collection "
-"does not contain references to another entity, but is rather a collection "
-"whose elements are values types, here specifically of type <literal>string</"
-"literal>. The lowercase name tells you it is a Hibernate mapping type/"
-"converter. Again the <literal>table</literal> attribute of the <literal>set</"
-"literal> element determines the table name for the collection. The "
-"<literal>key</literal> element defines the foreign-key column name in the "
-"collection table. The <literal>column</literal> attribute in the "
-"<literal>element</literal> element defines the column name where the email "
-"address values will actually be stored."
-msgstr ""
-"æ¯è¾è¿æ¬¡åæ¤åæ å°çå·®å«ï¼ä¸»è¦å¨äº <literal>element</literal> é¨åï¼è¿æ¬¡å¹¶æ²¡"
-"æå
å«å¯¹å
¶å®å®ä½å¼ç¨çéåï¼èæ¯å
ç´ ç±»å为 <literal>String</literal> çéå"
-"ï¼å¨æ å°ä¸ä½¿ç¨å°åçååâstringâæ¯åä½ è¡¨æå®æ¯ä¸ä¸ª Hibernate çæ å°ç±»åæè
ç±»"
-"å转æ¢å¨ï¼ãåä¹åä¸æ ·ï¼<literal>set</literal> å
ç´ ç <literal>table</"
-"literal> å±æ§å³å®äºç¨äºéåç表åã<literal>key</literal> å
ç´ å®ä¹äºå¨éå表"
-"ä¸å¤é®çå段åã<literal>element</literal> å
ç´ ç <literal>column</literal> "
-"å±æ§å®ä¹ç¨äºå®é
ä¿å <literal>String</literal> å¼çå段åã "
+msgid "The difference compared with the earlier mapping is the use of the <literal>element</literal> part which tells Hibernate that the collection does not contain references to another entity, but is rather a collection whose elements are values types, here specifically of type <literal>string</literal>. The lowercase name tells you it is a Hibernate mapping type/converter. Again the <literal>table</literal> attribute of the <literal>set</literal> element determines the table name for the collection. The <literal>key</literal> element defines the foreign-key column name in the collection table. The <literal>column</literal> attribute in the <literal>element</literal> element defines the column name where the email address values will actually be stored."
+msgstr "æ¯è¾è¿æ¬¡åæ¤åæ å°çå·®å«ï¼ä¸»è¦å¨äº <literal>element</literal> é¨åï¼è¿æ¬¡å¹¶æ²¡æå
å«å¯¹å
¶å®å®ä½å¼ç¨çéåï¼èæ¯å
ç´ ç±»å为 <literal>String</literal> çéåï¼å¨æ å°ä¸ä½¿ç¨å°åçååâstringâæ¯åä½ è¡¨æå®æ¯ä¸ä¸ª Hibernate çæ å°ç±»åæè
ç±»å转æ¢å¨ï¼ãåä¹åä¸æ ·ï¼<literal>set</literal> å
ç´ ç <literal>table</literal> å±æ§å³å®äºç¨äºéåç表åã<literal>key</literal> å
ç´ å®ä¹äºå¨éå表ä¸å¤é®çå段åã<literal>element</literal> å
ç´ ç <literal>column</literal> å±æ§å®ä¹ç¨äºå®é
ä¿å <literal>String</literal> å¼çå段åã "
#. Tag: para
#, no-c-format
@@ -1212,35 +517,18 @@
#. Tag: para
#, no-c-format
-msgid ""
-"You can see that the primary key of the collection table is in fact a "
-"composite key that uses both columns. This also implies that there cannot be "
-"duplicate email addresses per person, which is exactly the semantics we need "
-"for a set in Java."
-msgstr ""
-"ä½ å¯ä»¥çå°éå表ç主é®å®é
ä¸æ¯ä¸ªå¤å主é®ï¼åæ¶ä½¿ç¨äºä¸¤ä¸ªå段ãè¿ä¹æ示äºå¯¹äº"
-"åä¸ä¸ª person ä¸è½æéå¤ç email å°åï¼è¿æ£æ¯ Java éé¢ä½¿ç¨ Set æ¶åæéè¦ç"
-"è¯ä¹ï¼Set éå
ç´ ä¸è½éå¤ï¼ã"
+msgid "You can see that the primary key of the collection table is in fact a composite key that uses both columns. This also implies that there cannot be duplicate email addresses per person, which is exactly the semantics we need for a set in Java."
+msgstr "ä½ å¯ä»¥çå°éå表ç主é®å®é
ä¸æ¯ä¸ªå¤å主é®ï¼åæ¶ä½¿ç¨äºä¸¤ä¸ªå段ãè¿ä¹æ示äºå¯¹äºåä¸ä¸ª person ä¸è½æéå¤ç email å°åï¼è¿æ£æ¯ Java éé¢ä½¿ç¨ Set æ¶åæéè¦çè¯ä¹ï¼Set éå
ç´ ä¸è½éå¤ï¼ã"
#. Tag: para
#, no-c-format
-msgid ""
-"You can now try to add elements to this collection, just like we did before "
-"by linking persons and events. It is the same code in Java:"
-msgstr ""
-"ä½ ç°å¨å¯ä»¥è¯çæå
ç´ å å
¥å°è¿ä¸ªéåï¼å°±åæ们å¨ä¹åå
³è person å event çé£"
-"æ ·ãå
¶å®ç°ç Java 代ç æ¯ç¸åçï¼ "
+msgid "You can now try to add elements to this collection, just like we did before by linking persons and events. It is the same code in Java:"
+msgstr "ä½ ç°å¨å¯ä»¥è¯çæå
ç´ å å
¥å°è¿ä¸ªéåï¼å°±åæ们å¨ä¹åå
³è person å event çé£æ ·ãå
¶å®ç°ç Java 代ç æ¯ç¸åçï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"This time we did not use a <emphasis>fetch</emphasis> query to initialize "
-"the collection. Monitor the SQL log and try to optimize this with an eager "
-"fetch."
-msgstr ""
-"è¿æ¬¡æ们没æä½¿ç¨ <emphasis>fetch</emphasis> æ¥è¯¢æ¥åå§åéåãå æ¤ï¼è°ç¨å
¶ "
-"getter æ¹æ³ä¼è§¦åå¦ä¸éå ç select æ¥åå§åéåï¼è¿æ ·æ们æè½æå
ç´ æ·»å è¿å»ã"
-"æ£æ¥ SQL logï¼è¯çéè¿é¢å
æåæ¥ä¼åå®ã "
+msgid "This time we did not use a <emphasis>fetch</emphasis> query to initialize the collection. Monitor the SQL log and try to optimize this with an eager fetch."
+msgstr "è¿æ¬¡æ们没æä½¿ç¨ <emphasis>fetch</emphasis> æ¥è¯¢æ¥åå§åéåãå æ¤ï¼è°ç¨å
¶ getter æ¹æ³ä¼è§¦åå¦ä¸éå ç select æ¥åå§åéåï¼è¿æ ·æ们æè½æå
ç´ æ·»å è¿å»ãæ£æ¥ SQL logï¼è¯çéè¿é¢å
æåæ¥ä¼åå®ã "
#. Tag: title
#, no-c-format
@@ -1249,68 +537,33 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Next you will map a bi-directional association. You will make the "
-"association between person and event work from both sides in Java. The "
-"database schema does not change, so you will still have many-to-many "
-"multiplicity."
-msgstr ""
-"æ¥ä¸æ¥æ们å°æ å°ååå
³èï¼bi-directional associationï¼â å¨ Java é让 person "
-"å event å¯ä»¥ä»å
³èçä»»ä½ä¸ç«¯è®¿é®å¦ä¸ç«¯ãå½ç¶ï¼æ°æ®åº schema 没ææ¹åï¼æ们ä»"
-"ç¶éè¦å¤å¯¹å¤çé¶æ°ãä¸ä¸ªå
³ç³»åæ°æ®åºè¦æ¯ç½ç»ç¼ç¨è¯è¨æ´å çµæ´»ï¼æ以å®å¹¶ä¸éè¦"
-"ä»»ä½å导èªæ¹åï¼navigation directionï¼çä¸è¥¿ â æ°æ®å¯ä»¥ç¨ä»»ä½å¯è½çæ¹å¼è¿è¡æ¥"
-"çåè·åã "
+msgid "Next you will map a bi-directional association. You will make the association between person and event work from both sides in Java. The database schema does not change, so you will still have many-to-many multiplicity."
+msgstr "æ¥ä¸æ¥æ们å°æ å°ååå
³èï¼bi-directional associationï¼â å¨ Java é让 person å event å¯ä»¥ä»å
³èçä»»ä½ä¸ç«¯è®¿é®å¦ä¸ç«¯ãå½ç¶ï¼æ°æ®åº schema 没ææ¹åï¼æ们ä»ç¶éè¦å¤å¯¹å¤çé¶æ°ãä¸ä¸ªå
³ç³»åæ°æ®åºè¦æ¯ç½ç»ç¼ç¨è¯è¨æ´å çµæ´»ï¼æ以å®å¹¶ä¸éè¦ä»»ä½å导èªæ¹åï¼navigation directionï¼çä¸è¥¿ â æ°æ®å¯ä»¥ç¨ä»»ä½å¯è½çæ¹å¼è¿è¡æ¥çåè·åã "
#. Tag: para
#, no-c-format
-msgid ""
-"A relational database is more flexible than a network programming language, "
-"in that it does not need a navigation direction; data can be viewed and "
-"retrieved in any possible way."
-msgstr ""
-"å
³ç³»åæ°æ®åºæ¯ç½ç»ç¼ç¨è¯è¨æ´ä¸ºçµæ´»ï¼å 为å®ä¸éè¦æ¹å导èªï¼å
¶æ°æ®å¯ä»¥ç¨ä»»ä½å¯"
-"è½çæ¹å¼è¿è¡æ¥çåæåã"
+msgid "A relational database is more flexible than a network programming language, in that it does not need a navigation direction; data can be viewed and retrieved in any possible way."
+msgstr "å
³ç³»åæ°æ®åºæ¯ç½ç»ç¼ç¨è¯è¨æ´ä¸ºçµæ´»ï¼å 为å®ä¸éè¦æ¹å导èªï¼å
¶æ°æ®å¯ä»¥ç¨ä»»ä½å¯è½çæ¹å¼è¿è¡æ¥çåæåã"
#. Tag: para
#, no-c-format
-msgid ""
-"First, add a collection of participants to the <literal>Event</literal> "
-"class:"
-msgstr ""
-"é¦å
ï¼æä¸ä¸ªåä¸è
ï¼personï¼çéåå å
¥ <literal>Event</literal> ç±»ä¸ï¼ "
+msgid "First, add a collection of participants to the <literal>Event</literal> class:"
+msgstr "é¦å
ï¼æä¸ä¸ªåä¸è
ï¼personï¼çéåå å
¥ <literal>Event</literal> ç±»ä¸ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Now map this side of the association in <literal>Event.hbm.xml</literal>."
+msgid "Now map this side of the association in <literal>Event.hbm.xml</literal>."
msgstr "å¨ <literal>Event.hbm.xml</literal> éé¢ä¹æ å°è¿ä¸ªå
³èã "
#. Tag: para
#, no-c-format
-msgid ""
-"These are normal <literal>set</literal> mappings in both mapping documents. "
-"Notice that the column names in <literal>key</literal> and <literal>many-to-"
-"many</literal> swap in both mapping documents. The most important addition "
-"here is the <literal>inverse=\"true\"</literal> attribute in the "
-"<literal>set</literal> element of the <literal>Event</literal>'s collection "
-"mapping."
-msgstr ""
-"å¦ä½ æè§ï¼ä¸¤ä¸ªæ å°æ件éé½ææ®éç <literal>set</literal> æ å°ã注æå¨ä¸¤ä¸ªæ "
-"å°æ件ä¸ï¼äºæ¢äº <literal>key</literal> å <literal>many-to-many</literal> ç"
-"å段åãè¿éæéè¦çæ¯ <literal>Event</literal> æ å°æ件éå¢å äº "
-"<literal>set</literal> å
ç´ ç <literal>inverse=\"true\"</literal> å±æ§ã "
+msgid "These are normal <literal>set</literal> mappings in both mapping documents. Notice that the column names in <literal>key</literal> and <literal>many-to-many</literal> swap in both mapping documents. The most important addition here is the <literal>inverse=\"true\"</literal> attribute in the <literal>set</literal> element of the <literal>Event</literal>'s collection mapping."
+msgstr "å¦ä½ æè§ï¼ä¸¤ä¸ªæ å°æ件éé½ææ®éç <literal>set</literal> æ å°ã注æå¨ä¸¤ä¸ªæ å°æ件ä¸ï¼äºæ¢äº <literal>key</literal> å <literal>many-to-many</literal> çå段åãè¿éæéè¦çæ¯ <literal>Event</literal> æ å°æ件éå¢å äº <literal>set</literal> å
ç´ ç <literal>inverse=\"true\"</literal> å±æ§ã "
#. Tag: para
#, no-c-format
-msgid ""
-"What this means is that Hibernate should take the other side, the "
-"<literal>Person</literal> class, when it needs to find out information about "
-"the link between the two. This will be a lot easier to understand once you "
-"see how the bi-directional link between our two entities is created."
-msgstr ""
-"è¿æå³çå¨éè¦çæ¶åï¼Hibernate è½å¨å
³èçå¦ä¸ç«¯ â <literal>Person</literal> "
-"ç±»å¾å°ä¸¤ä¸ªå®ä½é´å
³èçä¿¡æ¯ãè¿å°ä¼æ大å°å¸®å©ä½ ç解ååå
³èæ¯å¦ä½å¨ä¸¤ä¸ªå®ä½é´"
-"被å建çã "
+msgid "What this means is that Hibernate should take the other side, the <literal>Person</literal> class, when it needs to find out information about the link between the two. This will be a lot easier to understand once you see how the bi-directional link between our two entities is created."
+msgstr "è¿æå³çå¨éè¦çæ¶åï¼Hibernate è½å¨å
³èçå¦ä¸ç«¯ â <literal>Person</literal> ç±»å¾å°ä¸¤ä¸ªå®ä½é´å
³èçä¿¡æ¯ãè¿å°ä¼æ大å°å¸®å©ä½ ç解ååå
³èæ¯å¦ä½å¨ä¸¤ä¸ªå®ä½é´è¢«å建çã "
#. Tag: title
#, no-c-format
@@ -1319,73 +572,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"First, keep in mind that Hibernate does not affect normal Java semantics. "
-"How did we create a link between a <literal>Person</literal> and an "
-"<literal>Event</literal> in the unidirectional example? You add an instance "
-"of <literal>Event</literal> to the collection of event references, of an "
-"instance of <literal>Person</literal>. If you want to make this link bi-"
-"directional, you have to do the same on the other side by adding a "
-"<literal>Person</literal> reference to the collection in an <literal>Event</"
-"literal>. This process of \"setting the link on both sides\" is absolutely "
-"necessary with bi-directional links."
-msgstr ""
-"é¦å
请记ä½ï¼Hibernate 并ä¸å½±åé常ç Java è¯ä¹ã å¨ååå
³èçä¾åä¸ï¼æ们æ¯æ"
-"æ ·å¨ <literal>Person</literal> å <literal>Event</literal> ä¹é´å建èç³»çï¼æ"
-"们æ <literal>Event</literal> å®ä¾æ·»å å° <literal>Person</literal> å®ä¾å
ç "
-"event å¼ç¨éåéãå æ¤å¾æ¾ç¶ï¼å¦ææ们è¦è®©è¿ä¸ªå
³èå¯ä»¥ååå°å·¥ä½ï¼æ们éè¦å¨"
-"å¦å¤ä¸ç«¯ååæ ·çäºæ
ï¼ æ <literal>Person</literal> å®ä¾å å
¥ "
-"<literal>Event</literal> ç±»å
ç Person å¼ç¨éåãè¿âå¨å
³èç两端设置èç³»âæ¯å®"
-"å
¨å¿
è¦çèä¸ä½ é½å¾è¿ä¹åã "
+msgid "First, keep in mind that Hibernate does not affect normal Java semantics. How did we create a link between a <literal>Person</literal> and an <literal>Event</literal> in the unidirectional example? You add an instance of <literal>Event</literal> to the collection of event references, of an instance of <literal>Person</literal>. If you want to make this link bi-directional, you have to do the same on the other side by adding a <literal>Person</literal> reference to the collection in an <literal>Event</literal>. This process of \"setting the link on both sides\" is absolutely necessary with bi-directional links."
+msgstr "é¦å
请记ä½ï¼Hibernate 并ä¸å½±åé常ç Java è¯ä¹ã å¨ååå
³èçä¾åä¸ï¼æ们æ¯ææ ·å¨ <literal>Person</literal> å <literal>Event</literal> ä¹é´å建èç³»çï¼æ们æ <literal>Event</literal> å®ä¾æ·»å å° <literal>Person</literal> å®ä¾å
ç event å¼ç¨éåéãå æ¤å¾æ¾ç¶ï¼å¦ææ们è¦è®©è¿ä¸ªå
³èå¯ä»¥ååå°å·¥ä½ï¼æ们éè¦å¨å¦å¤ä¸ç«¯ååæ ·çäºæ
ï¼ æ <literal>Person</literal> å®ä¾å å
¥ <literal>Event</literal> ç±»å
ç Person å¼ç¨éåãè¿âå¨å
³èç两端设置èç³»âæ¯å®å
¨å¿
è¦çèä¸ä½ é½å¾è¿ä¹åã "
#. Tag: para
#, no-c-format
-msgid ""
-"Many developers program defensively and create link management methods to "
-"correctly set both sides (for example, in <literal>Person</literal>):"
-msgstr ""
-"许å¤å¼å人åé²å¾¡å¼å°ç¼ç¨ï¼å建管çå
³èçæ¹æ³æ¥ä¿è¯æ£ç¡®ç设置äºå
³èç两端ï¼æ¯"
-"å¦å¨ <literal>Person</literal> éï¼ "
+msgid "Many developers program defensively and create link management methods to correctly set both sides (for example, in <literal>Person</literal>):"
+msgstr "许å¤å¼å人åé²å¾¡å¼å°ç¼ç¨ï¼å建管çå
³èçæ¹æ³æ¥ä¿è¯æ£ç¡®ç设置äºå
³èç两端ï¼æ¯å¦å¨ <literal>Person</literal> éï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"The get and set methods for the collection are now protected. This allows "
-"classes in the same package and subclasses to still access the methods, but "
-"prevents everybody else from altering the collections directly. Repeat the "
-"steps for the collection on the other side."
-msgstr ""
-"注æç°å¨å¯¹äºéåç get å set æ¹æ³ç访é®çº§å«æ¯ protected â è¿å
许å¨ä½äºåä¸ä¸ª"
-"å
ï¼packageï¼ä¸ç类以å继æ¿èªè¿ä¸ªç±»çåç±»å¯ä»¥è®¿é®è¿äºæ¹æ³ï¼ä½ç¦æ¢å
¶ä»ä»»ä½äººç"
-"ç´æ¥è®¿é®ï¼é¿å
äºéåå
容çæ··ä¹±ãä½ åºå°½å¯è½å°å¨å¦ä¸ç«¯ä¹æéåç访é®çº§å«è®¾æ "
-"protectedã "
+msgid "The get and set methods for the collection are now protected. This allows classes in the same package and subclasses to still access the methods, but prevents everybody else from altering the collections directly. Repeat the steps for the collection on the other side."
+msgstr "注æç°å¨å¯¹äºéåç get å set æ¹æ³ç访é®çº§å«æ¯ protected â è¿å
许å¨ä½äºåä¸ä¸ªå
ï¼packageï¼ä¸ç类以å继æ¿èªè¿ä¸ªç±»çåç±»å¯ä»¥è®¿é®è¿äºæ¹æ³ï¼ä½ç¦æ¢å
¶ä»ä»»ä½äººçç´æ¥è®¿é®ï¼é¿å
äºéåå
容çæ··ä¹±ãä½ åºå°½å¯è½å°å¨å¦ä¸ç«¯ä¹æéåç访é®çº§å«è®¾æ protectedã "
#. Tag: para
#, no-c-format
-msgid ""
-"What about the <literal>inverse</literal> mapping attribute? For you, and "
-"for Java, a bi-directional link is simply a matter of setting the references "
-"on both sides correctly. Hibernate, however, does not have enough "
-"information to correctly arrange SQL <literal>INSERT</literal> and "
-"<literal>UPDATE</literal> statements (to avoid constraint violations). "
-"Making one side of the association <literal>inverse</literal> tells "
-"Hibernate to consider it a <emphasis>mirror</emphasis> of the other side. "
-"That is all that is necessary for Hibernate to resolve any issues that arise "
-"when transforming a directional navigation model to a SQL database schema. "
-"The rules are straightforward: all bi-directional associations need one side "
-"as <literal>inverse</literal>. In a one-to-many association it has to be the "
-"many-side, and in many-to-many association you can select either side."
-msgstr ""
-"<literal>inverse</literal> æ å°å±æ§ç©¶ç«è¡¨ç¤ºä»ä¹å¢ï¼å¯¹äºä½ å Java æ¥è¯´ï¼ä¸ä¸ªå"
-"åå
³èä»
ä»
æ¯å¨ä¸¤ç«¯ç®åå°æ£ç¡®è®¾ç½®å¼ç¨ãç¶èï¼Hibernate 并没æ足å¤çä¿¡æ¯å»æ£ç¡®"
-"å°æ§è¡ <literal>INSERT</literal> å <literal>UPDATE</literal> è¯å¥ï¼ä»¥é¿å
è¿"
-"åæ°æ®åºçº¦æï¼ï¼æ以å®éè¦ä¸äºå¸®å©æ¥æ£ç¡®çå¤çååå
³èãæå
³èçä¸ç«¯è®¾ç½®ä¸º "
-"<literal>inverse</literal> å°åè¯ Hibernate 忽ç¥å
³èçè¿ä¸ç«¯ï¼æè¿ç«¯çææ¯å¦"
-"å¤ä¸ç«¯çä¸ä¸ª<emphasis>é象ï¼mirrorï¼</emphasis>ãè¿å°±æ¯æéçå
¨é¨ä¿¡æ¯ï¼"
-"Hibernate å©ç¨è¿äºä¿¡æ¯æ¥å¤çæä¸ä¸ªæå导èªæ¨¡å转移å°æ°æ®åº schema æ¶çææé®"
-"é¢ãä½ åªéè¦è®°ä½è¿ä¸ªç´è§çè§åï¼ææçååå
³èéè¦æä¸ç«¯è¢«è®¾ç½®ä¸º "
-"<literal>inverse</literal>ãå¨ä¸å¯¹å¤å
³èä¸å®å¿
é¡»æ¯ä»£è¡¨å¤ï¼manyï¼çé£ç«¯ãèå¨"
-"å¤å¯¹å¤ï¼many-to-manyï¼å
³èä¸ï¼ä½ å¯ä»¥ä»»æéåä¸ç«¯ï¼å 为两端ä¹é´å¹¶æ²¡æå·®å«ã "
+msgid "What about the <literal>inverse</literal> mapping attribute? For you, and for Java, a bi-directional link is simply a matter of setting the references on both sides correctly. Hibernate, however, does not have enough information to correctly arrange SQL <literal>INSERT</literal> and <literal>UPDATE</literal> statements (to avoid constraint violations). Making one side of the association <literal>inverse</literal> tells Hibernate to consider it a <emphasis>mirror</emphasis> of the other side. That is all that is necessary for Hibernate to resolve any issues that arise when transforming a directional navigation model to a SQL database schema. The rules are straightforward: all bi-directional associations need one side as <literal>inverse</literal>. In a one-to-many association it has to be the many-side, and in many-to-many association you can select either side."
+msgstr "<literal>inverse</literal> æ å°å±æ§ç©¶ç«è¡¨ç¤ºä»ä¹å¢ï¼å¯¹äºä½ å Java æ¥è¯´ï¼ä¸ä¸ªååå
³èä»
ä»
æ¯å¨ä¸¤ç«¯ç®åå°æ£ç¡®è®¾ç½®å¼ç¨ãç¶èï¼Hibernate 并没æ足å¤çä¿¡æ¯å»æ£ç¡®å°æ§è¡ <literal>INSERT</literal> å <literal>UPDATE</literal> è¯å¥ï¼ä»¥é¿å
è¿åæ°æ®åºçº¦æï¼ï¼æ以å®éè¦ä¸äºå¸®å©æ¥æ£ç¡®çå¤çååå
³èãæå
³èçä¸ç«¯è®¾ç½®ä¸º <literal>inverse</literal> å°åè¯ Hibernate 忽ç¥å
³èçè¿ä¸ç«¯ï¼æè¿ç«¯çææ¯å¦å¤ä¸ç«¯çä¸ä¸ª<emphasis>é象ï¼mirrorï¼</emphasis>ãè¿å°±æ¯æéçå
¨é¨ä¿¡æ¯ï¼Hibernate å©ç¨è¿äºä¿¡æ¯æ¥å¤çæä¸ä¸ªæå导èªæ¨¡å转移å°æ°æ®åº schema æ¶çææé®é¢ãä½ åªéè¦è®°ä½è¿ä¸ªç´è§çè§åï¼ææçååå
³èéè¦æä¸ç«¯è¢«è®¾ç½®ä¸º <literal>inverse</literal>ãå¨ä¸å¯¹å¤å
³èä¸å®å¿
é¡»æ¯ä»£è¡¨å¤ï¼manyï¼çé£ç«¯ãèå¨å¤å¯¹å¤ï¼many-to-manyï¼å
³èä¸ï¼ä½ å¯ä»¥ä»»æéåä¸ç«¯ï¼å 为两端ä¹!
é´å¹¶æ²¡æå·®å«ã "
#. Tag: title
#, no-c-format
@@ -1394,18 +597,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"A Hibernate web application uses <literal>Session</literal> and "
-"<literal>Transaction</literal> almost like a standalone application. "
-"However, some common patterns are useful. You can now write an "
-"<literal>EventManagerServlet</literal>. This servlet can list all events "
-"stored in the database, and it provides an HTML form to enter new events."
-msgstr ""
-"Hibernate web åºç¨ç¨åºä½¿ç¨ <literal>Session</literal> å "
-"<literal>Transaction</literal> çæ¹å¼å ä¹åç¬ç«åºç¨ç¨åºæ¯ä¸æ ·çãä½æ¯ï¼æä¸äº"
-"常è§ç模å¼ï¼patternï¼é常æç¨ãç°å¨æ们ç¼åä¸ä¸ª "
-"<literal>EventManagerServlet</literal>ãè¿ä¸ª servlet å¯ä»¥ååºæ°æ®åºä¸ä¿åçæ"
-"æç eventsï¼è¿æä¾ä¸ä¸ª HTML 表åæ¥å¢å æ°ç eventsã "
+msgid "A Hibernate web application uses <literal>Session</literal> and <literal>Transaction</literal> almost like a standalone application. However, some common patterns are useful. You can now write an <literal>EventManagerServlet</literal>. This servlet can list all events stored in the database, and it provides an HTML form to enter new events."
+msgstr "Hibernate web åºç¨ç¨åºä½¿ç¨ <literal>Session</literal> å <literal>Transaction</literal> çæ¹å¼å ä¹åç¬ç«åºç¨ç¨åºæ¯ä¸æ ·çãä½æ¯ï¼æä¸äºå¸¸è§ç模å¼ï¼patternï¼é常æç¨ãç°å¨æ们ç¼åä¸ä¸ª <literal>EventManagerServlet</literal>ãè¿ä¸ª servlet å¯ä»¥ååºæ°æ®åºä¸ä¿åçææç eventsï¼è¿æä¾ä¸ä¸ª HTML 表åæ¥å¢å æ°ç eventsã "
#. Tag: title
#, no-c-format
@@ -1414,80 +607,33 @@
#. Tag: para
#, no-c-format
-msgid ""
-"First we need create our basic processing servlet. Since our servlet only "
-"handles HTTP <literal>GET</literal> requests, we will only implement the "
-"<literal>doGet()</literal> method:"
-msgstr ""
-"è¿ä¸ª servlet åªå¤ç HTTP <literal>GET</literal> 请æ±ï¼å æ¤ï¼æ们è¦å®ç°çæ¯ "
-"<literal>doGet()</literal> æ¹æ³ï¼ "
+msgid "First we need create our basic processing servlet. Since our servlet only handles HTTP <literal>GET</literal> requests, we will only implement the <literal>doGet()</literal> method:"
+msgstr "è¿ä¸ª servlet åªå¤ç HTTP <literal>GET</literal> 请æ±ï¼å æ¤ï¼æ们è¦å®ç°çæ¯ <literal>doGet()</literal> æ¹æ³ï¼ "
#. Tag: para
#, no-c-format
-msgid ""
-"Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/"
-"EventManagerServlet.java</filename>"
-msgstr ""
-"æè¿ä¸ª servlet ä¿å为 <filename>src/main/java/org/hibernate/tutorial/web/"
-"EventManagerServlet.java</filename>ã"
+msgid "Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>"
+msgstr "æè¿ä¸ª servlet ä¿å为 <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"The pattern applied here is called <emphasis>session-per-request</emphasis>. "
-"When a request hits the servlet, a new Hibernate <literal>Session</literal> "
-"is opened through the first call to <literal>getCurrentSession()</literal> "
-"on the <literal>SessionFactory</literal>. A database transaction is then "
-"started. All data access occurs inside a transaction irrespective of whether "
-"the data is read or written. Do not use the auto-commit mode in applications."
-msgstr ""
-"æ们称è¿éåºç¨ç模å¼ä¸ºæ¯æ¬¡è¯·æ±ä¸ä¸ª session<emphasis>(session-per-request)</"
-"emphasis>ãå½æ请æ±å°è¾¾è¿ä¸ª servlet çæ¶åï¼éè¿å¯¹ <literal>SessionFactory</"
-"literal> ç第ä¸æ¬¡è°ç¨ï¼æå¼ä¸ä¸ªæ°ç Hibernate <literal>Session</literal>ãç¶"
-"åå¯å¨ä¸ä¸ªæ°æ®åºäºå¡ â ææçæ°æ®è®¿é®é½æ¯å¨äºå¡ä¸è¿è¡ï¼ä¸ç®¡æ¯è¯»è¿æ¯åï¼æ们å¨"
-"åºç¨ç¨åºä¸ä¸ä½¿ç¨ auto-commit 模å¼ï¼ã "
+msgid "The pattern applied here is called <emphasis>session-per-request</emphasis>. When a request hits the servlet, a new Hibernate <literal>Session</literal> is opened through the first call to <literal>getCurrentSession()</literal> on the <literal>SessionFactory</literal>. A database transaction is then started. All data access occurs inside a transaction irrespective of whether the data is read or written. Do not use the auto-commit mode in applications."
+msgstr "æ们称è¿éåºç¨ç模å¼ä¸ºæ¯æ¬¡è¯·æ±ä¸ä¸ª session<emphasis>(session-per-request)</emphasis>ãå½æ请æ±å°è¾¾è¿ä¸ª servlet çæ¶åï¼éè¿å¯¹ <literal>SessionFactory</literal> ç第ä¸æ¬¡è°ç¨ï¼æå¼ä¸ä¸ªæ°ç Hibernate <literal>Session</literal>ãç¶åå¯å¨ä¸ä¸ªæ°æ®åºäºå¡ â ææçæ°æ®è®¿é®é½æ¯å¨äºå¡ä¸è¿è¡ï¼ä¸ç®¡æ¯è¯»è¿æ¯åï¼æ们å¨åºç¨ç¨åºä¸ä¸ä½¿ç¨ auto-commit 模å¼ï¼ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> "
-"for every database operation. Use one Hibernate <literal>Session</literal> "
-"that is scoped to the whole request. Use <literal>getCurrentSession()</"
-"literal>, so that it is automatically bound to the current Java thread."
-msgstr ""
-"<emphasis>ä¸è¦</emphasis>为æ¯æ¬¡æ°æ®åºæä½é½ä½¿ç¨ä¸ä¸ªæ°ç Hibernate "
-"<literal>Session</literal>ãå° Hibernate <literal>Session</literal> çèå´è®¾"
-"置为æ´ä¸ªè¯·æ±ãè¦ç¨ <literal>getCurrentSession()</literal>ï¼è¿æ ·å®èªå¨ä¼ç»å®å°"
-"å½å Java 线ç¨ã"
+msgid "Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> for every database operation. Use one Hibernate <literal>Session</literal> that is scoped to the whole request. Use <literal>getCurrentSession()</literal>, so that it is automatically bound to the current Java thread."
+msgstr "<emphasis>ä¸è¦</emphasis>为æ¯æ¬¡æ°æ®åºæä½é½ä½¿ç¨ä¸ä¸ªæ°ç Hibernate <literal>Session</literal>ãå° Hibernate <literal>Session</literal> çèå´è®¾ç½®ä¸ºæ´ä¸ªè¯·æ±ãè¦ç¨ <literal>getCurrentSession()</literal>ï¼è¿æ ·å®èªå¨ä¼ç»å®å°å½å Java 线ç¨ã"
#. Tag: para
#, no-c-format
-msgid ""
-"Next, the possible actions of the request are processed and the response "
-"HTML is rendered. We will get to that part soon."
-msgstr ""
-"ä¸ä¸æ¥ï¼å¯¹è¯·æ±çå¯è½å¨ä½è¿è¡å¤çï¼æ¸²æåºåé¦ç HTMLãæ们å¾å¿«å°±ä¼æ¶åå°é£é¨"
-"åã "
+msgid "Next, the possible actions of the request are processed and the response HTML is rendered. We will get to that part soon."
+msgstr "ä¸ä¸æ¥ï¼å¯¹è¯·æ±çå¯è½å¨ä½è¿è¡å¤çï¼æ¸²æåºåé¦ç HTMLãæ们å¾å¿«å°±ä¼æ¶åå°é£é¨åã "
#. Tag: para
#, no-c-format
-msgid ""
-"Finally, the unit of work ends when processing and rendering are complete. "
-"If any problems occurred during processing or rendering, an exception will "
-"be thrown and the database transaction rolled back. This completes the "
-"<literal>session-per-request</literal> pattern. Instead of the transaction "
-"demarcation code in every servlet, you could also write a servlet filter. "
-"See the Hibernate website and Wiki for more information about this pattern "
-"called <emphasis>Open Session in View</emphasis>. You will need it as soon "
-"as you consider rendering your view in JSP, not in a servlet."
-msgstr ""
-"æåï¼å½å¤çä¸æ¸²æé½ç»æçæ¶åï¼è¿ä¸ªå·¥ä½åå
å°±ç»æäºãåè¥å¨å¤çæ渲æçæ¶å"
-"æä»»ä½é误åçï¼ä¼æåºä¸ä¸ªå¼å¸¸ï¼åæ»æ°æ®åºäºå¡ãè¿æ ·ï¼<literal>session-per-"
-"request</literal> 模å¼å°±å®æäºã为äºé¿å
å¨æ¯ä¸ª servlet ä¸é½ç¼åäºå¡è¾¹ççå®ç"
-"代ç ï¼å¯ä»¥èèåä¸ä¸ª servlet è¿æ»¤å¨ï¼filterï¼æ¥æ´å¥½å°è§£å³ãå
³äºè¿ä¸æ¨¡å¼çæ´å¤"
-"ä¿¡æ¯ï¼è¯·åé
Hibernate ç½ç«å Wikiï¼è¿ä¸æ¨¡å¼å«å <emphasis>Open Session in "
-"View</emphasis> â åªè¦ä½ èèç¨JSPæ¥æ¸²æä½ çè§å¾ï¼viewï¼ï¼èä¸æ¯å¨servletä¸ï¼"
-"ä½ å°±ä¼å¾å¿«ç¨å°å®ã "
+msgid "Finally, the unit of work ends when processing and rendering are complete. If any problems occurred during processing or rendering, an exception will be thrown and the database transaction rolled back. This completes the <literal>session-per-request</literal> pattern. Instead of the transaction demarcation code in every servlet, you could also write a servlet filter. See the Hibernate website and Wiki for more information about this pattern called <emphasis>Open Session in View</emphasis>. You will need it as soon as you consider rendering your view in JSP, not in a servlet."
+msgstr "æåï¼å½å¤çä¸æ¸²æé½ç»æçæ¶åï¼è¿ä¸ªå·¥ä½åå
å°±ç»æäºãåè¥å¨å¤çæ渲æçæ¶åæä»»ä½é误åçï¼ä¼æåºä¸ä¸ªå¼å¸¸ï¼åæ»æ°æ®åºäºå¡ãè¿æ ·ï¼<literal>session-per-request</literal> 模å¼å°±å®æäºã为äºé¿å
å¨æ¯ä¸ª servlet ä¸é½ç¼åäºå¡è¾¹ççå®ç代ç ï¼å¯ä»¥èèåä¸ä¸ª servlet è¿æ»¤å¨ï¼filterï¼æ¥æ´å¥½å°è§£å³ãå
³äºè¿ä¸æ¨¡å¼çæ´å¤ä¿¡æ¯ï¼è¯·åé
Hibernate ç½ç«å Wikiï¼è¿ä¸æ¨¡å¼å«å <emphasis>Open Session in View</emphasis> â åªè¦ä½ èèç¨JSPæ¥æ¸²æä½ çè§å¾ï¼viewï¼ï¼èä¸æ¯å¨servletä¸ï¼ä½ å°±ä¼å¾å¿«ç¨å°å®ã "
#. Tag: title
#, no-c-format
@@ -1496,63 +642,28 @@
#. Tag: para
#, no-c-format
-msgid ""
-"Now you can implement the processing of the request and the rendering of the "
-"page."
+msgid "Now you can implement the processing of the request and the rendering of the page."
msgstr "æ们æ¥å®ç°å¤ç请æ±ä»¥å渲æ页é¢çå·¥ä½ã "
#. Tag: para
#, no-c-format
-msgid ""
-"This coding style, with a mix of Java and HTML, would not scale in a more "
-"complex application—keep in mind that we are only illustrating basic "
-"Hibernate concepts in this tutorial. The code prints an HTML header and a "
-"footer. Inside this page, an HTML form for event entry and a list of all "
-"events in the database are printed. The first method is trivial and only "
-"outputs HTML:"
-msgstr ""
-"å¿
é¡»æ¿è®¤ï¼è¿ç§ç¼ç é£æ ¼æ Java å HTML æ··å¨ä¸èµ·ï¼å¨æ´å¤æçåºç¨ç¨åºéä¸åºè¯¥å¤§"
-"éä½¿ç¨ â è®°ä½ï¼å¨æ¬ç« éæ们ä»
ä»
æ¯å±ç¤ºäº Hibernate çåºæ¬æ¦å¿µãè¿æ®µä»£ç æå°åº"
-"äº HTML 页çå页èï¼å¨è¿ä¸ªé¡µé¢éï¼è¿æå°äºä¸ä¸ªè¾å
¥ events æ¡ç®ç表åå并ååº"
-"äºæ°æ®åºéçæç eventsã第ä¸ä¸ªæ¹æ³å¾®ä¸è¶³éï¼ä»
ä»
æ¯è¾åº HTMLï¼"
+msgid "This coding style, with a mix of Java and HTML, would not scale in a more complex application—keep in mind that we are only illustrating basic Hibernate concepts in this tutorial. The code prints an HTML header and a footer. Inside this page, an HTML form for event entry and a list of all events in the database are printed. The first method is trivial and only outputs HTML:"
+msgstr "å¿
é¡»æ¿è®¤ï¼è¿ç§ç¼ç é£æ ¼æ Java å HTML æ··å¨ä¸èµ·ï¼å¨æ´å¤æçåºç¨ç¨åºéä¸åºè¯¥å¤§éä½¿ç¨ â è®°ä½ï¼å¨æ¬ç« éæ们ä»
ä»
æ¯å±ç¤ºäº Hibernate çåºæ¬æ¦å¿µãè¿æ®µä»£ç æå°åºäº HTML 页çå页èï¼å¨è¿ä¸ªé¡µé¢éï¼è¿æå°äºä¸ä¸ªè¾å
¥ events æ¡ç®ç表åå并ååºäºæ°æ®åºéçæç eventsã第ä¸ä¸ªæ¹æ³å¾®ä¸è¶³éï¼ä»
ä»
æ¯è¾åº HTMLï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The <literal>listEvents()</literal> method uses the Hibernate "
-"<literal>Session</literal> bound to the current thread to execute a query:"
-msgstr ""
-"<literal>listEvents()</literal> æ¹æ³ä½¿ç¨ç»å®å°å½å线ç¨ç Hibernate "
-"<literal>Session</literal> æ¥æ§è¡æ¥è¯¢ï¼"
+msgid "The <literal>listEvents()</literal> method uses the Hibernate <literal>Session</literal> bound to the current thread to execute a query:"
+msgstr "<literal>listEvents()</literal> æ¹æ³ä½¿ç¨ç»å®å°å½å线ç¨ç Hibernate <literal>Session</literal> æ¥æ§è¡æ¥è¯¢ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"Finally, the <literal>store</literal> action is dispatched to the "
-"<literal>createAndStoreEvent()</literal> method, which also uses the "
-"<literal>Session</literal> of the current thread:"
-msgstr ""
-"æåï¼<literal>store</literal> å¨ä½ä¼è¢«å¯¼åå° <literal>createAndStoreEvent()"
-"</literal> æ¹æ³ï¼å®ä¹ä½¿ç¨å½å线ç¨ç <literal>Session</literal>ï¼"
+msgid "Finally, the <literal>store</literal> action is dispatched to the <literal>createAndStoreEvent()</literal> method, which also uses the <literal>Session</literal> of the current thread:"
+msgstr "æåï¼<literal>store</literal> å¨ä½ä¼è¢«å¯¼åå° <literal>createAndStoreEvent()</literal> æ¹æ³ï¼å®ä¹ä½¿ç¨å½å线ç¨ç <literal>Session</literal>ï¼"
#. Tag: para
#, no-c-format
-msgid ""
-"The servlet is now complete. A request to the servlet will be processed in a "
-"single <literal>Session</literal> and <literal>Transaction</literal>. As "
-"earlier in the standalone application, Hibernate can automatically bind "
-"these objects to the current thread of execution. This gives you the freedom "
-"to layer your code and access the <literal>SessionFactory</literal> in any "
-"way you like. Usually you would use a more sophisticated design and move the "
-"data access code into data access objects (the DAO pattern). See the "
-"Hibernate Wiki for more examples."
-msgstr ""
-"大ååæï¼è¿ä¸ª servlet åå®äºãHibernate ä¼å¨åä¸ç <literal>Session</"
-"literal> å <literal>Transaction</literal> ä¸å¤çå°è¾¾ç servlet 请æ±ãå¦åå¨"
-"åé¢çç¬ç«åºç¨ç¨åºä¸é£æ ·ï¼Hibernate å¯ä»¥èªå¨çæè¿äºå¯¹è±¡ç»å®å°å½åè¿è¡ç线ç¨"
-"ä¸ãè¿ç»äºä½ ç¨ä»»ä½ä½ å欢çæ¹å¼æ¥å¯¹ä»£ç åå±åè®¿é® <literal>SessionFactory</"
-"literal> çèªç±ãé常ï¼ä½ ä¼ç¨æ´å å®å¤ç设计ï¼ææ°æ®è®¿é®ä»£ç 转移å°æ°æ®è®¿é®å¯¹è±¡"
-"ä¸ï¼DAO 模å¼ï¼ã请åè§ Hibernate Wikiï¼é£éææ´å¤çä¾åã "
+msgid "The servlet is now complete. A request to the servlet will be processed in a single <literal>Session</literal> and <literal>Transaction</literal>. As earlier in the standalone application, Hibernate can automatically bind these objects to the current thread of execution. This gives you the freedom to layer your code and access the <literal>SessionFactory</literal> in any way you like. Usually you would use a more sophisticated design and move the data access code into data access objects (the DAO pattern). See the Hibernate Wiki for more examples."
+msgstr "大ååæï¼è¿ä¸ª servlet åå®äºãHibernate ä¼å¨åä¸ç <literal>Session</literal> å <literal>Transaction</literal> ä¸å¤çå°è¾¾ç servlet 请æ±ãå¦åå¨åé¢çç¬ç«åºç¨ç¨åºä¸é£æ ·ï¼Hibernate å¯ä»¥èªå¨çæè¿äºå¯¹è±¡ç»å®å°å½åè¿è¡ç线ç¨ä¸ãè¿ç»äºä½ ç¨ä»»ä½ä½ å欢çæ¹å¼æ¥å¯¹ä»£ç åå±åè®¿é® <literal>SessionFactory</literal> çèªç±ãé常ï¼ä½ ä¼ç¨æ´å å®å¤ç设计ï¼ææ°æ®è®¿é®ä»£ç 转移å°æ°æ®è®¿é®å¯¹è±¡ä¸ï¼DAO 模å¼ï¼ã请åè§ Hibernate Wikiï¼é£éææ´å¤çä¾åã "
#. Tag: title
#, no-c-format
@@ -1561,51 +672,23 @@
#. Tag: para
#, no-c-format
-msgid ""
-"To deploy this application for testing we must create a Web ARchive (WAR). "
-"First we must define the WAR descriptor as <filename>src/main/webapp/WEB-INF/"
-"web.xml</filename>"
-msgstr ""
-"è¦é¨ç½²è¿ä¸ªåºç¨ç¨åºä»¥è¿è¡æµè¯ï¼æ们å¿
é¡»åºå
·ä¸ä¸ª Web ARchive (WAR)ãé¦å
æ们å¿
"
-"é¡»å®ä¹ WAR æ述符为 <filename>src/main/webapp/WEB-INF/web.xml</filename>ã"
+msgid "To deploy this application for testing we must create a Web ARchive (WAR). First we must define the WAR descriptor as <filename>src/main/webapp/WEB-INF/web.xml</filename>"
+msgstr "è¦é¨ç½²è¿ä¸ªåºç¨ç¨åºä»¥è¿è¡æµè¯ï¼æ们å¿
é¡»åºå
·ä¸ä¸ª Web ARchive (WAR)ãé¦å
æ们å¿
é¡»å®ä¹ WAR æ述符为 <filename>src/main/webapp/WEB-INF/web.xml</filename>ã"
#. Tag: para
#, no-c-format
-msgid ""
-"To build and deploy call <literal>mvn package</literal> in your project "
-"directory and copy the <filename>hibernate-tutorial.war</filename> file into "
-"your Tomcat <filename>webapps</filename> directory."
-msgstr ""
-"å¨ä½ çå¼åç®å½ä¸ï¼è°ç¨ <literal>ant war</literal> æ¥æ建ãæå
ï¼ç¶åæ "
-"<literal>hibernate-tutorial.war</literal> æ件æ·è´å°ä½ ç tomcat ç "
-"<literal>webapps</literal> ç®å½ä¸ãåè¥ä½ è¿æ²¡å®è£
Tomcatï¼å°±å»ä¸è½½ä¸ä¸ªï¼æç
§"
-"æåæ¥å®è£
ã对æ¤åºç¨çåå¸ï¼ä½ ä¸éè¦ä¿®æ¹ä»»ä½ Tomcat çé
ç½®ã "
+msgid "To build and deploy call <literal>mvn package</literal> in your project directory and copy the <filename>hibernate-tutorial.war</filename> file into your Tomcat <filename>webapps</filename> directory."
+msgstr "å¨ä½ çå¼åç®å½ä¸ï¼è°ç¨ <literal>ant war</literal> æ¥æ建ãæå
ï¼ç¶åæ <literal>hibernate-tutorial.war</literal> æ件æ·è´å°ä½ ç tomcat ç <literal>webapps</literal> ç®å½ä¸ãåè¥ä½ è¿æ²¡å®è£
Tomcatï¼å°±å»ä¸è½½ä¸ä¸ªï¼æç
§æåæ¥å®è£
ã对æ¤åºç¨çåå¸ï¼ä½ ä¸éè¦ä¿®æ¹ä»»ä½ Tomcat çé
ç½®ã "
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If you do not have Tomcat installed, download it from <ulink url=\"http://"
-"tomcat.apache.org/\" /> and follow the installation instructions. Our "
-"application requires no changes to the standard Tomcat configuration."
-msgstr ""
-"å¦æä½ è¿æ²¡æå®è£
Tomcatï¼è¯·ä» <ulink url=\"http://tomcat.apache.org/\" /> ä¸"
-"载并æç
§å®è£
说æè¿è¡å®è£
ãæ们çåºç¨ç¨åºä¸éè¦å¯¹æ åç Tomcat é
ç½®è¿è¡ä¿®æ¹ã"
+#, no-c-format
+msgid "If you do not have Tomcat installed, download it from <ulink url=\"http://tomcat.apache.org/\" /> and follow the installation instructions. Our application requires no changes to the standard Tomcat configuration."
+msgstr "å¦æä½ è¿æ²¡æå®è£
Tomcatï¼è¯·ä» <ulink url=\"http://tomcat.apache.org/\" /> ä¸è½½å¹¶æç
§å®è£
说æè¿è¡å®è£
ãæ们çåºç¨ç¨åºä¸éè¦å¯¹æ åç Tomcat é
ç½®è¿è¡ä¿®æ¹ã "
#. Tag: para
#, no-c-format
-msgid ""
-"Once deployed and Tomcat is running, access the application at "
-"<literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. "
-"Make sure you watch the Tomcat log to see Hibernate initialize when the "
-"first request hits your servlet (the static initializer in "
-"<literal>HibernateUtil</literal> is called) and to get the detailed output "
-"if any exceptions occurs."
-msgstr ""
-"å¨é¨ç½²å®ï¼å¯å¨ Tomcat ä¹åï¼éè¿ <literal>http://localhost:8080/hibernate-"
-"tutorial/eventmanager</literal> è¿è¡è®¿é®ä½ çåºç¨ï¼å¨ç¬¬ä¸æ¬¡ servlet 请æ±åç"
-"æ¶ï¼è¯·å¨ Tomcat log ä¸ç¡®è®¤ä½ çå° Hibernate 被åå§åäº"
-"ï¼<literal>HibernateUtil</literal> çéæåå§åå¨è¢«è°ç¨ï¼ï¼åè¥æä»»ä½å¼å¸¸æ"
-"åºï¼ä¹å¯ä»¥çå°è¯¦ç»çè¾åºã"
+msgid "Once deployed and Tomcat is running, access the application at <literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. Make sure you watch the Tomcat log to see Hibernate initialize when the first request hits your servlet (the static initializer in <literal>HibernateUtil</literal> is called) and to get the detailed output if any exceptions occurs."
+msgstr "å¨é¨ç½²å®ï¼å¯å¨ Tomcat ä¹åï¼éè¿ <literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal> è¿è¡è®¿é®ä½ çåºç¨ï¼å¨ç¬¬ä¸æ¬¡ servlet 请æ±åçæ¶ï¼è¯·å¨ Tomcat log ä¸ç¡®è®¤ä½ çå° Hibernate 被åå§åäºï¼<literal>HibernateUtil</literal> çéæåå§åå¨è¢«è°ç¨ï¼ï¼åè¥æä»»ä½å¼å¸¸æåºï¼ä¹å¯ä»¥çå°è¯¦ç»çè¾åºã"
#. Tag: title
#, no-c-format
@@ -1614,14 +697,8 @@
#. Tag: para
#, no-c-format
-msgid ""
-"This tutorial covered the basics of writing a simple standalone Hibernate "
-"application and a small web application. More tutorials are available from "
-"the Hibernate <ulink url=\"http://hibernate.org\">website</ulink>."
-msgstr ""
-"æ¬ç« è¦çäºå¦ä½ç¼åä¸ä¸ªç®åç¬ç«ç Hibernate å½ä»¤è¡åºç¨ç¨åºåå°åç Hibernate "
-"web åºç¨ç¨åºçåºæ¬è¦ç´ ãæ´å¤çæç¨å¯ä»¥å¨ <ulink url=\"http://hibernate.org"
-"\">website</ulink> ä¸æ¾å°ã"
+msgid "This tutorial covered the basics of writing a simple standalone Hibernate application and a small web application. More tutorials are available from the Hibernate <ulink url=\"http://hibernate.org\">website</ulink>."
+msgstr "æ¬ç« è¦çäºå¦ä½ç¼åä¸ä¸ªç®åç¬ç«ç Hibernate å½ä»¤è¡åºç¨ç¨åºåå°åç Hibernate web åºç¨ç¨åºçåºæ¬è¦ç´ ãæ´å¤çæç¨å¯ä»¥å¨ <ulink url=\"http://hibernate.org\">website</ulink> ä¸æ¾å°ã"
#~ msgid ""
#~ "<![CDATA[<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
@@ -1719,7 +796,6 @@
#~ " </dependencies>\n"
#~ "\n"
#~ "</project>]]>"
-
#~ msgid ""
#~ "<![CDATA[package org.hibernate.tutorial.domain;\n"
#~ "\n"
@@ -1794,7 +870,6 @@
#~ " this.title = title;\n"
#~ " }\n"
#~ "}]]>"
-
#~ msgid ""
#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
@@ -1813,7 +888,6 @@
#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
#~ "[...]\n"
#~ "</hibernate-mapping>]]>"
-
#~ msgid ""
#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
#~ "\n"
@@ -1830,7 +904,6 @@
#~ " </class>\n"
#~ "\n"
#~ "</hibernate-mapping>]]>"
-
#~ msgid ""
#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
#~ "\n"
@@ -1851,7 +924,6 @@
#~ " </class>\n"
#~ "\n"
#~ "</hibernate-mapping>]]>"
-
#~ msgid ""
#~ "<![CDATA[\n"
#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
@@ -1880,7 +952,6 @@
#~ " </class>\n"
#~ "\n"
#~ "</hibernate-mapping>]]>"
-
#~ msgid ""
#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
@@ -2891,3 +1962,4 @@
#~ " <url-pattern>/eventmanager</url-pattern>\n"
#~ " </servlet-mapping>\n"
#~ "</web-app>"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/content/xml.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/content/xml.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/content/xml.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -6,7 +6,7 @@
"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-10T07:25:35\n"
-"PO-Revision-Date: 2009-12-07 21:18+1000\n"
+"PO-Revision-Date: 2010-03-16 10:02+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,13 +20,9 @@
msgstr "XML æ å°"
#. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
-"currently under active development. </emphasis>"
-msgstr ""
-"<emphasis>注æ XML æ å°åªæ¯ Hibernate 3.0 çä¸ä¸ªå®éªæ§çç¹æ§ãè¿ä¸ç¹æ§ä»å¨ç§¯"
-"æå¼åä¸ã</emphasis>"
+#, no-c-format
+msgid "<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is currently under active development. </emphasis>"
+msgstr "<emphasis>注æ XML æ å°åªæ¯ Hibernate 3.0 çä¸ä¸ªå®éªæ§çç¹æ§ãè¿ä¸ç¹æ§ä»å¨ç§¯æå¼åä¸ã</emphasis> "
#. Tag: title
#, no-c-format
@@ -35,51 +31,23 @@
#. Tag: para
#, 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 çå¦å¤ä¸ç§å¨å¯¹è±¡å±é¢ä¸è¡¨ç¤ºå
³ç³»åæ°"
-"æ®çéå¾ã"
+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
#, 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
#, 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
#, 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 ææ¡£ã "
+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
#, no-c-format
@@ -103,14 +71,8 @@
#. Tag: para
#, 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 æ¥è¯¢ä¸å¼ç¨å®ã"
+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
#, no-c-format
@@ -119,15 +81,8 @@
#. Tag: para
#, 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> å±æ§å¿
é¡»æ¯ä¸å"
-"æ ¼å¼ä¹ä¸ï¼ "
+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
#, no-c-format
@@ -146,47 +101,23 @@
#. Tag: para
#, 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>ï¼æ å°ä¸ºæå®å
ç´ çæå®å±æ§"
+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
#, 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 æ "
-"ä¸ï¼è¢«å¼ç¨å®ä½æ¬èº«ä¸åºç°ï¼ï¼èéååæ ¹æ¬ä¸åºç°ã"
+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
#, 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 ä¸è½å¾å¥½å°å¤ç循ç¯å¼ç¨ã"
+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: para
#, 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 æ¥è¯¢ï¼ "
+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: para
#, no-c-format
@@ -195,12 +126,8 @@
#. Tag: para
#, 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: title
#, no-c-format
@@ -209,21 +136,13 @@
#. Tag: para
#, 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 ä¼è¯å¯ä»¥åå°"
-"è¿ä¸ç¹ï¼"
+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: para
#, 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 çæ°æ®å¯¼å
¥/导åºå°é常æç¨ã"
+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 çæ°æ®å¯¼å
¥/导åºå°é常æç¨ã"
#~ msgid ""
#~ "<![CDATA[<class name=\"Account\" \n"
@@ -267,7 +186,6 @@
#~ " ...\n"
#~ " \n"
#~ "</class>]]>"
-
#~ msgid ""
#~ "<![CDATA[<class entity-name=\"Account\" \n"
#~ " table=\"ACCOUNTS\" \n"
@@ -316,7 +234,6 @@
#~ " ...\n"
#~ " \n"
#~ "</class>]]>"
-
#~ msgid ""
#~ "<![CDATA[<class name=\"Customer\" \n"
#~ " table=\"CUSTOMER\" \n"
@@ -387,14 +304,12 @@
#~ " ...\n"
#~ " \n"
#~ "</class>]]>"
-
#~ 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]]>"
-
#~ msgid ""
#~ "<![CDATA[<customer id=\"123456789\">\n"
#~ " <account short-desc=\"Savings\">987632567</account>\n"
@@ -417,7 +332,6 @@
#~ " </name>\n"
#~ " ...\n"
#~ "</customer>]]>"
-
#~ msgid ""
#~ "<![CDATA[<customer id=\"123456789\">\n"
#~ " <account id=\"987632567\" short-desc=\"Savings\">\n"
@@ -452,7 +366,6 @@
#~ " </name>\n"
#~ " ...\n"
#~ "</customer>]]>"
-
#~ msgid ""
#~ "<![CDATA[Document doc = ....;\n"
#~ " \n"
@@ -491,7 +404,6 @@
#~ "\n"
#~ "tx.commit();\n"
#~ "session.close();]]>"
-
#~ msgid ""
#~ "<![CDATA[Session session = factory.openSession();\n"
#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
@@ -526,3 +438,4 @@
#~ "\n"
#~ "tx.commit();\n"
#~ "session.close();]]>"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -5,210 +5,210 @@
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2010-02-04T04:51:23\n"
-"PO-Revision-Date: 2010-02-04T04:51:23\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-03-16 11:39+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Tag: title
#, no-c-format
msgid "Document Conventions"
-msgstr ""
+msgstr "ææ¡£è§å"
#. Tag: para
#, no-c-format
msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
-msgstr ""
+msgstr "æ¬æå使ç¨äºå ç§è§åæ¥çªåºæäºæååçè¯ä»¥åæäºä¿¡æ¯ã"
#. Tag: para
#, no-c-format
msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
-msgstr ""
+msgstr "å¨ PDF çæ¬éï¼æ¬æåä½¿ç¨ <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> ééæ½åç typefacesãå¦æä½ å®è£
äº Liberation Fonts éï¼å®ä¹ä¼ç¨å¨ HTML çæ¬éãå¦æ没æå®è£
ï¼åä¼ä½¿ç¨å
¶ä»ç¸çç typefacesã请注æï¼çº¢å¸½ä¼ä¸ç Linux 5 åä¹åççæ¬ç¼ºçé½å
å«äº Liberation Fonts éã"
#. Tag: title
#, no-c-format
msgid "Typographic Conventions"
-msgstr ""
+msgstr "å°å·è§å"
#. Tag: para
#, no-c-format
msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
-msgstr ""
+msgstr "æ们使ç¨äºåç§å°å·è§åæ¥çªåºç¹æ®çæååçè¯ãä¸é¢æ¯è¿äºè§å以åå
¶éç¨çæ
åµã"
#. Tag: para
#, no-c-format
msgid "<literal>Mono-spaced Bold</literal>"
-msgstr ""
+msgstr "<literal>Mono-spaced Bold</literal>"
#. Tag: para
#, no-c-format
msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
-msgstr ""
+msgstr "ç¨æ¥é«äº®æ¾ç¤ºç³»ç»è¾å
¥ï¼å
æ¬ shell å½ä»¤ãæ件ååè·¯å¾ãå®ä¹ç¨äºé«äº®æ¾ç¤ºé®åé®ç»åãä¾å¦ï¼"
#. Tag: para
#, no-c-format
msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
-msgstr ""
+msgstr "è¦æ¥çå½åå·¥ä½ç®å½éç <filename>my_next_bestselling_novel</filename> çå
容ï¼è¯·å¨ shell æ示符ä¸è¾å
¥ <command>cat my_next_bestselling_novel</command> 并æ<keycap>Enter</keycap> æ¥æ§è¡å½ä»¤ã"
#. Tag: para
#, no-c-format
msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
-msgstr ""
+msgstr "ä¸é¢å
æ¬äºä¸ä¸ªæ件åãä¸ä¸ª shell å½ä»¤åé®ï¼å®ä»¬é½ä»¥ mono-spaced bold åºç°å¹¶åä¸ä¸æåºåã"
#. Tag: para
#, no-c-format
msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
-msgstr ""
+msgstr "é®ç»åå¯ä»¥éè¿è¿å符åé®æ¥åºåãä¾å¦ï¼"
#. Tag: para
#, no-c-format
msgid "Press <keycap>Enter</keycap> to execute the command."
-msgstr ""
+msgstr "æ <keycap>Enter</keycap> æ¥æ§è¡è¿ä¸ªå½ä»¤ã"
#. Tag: para
#, no-c-format
msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
-msgstr ""
+msgstr "æ <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> åæ¢è³ç¬¬ä¸ä¸ªèæç»ç«¯ãæ <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> è¿åå° X-Windows ä¼è¯ã"
#. Tag: para
#, no-c-format
msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
-msgstr ""
+msgstr "第ä¸æ®µé«äº®æ¾ç¤ºäºç¹æ®çé®ã第äºæ®µé«äº®æ¾ç¤ºäºä¸¤ä¸ªé®ç»åï¼æ¯ä¸ªé½ç±ä¸ä¸ªåæ¶æä½çé®ææï¼ã"
#. Tag: para
#, no-c-format
msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
-msgstr ""
+msgstr "å¨æºç ä¸æåçç±»åãæ¹æ³ãå½æ°ãåéåè¿åå¼é½å°ä»¥ <literal>mono-spaced bold</literal> åºç°ãä¾å¦ï¼"
#. Tag: para
#, no-c-format
msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
-msgstr ""
+msgstr "æ件ç¸å
³çç±»å
æ¬ç¨äºæ件系ç»ç <classname>filesystem</classname>ãç¨äºæ件ç <classname>file</classname> åç¨äºç®å½ç <classname>dir</classname>ãæ¯ä¸ªç±»é½æèªå·±çä¸å¥æéã"
#. Tag: para
#, no-c-format
msgid "<application>Proportional Bold</application>"
-msgstr ""
+msgstr "<application>Proportional Bold</application>"
#. Tag: para
#, no-c-format
msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
-msgstr ""
+msgstr "å®è¡¨ç¤ºç³»ç»éçæåæçè¯ï¼å
æ¬ç¨åºåã对è¯æ¡ææ¬ãæ ç¾æé®ãå¤éæ¡ååéæ¡ãèåååèåæ é¢ãä¾å¦ï¼"
#. Tag: para
#, no-c-format
msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
-msgstr ""
+msgstr "ä»ä¸»èåéæ© <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> æ¥å¯å¨ <application>Mouse Preferences</application>ãå¨ <guilabel>Buttons</guilabel> æ ç¾é¡µéï¼ç¹å» <guilabel>Left-handed mouse</guilabel> å¤éæ¡å¹¶ç¹å» <guibutton>Close</guibutton> æ¥æé¼ æ 主æé®ä»å·¦åæ¢å°å³ï¼éåäºä¹ æ¯ç¨å·¦æç人ï¼ã"
#. Tag: para
#, no-c-format
msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
-msgstr ""
+msgstr "è¦å¨ <application>gedit</application> æ件éæå
¥ç¹æ®å符ï¼ä»ä¸»èåééæ© <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice>ãç¶åï¼ä» <application>Character Map</application> èåæ¡ééæ© <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice>ï¼å¨ <guilabel>Search</guilabel>å段éè¾å
¥å符并ç¹å» <guibutton>Next</guibutton>ãä½ è¦æç´¢çå符ä¼å¨ <guilabel>Character Table</guilabel> éé«äº®æ¾ç¤ºãåå»è¿ä¸ªé«äº®æ¾ç¤ºçå符并æ¾å
¥ <guilabel>Text to copy</guilabel> å段éï¼ç¶åç¹å» <guibutton>Copy</guibutton> æé®ãç°å¨åæ¢åä½ çææ¡£å¹¶ä» <application>gedit</application> èåæ¡ééæ©<menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice>ã"
#. Tag: para
#, no-c-format
msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
-msgstr ""
+msgstr "ä¸é¢çå
容å
æ¬äºç¨åºå称ãç³»ç»çº§çèåååæ¡ç®ãç¨åºä¸æçèååãå¾å½¢çé¢éçæé®åææ¬ï¼å®ä»¬é½ä»¥ proportional bold åºç°å¹¶åå
¶ä»å
容åºåã"
#. Tag: para
#, no-c-format
msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
-msgstr ""
+msgstr "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> æ <application><replaceable>Proportional Bold Italic</replaceable></application>"
#. Tag: para
#, no-c-format
msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
-msgstr ""
+msgstr "æ è®ºæ¯ mono-spaced bold è¿æ¯ proportional boldï¼æä½é½è¡¨ç¤ºå¯æ¿æ¢çæå¯åçææ¬ãæä½è¡¨ç¤ºéè¾å
¥çææ¬ï¼å®æ ¹æ®å¨å´çå
容èååãä¾å¦ï¼"
#. Tag: para
#, no-c-format
msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
-msgstr ""
+msgstr "è¦ç¨ ssh è¿æ¥å°è¿ç¨æºå¨ï¼å¨ shell æ示ä¸è¾å
¥ <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command>ãå¦æè¿ä¸ªè¿ç¨ä¸»æºæ¯ <filename>example.com</filename> ä¸ä½ çç¨æ·åæ¯ johnï¼è¯·è¾å
¥ <command>ssh john at example.com</command>ã"
#. Tag: para
#, no-c-format
msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
-msgstr ""
+msgstr "<command>mount -o remount <replaceable>file-system</replaceable></command> å½ä»¤éæ°æè½½æ件系ç»ãä¾å¦ï¼è¦éæ°æè½½ <filename>/home</filename>ï¼å½ä»¤æ¯ <command>mount -o remount /home</command>ã"
#. Tag: para
#, no-c-format
msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
-msgstr ""
+msgstr "è¦æ¥çå½åå®è£
ç软件å
ççæ¬ï¼ä½ å¯ä»¥ä½¿ç¨ <command>rpm -q <replaceable>package</replaceable></command> å½ä»¤ãå®å°è¿åè¿æ ·çç»æéï¼<command><replaceable>package-version-release</replaceable></command>ã"
#. Tag: para
#, no-c-format
msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
-msgstr ""
+msgstr "请注æä¸é¢åä½ä¸ºç²æä½çæå — username, domain.name, file-system, package, version å releaseãæ 论æ¯ä½ è¾å
¥çå½ä»¤è¿æ¯ç³»ç»æ¾ç¤ºçææ¬ï¼æ¯ä¸ªæåé½æ¯ä¸ä¸ªå ä½ç¬¦ã"
#. Tag: para
#, no-c-format
msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
-msgstr ""
+msgstr "é¤äºè¡¨ç¤ºæ é¢çæ åç¨æ³ä¹å¤ï¼æä½è¡¨ç¤ºæ°çåéè¦çæ¯è¯ç第ä¸æ¬¡ä½¿ç¨ãä¾å¦ï¼"
#. Tag: para
#, no-c-format
msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
-msgstr ""
+msgstr "Publican æ¯ä¸ä¸ªåºäº <firstterm>DocBook</firstterm> çåå¸ç³»ç»ã"
#. Tag: title
#, no-c-format
msgid "Pull-quote Conventions"
-msgstr ""
+msgstr "å¯æ é¢è§å"
#. Tag: para
#, no-c-format
msgid "Terminal output and source code listings are set off visually from the surrounding text."
-msgstr ""
+msgstr "ç»ç«¯è¾åºåæºä»£ç å表ç±å¨å´çææ¬æ¥çæã"
#. Tag: para
#, no-c-format
msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
-msgstr ""
+msgstr "åéå°ç»ç«¯çè¾åºå¨ <computeroutput>mono-spaced roman</computeroutput> 设置ä¸ä»¥è¿ç§å½¢å¼åºç°ï¼"
#. Tag: para
#, no-c-format
msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
-msgstr ""
+msgstr "æºç å表ä¹å¨ <computeroutput>mono-spaced roman</computeroutput> é设置ä½æ·»å äºå¦ä¸çè¯æ³é«äº®æ¾ç¤ºï¼"
#. Tag: title
#, no-c-format
msgid "Notes and Warnings"
-msgstr ""
+msgstr "注æåè¦å"
#. Tag: para
#, no-c-format
msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
-msgstr ""
+msgstr "æåï¼æ们使ç¨ä¸ç« å¯è§é£æ ¼æ¥å¼èµ·å¯¹å¯è½è¢«å¿½è§çä¿¡æ¯ç注æã"
#. Tag: title
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
#. Tag: para
#, no-c-format
msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
-msgstr ""
+msgstr "注ææ¯å®ææä¸ä»»å¡çæ示ãå¿«æ·æ¹å¼æå
¶ä»æ¹æ³ã忽ç¥â注æâä¸ä¼äº§çè´é¢å½±åï¼ä½ä½ å¯è½ä¼éå¤±ä½¿ä½ åççæå·§ã"
#. Tag: title
#, no-c-format
msgid "Important"
-msgstr ""
+msgstr "éè¦ä¿¡æ¯"
#. Tag: para
#, no-c-format
msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
-msgstr ""
+msgstr "éè¦ä¿¡æ¯æ¾ç¤ºå®¹æ被éè¿çä¿¡æ¯ï¼åªéç¨äºå½åä¼è¯çé
ç½®æ¹å¨ãæéè¦éå¯æ¥çæçæå¡ã忽ç¥æ 记为âéè¦ä¿¡æ¯âç对è¯æ¡ä¸ä¼å¯¼è´æ°æ®ä¸¢å¤±ä½ä¼å¼åé®é¢ã"
#. Tag: title
#, no-c-format
msgid "Warning"
-msgstr ""
+msgstr "è¦å"
#. Tag: para
#, no-c-format
msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
-msgstr ""
+msgstr "è¦åä¸åºè¯¥è¢«å¿½ç¥ã忽ç¥è¦åå°å¯¼è´æ°æ®ä¸¢å¤±ã"
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -5,19 +5,20 @@
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2010-03-12T00:03:48\n"
-"PO-Revision-Date: 2010-02-04T04:51:23\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-03-16 10:17+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Tag: title
#, no-c-format
msgid "We Need Feedback!"
-msgstr ""
+msgstr "æ们éè¦ä½ çåé¦ï¼"
#. Tag: para
#, no-c-format
msgid "You should over ride this by creating your own local Feedback.xml file."
-msgstr ""
+msgstr "ç¨èªå·±ç Feedback.xml æ件è¦çæ¬æ®µå
容ã"
+
Modified: core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po
===================================================================
--- core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po 2010-03-16 01:28:07 UTC (rev 19002)
+++ core/trunk/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po 2010-03-16 01:42:26 UTC (rev 19003)
@@ -5,15 +5,15 @@
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2010-02-04T04:51:23\n"
-"PO-Revision-Date: 2010-02-04T04:51:23\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-03-16 10:18+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Tag: para
#, no-c-format
msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
-msgstr ""
+msgstr "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; æ¬ææ¡£åªå¯ä»¥æç
§ GNU Free Documentation License (GFDL), V1.2 ææ´æ°åè®®è¿è¡ååï¼GNU çææ°çæ¬è¯·åè <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>ï¼ã"
More information about the hibernate-commits
mailing list