[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