[hibernate-commits] Hibernate SVN: r18725 - in core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN: content and 1 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Feb 8 01:30:54 EST 2010
Author: stliu
Date: 2010-02-08 01:30:52 -0500 (Mon, 08 Feb 2010)
New Revision: 18725
Added:
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Author_Group.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Book_Info.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Feedback.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Hibernate_Core_Reference_Guide.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Revision_History.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/Preface.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po
Removed:
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Hibernate_Reference.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/author_group.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/bibliography.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/preface.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/quickstart.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/legal_notice.po
Modified:
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/architecture.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/association_mapping.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/basic_mapping.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/batch.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/collection_mapping.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/component_mapping.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/configuration.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/events.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_mappings.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_weblog.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/filters.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/inheritance_mapping.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/performance.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/portability.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/session_api.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/transactions.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po
core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/xml.po
Log:
HHH-4729 Import work done by Red Hat translation team
Copied: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Author_Group.po (from rev 18713, core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/author_group.po)
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Author_Group.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Author_Group.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,15 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"PO-Revision-Date: 2007-02-26 10:59+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
Added: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Book_Info.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Book_Info.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Book_Info.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,40 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"PO-Revision-Date: 2010-01-11 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"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Core Reference Guide"
+msgstr "Hibernate Core åèæå"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "by Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard, and Steve Ebersole and thanks to James Cobb (Graphic Design) and Cheyenne Weaver (Graphic Design)"
+msgstr "by Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard, and Steve Ebersole and thanks to James Cobb (Graphic Design) and Cheyenne Weaver (Graphic Design)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The JBoss Hibernate Core 3.3.2.GA Reference Guide"
+msgstr "Hibernate Core åèæå"
+
+#~ msgid "for Use with JBoss Enterprise Application Platform 5.0"
+#~ msgstr "éç¨äº JBoss ä¼ä¸çº§åºç¨ç¨åºå¹³å° 5.0"
+#~ msgid ""
+#~ "The JBoss Enterprise Application Platform Edition of the Hibernate Core "
+#~ "Reference Guide"
+#~ msgstr "é¢å JBoss ä¼ä¸çº§åºç¨ç¨åºå¹³å°ç Hibernate Core åèæåçæ¬"
+#~ msgid "&HOLDER;"
+#~ msgstr "&HOLDER;"
+
Added: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Feedback.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Feedback.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Feedback.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,26 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"PO-Revision-Date: 2010-01-11 10:11+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Feedback"
+msgstr "åé¦"
+
+#. Tag: para
+#, no-c-format
+msgid "If you spot a typo in this guide, or if you have thought of a way to make this manual better, we would love to hear from you! Submit a report in <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against the Product: JBoss Enterprise Application Platform, Version: <replaceable><version></replaceable>, Component: <emphasis>Doc</emphasis>. If you have a suggestion for improving the documentation, try to be as specific as possible. If you have found an error, include the section number and some of the surrounding text so we can find it easily."
+msgstr "å¦æä½ å¨æ¬æåéåç°äºå°å·éè¯¯ï¼æè
ä½ ææ¹è¿è¯¥æåçå»ºè®®ï¼æä»¬å¸æå¬å°ä½ ç声é³ï¼è¯·æäº¤æ¥åå° <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> å¹¶ææï¼äº§åï¼JBoss ä¼ä¸çº§åºç¨ç¨åºå¹³å°, çæ¬ï¼<replaceable><version></replaceable>ï¼ç»ä»¶ï¼<emphasis>Doc</emphasis>ãå¦ææ¯æ¹è¿æ¬ææ¡£ç建议ï¼è¯·å°½éå
·ä½åï¼å¦ææ¯å
¶ä»é误ï¼è¯·æåºç« èå·ä»¥åå
·ä½çå
容ï¼è¿æ ·æä»¬å°±å¯ä»¥å°½å¿«æ¹æ£ã"
+
Copied: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Hibernate_Core_Reference_Guide.po (from rev 18713, core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Hibernate_Reference.po)
===================================================================
Deleted: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Hibernate_Reference.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Hibernate_Reference.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Hibernate_Reference.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,32 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-23 18:41+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-
-#. Tag: title
-#: Hibernate_Reference.xml:35
-#, no-c-format
-msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
-msgstr "HIBERNATE - 符åJavaä¹ æ¯çå
³ç³»æ°æ®åºæä¹
å"
-
-#. Tag: subtitle
-#: Hibernate_Reference.xml:36
-#, no-c-format
-msgid "Hibernate Reference Documentation"
-msgstr "Hibernateåèææ¡£"
-
-#. Tag: holder
-#: Hibernate_Reference.xml:51
-#, no-c-format
-msgid "©rightHolder;"
-msgstr "©rightHolder;"
-
-#~ msgid "ROLES_OF_TRANSLATORS"
-#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-#~ msgid "CREDIT_FOR_TRANSLATORS"
-#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Revision_History.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Revision_History.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Revision_History.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,26 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"PO-Revision-Date: 2010-01-11 10:09+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Revision History"
+msgstr "修订åå²è®°å½"
+
+#. Tag: member
+#, no-c-format
+msgid "Merged with EAP5 and translations added"
+msgstr "å EAP5 çæ¬è¿è¡å并䏿·»å äºç¸å
³ç¿»è¯"
+
Deleted: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/author_group.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/author_group.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/author_group.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,221 +0,0 @@
-# Language zh-CN translations for Branch package.
-# Automatically generated, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Branch 3_3\n"
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-16 18:47+0000\n"
-"PO-Revision-Date: 2009-06-16 18:47+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Tag: author
-#: author_group.xml:27
-#, no-c-format
-msgid "<firstname>Gavin</firstname> <surname>King</surname>"
-msgstr ""
-
-#. Tag: author
-#: author_group.xml:31
-#, no-c-format
-msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
-msgstr ""
-
-#. Tag: author
-#: author_group.xml:35
-#, no-c-format
-msgid ""
-"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
-"surname>"
-msgstr ""
-
-#. Tag: author
-#: author_group.xml:40
-#, no-c-format
-msgid ""
-"<author><firstname>Emmanuel</firstname> <surname>Bernard</surname></author>"
-msgstr ""
-
-#. Tag: author
-#: author_group.xml:44
-#, no-c-format
-msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:49
-#, no-c-format
-msgid "<firstname>James</firstname> <surname>Cobb</surname>"
-msgstr ""
-
-#. Tag: shortaffil
-#: author_group.xml:53 author_group.xml:60
-#, no-c-format
-msgid "Graphic Design"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:56
-#, no-c-format
-msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:69
-#, no-c-format
-msgid ""
-"<othername><![CDATA[Bernardo Antonio Buffa Colomé]]></othername> "
-"<email>kreimer at bbs.frc.utn.edu.ar</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:79
-#, no-c-format
-msgid "<firstname>Vincent</firstname> <surname>Ricard</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:83
-#, no-c-format
-msgid "<firstname>Sebastien</firstname> <surname>Cesbron</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:87
-#, no-c-format
-msgid "<firstname>Michael</firstname> <surname>Courcy</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:91
-#, no-c-format
-msgid "<firstname>Vincent</firstname> <surname>Giguère</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:95
-#, no-c-format
-msgid "<firstname>Baptiste</firstname> <surname>Mathus</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:99
-#, no-c-format
-msgid ""
-"<othercredit><firstname>Emmanuel</firstname> <surname>Bernard</surname></"
-"othercredit>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:103
-#, no-c-format
-msgid "<firstname>Anthony</firstname> <surname>Patricio</surname>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:113
-#, no-c-format
-msgid ""
-"<firstname>Alvaro</firstname> <surname>Netto</surname> "
-"<email>alvaronetto at cetip.com.br</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:118
-#, no-c-format
-msgid ""
-"<firstname>Anderson</firstname> <surname>Braulio</surname> "
-"<email>andersonbraulio at gmail.com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:123
-#, no-c-format
-msgid ""
-"<firstname>Daniel Vieira</firstname> <surname>Costa</surname> "
-"<email>danielvc at gmail.com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:128
-#, no-c-format
-msgid ""
-"<firstname>Francisco</firstname> <surname>gamarra</surname> <email>francisco."
-"gamarra at gmail.com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:133
-#, no-c-format
-msgid ""
-"<firstname>Gamarra</firstname> <email>mauricio.gamarra at gmail.com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:137
-#, no-c-format
-msgid ""
-"<firstname>Luiz Carlos</firstname> <surname>Rodrigues</surname> "
-"<email>luizcarlos_rodrigues at yahoo.com.br</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:142
-#, no-c-format
-msgid ""
-"<firstname>Marcel</firstname> <surname>Castelo</surname> <email>marcel."
-"castelo at gmail.com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:147
-#, no-c-format
-msgid ""
-"<firstname>Paulo</firstname> <surname>César</surname> <email>paulocol at gmail."
-"com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:152
-#, no-c-format
-msgid ""
-"<firstname>Pablo L.</firstname> <surname>de Miranda</surname> "
-"<email>pablolmiranda at gmail.com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:157
-#, no-c-format
-msgid ""
-"<firstname>Renato</firstname> <surname>Deggau</surname> <email>rdeggau at gmail."
-"com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:162
-#, no-c-format
-msgid ""
-"<firstname>Rogério</firstname> <surname>Araújo</surname> "
-"<email>rgildoaraujo at yahoo.com.br</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:167
-#, no-c-format
-msgid ""
-"<firstname>Wanderson</firstname> <surname>Siqueira</surname> "
-"<email>wandersonxs at gmail.com</email>"
-msgstr ""
-
-#. Tag: othercredit
-#: author_group.xml:178
-#, no-c-format
-msgid ""
-"<firstname>Cao</firstname> <surname>Xiaogang</surname> <affiliation> "
-"<orgname>RedSaga</orgname> </affiliation> <contrib>Translation Lead</"
-"contrib> <email>caoxg at yahoo.com</email>"
-msgstr ""
Copied: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/Preface.po (from rev 18713, core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/preface.po)
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/Preface.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/Preface.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,96 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-01-08T04:07:17\n"
+"PO-Revision-Date: 2010-01-11 10:44+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr "åè¨"
+
+#. Tag: para
+#, 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 å¤çæ°æ®çæ¶é´ã "
+
+#. 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 代ç ï¼èä¸å¸®å©ä½ ç»æéä»è¡¨æ ¼å¼ç表示形å¼è½¬æ¢å°ä¸ç³»åç对象ä¸å»ã "
+
+#. 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 ä¹ä¸çæï¼è¯·æç
§ä¸é¢çæ¥éª¤æ¥å¦ä¹ ã"
+
+#. Tag: para
+#, 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
+#, 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>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Use this reference documentation as your primary source of information. Consider reading <emphasis>Java Persistence with Hibernate</emphasis> (http://www.manning.com/bauer2) if you need more help with application design, or if you prefer a step-by-step tutorial. Also visit http://caveatemptor.hibernate.org and download the example application for Java Persistence with Hibernate."
+msgstr "æè¿ä»½ææ¡£ä½ä¸ºä½ å¦ä¹ ç主è¦ä¿¡æ¯æ¥æºãå¦æä½ éè¦åºç¨ç¨åºè®¾è®¡æ¹é¢ç叮婿è
ä½ å¸ææä¸ä¸ªæé¨å°±ççæåï¼ä½ å¯ä»¥èèé
读 <emphasis>Hibernate in Action</emphasis>ï¼http://www.manning.com/bauerï¼ãä½ ä¹å¯ä»¥è®¿é®http://caveatemptor.hibernate.org å¹¶ä¸è½½ Hibernate ç示ä¾ç¨åºã "
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr "å¨ Hibernate ç½ç«ä¸å¯ä»¥æ¾å°é®é¢åè§£çï¼FAQï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Third party demos, examples, and tutorials are linked 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 çï¼ç好尿¹ã"
+
+#. 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 æå
´è¶£ï¼è¯·å å
¥å¼åè
çé®ä»¶å表ãå¦æä½ å¯¹ç¿»è¯æ¬ææ¡£æå
´è¶£ï¼è¯·éè¿å¼åè
çé®ä»¶å表æ¥èç³»æä»¬ã "
+
+#. 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ï¼éçä¸ä¸ªæ ¸å¿ç»ä»¶ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Feedback"
+msgstr "åé¦"
+
+#. Tag: para
+#, no-c-format
+msgid "Use <ulink url=\"http://opensource.atlassian.com/projects/hibernate\">Hibernate JIRA</ulink> to report errors or request enhacements to this documentation."
+msgstr "ç¨ <ulink url=\"http://opensource.atlassian.com/projects/hibernate\">Hibernate JIRA</ulink> æ¥æ¥åéè¯¯ææ¹è¿æ¬ææ¡£ã"
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/architecture.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/architecture.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/architecture.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,611 +1,276 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"PO-Revision-Date: 2010-01-11 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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: architecture.xml:30
#, no-c-format
msgid "Architecture"
-msgstr "ä½ç³»ç»æ(Architecture)"
+msgstr "ä½ç³»ç»æï¼Architectureï¼"
#. Tag: title
-#: architecture.xml:33
#, no-c-format
msgid "Overview"
-msgstr "æ¦åµ(Overview)"
+msgstr "æ¦åµï¼Overviewï¼"
#. Tag: para
-#: architecture.xml:35
-#, fuzzy, no-c-format
-msgid ""
-"The diagram below provides a high-level view of the Hibernate architecture:"
-msgstr "ä¸ä¸ªé常ç®è¦çHibernateä½ç³»ç»æçæ¦è¦å¾ï¼"
+#, no-c-format
+msgid "The diagram below provides a high-level view of the Hibernate architecture:"
+msgstr "ä¸é¢çå¾è¡¨æä¾äº Hibernate ä½ç³»ç»æçé«å±è§å¾ï¼"
#. Tag: para
-#: architecture.xml:50
-#, fuzzy, no-c-format
-msgid ""
-"We do not have the scope in this document to provide a more detailed view of "
-"all the runtime architectures available; Hibernate is flexible and supports "
-"several different approaches. We will, however, show the two extremes: "
-"\"minimal\" architecture and \"comprehensive\" architecture."
-msgstr ""
-"æä»¬æ¥æ´è¯¦ç»å°çä¸ä¸Hibernateè¿è¡æ¶ä½ç³»ç»æãç±äºHibernateéå¸¸çµæ´»ï¼ä¸æ¯æå¤"
-"ç§åºç¨æ¹æ¡ï¼ æä»¥æä»¬è¿åªæè¿°ä¸ä¸ä¸¤ç§æç«¯çæ
åµãâè½»åâçä½ç³»ç»ææ¹æ¡ï¼è¦æ±åº"
-"ç¨ç¨åºæä¾èªå·±çJDBC è¿æ¥å¹¶ç®¡çèªå·±çäºå¡ãè¿ç§æ¹æ¡ä½¿ç¨äºHibernate APIçæå°"
-"åéï¼"
+#, no-c-format
+msgid "We do not have the scope in this document to provide a more detailed view of all the runtime architectures available; Hibernate is flexible and supports several different approaches. We will, however, show the two extremes: \"minimal\" architecture and \"comprehensive\" architecture."
+msgstr "æä¾ Hibernate ææè¿è¡æ¶ä½ç³»ç»æçæ´å¤ç»è䏿¯æ¬ææ¡£çèç´ãç±äº Hibernate éå¸¸çµæ´»ï¼ä¸æ¯æå¤ç§åºç¨æ¹æ¡ï¼ æä»¥æä»¬è¿åªæè¿°ä¸ä¸ä¸¤ç§æç«¯çæ
åµï¼âæå°âåâå
¨é¢è§£å³âçä½ç³»ç»ææ¹æ¡ã"
#. Tag: para
-#: architecture.xml:56
-#, fuzzy, no-c-format
-msgid ""
-"This next diagram illustrates how Hibernate utilizes database and "
-"configuration data to provide persistence services, and persistent objects, "
-"to the application."
-msgstr ""
-"ä»è¿ä¸ªå¾å¯ä»¥çåºï¼Hibernateä½¿ç¨æ°æ®åºåé
ç½®ä¿¡æ¯æ¥ä¸ºåºç¨ç¨åºæä¾æä¹
åæå¡ï¼ä»¥"
-"åæä¹
ç对象ï¼ã"
+#, no-c-format
+msgid "This next diagram illustrates how Hibernate utilizes database and configuration data to provide persistence services, and persistent objects, to the application."
+msgstr "ä¸å¾æ¼ç¤ºäº Hibernate å¦ä½ä½¿ç¨æ°æ®åºåé
ç½®ä¿¡æ¯æ¥ä¸ºåºç¨ç¨åºæä¾æä¹
åæå¡ï¼ä»¥åæä¹
ç对象ï¼ã"
#. Tag: para
-#: architecture.xml:61
-#, fuzzy, no-c-format
-msgid ""
-"The \"minimal\" architecture has the application provide its own JDBC "
-"connections and manage its own transactions. This approach uses a minimal "
-"subset of Hibernate's APIs:"
-msgstr ""
-"æä»¬æ¥æ´è¯¦ç»å°çä¸ä¸Hibernateè¿è¡æ¶ä½ç³»ç»æãç±äºHibernateéå¸¸çµæ´»ï¼ä¸æ¯æå¤"
-"ç§åºç¨æ¹æ¡ï¼ æä»¥æä»¬è¿åªæè¿°ä¸ä¸ä¸¤ç§æç«¯çæ
åµãâè½»åâçä½ç³»ç»ææ¹æ¡ï¼è¦æ±åº"
-"ç¨ç¨åºæä¾èªå·±çJDBC è¿æ¥å¹¶ç®¡çèªå·±çäºå¡ãè¿ç§æ¹æ¡ä½¿ç¨äºHibernate APIçæå°"
-"åéï¼"
+#, no-c-format
+msgid "The \"minimal\" architecture has the application provide its own JDBC connections and manage its own transactions. This approach uses a minimal subset of Hibernate's APIs:"
+msgstr "âæå°âçä½ç³»ç»ææ¹æ¡ï¼è¦æ±åºç¨ç¨åºæä¾èªå·±ç JDBC è¿æ¥å¹¶ç®¡çèªå·±çäºå¡ãè¿ç§æ¹æ¡ä½¿ç¨äºHibernate API çæå°åéï¼"
#. Tag: para
-#: architecture.xml:78
-#, fuzzy, no-c-format
-msgid ""
-"The \"comprehensive\" architecture abstracts the application away from the "
-"underlying JDBC/JTA APIs and allows Hibernate to manage the details."
-msgstr ""
-"âå
¨é¢è§£å³âçä½ç³»ç»ææ¹æ¡ï¼å°åºç¨å±ä»åºå±çJDBC/JTA API䏿½è±¡åºæ¥ï¼è让"
-"Hibernateæ¥å¤çè¿äºç»èã"
+#, no-c-format
+msgid "The \"comprehensive\" architecture abstracts the application away from the underlying JDBC/JTA APIs and allows Hibernate to manage the details."
+msgstr "âå
¨é¢è§£å³âçä½ç³»ç»ææ¹æ¡ï¼å°åºç¨å±ä»åºå±ç JDBC/JTA API 䏿½è±¡åºæ¥ï¼è让 Hibernate æ¥å¤çè¿äºç»èã"
#. Tag: para
-#: architecture.xml:92
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Here are some definitions of the objects depicted in the diagrams:"
-msgstr "å¾ä¸å个对象çå®ä¹å¦ä¸ï¼ <placeholder-1/>"
+msgstr "å¾ä¸å个对象çå®ä¹å¦ä¸ï¼ "
#. Tag: term
-#: architecture.xml:97
#, no-c-format
msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
#. Tag: para
-#: architecture.xml:99
-#, fuzzy, no-c-format
-msgid ""
-"A threadsafe, immutable cache of compiled mappings for a single database. A "
-"factory for <literal>Session</literal> and a client of "
-"<literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> can "
-"hold an optional (second-level) cache of data that is reusable between "
-"transactions at a process, or cluster, level."
-msgstr ""
-"é对åä¸ªæ°æ®åºæ å°å
³ç³»ç»è¿ç¼è¯åçå
åéåï¼æ¯çº¿ç¨å®å
¨çï¼ä¸å¯åï¼ã 宿¯çæ"
-"<literal>Session</literal>çå·¥åï¼æ¬èº«è¦ç¨å°<literal>ConnectionProvider</"
-"literal>ã 该对象å¯ä»¥å¨è¿ç¨æé群ç级å«ä¸ï¼ä¸ºé£äºäºå¡ä¹é´å¯ä»¥éç¨çæ°æ®æä¾å¯"
-"éçäºçº§ç¼åã"
+#, no-c-format
+msgid "A threadsafe, immutable cache of compiled mappings for a single database. A factory for <literal>Session</literal> and a client of <literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> can hold an optional (second-level) cache of data that is reusable between transactions at a process, or cluster, level."
+msgstr "é对åä¸ªæ°æ®åºæ å°å
³ç³»ç»è¿ç¼è¯åçå
åéåï¼æ¯çº¿ç¨å®å
¨çï¼ä¸å¯åï¼ã ä½ä¸º <literal>Session</literal> çå·¥åå <literal>ConnectionProvider</literal> ç客æ·ã<literal>SessionFactory</literal> å¯ä»¥å¨è¿ç¨æé群ç级å«ä¸ï¼ä¸ºé£äºäºå¡ä¹é´å¯ä»¥éç¨çæ°æ®æä¾å¯éçäºçº§ç¼åã"
#. Tag: term
-#: architecture.xml:109
#, no-c-format
msgid "Session (<literal>org.hibernate.Session</literal>)"
msgstr "Session (<literal>org.hibernate.Session</literal>)"
#. Tag: para
-#: architecture.xml:111
-#, fuzzy, no-c-format
-msgid ""
-"A single-threaded, short-lived object representing a conversation between "
-"the application and the persistent store. It wraps a JDBC connection and is "
-"a factory for <literal>Transaction</literal>. <literal>Session</literal> "
-"holds a mandatory first-level cache of persistent objects that are used when "
-"navigating the object graph or looking up objects by identifier."
-msgstr ""
-"表示åºç¨ç¨åºä¸æä¹
å¨åå±ä¹é´äº¤äºæä½çä¸ä¸ªå线ç¨å¯¹è±¡ï¼æ¤å¯¹è±¡çåæå¾çã å
¶é"
-"èäºJDBCè¿æ¥ï¼ä¹æ¯<literal>Transaction</literal>çå·¥åã å
¶ä¼ææä¸ä¸ªé对æä¹
"
-"å对象çå¿
éï¼ç¬¬ä¸çº§ï¼ç¼åï¼å¨éåå¯¹è±¡å¾æè
æ ¹æ®æä¹
åæ è¯æ¥æ¾å¯¹è±¡æ¶ä¼ç¨å°ã"
+#, no-c-format
+msgid "A single-threaded, short-lived object representing a conversation between the application and the persistent store. It wraps a JDBC connection and is a factory for <literal>Transaction</literal>. <literal>Session</literal> holds a mandatory first-level cache of persistent objects that are used when navigating the object graph or looking up objects by identifier."
+msgstr "表示åºç¨ç¨åºä¸æä¹
å¨åå±ä¹é´äº¤äºæä½çä¸ä¸ªå线ç¨å¯¹è±¡ï¼æ¤å¯¹è±¡çåæå¾çãå
¶éèäº JDBC è¿æ¥ï¼ä¹æ¯ <literal>Transaction</literal> çå·¥åãå®ä¼ææä¸ä¸ªé对æä¹
å对象çå¿
éï¼ç¬¬ä¸çº§ï¼ç¼åï¼å¨éåå¯¹è±¡å¾æè
æ ¹æ®æä¹
åæ è¯æ¥æ¾å¯¹è±¡æ¶ä¼ç¨å°ã"
#. Tag: term
-#: architecture.xml:121
#, no-c-format
msgid "Persistent objects and collections"
msgstr "æä¹
ç对象åå
¶éå"
#. Tag: para
-#: architecture.xml:123
-#, fuzzy, no-c-format
-msgid ""
-"Short-lived, single threaded objects containing persistent state and "
-"business function. These can be ordinary JavaBeans/POJOs. They are "
-"associated with exactly one <literal>Session</literal>. Once the "
-"<literal>Session</literal> is closed, they will be detached and free to use "
-"in any application layer (for example, directly as data transfer objects to "
-"and from presentation)."
-msgstr ""
-"带ææä¹
åç¶æçãå
·æä¸å¡åè½çå线ç¨å¯¹è±¡ï¼æ¤å¯¹è±¡çåæå¾çã è¿äºå¯¹è±¡å¯è½æ¯"
-"æ®éçJavaBeans/POJOï¼å¯ä¸ç¹æ®çæ¯ä»ä»¬æ£ä¸ï¼ä»
ä»
ä¸ä¸ªï¼<literal>Session</"
-"literal>ç¸å
³èã 䏿¦è¿ä¸ª<literal>Session</literal>被å
³éï¼è¿äºå¯¹è±¡å°±ä¼è±ç¦»æ"
-"ä¹
åç¶æï¼è¿æ ·å°±å¯è¢«åºç¨ç¨åºçä»»ä½å±èªç±ä½¿ç¨ã ï¼ä¾å¦ï¼ç¨ä½è·è¡¨ç¤ºå±æäº¤éçæ°"
-"æ®ä¼ è¾å¯¹è±¡ãï¼"
+#, no-c-format
+msgid "Short-lived, single threaded objects containing persistent state and business function. These can be ordinary JavaBeans/POJOs. They are associated with exactly one <literal>Session</literal>. Once the <literal>Session</literal> is closed, they will be detached and free to use in any application layer (for example, directly as data transfer objects to and from presentation)."
+msgstr "带ææä¹
åç¶æçãå
·æä¸å¡åè½çå线ç¨å¯¹è±¡ï¼æ¤å¯¹è±¡çåæå¾çãè¿äºå¯¹è±¡å¯è½æ¯æ®éçJavaBeans/POJOï¼å¯ä¸ç¹æ®çæ¯ä»ä»¬æ£ä¸ï¼ä»
ä»
ä¸ä¸ªï¼<literal>Session</literal> ç¸å
³èã䏿¦è¿ä¸ª <literal>Session</literal> 被å
³éï¼è¿äºå¯¹è±¡å°±ä¼è±ç¦»æä¹
åç¶æï¼è¿æ ·å°±å¯è¢«åºç¨ç¨åºçä»»ä½å±èªç±ä½¿ç¨ï¼ä¾å¦ï¼ç¨ä½è·è¡¨ç¤ºå±æäº¤éçæ°æ®ä¼ è¾å¯¹è±¡ï¼ã"
#. Tag: term
-#: architecture.xml:133
#, no-c-format
msgid "Transient and detached objects and collections"
-msgstr "ç¬æ(transient)åè±ç®¡(detached)ç对象åå
¶éå"
+msgstr "ç¬æï¼transientï¼åè±ç®¡ï¼detachedï¼ç对象åå
¶éå"
#. Tag: para
-#: architecture.xml:135
-#, fuzzy, no-c-format
-msgid ""
-"Instances of persistent classes that are not currently associated with a "
-"<literal>Session</literal>. They may have been instantiated by the "
-"application and not yet persisted, or they may have been instantiated by a "
-"closed <literal>Session</literal>."
-msgstr ""
-"é£äºç®å没æä¸sessionå
³èçæä¹
åç±»å®ä¾ã ä»ä»¬å¯è½æ¯å¨è¢«åºç¨ç¨åºå®ä¾ååï¼å°"
-"æªè¿è¡æä¹
åç对象ã ä¹å¯è½æ¯å 为å®ä¾åä»ä»¬ç<literal>Session</literal>å·²ç»è¢«"
-"å
³éèè±ç¦»æä¹
åç对象ã"
+#, no-c-format
+msgid "Instances of persistent classes that are not currently associated with a <literal>Session</literal>. They may have been instantiated by the application and not yet persisted, or they may have been instantiated by a closed <literal>Session</literal>."
+msgstr "é£äºç®å没æä¸ <literal>Session</literal>å
³èçæä¹
åç±»å®ä¾ãä»ä»¬å¯è½æ¯å¨è¢«åºç¨ç¨åºå®ä¾ååï¼å°æªè¿è¡æä¹
åç对象ãä¹å¯è½æ¯å 为å®ä¾åä»ä»¬ç <literal>Session</literal> å·²ç»è¢«å
³éèè±ç¦»æä¹
åç对象ã"
#. Tag: term
-#: architecture.xml:144
#, no-c-format
msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
-msgstr "äºå¡Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr "äºå¡ Transaction (<literal>org.hibernate.Transaction</literal>)"
#. Tag: para
-#: architecture.xml:146
-#, fuzzy, no-c-format
-msgid ""
-"(Optional) A single-threaded, short-lived object used by the application to "
-"specify atomic units of work. It abstracts the application from the "
-"underlying JDBC, JTA or CORBA transaction. A <literal>Session</literal> "
-"might span several <literal>Transaction</literal>s in some cases. However, "
-"transaction demarcation, either using the underlying API or "
-"<literal>Transaction</literal>, is never optional."
-msgstr ""
-"ï¼å¯éçï¼åºç¨ç¨åºç¨æ¥æå®ååæä½åå
èå´ç对象ï¼å®æ¯å线ç¨çï¼çå½å¨æå¾"
-"çã å®éè¿æ½è±¡å°åºç¨ä»åºå±å
·ä½çJDBCãJTA以åCORBAäºå¡é离å¼ã æäºæ
åµä¸ï¼"
-"ä¸ä¸ª<literal>Session</literal>ä¹å
å¯è½å
å«å¤ä¸ª<literal>Transaction</literal>"
-"对象ã 尽管æ¯å¦ä½¿ç¨è¯¥å¯¹è±¡æ¯å¯éçï¼ä½æ 论æ¯ä½¿ç¨åºå±çAPIè¿æ¯ä½¿ç¨"
-"<literal>Transaction</literal>对象ï¼äºå¡è¾¹ççå¼å¯ä¸å
³éæ¯å¿
ä¸å¯å°çã"
+#, no-c-format
+msgid "(Optional) A single-threaded, short-lived object used by the application to specify atomic units of work. It abstracts the application from the underlying JDBC, JTA or CORBA transaction. A <literal>Session</literal> might span several <literal>Transaction</literal>s in some cases. However, transaction demarcation, either using the underlying API or <literal>Transaction</literal>, is never optional."
+msgstr "ï¼å¯éçï¼åºç¨ç¨åºç¨æ¥æå®ååæä½åå
èå´ç对象ï¼å®æ¯å线ç¨çï¼çå½å¨æå¾çãå®éè¿æ½è±¡å°åºç¨ä»åºå±å
·ä½ç JDBCãJTA 以å CORBA äºå¡é离å¼ãæäºæ
åµä¸ï¼ä¸ä¸ª <literal>Session</literal> ä¹å
å¯è½å
å«å¤ä¸ª <literal>Transaction</literal> 对象ã尽管æ¯å¦ä½¿ç¨è¯¥å¯¹è±¡æ¯å¯éçï¼ä½æ 论æ¯ä½¿ç¨åºå±ç API è¿æ¯ä½¿ç¨ <literal>Transaction</literal> 对象ï¼äºå¡è¾¹ççå¼å¯ä¸å
³éæ¯å¿
éçã "
#. Tag: term
-#: architecture.xml:157
#, no-c-format
-msgid ""
-"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
-"literal>)"
-msgstr ""
-"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
-"literal>)"
+msgid "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
+msgstr "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
#. Tag: para
-#: architecture.xml:159
-#, fuzzy, no-c-format
-msgid ""
-"(Optional) A factory for, and pool of, JDBC connections. It abstracts the "
-"application from underlying <literal>Datasource</literal> or "
-"<literal>DriverManager</literal>. It is not exposed to application, but it "
-"can be extended and/or implemented by the developer."
-msgstr ""
-"ï¼å¯éçï¼çæJDBCè¿æ¥çå·¥åï¼åæ¶ä¹èµ·å°è¿æ¥æ± çä½ç¨ï¼ã å®éè¿æ½è±¡å°åºç¨ä»åº"
-"å±ç<literal>Datasource</literal>æ<literal>DriverManager</literal>é离å¼ã "
-"ä»
ä¾å¼åè
æ©å±/å®ç°ç¨ï¼å¹¶ä¸æ´é²ç»åºç¨ç¨åºä½¿ç¨ã"
+#, no-c-format
+msgid "(Optional) A factory for, and pool of, JDBC connections. It abstracts the application from underlying <literal>Datasource</literal> or <literal>DriverManager</literal>. It is not exposed to application, but it can be extended and/or implemented by the developer."
+msgstr "ï¼å¯éçï¼çæ JDBC è¿æ¥çå·¥åï¼åæ¶ä¹èµ·å°è¿æ¥æ± çä½ç¨ï¼ãå®éè¿æ½è±¡å°åºç¨ä»åºå±ç <literal>Datasource</literal> æ <literal>DriverManager</literal> é离å¼ãä»
ä¾å¼åè
æ©å±/å®ç°ç¨ï¼å¹¶ä¸å¼æ¾ç»åºç¨ç¨åºä½¿ç¨ã"
#. Tag: term
-#: architecture.xml:167
#, no-c-format
-msgid ""
-"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
-msgstr ""
-"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgid "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgstr "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
#. Tag: para
-#: architecture.xml:169
-#, fuzzy, no-c-format
-msgid ""
-"(Optional) A factory for <literal>Transaction</literal> instances. It is not "
-"exposed to the application, but it can be extended and/or implemented by the "
-"developer."
-msgstr ""
-"ï¼å¯éçï¼çæ<literal>Transaction</literal>对象å®ä¾çå·¥åã ä»
ä¾å¼åè
æ©å±/"
-"å®ç°ç¨ï¼å¹¶ä¸æ´é²ç»åºç¨ç¨åºä½¿ç¨ã"
+#, no-c-format
+msgid "(Optional) A factory for <literal>Transaction</literal> instances. It is not exposed to the application, but it can be extended and/or implemented by the developer."
+msgstr "ï¼å¯éçï¼çæ <literal>Transaction</literal> 对象å®ä¾çå·¥åãä»
ä¾å¼åè
æ©å±/å®ç°ç¨ï¼å¹¶ä¸å¼åè½å¤ç»åºç¨ç¨åºä½¿ç¨ã"
-#. Tag: emphasis
-#: architecture.xml:176
+#. Tag: term
#, no-c-format
-msgid "Extension Interfaces"
-msgstr "æ©å±æ¥å£"
+msgid "<emphasis>Extension Interfaces</emphasis>"
+msgstr "<emphasis>æ©å±æ¥å£</emphasis>"
#. Tag: para
-#: architecture.xml:178
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate offers a range of optional extension interfaces you can implement "
-"to customize the behavior of your persistence layer. See the API "
-"documentation for details."
-msgstr ""
-"Hibernateæä¾äºå¾å¤å¯éçæ©å±æ¥å£ï¼ä½ å¯ä»¥éè¿å®ç°å®ä»¬æ¥å®å¶ä½ çæä¹
å±çè¡"
-"为ã å
·ä½è¯·åèAPIææ¡£ã"
+#, no-c-format
+msgid "Hibernate offers a range of optional extension interfaces you can implement to customize the behavior of your persistence layer. See the API documentation for details."
+msgstr "Hibernate æä¾äºå¾å¤å¯éçæ©å±æ¥å£ï¼ä½ å¯ä»¥éè¿å®ç°å®ä»¬æ¥å®å¶ä½ çæä¹
å±çè¡ä¸ºãå
·ä½è¯·åè API ææ¡£ã"
#. Tag: para
-#: architecture.xml:187
-#, fuzzy, no-c-format
-msgid ""
-"Given a \"minimal\" architecture, the application bypasses the "
-"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
-"<literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC "
-"directly."
-msgstr ""
-"å¨ç¹å®âè½»åâçä½ç³»ç»æä¸ï¼åºç¨ç¨åºå¯è½ç»è¿ <literal>Transaction</literal>/"
-"<literal>TransactionFactory</literal> 以å <literal>ConnectionProvider</"
-"literal> çAPIç´æ¥è·JTAæJDBCæäº¤éã"
+#, no-c-format
+msgid "Given a \"minimal\" architecture, the application bypasses the <literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or <literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC directly."
+msgstr "å¨ç¹å®âæå°âçä½ç³»ç»æä¸ï¼åºç¨ç¨åºå¯è½ç»è¿ <literal>Transaction</literal>/<literal>TransactionFactory</literal> 以å <literal>ConnectionProvider</literal> ç API ç´æ¥è· JTA æ JDBC æäº¤éã"
#. Tag: title
-#: architecture.xml:195
#, no-c-format
msgid "Instance states"
msgstr "å®ä¾ç¶æ"
#. Tag: para
-#: architecture.xml:196
-#, fuzzy, no-c-format
-msgid ""
-"An instance of a persistent class can be in one of three different states. "
-"These states are defined in relation to a <emphasis>persistence context</"
-"emphasis>. The Hibernate <literal>Session</literal> object is the "
-"persistence context. The three different states are as follows:"
-msgstr ""
-"ä¸ä¸ªæä¹
åç±»çå®ä¾å¯è½å¤äºä¸ç§ä¸åç¶æä¸çæä¸ç§ã è¿ä¸ç§ç¶æçå®ä¹å䏿è°ç"
-"<emphasis>æä¹
åä¸ä¸æ(persistence context)</emphasis>æå
³ã Hibernateç"
-"<literal>Session</literal>对象就æ¯è¿ä¸ªæè°çæä¹
åä¸ä¸æï¼"
+#, no-c-format
+msgid "An instance of a persistent class can be in one of three different states. These states are defined in relation to a <emphasis>persistence context</emphasis>. The Hibernate <literal>Session</literal> object is the persistence context. The three different states are as follows:"
+msgstr "ä¸ä¸ªæä¹
åç±»çå®ä¾å¯è½å¤äºä¸ç§ä¸åç¶æä¸çæä¸ç§ãè¿ä¸ç§ç¶æçå®ä¹å䏿è°ç<emphasis>æä¹
åä¸ä¸æï¼persistence contextï¼</emphasis>æå
³ãHibernate ç <literal>Session</literal> 对象就æ¯è¿ä¸ªæè°çæä¹
åä¸ä¸æãè¿ä¸ç§ä¸åçç¶æå¦ä¸ï¼"
#. Tag: term
-#: architecture.xml:204
#, no-c-format
msgid "transient"
msgstr "ç¬æï¼transientï¼"
#. Tag: para
-#: architecture.xml:206
-#, fuzzy, no-c-format
-msgid ""
-"The instance is not associated with any persistence context. It has no "
-"persistent identity or primary key value."
-msgstr "该å®ä¾ä»æªä¸ä»»ä½æä¹
åä¸ä¸æå
³èè¿ã宿²¡ææä¹
åæ è¯ï¼ç¸å½äºä¸»é®å¼ï¼ã"
+#, no-c-format
+msgid "The instance is not associated with any persistence context. It has no persistent identity or primary key value."
+msgstr "该å®ä¾ä»æªä¸ä»»ä½æä¹
åä¸ä¸æå
³èè¿ã宿²¡ææä¹
åæ è¯ï¼ç¸å½äºä¸»é®å¼ï¼ã "
#. Tag: term
-#: architecture.xml:214
#, no-c-format
msgid "persistent"
-msgstr "æä¹
å(persistent)"
+msgstr "æä¹
åï¼persistentï¼"
#. Tag: para
-#: architecture.xml:216
-#, fuzzy, no-c-format
-msgid ""
-"The instance is currently associated with a persistence context. It has a "
-"persistent identity (primary key value) and can have a corresponding row in "
-"the database. For a particular persistence context, Hibernate "
-"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
-"Java identity in relation to the in-memory location of the object."
-msgstr ""
-"å®ä¾ç®åä¸æä¸ªæä¹
åä¸ä¸ææå
³èã 宿¥ææä¹
åæ è¯ï¼ç¸å½äºä¸»é®å¼ï¼ï¼å¹¶ä¸å¯è½"
-"卿°æ®åºä¸æä¸ä¸ªå¯¹åºçè¡ã å¯¹äºæä¸ä¸ªç¹å®çæä¹
åä¸ä¸æï¼Hibernate<emphasis>"
-"ä¿è¯</emphasis>æä¹
åæ è¯ä¸Javaæ è¯ï¼å
¶å¼ä»£è¡¨å¯¹è±¡å¨å
åä¸çä½ç½®ï¼çä»·ã"
+#, no-c-format
+msgid "The instance is currently associated with a persistence context. It has a persistent identity (primary key value) and can have a corresponding row in the database. For a particular persistence context, Hibernate <emphasis>guarantees</emphasis> that persistent identity is equivalent to Java identity in relation to the in-memory location of the object."
+msgstr "å®ä¾ç®åä¸æä¸ªæä¹
åä¸ä¸ææå
³èã宿¥ææä¹
åæ è¯ï¼ç¸å½äºä¸»é®å¼ï¼ï¼å¹¶ä¸å¯è½å¨æ°æ®åºä¸æä¸ä¸ªå¯¹åºçè¡ãå¯¹äºæä¸ä¸ªç¹å®çæä¹
åä¸ä¸æï¼Hibernate <emphasis>ä¿è¯</emphasis> æä¹
åæ è¯ä¸ Java æ è¯ï¼å
¶å¼ä»£è¡¨å¯¹è±¡å¨å
åä¸çä½ç½®ï¼çä»·ãã"
#. Tag: term
-#: architecture.xml:228
#, no-c-format
msgid "detached"
-msgstr "è±ç®¡(detached)"
+msgstr "è±ç®¡ï¼detachedï¼"
#. Tag: para
-#: architecture.xml:230
-#, fuzzy, no-c-format
-msgid ""
-"The instance was once associated with a persistence context, but that "
-"context was closed, or the instance was serialized to another process. It "
-"has a persistent identity and can have a corresponding row in the database. "
-"For detached instances, Hibernate does not guarantee the relationship "
-"between persistent identity and Java identity."
-msgstr ""
-"å®ä¾æ¾ç»ä¸æä¸ªæä¹
åä¸ä¸æåçè¿å
³èï¼ä¸è¿é£ä¸ªä¸ä¸æè¢«å
³éäºï¼ æè
è¿ä¸ªå®ä¾æ¯"
-"被åºåå(serialize)å°å¦å¤çè¿ç¨ã 宿¥ææä¹
åæ è¯ï¼å¹¶ä¸å¨æ°æ®åºä¸å¯è½åå¨ä¸"
-"个对åºçè¡ã 对äºè±ç®¡ç¶æçå®ä¾ï¼Hibernateä¸ä¿è¯ä»»ä½æä¹
åæ è¯åJavaæ è¯çå
³"
-"ç³»ã"
+#, no-c-format
+msgid "The instance was once associated with a persistence context, but that context was closed, or the instance was serialized to another process. It has a persistent identity and can have a corresponding row in the database. For detached instances, Hibernate does not guarantee the relationship between persistent identity and Java identity."
+msgstr "å®ä¾æ¾ç»ä¸æä¸ªæä¹
åä¸ä¸æåçè¿å
³èï¼ä¸è¿é£ä¸ªä¸ä¸æè¢«å
³éäºï¼æè
è¿ä¸ªå®ä¾æ¯è¢«åºååï¼serializeï¼å°å¦å¤çè¿ç¨ã宿¥ææä¹
åæ è¯ï¼å¹¶ä¸å¨æ°æ®åºä¸å¯è½åå¨ä¸ä¸ªå¯¹åºçè¡ã对äºè±ç®¡ç¶æçå®ä¾ï¼Hibernate ä¸ä¿è¯ä»»ä½æä¹
åæ è¯å Java æ è¯çå
³ç³»ã "
#. Tag: title
-#: architecture.xml:245
#, no-c-format
msgid "JMX Integration"
-msgstr "JMXæ´å"
+msgstr "JMX æ´å"
#. Tag: para
-#: architecture.xml:247
-#, fuzzy, no-c-format
-msgid ""
-"JMX is the J2EE standard for the management of Java components. Hibernate "
-"can be managed via a JMX standard service. AN MBean implementation is "
-"provided in the distribution: <literal>org.hibernate.jmx.HibernateService</"
-"literal>."
-msgstr ""
-"JMXæ¯ç®¡çJavaç»ä»¶(Java components)çJ2EEæ åã Hibernate å¯ä»¥éè¿ä¸ä¸ªJMXæ å"
-"æå¡æ¥ç®¡çã å¨è¿ä¸ªåè¡çæ¬ä¸ï¼æä»¬æä¾äºä¸ä¸ªMBeanæ¥å£çå®ç°,å³ <literal>org."
-"hibernate.jmx.HibernateService</literal>ã"
+#, no-c-format
+msgid "JMX is the J2EE standard for the management of Java components. Hibernate can be managed via a JMX standard service. AN MBean implementation is provided in the distribution: <literal>org.hibernate.jmx.HibernateService</literal>."
+msgstr "JMX æ¯ç®¡ç Java ç»ä»¶ç J2EE æ åãHibernate å¯ä»¥éè¿ä¸ä¸ª JMX æ åæå¡æ¥ç®¡çãå¨è¿ä¸ªåè¡çæ¬ä¸ï¼æä»¬æä¾äºä¸ä¸ª MBean æ¥å£çå®ç°,å³ <literal>org.hibernate.jmx.HibernateService</literal>ã "
#. Tag: para
-#: architecture.xml:253
-#, fuzzy, no-c-format
-msgid ""
-"For an example of how to deploy Hibernate as a JMX service on the JBoss "
-"Application Server, please see the JBoss User Guide. JBoss AS also provides "
-"these benefits if you deploy using JMX:"
-msgstr ""
-"æ³è¦çå¦ä½å¨JBossåºç¨æå¡å¨ä¸å°Hibernateé¨ç½²ä¸ºä¸ä¸ªJMXæå¡çä¾åï¼æ¨å¯ä»¥åè"
-"JBossç¨æ·æåã æä»¬ç°å¨è¯´ä¸ä¸å¨Jbossåºç¨æå¡å¨ä¸ï¼ä½¿ç¨JMXæ¥é¨ç½²Hibernateç好"
-"å¤ï¼"
+#, no-c-format
+msgid "For an example of how to deploy Hibernate as a JMX service on the JBoss Application Server, please see the JBoss User Guide. JBoss AS also provides these benefits if you deploy using JMX:"
+msgstr "æ³è¦çå¦ä½å¨ JBoss åºç¨æå¡å¨ä¸å° Hibernate é¨ç½²ä¸ºä¸ä¸ª JMX æå¡çä¾åï¼æ¨å¯ä»¥åèãJBoss ç¨æ·æåããå¦æä½ ä½¿ç¨ JMX æ¥é¨ç½² Hibernateï¼JBoss AS 乿ä¾å¦ä¸å¥½å¤ï¼"
#. Tag: para
-#: architecture.xml:261
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</"
-"literal>'s life cycle can be automatically bound to the scope of a JTA "
-"transaction. This means that you no longer have to manually open and close "
-"the <literal>Session</literal>; this becomes the job of a JBoss EJB "
-"interceptor. You also do not have to worry about transaction demarcation in "
-"your code (if you would like to write a portable persistence layer use the "
-"optional Hibernate <literal>Transaction</literal> API for this). You call "
-"the <literal>HibernateContext</literal> to access a <literal>Session</"
-"literal>."
-msgstr ""
-"<emphasis>Session管çï¼</emphasis> Hibernateç<literal>Session</literal>对象"
-"ççå½å¨æå¯ä»¥ èªå¨è·ä¸ä¸ªJTAäºå¡è¾¹çç»å®ãè¿æå³çä½ æ éæå·¥å¼å
³"
-"<literal>Session</literal>äº, è¿é¡¹ å·¥ä½ä¼ç±JBoss EJB æ¦æªå¨æ¥å®æãä½ åä¹ä¸ç¨"
-"æ
å¿ä½ ç代ç ä¸çäºå¡è¾¹çäº(é¤éä½ æ³å©ç¨Hibernateæä¾å¯é ç"
-"<literal>Transaction</literal> APIæ¥èªå·±åä¸ä¸ªä¾¿äºç§»æ¤ççæä¹
å±)ã ä½ éè¿è°"
-"ç¨<literal>HibernateContext</literal>æ¥è®¿é®<literal>Session</literal>ã"
+#, no-c-format
+msgid "<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</literal>'s life cycle can be automatically bound to the scope of a JTA transaction. This means that you no longer have to manually open and close the <literal>Session</literal>; this becomes the job of a JBoss EJB interceptor. You also do not have to worry about transaction demarcation in your code (if you would like to write a portable persistence layer use the optional Hibernate <literal>Transaction</literal> API for this). You call the <literal>HibernateContext</literal> to access a <literal>Session</literal>."
+msgstr "<emphasis>ä¼è¯ç®¡çï¼</emphasis> Hibernate ç <literal>Session</literal> 对象ççå½å¨æå¯ä»¥ èªå¨è·ä¸ä¸ª JTA äºå¡è¾¹çç»å®ãè¿æå³çä½ æ éæå·¥å¼å
³ <literal>Session</literal> äº, è¿é¡¹å·¥ä½ä¼ç± JBoss EJB æ¦æªå¨æ¥å®æãä½ åä¹ä¸ç¨æ
å¿ä½ ç代ç ä¸çäºå¡è¾¹çäºï¼é¤éä½ æ³å©ç¨ Hibernate æä¾å¯éç <literal>Transaction</literal> API æ¥èªå·±åä¸ä¸ªä¾¿äºç§»æ¤ççæä¹
å±ï¼ãä½ éè¿è°ç¨ <literal>HibernateContext</literal> æ¥è®¿é® <literal>Session</literal>ã"
#. Tag: para
-#: architecture.xml:273
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed "
-"using a JBoss service deployment descriptor in an EAR and/or SAR file, as it "
-"supports all the usual configuration options of a Hibernate "
-"<literal>SessionFactory</literal>. However, you still need to name all your "
-"mapping files in the deployment descriptor. If you use the optional HAR "
-"deployment, JBoss will automatically detect all mapping files in your HAR "
-"file."
-msgstr ""
-"<emphasis>HAR é¨ç½²:</emphasis> é常æ
åµä¸ï¼ä½ ä¼ä½¿ç¨JBossçæå¡é¨ç½²æè¿°ç¬¦ï¼å¨"
-"EARæ/åSARæä»¶ä¸ï¼æ¥é¨ç½²Hibernate JMXæå¡ã è¿ç§é¨ç½²æ¹å¼æ¯æææå¸¸è§ç"
-"Hibernate <literal>SessionFactory</literal>çé
ç½®é项ã ä¸è¿ï¼ä½ ä»éå¨é¨ç½²æ"
-"述符ä¸ï¼ååºä½ ææçæ å°æä»¶çååãå¦æä½ ä½¿ç¨HARé¨ç½²æ¹å¼, JBoss ä¼èªå¨æ¢æµåº"
-"ä½ çHARæä»¶ä¸ææçæ å°æä»¶ã"
+#, no-c-format
+msgid "<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed using a JBoss service deployment descriptor in an EAR and/or SAR file, as it supports all the usual configuration options of a Hibernate <literal>SessionFactory</literal>. However, you still need to name all your mapping files in the deployment descriptor. If you use the optional HAR deployment, JBoss will automatically detect all mapping files in your HAR file."
+msgstr "<emphasis>HAR é¨ç½²:</emphasis> é常æ
åµä¸ï¼ä½ ä¼ä½¿ç¨ JBoss çæå¡é¨ç½²æè¿°ç¬¦ï¼å¨ EAR æ/å SAR æä»¶ä¸ï¼æ¥é¨ç½² Hibernate JMX æå¡ãè¿ç§é¨ç½²æ¹å¼æ¯æææå¸¸è§ç Hibernate <literal>SessionFactory</literal> çé
ç½®é项ãä¸è¿ï¼ä½ ä»éå¨é¨ç½²æè¿°ç¬¦ä¸ï¼ååºä½ ææçæ å°æçååãå¦æä½ ä½¿ç¨ HAR é¨ç½²æ¹å¼, JBoss ä¼èªå¨æ¢æµåºä½ ç HAR æä»¶ä¸ææçæ å°æä»¶ã"
#. Tag: para
-#: architecture.xml:284
#, no-c-format
-msgid ""
-"Consult the JBoss AS user guide for more information about these options."
-msgstr "è¿äºé项æ´å¤çæè¿°ï¼è¯·åèJBoss åºç¨ç¨åºç¨æ·æåã"
+msgid "Consult the JBoss AS user guide for more information about these options."
+msgstr "è¿äºé项æ´å¤çæè¿°ï¼è¯·åè JBoss åºç¨ç¨åºç¨æ·æåã"
#. Tag: para
-#: architecture.xml:288
-#, fuzzy, no-c-format
-msgid ""
-"Another feature available as a JMX service is runtime Hibernate statistics. "
-"See <xref linkend=\"configuration-optional-statistics\"/> for more "
-"information."
-msgstr ""
-"å°Hibernate以é¨ç½²ä¸ºJMXæå¡çå¦ä¸ä¸ªå¥½å¤ï¼æ¯å¯ä»¥æ¥çHibernateçè¿è¡æ¶ç»è®¡ä¿¡æ¯ã"
-"åç <xref linkend=\"configuration-optional-statistics\"/>."
+#, no-c-format
+msgid "Another feature available as a JMX service is runtime Hibernate statistics. See <xref linkend=\"configuration-optional-statistics\" /> for more information."
+msgstr "å° Hibernate 以é¨ç½²ä¸º JMX æå¡çå¦ä¸ä¸ªå¥½å¤æ¯å¯ä»¥æ¥ç Hibernate çè¿è¡æ¶ç»è®¡ä¿¡æ¯ãåç <xref linkend=\"configuration-optional-statistics\"/>ã"
#. Tag: title
-#: architecture.xml:295
#, no-c-format
msgid "JCA Support"
-msgstr "对JCAçæ¯æ"
+msgstr "对 JCA çæ¯æ"
#. Tag: para
-#: architecture.xml:296
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate can also be configured as a JCA connector. Please see the website "
-"for more information. Please note, however, that at this stage Hibernate JCA "
-"support is under development."
-msgstr ""
-"Hibernateä¹å¯ä»¥è¢«é
置为ä¸ä¸ªJCAè¿æ¥å¨ï¼JCA connectorï¼ãæ´å¤ä¿¡æ¯è¯·åçç½ç«ã "
-"请注æï¼Hibernate对JCAçæ¯æï¼ä»å¤äºå®éªæ§é¶æ®µã"
+#, no-c-format
+msgid "Hibernate can also be configured as a JCA connector. Please see the website for more information. Please note, however, that at this stage Hibernate JCA support is under development."
+msgstr "Hibernate ä¹å¯ä»¥è¢«é
置为ä¸ä¸ª JCA è¿æ¥å¨ï¼JCA connectorï¼ãæ´å¤ä¿¡æ¯è¯·åçç½ç«ã请注æï¼Hibernate 对 JCA çæ¯æï¼ä»å¤äºå®éªæ§é¶æ®µã"
#. Tag: title
-#: architecture.xml:303
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Contextual sessions"
-msgstr "ä¸ä¸æç¸å
³çï¼Contextualï¼Session"
+msgstr "ä¸ä¸æç¸å
³çä¼è¯ï¼Contextual Sessionï¼"
#. Tag: para
-#: architecture.xml:304
-#, fuzzy, no-c-format
-msgid ""
-"Most applications using Hibernate need some form of \"contextual\" session, "
-"where a given session is in effect throughout the scope of a given context. "
-"However, across applications the definition of what constitutes a context is "
-"typically different; different contexts define different scopes to the "
-"notion of current. Applications using Hibernate prior to version 3.0 tended "
-"to utilize either home-grown <literal>ThreadLocal</literal>-based contextual "
-"sessions, helper classes such as <literal>HibernateUtil</literal>, or "
-"utilized third-party frameworks, such as Spring or Pico, which provided "
-"proxy/interception-based contextual sessions."
-msgstr ""
-"使ç¨Hibernateç大夿°åºç¨ç¨åºéè¦æç§å½¢å¼çâä¸ä¸æç¸å
³çâ sessionï¼ç¹å®ç"
-"session卿´ä¸ªç¹å®çä¸ä¸æèå´å
å§ç»ææãç¶èï¼å¯¹ä¸åç±»åçåºç¨ç¨åºèè¨ï¼è¦ä¸º"
-"ä»ä¹æ¯ç»æè¿ç§âä¸ä¸æâä¸ä¸ä¸ªå®ä¹é常æ¯å°é¾çï¼ä¸åçä¸ä¸æå¯¹âå½åâè¿ä¸ªæ¦å¿µå®"
-"ä¹äºä¸åçèå´ãå¨3.0çæ¬ä¹åï¼ä½¿ç¨Hibernateçç¨åºè¦ä¹éç¨èªè¡ç¼åçåºäº"
-"<literal>ThreadLocal</literal>çä¸ä¸æsessionï¼è¦ä¹éç¨"
-"<literal>HibernateUtil</literal>è¿æ ·çè¾
å©ç±»ï¼è¦ä¹éç¨ç¬¬ä¸æ¹æ¡æ¶ï¼æ¯å¦Spring"
-"æPico)ï¼å®ä»¬æä¾äºåºäºä»£ç(proxy)æè
åºäºæ¦æªå¨(interception)çä¸ä¸æç¸å
³"
-"sessionã"
+#, no-c-format
+msgid "Most applications using Hibernate need some form of \"contextual\" session, where a given session is in effect throughout the scope of a given context. However, across applications the definition of what constitutes a context is typically different; different contexts define different scopes to the notion of current. Applications using Hibernate prior to version 3.0 tended to utilize either home-grown <literal>ThreadLocal</literal>-based contextual sessions, helper classes such as <literal>HibernateUtil</literal>, or utilized third-party frameworks, such as Spring or Pico, which provided proxy/interception-based contextual sessions."
+msgstr "ä½¿ç¨ Hibernate ç大夿°åºç¨ç¨åºéè¦æç§å½¢å¼çâä¸ä¸æç¸å
³çâä¼è¯ï¼ç¹å®çä¼è¯å¨æ´ä¸ªç¹å®çä¸ä¸æèå´å
å§ç»ææãç¶èï¼å¯¹ä¸åç±»åçåºç¨ç¨åºèè¨ï¼è¦ä¸ºä»ä¹æ¯ç»æè¿ç§âä¸ä¸æâä¸ä¸ä¸ªå®ä¹é常æ¯å°é¾çï¼ä¸åçä¸ä¸æå¯¹âå½åâè¿ä¸ªæ¦å¿µå®ä¹äºä¸åçèå´ãå¨ 3.0 çæ¬ä¹åï¼ä½¿ç¨ Hibernate çç¨åºè¦ä¹éç¨èªè¡ç¼åçåºäº <literal>ThreadLocal</literal> çä¸ä¸æä¼è¯ï¼è¦ä¹éç¨ <literal>HibernateUtil</literal> è¿æ ·çè¾
å©ç±»ï¼è¦ä¹éç¨ç¬¬ä¸æ¹æ¡æ¶ï¼æ¯å¦ Spring æ Picoï¼ï¼å®ä»¬æä¾äºåºäºä»£çï¼proxyï¼æè
åºäºæ¦æªå¨ï¼interceptionï¼çä¸ä¸æç¸å
³çä¼è¯ã"
#. Tag: para
-#: architecture.xml:313
-#, fuzzy, no-c-format
-msgid ""
-"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
-"getCurrentSession()</literal> method. Initially, this assumed usage of "
-"<literal>JTA</literal> transactions, where the <literal>JTA</literal> "
-"transaction defined both the scope and context of a current session. Given "
-"the maturity of the numerous stand-alone <literal>JTA TransactionManager</"
-"literal> implementations, most, if not all, applications should be using "
-"<literal>JTA</literal> transaction management, whether or not they are "
-"deployed into a <literal>J2EE</literal> container. Based on that, the "
-"<literal>JTA</literal>-based contextual sessions are all you need to use."
-msgstr ""
-"ä»3.0.1çæ¬å¼å§ï¼Hibernateå¢å äº<literal>SessionFactory.getCurrentSession()</"
-"literal>æ¹æ³ãä¸å¼å§ï¼å®åå®äºéç¨<literal>JTA</literal>äºå¡ï¼<literal>JTA</"
-"literal>äºå¡å®ä¹äºå½åsessionçèå´åä¸ä¸æ(scope and context)ãHibernateå¼å"
-"å¢éåä¿¡ï¼å 为æå¥½å 个ç¬ç«ç<literal>JTA TransactionManager</literal>å®ç°ç¨³å®"
-"å¯ç¨ï¼ä¸è®ºæ¯å¦è¢«é¨ç½²å°ä¸ä¸ª<literal>J2EE</literal>容å¨ä¸ï¼å¤§å¤æ°(åè¥ä¸æ¯ææ"
-"çï¼åºç¨ç¨åºé½åºè¯¥éç¨<literal>JTA</literal>äºå¡ç®¡çãåºäºè¿ä¸ç¹ï¼éç¨"
-"<literal>JTA</literal>çä¸ä¸æç¸å
³sessionå¯ä»¥æ»¡è¶³ä½ ä¸åéè¦ã"
+#, no-c-format
+msgid "Starting with version 3.0.1, Hibernate added the <literal>SessionFactory.getCurrentSession()</literal> method. Initially, this assumed usage of <literal>JTA</literal> transactions, where the <literal>JTA</literal> transaction defined both the scope and context of a current session. Given the maturity of the numerous stand-alone <literal>JTA TransactionManager</literal> implementations, most, if not all, applications should be using <literal>JTA</literal> transaction management, whether or not they are deployed into a <literal>J2EE</literal> container. Based on that, the <literal>JTA</literal>-based contextual sessions are all you need to use."
+msgstr "ä» 3.0.1 çæ¬å¼å§ï¼Hibernate å¢å äº <literal>SessionFactory.getCurrentSession()</literal> æ¹æ³ãä¸å¼å§ï¼å®åå®äºéç¨ <literal>JTA</literal> äºå¡ï¼<literal>JTA</literal> äºå¡å®ä¹äºå½å session çèå´åä¸ä¸æï¼scope å contextï¼ãå 为æå¥½å 个ç¬ç«ç <literal>JTA TransactionManager</literal> å®ç°ç¨³å®å¯ç¨ï¼ä¸è®ºæ¯å¦è¢«é¨ç½²å°ä¸ä¸ª <literal>J2EE</literal> 容å¨ä¸ï¼å¤§å¤æ°ï¼åè¥ä¸æ¯ææçï¼åºç¨ç¨åºé½åºè¯¥éç¨ <literal>JTA</literal> äºå¡ç®¡çãåºäºè¿ä¸ç¹ï¼éç¨ <literal>JTA</literal> çä¸ä¸æç¸å
³çä¼è¯å¯ä»¥æ»¡è¶³ä½ ä¸åéè¦ã"
#. Tag: para
-#: architecture.xml:323
-#, fuzzy, no-c-format
-msgid ""
-"However, as of version 3.1, the processing behind <literal>SessionFactory."
-"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
-"interface, <literal>org.hibernate.context.CurrentSessionContext</literal>, "
-"and a new configuration parameter, <literal>hibernate."
-"current_session_context_class</literal>, have been added to allow "
-"pluggability of the scope and context of defining current sessions."
-msgstr ""
-"æ´å¥½çæ¯ï¼ä»3.1å¼å§ï¼<literal>SessionFactory.getCurrentSession()</literal>ç"
-"åå°å®ç°æ¯å¯ææçãå æ¤ï¼æä»¬å¼å
¥äºæ°çæ©å±æ¥å£(<literal>org.hibernate."
-"context.CurrentSessionContext</literal>)åæ°çé
ç½®åæ°(<literal>hibernate."
-"current_session_context_class</literal>)ï¼ä»¥ä¾¿å¯¹ä»ä¹æ¯âå½åsessionâçèå´åä¸"
-"䏿(scope and context)çå®ä¹è¿è¡ææã"
+#, no-c-format
+msgid "However, as of version 3.1, the processing behind <literal>SessionFactory.getCurrentSession()</literal> is now pluggable. To that end, a new extension interface, <literal>org.hibernate.context.CurrentSessionContext</literal>, and a new configuration parameter, <literal>hibernate.current_session_context_class</literal>, have been added to allow pluggability of the scope and context of defining current sessions."
+msgstr "æ´å¥½çæ¯ï¼ä» 3.1 å¼å§ï¼<literal>SessionFactory.getCurrentSession()</literal> çåå°å®ç°æ¯å¯ææçãå æ¤ï¼æä»¬å¼å
¥äºæ°çæ©å±æ¥å£ï¼<literal>org.hibernate.context.CurrentSessionContext</literal>ï¼åæ°çé
ç½®åæ°ï¼<literal>hibernate.current_session_context_class</literal>ï¼ï¼ä»¥ä¾¿å¯¹ä»ä¹æ¯å½åä¼è¯çèå´ï¼scopeï¼åä¸ä¸æï¼contextï¼çå®ä¹è¿è¡ææã"
#. Tag: para
-#: architecture.xml:330
-#, fuzzy, no-c-format
-msgid ""
-"See the Javadocs for the <literal>org.hibernate.context."
-"CurrentSessionContext</literal> interface for a detailed discussion of its "
-"contract. It defines a single method, <literal>currentSession()</literal>, "
-"by which the implementation is responsible for tracking the current "
-"contextual session. Out-of-the-box, Hibernate comes with three "
-"implementations of this interface:"
-msgstr ""
-"请åé
<literal>org.hibernate.context.CurrentSessionContext</literal>æ¥å£ç"
-"Javadoc,é£éæå
³äºå®çå¥çº¦ç详ç»è®¨è®ºãå®å®ä¹äºåä¸çæ¹æ³ï¼"
-"<literal>currentSession()</literal>ï¼ç¹å®çå®ç°ç¨å®æ¥è´è´£è·è¸ªå½åçä¸ä¸æ"
-"sessionãHibernateå
ç½®äºæ¤æ¥å£çä¸ç§å®ç°ã"
+#, no-c-format
+msgid "See the Javadocs for the <literal>org.hibernate.context.CurrentSessionContext</literal> interface for a detailed discussion of its contract. It defines a single method, <literal>currentSession()</literal>, by which the implementation is responsible for tracking the current contextual session. Out-of-the-box, Hibernate comes with three implementations of this interface:"
+msgstr "请åé
<literal>org.hibernate.context.CurrentSessionContext</literal> æ¥å£ç Javadocï¼é£éæå
³äºå®çå¥çº¦ç详ç»è®¨è®ºãå®å®ä¹äºåä¸çæ¹æ³ï¼<literal>currentSession()</literal>ï¼ç¹å®çå®ç°ç¨å®æ¥è´è´£è·è¸ªå½åçä¸ä¸æç¸å
³çä¼è¯ãHibernate å
ç½®äºæ¤æ¥å£çä¸ç§å®ç°ï¼"
#. Tag: para
-#: architecture.xml:340
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.context.JTASessionContext</literal>: current sessions "
-"are tracked and scoped by a <literal>JTA</literal> transaction. The "
-"processing here is exactly the same as in the older JTA-only approach. See "
-"the Javadocs for details."
-msgstr ""
-"<literal>org.hibernate.context.JTASessionContext</literal> - å½åsessionæ ¹æ®"
-"<literal>JTA</literal>æ¥è·è¸ªåçå®ãè¿å以åçä»
æ¯æJTAçæ¹æ³æ¯å®å
¨ä¸æ ·çã详"
-"æ
请åé
Javadocã"
+#, no-c-format
+msgid "<literal>org.hibernate.context.JTASessionContext</literal>: current sessions are tracked and scoped by a <literal>JTA</literal> transaction. The processing here is exactly the same as in the older JTA-only approach. See the Javadocs for details."
+msgstr "<literal>org.hibernate.context.JTASessionContext</literal>ï¼å½åä¼è¯æ ¹æ® <literal>JTA</literal> æ¥è·è¸ªåçå®ãè¿å以åçä»
æ¯æ JTA çæ¹æ³æ¯å®å
¨ä¸æ ·çã详æ
请åé
Javadocã"
#. Tag: para
-#: architecture.xml:348
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current "
-"sessions are tracked by thread of execution. See the Javadocs for details."
-msgstr ""
-"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - å½å"
-"sessionéè¿å½åæ§è¡ççº¿ç¨æ¥è·è¸ªåçå®ã详æ
ä¹è¯·åé
Javadocã"
+#, no-c-format
+msgid "<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current sessions are tracked by thread of execution. See the Javadocs for details."
+msgstr "<literal>org.hibernate.context.ThreadLocalSessionContext</literal>ï¼å½åä¼è¯éè¿å½åæ§è¡ççº¿ç¨æ¥è·è¸ªåçå®ã详æ
ä¹è¯·åé
Javadocã"
#. Tag: para
-#: architecture.xml:354
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.context.ManagedSessionContext</literal>: current "
-"sessions are tracked by thread of execution. However, you are responsible to "
-"bind and unbind a <literal>Session</literal> instance with static methods on "
-"this class: it does not open, flush, or close a <literal>Session</literal>."
-msgstr ""
-"<literal>org.hibernate.context.ManagedSessionContext</literal> - å½åsession"
-"éè¿å½åæ§è¡ççº¿ç¨æ¥è·è¸ªåçå®ã使¯ï¼ä½ éè¦è´è´£ä½¿ç¨è¿ä¸ªç±»çéææ¹æ³å°"
-"<literal>Session</literal>å®ä¾ç»å®ãæè
åæ¶ç»å®ï¼å®å¹¶ä¸ä¼æå¼(open)ãflushæ"
-"è
å
³é(close)ä»»ä½<literal>Session</literal>ã"
+#, no-c-format
+msgid "<literal>org.hibernate.context.ManagedSessionContext</literal>: current sessions are tracked by thread of execution. However, you are responsible to bind and unbind a <literal>Session</literal> instance with static methods on this class: it does not open, flush, or close a <literal>Session</literal>."
+msgstr "<literal>org.hibernate.context.ManagedSessionContext</literal>ï¼å½åä¼è¯éè¿å½åæ§è¡ççº¿ç¨æ¥è·è¸ªåçå®ã使¯ï¼ä½ éè¦è´è´£ä½¿ç¨è¿ä¸ªç±»çéææ¹æ³å° <literal>Session</literal> å®ä¾ç»å®ãæè
åæ¶ç»å®ï¼å®å¹¶ä¸ä¼æå¼ï¼openï¼ãflush æè
å
³éï¼closeï¼ä»»ä½ <literal>Session</literal>ã"
#. Tag: para
-#: architecture.xml:363
-#, fuzzy, no-c-format
-msgid ""
-"The first two implementations provide a \"one session - one database "
-"transaction\" programming model. This is also also known and used as "
-"<emphasis>session-per-request</emphasis>. The beginning and end of a "
-"Hibernate session is defined by the duration of a database transaction. If "
-"you use programmatic transaction demarcation in plain JSE without JTA, you "
-"are advised to use the Hibernate <literal>Transaction</literal> API to hide "
-"the underlying transaction system from your code. If you use JTA, you can "
-"utilize the JTA interfaces to demarcate transactions. If you execute in an "
-"EJB container that supports CMT, transaction boundaries are defined "
-"declaratively and you do not need any transaction or session demarcation "
-"operations in your code. Refer to <xref linkend=\"transactions\"/> for more "
-"information and code examples."
-msgstr ""
-"å两ç§å®ç°é½æä¾äºâæ¯æ°æ®åºäºå¡å¯¹åºä¸ä¸ªsessionâçç¼ç¨æ¨¡åï¼ä¹ç§°ä½<emphasis>æ¯"
-"次请æ±ä¸ä¸ªsession</emphasis>ãHibernate sessionçèµ·å§åç»ç»ç±æ°æ®åºäºå¡ççå"
-"æ¥æ§å¶ãåè¥ä½ å¨çº¯ç²¹ç Java SEä¹ä¸éç¨èªè¡ç¼åä»£ç æ¥ç®¡çäºå¡,èä¸ä½¿ç¨JTAï¼å»º"
-"è®®ä½ ä½¿ç¨Hibernate <literal>Transaction</literal> APIæ¥æåºå±äºå¡å®ç°ä»ä½ ç代"
-"ç ä¸éèæãå¦æä½ ä½¿ç¨JTAï¼è¯·ä½¿ç¨JTAå壿¥ç®¡çTransactionãå¦æä½ å¨æ¯æCMTç"
-"EJB容å¨ä¸æ§è¡ä»£ç ï¼äºå¡è¾¹çæ¯å£°æå¼å®ä¹çï¼ä½ ä¸éè¦å¨ä»£ç ä¸è¿è¡ä»»ä½äºå¡æ"
-"session管çæä½ã请åé
<xref linkend=\"transactions\"/>ä¸èæ¥é
读æ´å¤çå
容å"
-"示ä¾ä»£ç ã"
+#, no-c-format
+msgid "The first two implementations provide a \"one session - one database transaction\" programming model. This is also also known and used as <emphasis>session-per-request</emphasis>. The beginning and end of a Hibernate session is defined by the duration of a database transaction. If you use programmatic transaction demarcation in plain JSE without JTA, you are advised to use the Hibernate <literal>Transaction</literal> API to hide the underlying transaction system from your code. If you use JTA, you can utilize the JTA interfaces to demarcate transactions. If you execute in an EJB container that supports CMT, transaction boundaries are defined declaratively and you do not need any transaction or session demarcation operations in your code. Refer to <xref linkend=\"transactions\" /> for more information and code examples."
+msgstr "å两ç§å®ç°é½æä¾äºâone session - one database transactionâçç¼ç¨æ¨¡åï¼ä¹ç§°ä½ <emphasis>session-per-request</emphasis>ãHibernate session çèµ·å§åç»ç»ç±æ°æ®åºäºå¡çç忥æ§å¶ãåè¥ä½ å¨çº¯ç²¹ç Java SE ä¹ä¸éç¨èªè¡ç¼åä»£ç æ¥ç®¡çäºå¡ï¼èä¸ä½¿ç¨ JTAï¼å»ºè®®ä½ ä½¿ç¨ Hibernate <literal>Transaction</literal> API æ¥æåºå±äºå¡å®ç°ä»ä½ ç代ç ä¸éèæãå¦æä½ ä½¿ç¨ JTAï¼è¯·ä½¿ç¨ JTA æ¥å£æ¥å¯¹äºå¡éçãå¦æä½ å¨æ¯æ CMT ç EJB 容å¨ä¸æ§è¡ä»£ç ï¼äºå¡è¾¹çæ¯å£°æå¼å®ä¹çï¼ä½ ä¸éè¦å¨ä»£ç ä¸è¿è¡ä»»ä½äºå¡æä¼è¯ç®¡çæä½ã请åé
<xref linkend=\"transactions\"/> ä¸èæ¥é
读æ´å¤çå
容å示ä¾ä»£ç ã"
#. Tag: para
-#: architecture.xml:375
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>hibernate.current_session_context_class</literal> configuration "
-"parameter defines which <literal>org.hibernate.context."
-"CurrentSessionContext</literal> implementation should be used. For backwards "
-"compatibility, if this configuration parameter is not set but a <literal>org."
-"hibernate.transaction.TransactionManagerLookup</literal> is configured, "
-"Hibernate will use the <literal>org.hibernate.context.JTASessionContext</"
-"literal>. Typically, the value of this parameter would just name the "
-"implementation class to use. For the three out-of-the-box implementations, "
-"however, there are three corresponding short names: \"jta\", \"thread\", and "
-"\"managed\"."
-msgstr ""
-"<literal>hibernate.current_session_context_class</literal>é
ç½®åæ°å®ä¹äºåºè¯¥"
-"éç¨åªä¸ª<literal>org.hibernate.context.CurrentSessionContext</literal>å®ç°ã"
-"注æï¼ä¸ºäºåä¸å
¼å®¹ï¼å¦ææªé
ç½®æ¤åæ°ï¼ä½æ¯åå¨<literal>org.hibernate."
-"transaction.TransactionManagerLookup</literal>çé
ç½®ï¼Hibernateä¼éç¨"
-"<literal>org.hibernate.context.JTASessionContext</literal>ãä¸è¬èè¨ï¼æ¤åæ°"
-"ç弿æäºè¦ä½¿ç¨çå®ç°ç±»çå
¨åï¼ä½é£ä¸ç§å
ç½®çå®ç°å¯ä»¥ä½¿ç¨ç®åï¼å³\"jta\"ã"
-"\"thread\"å\"managed\"ã"
+#, no-c-format
+msgid "The <literal>hibernate.current_session_context_class</literal> configuration parameter defines which <literal>org.hibernate.context.CurrentSessionContext</literal> implementation should be used. For backwards compatibility, if this configuration parameter is not set but a <literal>org.hibernate.transaction.TransactionManagerLookup</literal> is configured, Hibernate will use the <literal>org.hibernate.context.JTASessionContext</literal>. Typically, the value of this parameter would just name the implementation class to use. For the three out-of-the-box implementations, however, there are three corresponding short names: \"jta\", \"thread\", and \"managed\"."
+msgstr "<literal>hibernate.current_session_context_class</literal> é
ç½®åæ°å®ä¹äºåºè¯¥éç¨åªä¸ª <literal>org.hibernate.context.CurrentSessionContext</literal> å®ç°ã注æï¼ä¸ºäºåä¸å
¼å®¹ï¼å¦ææªé
ç½®æ¤åæ°ï¼ä½æ¯åå¨ <literal>org.hibernate.transaction.TransactionManagerLookup</literal> çé
ç½®ï¼Hibernate ä¼éç¨<literal>org.hibernate.context.JTASessionContext</literal>ãä¸è¬èè¨ï¼æ¤åæ°ç弿æäºè¦ä½¿ç¨çå®ç°ç±»çå
¨åï¼ä½é£ä¸ç§å
ç½®çå®ç°å¯ä»¥ä½¿ç¨ç®åï¼å³ \"jta\"ã\"thread\" å \"managed\"ã "
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/association_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/association_mapping.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/association_mapping.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,30 +1,32 @@
+# translation of association_mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: association_mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"PO-Revision-Date: 2009-11-03 11:04+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: association_mapping.xml:30
#, no-c-format
msgid "Association Mappings"
msgstr "å
³èå
³ç³»æ å°"
#. Tag: title
-#: association_mapping.xml:33
#, no-c-format
msgid "Introduction"
msgstr "ä»ç»"
#. Tag: para
-#: association_mapping.xml:35
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Association mappings are often the most difficult thing to implement "
"correctly. In this section we examine some canonical cases one by one, "
@@ -33,94 +35,52 @@
"examples."
msgstr ""
"å
³èå
³ç³»æ å°é常æ
嵿¯æé¾é
ç½®æ£ç¡®çãå¨è¿ä¸ªé¨åä¸ï¼æä»¬ä»ååå
³ç³»æ å°å¼å§ï¼"
-"ç¶åèèååå
³ç³»æ å°ï¼ç±æµ
è³æ·±è®²è¿°ä¸éå
¸åçæ¡ä¾ã卿æçä¾åä¸ï¼æä»¬é½ä½¿ç¨ "
-"<literal>Person</literal>å<literal>Address</literal>ã"
+"ç¶åèèååå
³ç³»æ å°ï¼éæ¥è®²è§£å
¸åçæ¡ä¾ã卿æçä¾åä¸ï¼æä»¬é½ä½¿å°ç¨ "
+"<literal>Person</literal> å <literal>Address</literal>ã"
#. Tag: para
-#: association_mapping.xml:43
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Associations will be classified by multiplicity and whether or not they map "
"to an intervening join table."
-msgstr "æä»¬æ ¹æ®æ å°å
³ç³»æ¯å¦æ¶åè¿æ¥è¡¨ä»¥å夿 ·æ§æ¥ååå
³èç±»åã"
+msgstr ""
+"æä»¬æ ¹æ®æ å°å
³ç³»æ¯å¦æ¶åè¿æ¥è¡¨ä»¥å夿 ·æ§ï¼multiplicityï¼æ¥ååå
³èç±»åã "
#. Tag: para
-#: association_mapping.xml:48
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Nullable foreign keys are not considered to be good practice in traditional "
"data modelling, so our examples do not use nullable foreign keys. This is "
"not a requirement of Hibernate, and the mappings will work if you drop the "
"nullability constraints."
msgstr ""
-"å¨ä¼ ç»çæ°æ®å»ºæ¨¡ä¸ï¼å
许为Nullå¼çå¤é®è¢«è®¤ä¸ºæ¯ä¸ç§ä¸å¥½çå®è·µï¼å æ¤æä»¬ææç"
-"ä¾åä¸é½ä½¿ç¨ä¸å
许为Nullçå¤é®ãè¿å¹¶ä¸æ¯Hibernateçè¦æ±ï¼å³ä½¿ä½ å 餿ä¸å
许为"
-"Nullç约æï¼Hibernateæ å°ä¸æ ·å¯ä»¥å·¥ä½çå¾å¥½ã"
+"å¨ä¼ ç»çæ°æ®å»ºæ¨¡ä¸ï¼å
许为 Null å¼çå¤é®è¢«è®¤ä¸ºæ¯ä¸ç§ä¸å¥½çå®è·µï¼å æ¤æä»¬ææ"
+"çä¾åä¸é½ä½¿ç¨ä¸å
许为 Null çå¤é®ãè¿å¹¶ä¸æ¯ Hibernateç è¦æ±ï¼å³ä½¿ä½ å 餿ä¸"
+"å
许为 Null ç约æï¼Hibernate æ å°ä¸æ ·å¯ä»¥å·¥ä½çå¾å¥½ã "
#. Tag: title
-#: association_mapping.xml:58
#, no-c-format
msgid "Unidirectional associations"
msgstr "ååå
³èï¼Unidirectional associationsï¼"
#. Tag: title
-#: association_mapping.xml:61 association_mapping.xml:132
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Many-to-one"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"å¤å¯¹ä¸(many to one)\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"å¤å¯¹ä¸ï¼many to oneï¼"
+msgstr "å¤å¯¹ä¸ï¼many-to-oneï¼ "
#. Tag: para
-#: association_mapping.xml:63
#, no-c-format
msgid ""
"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
"common kind of unidirectional association."
-msgstr "<emphasis>ååmany-to-oneå
³è</emphasis>æ¯æå¸¸è§çååå
³èå
³ç³»ã"
+msgstr "<emphasis>åå many-to-one å
³è</emphasis>æ¯æå¸¸è§çååå
³èå
³ç³»ã"
-#. Tag: programlisting
-#: association_mapping.xml:68
+#. Tag: title
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <many-to-one name=\"address\" \n"
-" column=\"addressId\"\n"
-" not-null=\"true\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:69 association_mapping.xml:185
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key, addressId bigint "
-"not null )\n"
-"create table Address ( addressId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
-#. Tag: title
-#: association_mapping.xml:74 association_mapping.xml:145
-#: association_mapping.xml:210
-#, fuzzy, no-c-format
msgid "One-to-one"
-msgstr "ä¸å¯¹ä¸ï¼one to oneï¼"
+msgstr "ä¸å¯¹ä¸ï¼One-to-oneï¼"
#. Tag: para
-#: association_mapping.xml:76
#, no-c-format
msgid ""
"A <emphasis>unidirectional one-to-one association on a foreign key</"
@@ -131,147 +91,42 @@
"emphasis>å 乿¯ä¸æ ·çãå¯ä¸çä¸åå°±æ¯ååä¸å¯¹ä¸å
³èä¸çå¤é®å段å
·æå¯ä¸æ§çº¦"
"æã"
-#. Tag: programlisting
-#: association_mapping.xml:81
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <many-to-one name=\"address\" \n"
-" column=\"addressId\" \n"
-" unique=\"true\"\n"
-" not-null=\"true\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:82 association_mapping.xml:218
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key, addressId bigint "
-"not null unique )\n"
-"create table Address ( addressId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:84
-#, fuzzy, no-c-format
-msgid ""
"A <emphasis>unidirectional one-to-one association on a primary key</"
"emphasis> usually uses a special id generator In this example, however, we "
"have reversed the direction of the association:"
msgstr ""
-"<emphasis>åºäºä¸»é®å
³èçååä¸å¯¹ä¸å
³è</emphasis>é常使ç¨ä¸ä¸ªç¹å®çidçæå¨ã"
-"ï¼è¯·æ³¨æï¼å¨è¿ä¸ªä¾åä¸æä»¬ææ¢äºå
³èçæ¹åãï¼"
+"<emphasis>åºäºä¸»é®å
³èçååä¸å¯¹ä¸å
³è</emphasis>é常使ç¨ä¸ä¸ªç¹å®ç id çæ"
+"å¨ï¼ç¶èå¨è¿ä¸ªä¾åä¸æä»¬ææ¢äºå
³èçæ¹åï¼"
-#. Tag: programlisting
-#: association_mapping.xml:90
+#. Tag: title
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"foreign\">\n"
-" <param name=\"property\">person</param>\n"
-" </generator>\n"
-" </id>\n"
-" <one-to-one name=\"person\" constrained=\"true\"/>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:91 association_mapping.xml:226
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key )\n"
-"create table Address ( personId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
-#. Tag: title
-#: association_mapping.xml:96 association_mapping.xml:118
-#, fuzzy, no-c-format
msgid "One-to-many"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"ä¸å¯¹å¤ï¼one to manyï¼\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"ä¸å¯¹å¤(one to many)"
+msgstr "ä¸å¯¹å¤ï¼one-to-manyï¼ "
#. Tag: para
-#: association_mapping.xml:98
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis>unidirectional one-to-many association on a foreign key</"
"emphasis> is an unusual case, and is not recommended."
msgstr ""
-"<emphasis>åºäºå¤é®å
³èçååä¸å¯¹å¤å
³è</emphasis>æ¯ä¸ç§å¾å°è§çæ
åµï¼å¹¶ä¸æ¨è"
-"使ç¨ã"
+"<emphasis>åºäºå¤é®å
³èçååä¸å¯¹å¤å
³è</emphasis>æ¯ä¸ç§å¾å°è§çæ
åµï¼æä»¬ä¸æ¨"
+"è使ç¨å®ã"
-#. Tag: programlisting
-#: association_mapping.xml:103
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <set name=\"addresses\">\n"
-" <key column=\"personId\" \n"
-" not-null=\"true\"/>\n"
-" <one-to-many class=\"Address\"/>\n"
-" </set>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:104
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key )\n"
-"create table Address ( addressId bigint not null primary key, personId "
-"bigint not null )\n"
-" ]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:106
-#, fuzzy, no-c-format
msgid "You should instead use a join table for this kind of association."
-msgstr "æä»¬è®¤ä¸ºå¯¹äºè¿ç§å
³èå
³ç³»æå¥½ä½¿ç¨è¿æ¥è¡¨ã"
+msgstr "æä»¬è®¤ä¸ºå¯¹äºè¿ç§å
³èå
³ç³»æå¥½ä½¿ç¨è¿æ¥è¡¨ã "
#. Tag: title
-#: association_mapping.xml:115
#, no-c-format
msgid "Unidirectional associations with join tables"
msgstr "使ç¨è¿æ¥è¡¨çååå
³èï¼Unidirectional associations with join tablesï¼"
#. Tag: para
-#: association_mapping.xml:120
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis>unidirectional one-to-many association on a join table</"
"emphasis> is the preferred option. Specifying <literal>unique=\"true\"</"
@@ -281,237 +136,58 @@
"æå®<literal>unique=\"true\"</literal>ï¼æä»¬å¯ä»¥æå¤æ ·æ§ä»å¤å¯¹å¤æ¹å为ä¸å¯¹"
"å¤ã"
-#. Tag: programlisting
-#: association_mapping.xml:126
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <set name=\"addresses\" table=\"PersonAddress\">\n"
-" <key column=\"personId\"/>\n"
-" <many-to-many column=\"addressId\"\n"
-" unique=\"true\"\n"
-" class=\"Address\"/>\n"
-" </set>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:127
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key )\n"
-"create table PersonAddress ( personId not null, addressId bigint not null "
-"primary key )\n"
-"create table Address ( addressId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:134
-#, fuzzy, no-c-format
-msgid ""
"A <emphasis>unidirectional many-to-one association on a join table</"
"emphasis> is common when the association is optional. For example:"
msgstr ""
"<emphasis>åºäºè¿æ¥è¡¨çååå¤å¯¹ä¸å
³è</emphasis>å¨å
³èå
³ç³»å¯éçæ
åµä¸åºç¨ä¹å¾"
-"æ®éã"
+"æ®éãä¾å¦ï¼"
-#. Tag: programlisting
-#: association_mapping.xml:139
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <join table=\"PersonAddress\" \n"
-" optional=\"true\">\n"
-" <key column=\"personId\" unique=\"true\"/>\n"
-" <many-to-one name=\"address\"\n"
-" column=\"addressId\" \n"
-" not-null=\"true\"/>\n"
-" </join>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:140
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key )\n"
-"create table PersonAddress ( personId bigint not null primary key, addressId "
-"bigint not null )\n"
-"create table Address ( addressId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:147
-#, fuzzy, no-c-format
-msgid ""
"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
"is possible, but extremely unusual."
msgstr ""
-"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹ä¸å
³è</emphasis>é常å°è§ï¼ä½ä¹æ¯å¯è¡çã"
+"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹ä¸å
³è</emphasis>乿¯å¯è¡çï¼ä½é常å°è§ã"
-#. Tag: programlisting
-#: association_mapping.xml:152
+#. Tag: title
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <join table=\"PersonAddress\" \n"
-" optional=\"true\">\n"
-" <key column=\"personId\" \n"
-" unique=\"true\"/>\n"
-" <many-to-one name=\"address\"\n"
-" column=\"addressId\" \n"
-" not-null=\"true\"\n"
-" unique=\"true\"/>\n"
-" </join>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:153 association_mapping.xml:258
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key )\n"
-"create table PersonAddress ( personId bigint not null primary key, addressId "
-"bigint not null unique )\n"
-"create table Address ( addressId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
-#. Tag: title
-#: association_mapping.xml:158 association_mapping.xml:263
-#, fuzzy, no-c-format
msgid "Many-to-many"
-msgstr "å¤å¯¹å¤ï¼many to manyï¼"
+msgstr "å¤å¯¹å¤ï¼many-to-manyï¼ "
#. Tag: para
-#: association_mapping.xml:160
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Finally, here is an example of a <emphasis>unidirectional many-to-many "
"association</emphasis>."
-msgstr "æåï¼è¿æ <emphasis>ååå¤å¯¹å¤å
³è</emphasis>."
+msgstr "æåï¼è¿éæ¯ä¸ä¸ª<emphasis>ååå¤å¯¹å¤å
³è</emphasis>çä¾åã"
-#. Tag: programlisting
-#: association_mapping.xml:164
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <set name=\"addresses\" table=\"PersonAddress\">\n"
-" <key column=\"personId\"/>\n"
-" <many-to-many column=\"addressId\"\n"
-" class=\"Address\"/>\n"
-" </set>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:165 association_mapping.xml:271
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key )\n"
-"create table PersonAddress ( personId bigint not null, addressId bigint not "
-"null, primary key (personId, addressId) )\n"
-"create table Address ( addressId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
#. Tag: title
-#: association_mapping.xml:172
#, no-c-format
msgid "Bidirectional associations"
msgstr "ååå
³èï¼Bidirectional associationsï¼"
#. Tag: title
-#: association_mapping.xml:175 association_mapping.xml:236
-#, fuzzy, no-c-format
+#, no-c-format
msgid "one-to-many / many-to-one"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"ä¸å¯¹å¤ï¼one to many) / å¤å¯¹ä¸ï¼many to oneï¼\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"ä¸å¯¹å¤ï¼one to manyï¼ /å¤å¯¹ä¸ï¼ many to oneï¼"
+msgstr "ä¸å¯¹å¤ï¼one to many)/å¤å¯¹ä¸ï¼many to oneï¼ "
#. Tag: para
-#: association_mapping.xml:177
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis>bidirectional many-to-one association</emphasis> is the most "
"common kind of association. The following example illustrates the standard "
"parent/child relationship."
msgstr ""
-"<emphasis>ååå¤å¯¹ä¸å
³è</emphasis> æ¯æå¸¸è§çå
³èå
³ç³»ãï¼è¿ä¹æ¯æ åçç¶/åå
³"
-"èå
³ç³»ãï¼"
+"<emphasis>ååå¤å¯¹ä¸å
³è</emphasis> æ¯æå¸¸è§çå
³èå
³ç³»ãä¸é¢çä¾åè§£éäºè¿ç§"
+"æ åçç¶/åå
³èå
³ç³»ã"
-#. Tag: programlisting
-#: association_mapping.xml:183
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <many-to-one name=\"address\" \n"
-" column=\"addressId\"\n"
-" not-null=\"true\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <set name=\"people\" inverse=\"true\">\n"
-" <key column=\"addressId\"/>\n"
-" <one-to-many class=\"Person\"/>\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:187
-#, fuzzy, no-c-format
-msgid ""
"If you use a <literal>List</literal>, or other indexed collection, set the "
"<literal>key</literal> column of the foreign key to <literal>not null</"
"literal>. Hibernate will manage the association from the collections side to "
@@ -519,40 +195,14 @@
"by setting <literal>update=\"false\"</literal> and <literal>insert=\"false"
"\"</literal>:"
msgstr ""
-"å¦æä½ ä½¿ç¨<literal>List</literal>(æè
å
¶ä»æåºéåç±»)ï¼ä½ éè¦è®¾ç½®å¤é®å¯¹åºç"
-"<literal>key</literal>å为 <literal>not null</literal>,让Hibernateæ¥ä»éå端"
-"管çå
³èï¼ç»´æ¤æ¯ä¸ªå
ç´ çç´¢å¼ï¼éè¿è®¾ç½®<literal>update=\"false\"</literal> "
-"and <literal>insert=\"false\"</literal>æ¥å¯¹å¦ä¸ç«¯ååæä½ï¼ã"
+"å¦æä½ ä½¿ç¨ <literal>List</literal>ï¼æè
å
¶ä»æåºéåç±»ï¼ï¼ä½ éè¦è®¾ç½®å¤é®å¯¹åº"
+"ç <literal>key</literal> å为 <literal>not null</literal>ãHibernate å°ä»é"
+"å端管çå
³èï¼ç»´æ¤æ¯ä¸ªå
ç´ çç´¢å¼ï¼å¹¶éè¿è®¾ç½® <literal>update=\"false\"</"
+"literal> å <literal>insert=\"false\"</literal> æ¥å¯¹å¦ä¸ç«¯ååæä½ã"
-#. Tag: programlisting
-#: association_mapping.xml:195
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\"/>\n"
-" ...\n"
-" <many-to-one name=\"address\"\n"
-" column=\"addressId\"\n"
-" not-null=\"true\"\n"
-" insert=\"false\"\n"
-" update=\"false\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\"/>\n"
-" ...\n"
-" <list name=\"people\">\n"
-" <key column=\"addressId\" not-null=\"true\"/>\n"
-" <list-index column=\"peopleIdx\"/>\n"
-" <one-to-many class=\"Person\"/>\n"
-" </list>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:197
-#, fuzzy, no-c-format
-msgid ""
"If the underlying foreign key column is <literal>NOT NULL</literal>, it is "
"important that you define <literal>not-null=\"true\"</literal> on the "
"<literal><key></literal> element of the collection mapping. Do not "
@@ -560,230 +210,71 @@
"<literal><column></literal> element, but on the <literal><key></"
"literal> element."
msgstr ""
-"åè¥éåæ å°ç<literal><key></literal>å
ç´ å¯¹åºçåºå±å¤é®å段æ¯"
-"<literal>NOT NULL</literal>çï¼é£ä¹ä¸ºè¿ä¸keyå
ç´ å®ä¹<literal>not-null=\"true"
-"\"</literal>æ¯å¾éè¦çãä¸è¦ä»
ä»
为å¯è½çåµå¥<literal><column></literal>"
-"å
ç´ å®ä¹<literal>not-null=\"true\"</literal>ï¼<literal><key></literal>"
-"å
ç´ ä¹æ¯éè¦çã"
+"åè¥éåæ å°ç <literal><key></literal> å
ç´ å¯¹åºçåºå±å¤é®åæ®µæ¯ "
+"<literal>NOT NULL</literal> çï¼é£ä¹ä¸ºè¿ä¸ key å
ç´ å®ä¹ <literal>not-null="
+"\"true\"</literal> æ¯å¾éè¦çãä¸è¦ä»
ä»
为å¯è½çåµå¥ <literal><column></"
+"literal>å
ç´ å®ä¹ <literal>not-null=\"true\"</literal>ï¼<literal><key></"
+"literal> å
ç´ ä¹æ¯éè¦çã "
#. Tag: para
-#: association_mapping.xml:212
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
"is common:"
-msgstr "<emphasis>åºäºå¤é®å
³èçååä¸å¯¹ä¸å
³è</emphasis>ä¹å¾å¸¸è§ã"
+msgstr "<emphasis>åºäºå¤é®å
³èçååä¸å¯¹ä¸å
³è</emphasis>ä¹å¾å¸¸è§ã "
-#. Tag: programlisting
-#: association_mapping.xml:217
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <many-to-one name=\"address\" \n"
-" column=\"addressId\" \n"
-" unique=\"true\"\n"
-" not-null=\"true\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <one-to-one name=\"person\" \n"
-" property-ref=\"address\"/>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:220
-#, fuzzy, no-c-format
-msgid ""
"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
"uses the special id generator:"
-msgstr "<emphasis>åºäºä¸»é®å
³èçä¸å¯¹ä¸å
³è</emphasis>éè¦ä½¿ç¨ç¹å®çidçæå¨ã"
-
-#. Tag: programlisting
-#: association_mapping.xml:225
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <one-to-one name=\"address\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"foreign\">\n"
-" <param name=\"property\">person</param>\n"
-" </generator>\n"
-" </id>\n"
-" <one-to-one name=\"person\" \n"
-" constrained=\"true\"/>\n"
-"</class>]]>"
msgstr ""
+"<emphasis>åºäºä¸»é®å
³èçä¸å¯¹ä¸å
³è</emphasis>éè¦ä½¿ç¨ç¹å®ç id çæå¨ï¼"
#. Tag: title
-#: association_mapping.xml:233
#, no-c-format
msgid "Bidirectional associations with join tables"
msgstr "使ç¨è¿æ¥è¡¨çååå
³èï¼Bidirectional associations with join tablesï¼"
#. Tag: para
-#: association_mapping.xml:238
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The following is an example of a <emphasis>bidirectional one-to-many "
"association on a join table</emphasis>. The <literal>inverse=\"true\"</"
"literal> can go on either end of the association, on the collection, or on "
"the join."
msgstr ""
-"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹å¤å
³è</emphasis>ãæ³¨æ<literal>inverse=\"true"
-"\"</literal>å¯ä»¥åºç°å¨å
³èçä»»æä¸ç«¯ï¼å³collection端æè
join端ã"
+"ä¸é¢æ¯ä¸ä¸ª<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹å¤å
³è</emphasis>çä¾åãæ³¨æ "
+"<literal>inverse=\"true\"</literal> å¯ä»¥åºç°å¨å
³èçä»»æä¸ç«¯ï¼å³ collection "
+"端æè
join 端ã"
-#. Tag: programlisting
-#: association_mapping.xml:244
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <set name=\"addresses\" \n"
-" table=\"PersonAddress\">\n"
-" <key column=\"personId\"/>\n"
-" <many-to-many column=\"addressId\"\n"
-" unique=\"true\"\n"
-" class=\"Address\"/>\n"
-" </set>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <join table=\"PersonAddress\" \n"
-" inverse=\"true\" \n"
-" optional=\"true\">\n"
-" <key column=\"addressId\"/>\n"
-" <many-to-one name=\"person\"\n"
-" column=\"personId\"\n"
-" not-null=\"true\"/>\n"
-" </join>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: association_mapping.xml:245
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"create table Person ( personId bigint not null primary key )\n"
-"create table PersonAddress ( personId bigint not null, addressId bigint not "
-"null primary key )\n"
-"create table Address ( addressId bigint not null primary key )\n"
-" ]]>"
-msgstr ""
-
#. Tag: title
-#: association_mapping.xml:250
#, no-c-format
msgid "one to one"
msgstr "ä¸å¯¹ä¸ï¼one to oneï¼"
#. Tag: para
-#: association_mapping.xml:252
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
"is possible, but extremely unusual."
msgstr ""
-"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹ä¸å
³è</emphasis>æä¸ºç½è§ï¼ä½ä¹æ¯å¯è¡çã"
+"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹ä¸å
³è</emphasis>乿¯å¯è¡çï¼ä½æä¸ºç½è§ã"
-#. Tag: programlisting
-#: association_mapping.xml:257
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <join table=\"PersonAddress\" \n"
-" optional=\"true\">\n"
-" <key column=\"personId\" \n"
-" unique=\"true\"/>\n"
-" <many-to-one name=\"address\"\n"
-" column=\"addressId\" \n"
-" not-null=\"true\"\n"
-" unique=\"true\"/>\n"
-" </join>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <join table=\"PersonAddress\" \n"
-" optional=\"true\"\n"
-" inverse=\"true\">\n"
-" <key column=\"addressId\" \n"
-" unique=\"true\"/>\n"
-" <many-to-one name=\"person\"\n"
-" column=\"personId\" \n"
-" not-null=\"true\"\n"
-" unique=\"true\"/>\n"
-" </join>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:265
-#, fuzzy, no-c-format
-msgid ""
"Here is an example of a <emphasis>bidirectional many-to-many association</"
"emphasis>."
-msgstr "æåï¼è¿æ <emphasis>ååå¤å¯¹å¤å
³è</emphasis>."
+msgstr "ä¸é¢æ¯ä¸ä¸ª<emphasis>ååå¤å¯¹å¤å
³è</emphasis>çä¾åã"
-#. Tag: programlisting
-#: association_mapping.xml:269
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\" column=\"personId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <set name=\"addresses\" table=\"PersonAddress\">\n"
-" <key column=\"personId\"/>\n"
-" <many-to-many column=\"addressId\"\n"
-" class=\"Address\"/>\n"
-" </set>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-" <id name=\"id\" column=\"addressId\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
-" <key column=\"addressId\"/>\n"
-" <many-to-many column=\"personId\"\n"
-" class=\"Person\"/>\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: title
-#: association_mapping.xml:278
#, no-c-format
msgid "More complex association mappings"
msgstr "æ´å¤æçå
³èæ å°"
#. Tag: para
-#: association_mapping.xml:280
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"More complex association joins are <emphasis>extremely</emphasis> rare. "
"Hibernate handles more complex situations by using SQL fragments embedded in "
@@ -792,52 +283,23 @@
"<literal>effectiveEndDate</literal> and <literal>effectiveStartDate</"
"literal>columns, it would be mapped as follows:"
msgstr ""
-"æ´å¤æçå
³èè¿æ¥<emphasis>æä¸º</emphasis>ç½è§ã éè¿å¨æ å°ææ¡£ä¸åµå
¥SQLçæï¼"
-"Hibernateä¹å¯ä»¥å¤çæ´ä¸ºå¤æçæ
åµãæ¯å¦ï¼åè¥å
å«åå²å¸æ·æ°æ®ç表å®ä¹äº"
-"<literal>accountNumber</literal>, <literal>effectiveEndDate</literal> å"
-"<literal>effectiveStartDate</literal>åæ®µï¼æç
§ä¸é¢æ å°ï¼"
+"æ´å¤æçå
³èè¿æ¥<emphasis>æä¸º</emphasis>ç½è§ãéè¿å¨æ å°ææ¡£ä¸åµå
¥ SQL ç"
+"æï¼Hibernate ä¹å¯ä»¥å¤çæ´ä¸ºå¤æçæ
åµãæ¯å¦ï¼åè¥å
å«åå²å¸æ·æ°æ®ç表å®ä¹äº "
+"<literal>accountNumber</literal>ã<literal>effectiveEndDate</literal> å "
+"<literal>effectiveStartDate</literal> åæ®µï¼æç
§ä¸é¢æ å°ï¼"
-#. Tag: programlisting
-#: association_mapping.xml:289
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<properties name=\"currentAccountKey\">\n"
-" <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
-" <property name=\"currentAccount\" type=\"boolean\">\n"
-" <formula>case when effectiveEndDate is null then 1 else 0 end</"
-"formula>\n"
-" </property>\n"
-"</properties>\n"
-"<property name=\"effectiveEndDate\" type=\"date\"/>\n"
-"<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:291
-#, fuzzy, no-c-format
-msgid ""
"You can then map an association to the <emphasis>current</emphasis> "
"instance, the one with null <literal>effectiveEndDate</literal>, by using:"
msgstr ""
-"é£ä¹æä»¬å¯ä»¥å¯¹<emphasis>ç®å(current)</emphasis>å®ä¾(å
¶"
-"<literal>effectiveEndDate</literal>为null)使ç¨è¿æ ·çå
³èæ å°:"
+"é£ä¹æä»¬å¯ä»¥å¯¹<emphasis>ç®åï¼currentï¼</emphasis>å®ä¾ï¼å
¶ "
+"<literal>effectiveEndDate</literal> 为 nullï¼ä½¿ç¨è¿æ ·çå
³èæ å°ï¼ "
-#. Tag: programlisting
-#: association_mapping.xml:296
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
-" property-ref=\"currentAccountKey\"\n"
-" class=\"AccountInfo\">\n"
-" <column name=\"accountNumber\"/>\n"
-" <formula>'1'</formula>\n"
-"</many-to-one>]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:298
-#, fuzzy, no-c-format
-msgid ""
"In a more complex example, imagine that the association between "
"<literal>Employee</literal> and <literal>Organization</literal> is "
"maintained in an <literal>Employment</literal> table full of historical "
@@ -845,34 +307,804 @@
"emphasis> employer, the one with the most recent <literal>startDate</"
"literal>, could be mapped in the following way:"
msgstr ""
-"æ´å¤æçä¾å,åæ³<literal>Employee</literal>å<literal>Organization</literal>"
-"ä¹é´çå
³èæ¯éè¿ä¸ä¸ª<literal>Employment</literal>ä¸é´è¡¨ç»´æ¤ç,èä¸é´è¡¨ä¸å¡«å
"
-"äºå¾å¤åå²éåæ°æ®ãé£âéåç<emphasis>ææ°</emphasis>é主âè¿ä¸ªå
³èï¼ææ°é主"
-"å°±æ¯<literal>startDate</literal>æåçé£ä¸ªï¼å¯ä»¥è¿æ ·æ å°ï¼"
+"卿´å¤æçä¾åä¸ï¼åæ³ <literal>Employee</literal> å <literal>Organization</"
+"literal> ä¹é´çå
³èæ¯éè¿ä¸ä¸ª <literal>Employment</literal> ä¸é´è¡¨ç»´æ¤çï¼è"
+"ä¸é´è¡¨ä¸å¡«å
äºå¾å¤åå²éåæ°æ®ãé£âéåç<emphasis>ææ°</emphasis>é主âè¿ä¸ªå
³"
+"èï¼ææ°é主就æ¯å
·æææ°ç <literal>startDate</literal> çé£ä¸ªï¼å¯ä»¥è¿æ ·æ "
+"å°ï¼"
-#. Tag: programlisting
-#: association_mapping.xml:306
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<join>\n"
-" <key column=\"employeeId\"/>\n"
-" <subselect>\n"
-" select employeeId, orgId \n"
-" from Employments \n"
-" group by orgId \n"
-" having startDate = max(startDate)\n"
-" </subselect>\n"
-" <many-to-one name=\"mostRecentEmployer\" \n"
-" class=\"Organization\" \n"
-" column=\"orgId\"/>\n"
-"</join>]]>"
-msgstr ""
-
-#. Tag: para
-#: association_mapping.xml:308
-#, fuzzy, no-c-format
-msgid ""
"This functionality allows a degree of creativity and flexibility, but it is "
"more practical to handle these kinds of cases using HQL or a criteria query."
msgstr ""
-"使ç¨è¿ä¸åè½æ¶å¯ä»¥å
满åæï¼ä½é常æ´å å®ç¨çæ¯ç¨HQLææ¡ä»¶æ¥è¯¢æ¥å¤çè¿äºæ
å½¢ã"
+"使ç¨è¿ä¸åè½æ¶å¯ä»¥å
满åæåçµæ´»æ§ï¼ä½é常æ´å å®ç¨çæ¯ç¨ HQL ææ¡ä»¶æ¥è¯¢æ¥å¤ç"
+"è¿äºæ
åµã"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/basic_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/basic_mapping.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/basic_mapping.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,5540 +1,3588 @@
+# translation of basic_mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: basic_mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"PO-Revision-Date: 2010-01-11 10:32+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: basic_mapping.xml:29
#, no-c-format
msgid "Basic O/R Mapping"
-msgstr "对象/å
³ç³»æ°æ®åºæ å°åºç¡(Basic O/R Mapping)"
+msgstr "对象/å
³ç³»æ°æ®åºæ å°åºç¡ï¼Basic O/R Mappingï¼"
#. Tag: title
-#: basic_mapping.xml:32
#, no-c-format
msgid "Mapping declaration"
msgstr "æ å°å®ä¹ï¼Mapping declarationï¼"
#. Tag: para
-#: basic_mapping.xml:34
-#, fuzzy, no-c-format
-msgid ""
-"Object/relational mappings are usually defined in an XML document. The "
-"mapping document is designed to be readable and hand-editable. The mapping "
-"language is Java-centric, meaning that mappings are constructed around "
-"persistent class declarations and not table declarations."
-msgstr ""
-"对象åå
³ç³»æ°æ®åºä¹é´çæ å°é常æ¯ç¨ä¸ä¸ªXMLææ¡£(XML document)æ¥å®ä¹çãè¿ä¸ªæ å°"
-"ææ¡£è¢«è®¾è®¡ä¸ºæè¯»çï¼ å¹¶ä¸å¯ä»¥æå·¥ä¿®æ¹ãæ å°è¯è¨æ¯ä»¥Java为ä¸å¿ï¼è¿æå³çæ å°æ"
-"æ¡£æ¯æç
§æä¹
åç±»çå®ä¹æ¥å建çï¼ èé表çå®ä¹ã"
+#, no-c-format
+msgid "Object/relational mappings are usually defined in an XML document. The mapping document is designed to be readable and hand-editable. The mapping language is Java-centric, meaning that mappings are constructed around persistent class declarations and not table declarations."
+msgstr "对象åå
³ç³»æ°æ®åºä¹é´çæ å°é常æ¯ç¨ä¸ä¸ª XML ææ¡£æ¥å®ä¹çãè¿ä¸ªæ å°ææ¡£è¢«è®¾è®¡ä¸ºæè¯»çï¼å¹¶ä¸å¯ä»¥æå·¥ä¿®æ¹ãæ å°è¯è¨æ¯ä»¥ Java 为ä¸å¿ï¼è¿æå³çæ å°ææ¡£æ¯æç
§æä¹
åç±»çå®ä¹æ¥å建çï¼èé表çå®ä¹ã "
#. Tag: para
-#: basic_mapping.xml:41
-#, fuzzy, no-c-format
-msgid ""
-"Please note that even though many Hibernate users choose to write the XML by "
-"hand, a number of tools exist to generate the mapping document. These "
-"include XDoclet, Middlegen and AndroMDA."
-msgstr ""
-"请注æï¼è½ç¶å¾å¤Hibernateç¨æ·éæ©æåXMLæ å°ææ¡£ï¼ä½ä¹æä¸äºå·¥å
·å¯ä»¥ç¨æ¥çæ"
-"æ å°ææ¡£ï¼ å
æ¬XDoclet,MiddlegenåAndroMDAã"
+#, no-c-format
+msgid "Please note that even though many Hibernate users choose to write the XML by hand, a number of tools exist to generate the mapping document. These include XDoclet, Middlegen and AndroMDA."
+msgstr "请注æï¼è½ç¶å¾å¤ Hibernate ç¨æ·éæ©æå XML æ å°ææ¡£ï¼ä½ä¹æä¸äºå·¥å
·å¯ä»¥ç¨æ¥çææ å°ææ¡£ï¼å
æ¬ XDocletãMiddlegen å AndroMDAã"
#. Tag: para
-#: basic_mapping.xml:47
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Here is an example mapping:"
-msgstr "让æä»¬ä»ä¸ä¸ªæ å°çä¾åå¼å§ï¼"
+msgstr "ä¸é¢æ¯ä¸ä¸ªæ å°çä¾åï¼"
-#. Tag: programlisting
-#: basic_mapping.xml:51
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\"?>\n"
-"<!DOCTYPE hibernate-mapping PUBLIC\n"
-" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-"\n"
-"<hibernate-mapping package=\"eg\">\n"
-"\n"
-" <class name=\"Cat\"\n"
-" table=\"cats\"\n"
-" discriminator-value=\"C\">\n"
-"\n"
-" <id name=\"id\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-"\n"
-" <discriminator column=\"subclass\"\n"
-" type=\"character\"/>\n"
-"\n"
-" <property name=\"weight\"/>\n"
-"\n"
-" <property name=\"birthdate\"\n"
-" type=\"date\"\n"
-" not-null=\"true\"\n"
-" update=\"false\"/>\n"
-"\n"
-" <property name=\"color\"\n"
-" type=\"eg.types.ColorUserType\"\n"
-" not-null=\"true\"\n"
-" update=\"false\"/>\n"
-"\n"
-" <property name=\"sex\"\n"
-" not-null=\"true\"\n"
-" update=\"false\"/>\n"
-"\n"
-" <property name=\"litterId\"\n"
-" column=\"litterId\"\n"
-" update=\"false\"/>\n"
-"\n"
-" <many-to-one name=\"mother\"\n"
-" column=\"mother_id\"\n"
-" update=\"false\"/>\n"
-"\n"
-" <set name=\"kittens\"\n"
-" inverse=\"true\"\n"
-" order-by=\"litter_id\">\n"
-" <key column=\"mother_id\"/>\n"
-" <one-to-many class=\"Cat\"/>\n"
-" </set>\n"
-"\n"
-" <subclass name=\"DomesticCat\"\n"
-" discriminator-value=\"D\">\n"
-"\n"
-" <property name=\"name\"\n"
-" type=\"string\"/>\n"
-"\n"
-" </subclass>\n"
-"\n"
-" </class>\n"
-"\n"
-" <class name=\"Dog\">\n"
-" <!-- mapping for Dog could go here -->\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "We will now discuss the content of the mapping document. We will only describe, however, the document elements and attributes that are used by Hibernate at runtime. The mapping document also contains some extra optional attributes and elements that affect the database schemas exported by the schema export tool (for example, the <literal> not-null</literal> attribute)."
+msgstr "æä»¬ç°å¨å¼å§è®¨è®ºæ å°ææ¡£çå
容ãæä»¬åªæè¿° Hibernate å¨è¿è¡æ¶ç¨å°çææ¡£å
ç´ å屿§ãæ å°ææ¡£è¿å
æ¬ä¸äºé¢å¤çå¯é屿§åå
ç´ ï¼å®ä»¬å¨ä½¿ç¨ schema 导åºå·¥å
·çæ¶åä¼å½±å导åºçæ°æ®åº schema ç»æï¼æ¯å¦ï¼<literal>not-null</literal> 屿§ï¼ã"
-#. Tag: para
-#: basic_mapping.xml:53
-#, fuzzy, no-c-format
-msgid ""
-"We will now discuss the content of the mapping document. We will only "
-"describe, however, the document elements and attributes that are used by "
-"Hibernate at runtime. The mapping document also contains some extra optional "
-"attributes and elements that affect the database schemas exported by the "
-"schema export tool (for example, the <literal> not-null</literal> attribute)."
-msgstr ""
-"æä»¬ç°å¨å¼å§è®¨è®ºæ å°ææ¡£çå
容ãæä»¬åªæè¿°Hibernateå¨è¿è¡æ¶ç¨å°çææ¡£å
ç´ åå±"
-"æ§ã æ å°ææ¡£è¿å
æ¬ä¸äºé¢å¤çå¯é屿§åå
ç´ ï¼å®ä»¬å¨ä½¿ç¨schema导åºå·¥å
·çæ¶åä¼"
-"å½±å导åºçæ°æ®åºschemaç»æã ï¼æ¯å¦ï¼<literal> not-null</literal> 屿§ãï¼"
-
#. Tag: title
-#: basic_mapping.xml:64
#, no-c-format
msgid "Doctype"
msgstr "Doctype"
#. Tag: para
-#: basic_mapping.xml:66
-#, fuzzy, no-c-format
-msgid ""
-"All XML mappings should declare the doctype shown. The actual DTD can be "
-"found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/"
-"hibernate </literal>, or in <literal>hibernate3.jar</literal>. Hibernate "
-"will always look for the DTD in its classpath first. If you experience "
-"lookups of the DTD using an Internet connection, check the DTD declaration "
-"against the contents of your classpath."
-msgstr ""
-"ææçXMLæ å°é½éè¦å®ä¹å¦ä¸æç¤ºçdoctypeãDTDå¯ä»¥ä»ä¸è¿°URLä¸è·åï¼ ä¹å¯ä»¥ä»"
-"<literal>hibernate-x.x.x/src/net/sf/hibernate</literal>ç®å½ä¸ã æ"
-"<literal>hibernate.jar</literal>æä»¶ä¸æ¾å°ãHibernateæ»æ¯ä¼é¦å
å¨å®ç"
-"classptahä¸æç´¢DTDæä»¶ã å¦æä½ åç°å®æ¯éè¿è¿æ¥Internetæ¥æ¾DTDæä»¶ï¼å°±å¯¹ç
§ä½ "
-"çclasspathç®å½æ£æ¥XMLæä»¶éçDTD声æã"
+#, no-c-format
+msgid "All XML mappings should declare the doctype shown. The actual DTD can be found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/hibernate </literal>, or in <literal>hibernate3.jar</literal>. Hibernate will always look for the DTD in its classpath first. If you experience lookups of the DTD using an Internet connection, check the DTD declaration against the contents of your classpath."
+msgstr "ææç XML æ å°é½éè¦å®ä¹å¦ä¸æç¤ºç doctypeãDTD å¯ä»¥ä»ä¸è¿° URL ä¸è·åï¼ä¹å¯ä»¥ä» <literal>hibernate-x.x.x/src/org/hibernate </literal> ç®å½ä¸ãæ <literal>hibernate.jar</literal> æä»¶ä¸æ¾å°ãHibernate æ»æ¯ä¼é¦å
å¨å®ç classptah ä¸æç´¢ DTD æä»¶ãå¦æä½ åç°å®æ¯éè¿è¿æ¥ Internet æ¥æ¾ DTD æä»¶ï¼å°±å¯¹ç
§ä½ ç classpath ç®å½æ£æ¥ XML æä»¶éç DTD 声æã"
#. Tag: title
-#: basic_mapping.xml:76
#, no-c-format
msgid "EntityResolver"
msgstr "EntityResolver"
#. Tag: para
-#: basic_mapping.xml:77
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate will first attempt to resolve DTDs in its classpath. It does this "
-"is by registering a custom <literal>org.xml.sax.EntityResolver</literal> "
-"implementation with the SAXReader it uses to read in the xml files. This "
-"custom <literal>EntityResolver</literal> recognizes two different systemId "
-"namespaces:"
-msgstr ""
-"As mentioned previously, Hibernate will first attempt to resolve DTDs in its "
-"classpath. The manner in which it does this is by registering a custom "
-"<literal>org.xml.sax.EntityResolver</literal> implementation with the "
-"SAXReader it uses to read in the xml files. This custom "
-"<literal>EntityResolver</literal> recognizes two different systemId "
-"namespaces. å¦åæè¿°,Hibernateé¦å
å¨å
¶classpath䏿¥æ¾DTDãå
¶è¡ä¸ºæ¯ä¾é å¨ç³»ç»"
-"䏿³¨åç<literal>org.xml.sax.EntityResolver</literal>çä¸ä¸ªå
·ä½å®ç°ï¼"
-"SAXReaderä¾é 宿¥è¯»åxmlæä»¶ãè¿ä¸ <literal>EntityResolver</literal> å®ç°è½è¾¨"
-"认两ç§ä¸åç systenIdå½å空é´ã"
+#, no-c-format
+msgid "Hibernate will first attempt to resolve DTDs in its classpath. It does this is by registering a custom <literal>org.xml.sax.EntityResolver</literal> implementation with the SAXReader it uses to read in the xml files. This custom <literal>EntityResolver</literal> recognizes two different systemId namespaces:"
+msgstr "Hibernate é¦å
è¯å¾å¨å
¶ classpath ä¸è§£æ DTDãè¿æ¯ä¾é å¨ç³»ç»ä¸æ³¨åç <literal>org.xml.sax.EntityResolver</literal> çä¸ä¸ªå
·ä½å®ç°ï¼SAXReader ä¾é 宿¥è¯»å xml æä»¶ãè¿ä¸ªèªå®ä¹ç <literal>EntityResolver</literal> è½è¾¨è®¤ä¸¤ç§ä¸åç systenId å½å空é´ï¼"
#. Tag: para
-#: basic_mapping.xml:85
-#, fuzzy, no-c-format
-msgid ""
-"a <literal>hibernate namespace</literal> is recognized whenever the resolver "
-"encounters a systemId starting with <literal>http://hibernate.sourceforge."
-"net/</literal>. The resolver attempts to resolve these entities via the "
-"classloader which loaded the Hibernate classes."
-msgstr ""
-"è¥resolveréå°äºä¸ä¸ªä»¥<literal>http://hibernate.sourceforge.net/</literal>为"
-"å¼å¤´çsystemIdï¼å®ä¼è¾¨è®¤åºæ¯<literal>hibernate namespace</literal>ï¼resolver"
-"å°±è¯å¾éè¿å è½½Hibernateç±»çclassloaderæ¥æ¥æ¾è¿äºå®ä½ã"
+#, no-c-format
+msgid "a <literal>hibernate namespace</literal> is recognized whenever the resolver encounters a systemId starting with <literal>http://hibernate.sourceforge.net/</literal>. The resolver attempts to resolve these entities via the classloader which loaded the Hibernate classes."
+msgstr "è¥ resolver éå°äºä¸ä¸ªä»¥ <literal>http://hibernate.sourceforge.net/</literal> 为å¼å¤´ç systemIdï¼å®ä¼è¾¨è®¤åºæ¯ <literal>hibernate namespace</literal>ï¼resolver å°±è¯å¾éè¿å è½½ Hibernate ç±»ç classloader æ¥æ¥æ¾è¿äºå®ä½ã "
#. Tag: para
-#: basic_mapping.xml:94
-#, fuzzy, no-c-format
-msgid ""
-"a <literal>user namespace</literal> is recognized whenever the resolver "
-"encounters a systemId using a <literal>classpath://</literal> URL protocol. "
-"The resolver will attempt to resolve these entities via (1) the current "
-"thread context classloader and (2) the classloader which loaded the "
-"Hibernate classes."
-msgstr ""
-"è¥resolveréå°äºä¸ä¸ªä½¿ç¨<literal>classpath://</literal>URLåè®®çsystemIdï¼å®"
-"ä¼è¾¨è®¤åºè¿æ¯<literal>user namespace</literal>,resolverè¯å¾éè¿(1)å½å线ç¨ä¸ä¸"
-"æçclassloaderå(2)å è½½Hibernate classçclassloaderæ¥æ¥æ¾è¿äºå®ä½ã"
+#, no-c-format
+msgid "a <literal>user namespace</literal> is recognized whenever the resolver encounters a systemId using a <literal>classpath://</literal> URL protocol. The resolver will attempt to resolve these entities via (1) the current thread context classloader and (2) the classloader which loaded the Hibernate classes."
+msgstr "è¥ resolver éå°äºä¸ä¸ªä½¿ç¨ <literal>classpath://</literal> URL åè®®ç systemIdï¼å®ä¼è¾¨è®¤åºè¿æ¯ <literal>user namespace</literal>ï¼resolver è¯å¾éè¿ï¼1) å½å线ç¨ä¸ä¸æç classloader åï¼2) å è½½ Hibernate class ç classloader æ¥æ¥æ¾è¿äºå®ä½ã"
#. Tag: para
-#: basic_mapping.xml:103
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The following is an example of utilizing user namespacing:"
-msgstr "使ç¨user namespace(ç¨æ·å½å空é´)çä¾åï¼"
+msgstr "ä¸é¢æ¯ä¸ä¸ªä½¿ç¨ç¨æ·å½å空é´ï¼user namespaceï¼çä¾åï¼"
-#. Tag: programlisting
-#: basic_mapping.xml:106
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\"?>\n"
-"<!DOCTYPE hibernate-mapping PUBLIC\n"
-" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" [\n"
-" <!ENTITY types SYSTEM \"classpath://your/domain/types.xml\">\n"
-"]>\n"
-"\n"
-"<hibernate-mapping package=\"your.domain\">\n"
-" <class name=\"MyEntity\">\n"
-" <id name=\"id\" type=\"my-custom-id-type\">\n"
-" ...\n"
-" </id>\n"
-" <class>\n"
-" &types;\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "Where <literal>types.xml</literal> is a resource in the <literal>your.domain</literal> package and contains a custom typedef (see <xref linkend=\"mapping-types-custom\" />)."
+msgstr "è¿éç <literal>types.xml</literal> æ¯ <literal>your.domain</literal> å
ä¸çä¸ä¸ªèµæºï¼å®å
å«äºä¸ä¸ªèªå®ä¹ç <xref linkend=\"mapping-types-custom\"/>ã "
-#. Tag: para
-#: basic_mapping.xml:107
-#, fuzzy, no-c-format
-msgid ""
-"Where <literal>types.xml</literal> is a resource in the <literal>your."
-"domain</literal> package and contains a custom <link linkend=\"mapping-types-"
-"custom\">typedef</link>."
-msgstr ""
-"<literal>types.xml</literal>æ¯<literal>your.domain</literal>å
ä¸çä¸ä¸ªèµæºï¼"
-"å®å
å«äºä¸ä¸ªå®å¶ç<xref linkend=\"mapping-types-custom\">typedef</xref>ã"
-
#. Tag: title
-#: basic_mapping.xml:115
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Hibernate-mapping"
-msgstr "hibernate-mapping"
+msgstr "Hibernate-mapping"
#. Tag: para
-#: basic_mapping.xml:117
-#, fuzzy, no-c-format
-msgid ""
-"This element has several optional attributes. The <literal>schema</literal> "
-"and <literal>catalog</literal> attributes specify that tables referred to in "
-"this mapping belong to the named schema and/or catalog. If they are "
-"specified, tablenames will be qualified by the given schema and catalog "
-"names. If they are missing, tablenames will be unqualified. The "
-"<literal>default-cascade</literal> attribute specifies what cascade style "
-"should be assumed for properties and collections that do not specify a "
-"<literal>cascade</literal> attribute. By default, the <literal>auto-import</"
-"literal> attribute allows you to use unqualified class names in the query "
-"language."
-msgstr ""
-"è¿ä¸ªå
ç´ å
æ¬ä¸äºå¯éç屿§ã<literal>schema</literal>å<literal>catalog</"
-"literal>屿§ï¼ ææäºè¿ä¸ªæ å°æè¿æ¥ï¼referï¼ç表æå¨çschemaå/æcatalogå"
-"ç§°ã åè¥æå®äºè¿ä¸ªå±æ§ï¼è¡¨åä¼å 䏿æå®çschemaåcatalogçååæ©å±ä¸ºå
¨éå®"
-"åãåè¥æ²¡ææå®ï¼è¡¨åå°±ä¸ä¼ä½¿ç¨å
¨éå®åã <literal>default-cascade</literal>"
-"æå®äºæªæç¡®æ³¨æ<literal>cascade</literal>屿§çJava屿§å éåç±»Hibernateä¼"
-"éåä»ä¹æ ·çé»è®¤çº§è飿 ¼ã<literal>auto-import</literal>屿§é»è®¤è®©æä»¬å¨æ¥è¯¢"
-"è¯è¨ä¸å¯ä»¥ä½¿ç¨ éå
¨éå®åçç±»åã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:138
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping\n"
-" schema=\"schemaName\"\n"
-" catalog=\"catalogName\"\n"
-" default-cascade=\"cascade_style\"\n"
-" default-access=\"field|property|ClassName\"\n"
-" default-lazy=\"true|false\"\n"
-" auto-import=\"true|false\"\n"
-" package=\"package.name\"\n"
-" />]]>"
-msgstr ""
+msgid "This element has several optional attributes. The <literal>schema</literal> and <literal>catalog</literal> attributes specify that tables referred to in this mapping belong to the named schema and/or catalog. If they are specified, tablenames will be qualified by the given schema and catalog names. If they are missing, tablenames will be unqualified. The <literal>default-cascade</literal> attribute specifies what cascade style should be assumed for properties and collections that do not specify a <literal>cascade</literal> attribute. By default, the <literal>auto-import</literal> attribute allows you to use unqualified class names in the query language."
+msgstr "è¿ä¸ªå
ç´ å
æ¬ä¸äºå¯éç屿§ã<literal>schema</literal> å <literal>catalog</literal> 屿§ï¼ ææäºè¿ä¸ªæ å°æè¿æ¥ï¼referï¼ç表æå¨ç schema å/æ catalog åç§°ãåè¥æå®äºè¿ä¸ªå±æ§ï¼è¡¨åä¼å 䏿æå®ç schema å catalog çååæ©å±ä¸ºå
¨éå®åãåè¥æ²¡ææå®ï¼è¡¨åå°±ä¸ä¼ä½¿ç¨å
¨éå®åã<literal>default-cascade</literal> æå®äºæªæç¡®æ³¨æ <literal>cascade</literal> 屿§ç Java 屿§å éåç±» Hibernate ä¼éåä»ä¹æ ·çé»è®¤çº§è飿 ¼ã<literal>auto-import</literal> 屿§é»è®¤è®©æä»¬å¨æ¥è¯¢è¯è¨ä¸å¯ä»¥ä½¿ç¨éå
¨éå®åçç±»åã"
#. Tag: para
-#: basic_mapping.xml:141
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>schema</literal> (optional): the name of a database schema."
-msgstr "<literal>schema</literal> (å¯é): æ°æ®åºschemaçåç§°ã"
+msgstr "<literal>schema</literal>ï¼å¯éï¼ï¼æ°æ®åº schema çåç§°ã"
#. Tag: para
-#: basic_mapping.xml:146
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>catalog</literal> (optional): the name of a database catalog."
-msgstr "<literal>catalog</literal> (å¯é): æ°æ®åºcatalogçåç§°ã"
+msgstr "<literal>catalog</literal>ï¼å¯éï¼ï¼æ°æ®åº catalog çåç§°ã "
#. Tag: para
-#: basic_mapping.xml:151
-#, fuzzy, no-c-format
-msgid ""
-"<literal>default-cascade</literal> (optional - defaults to <literal>none</"
-"literal>): a default cascade style."
-msgstr ""
-"<literal>default-cascade</literal> (å¯é - é»è®¤ä¸º <literal>none</literal>): "
-"é»è®¤ç级è飿 ¼ã"
+#, no-c-format
+msgid "<literal>default-cascade</literal> (optional - defaults to <literal>none</literal>): a default cascade style."
+msgstr "<literal>default-cascade</literal>ï¼å¯é â é»è®¤ä¸º <literal>none</literal>ï¼ï¼é»è®¤ç级è飿 ¼ã "
#. Tag: para
-#: basic_mapping.xml:157
-#, fuzzy, no-c-format
-msgid ""
-"<literal>default-access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate should use for accessing all properties. "
-"It can be a custom implementation of <literal>PropertyAccessor</literal>."
-msgstr ""
-"<literal>default-access</literal> (å¯é - é»è®¤ä¸º <literal>property</"
-"literal>): Hibernateç¨æ¥è®¿é®ææå±æ§ççç¥ãå¯ä»¥éè¿å®ç°"
-"<literal>PropertyAccessor</literal>æ¥å£ èªå®ä¹ã"
+#, no-c-format
+msgid "<literal>default-access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate should use for accessing all properties. It can be a custom implementation of <literal>PropertyAccessor</literal>."
+msgstr "<literal>default-access</literal>ï¼å¯é â é»è®¤ä¸º <literal>property</literal>ï¼ï¼Hibernate ç¨æ¥è®¿é®ææå±æ§ççç¥ãå¯ä»¥éè¿å®ç° <literal>PropertyAccessor</literal> æ¥å£èªå®ä¹ã "
#. Tag: para
-#: basic_mapping.xml:164
-#, fuzzy, no-c-format
-msgid ""
-"<literal>default-lazy</literal> (optional - defaults to <literal>true</"
-"literal>): the default value for unspecified <literal>lazy</literal> "
-"attributes of class and collection mappings."
-msgstr ""
-"<literal>default-lazy</literal> (å¯é - é»è®¤ä¸º <literal>true</literal>): æå®"
-"äºæªæç¡®æ³¨æ<literal>lazy</literal>屿§çJava屿§åéåç±»ï¼ Hibernateä¼éåä»"
-"乿 ·çé»è®¤å è½½é£æ ¼ã"
+#, no-c-format
+msgid "<literal>default-lazy</literal> (optional - defaults to <literal>true</literal>): the default value for unspecified <literal>lazy</literal> attributes of class and collection mappings."
+msgstr "<literal>default-lazy</literal>ï¼å¯é â é»è®¤ä¸º <literal>true</literal>ï¼ï¼æå®äºæªæç¡®æ³¨æ <literal>lazy</literal> 屿§ç Java 屿§åéåç±»ï¼Hibernate ä¼éåä»ä¹æ ·çé»è®¤å è½½é£æ ¼ã "
#. Tag: para
-#: basic_mapping.xml:171
-#, fuzzy, no-c-format
-msgid ""
-"<literal>auto-import</literal> (optional - defaults to <literal>true</"
-"literal>): specifies whether we can use unqualified class names of classes "
-"in this mapping in the query language."
-msgstr ""
-"<literal>auto-import</literal> (å¯é - é»è®¤ä¸º <literal>true</literal>): æå®"
-"æä»¬æ¯å¦å¯ä»¥å¨æ¥è¯¢è¯è¨ä¸ä½¿ç¨éå
¨éå®çç±»åï¼ä»
éäºæ¬æ å°æä»¶ä¸çç±»ï¼ã"
+#, no-c-format
+msgid "<literal>auto-import</literal> (optional - defaults to <literal>true</literal>): specifies whether we can use unqualified class names of classes in this mapping in the query language."
+msgstr "<literal>auto-import</literal>ï¼å¯é â é»è®¤ä¸º <literal>true</literal>ï¼ï¼æå®æä»¬æ¯å¦å¯ä»¥å¨æ¥è¯¢è¯è¨ä¸ä½¿ç¨éå
¨éå®çç±»åï¼ä»
éäºæ¬æ å°æä»¶ä¸çç±»ï¼ã "
#. Tag: para
-#: basic_mapping.xml:178
-#, fuzzy, no-c-format
-msgid ""
-"<literal>package</literal> (optional): specifies a package prefix to use for "
-"unqualified class names in the mapping document."
-msgstr ""
-"<literal>package</literal> (å¯é): æå®ä¸ä¸ªå
åç¼ï¼å¦æå¨æ å°ææ¡£ä¸æ²¡ææå®å
¨"
-"éå®çç±»åï¼ å°±ä½¿ç¨è¿ä¸ªä½ä¸ºå
åã"
+#, no-c-format
+msgid "<literal>package</literal> (optional): specifies a package prefix to use for unqualified class names in the mapping document."
+msgstr "<literal>package</literal>ï¼å¯éï¼ï¼æå®ä¸ä¸ªå
åç¼ï¼å¦æå¨æ å°ææ¡£ä¸æ²¡ææå®å
¨éå®çç±»åï¼å°±ä½¿ç¨è¿ä¸ªä½ä¸ºå
åã "
#. Tag: para
-#: basic_mapping.xml:186
-#, fuzzy, no-c-format
-msgid ""
-"If you have two persistent classes with the same unqualified name, you "
-"should set <literal>auto-import=\"false\"</literal>. An exception will "
-"result if you attempt to assign two classes to the same \"imported\" name."
-msgstr ""
-"åè¥ä½ æä¸¤ä¸ªæä¹
åç±»ï¼å®ä»¬çéå
¨éå®åæ¯ä¸æ ·çï¼å°±æ¯ä¸¤ä¸ªç±»çåå䏿 ·ï¼æå¨ç"
-"å
ä¸ä¸æ ·--è¯è
注ï¼ï¼ ä½ åºè¯¥è®¾ç½®<literal>auto-import=\"false\"</literal>ã妿"
-"ä½ æä¸ä¸ªâimportè¿âçåå忶坹åºä¸¤ä¸ªç±»ï¼ Hibernate伿åºä¸ä¸ªå¼å¸¸ã"
+#, no-c-format
+msgid "If you have two persistent classes with the same unqualified name, you should set <literal>auto-import=\"false\"</literal>. An exception will result if you attempt to assign two classes to the same \"imported\" name."
+msgstr "åè¥ä½ æä¸¤ä¸ªæä¹
åç±»ï¼å®ä»¬çéå
¨éå®åæ¯ä¸æ ·çï¼å°±æ¯ä¸¤ä¸ªç±»çåå䏿 ·ï¼æå¨çå
ä¸ä¸æ · â è¯è
注ï¼ï¼ä½ åºè¯¥è®¾ç½® <literal>auto-import=\"false\"</literal>ãå¦æä½ æä¸ä¸ªâ导å
¥è¿âçåå忶坹åºä¸¤ä¸ªç±»ï¼Hibernate 伿åºä¸ä¸ªå¼å¸¸ã"
#. Tag: para
-#: basic_mapping.xml:192
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>hibernate-mapping</literal> element allows you to nest several "
-"persistent <literal><class></literal> mappings, as shown above. It is, "
-"however, good practice (and expected by some tools) to map only a single "
-"persistent class, or a single class hierarchy, in one mapping file and name "
-"it after the persistent superclass. For example, <literal>Cat.hbm.xml</"
-"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
-"<literal>Animal.hbm.xml</literal>."
-msgstr ""
-"注æ<literal>hibernate-mapping</literal> å
ç´ å
è®¸ä½ åµå¥å¤ä¸ªå¦ä¸æç¤ºç "
-"<literal><class></literal>æ å°ã使¯æå¥½çåæ³ï¼ä¹è®¸ä¸äºå·¥å
·éè¦çï¼æ¯"
-"ä¸ä¸ª æä¹
åç±»ï¼æä¸ä¸ªç±»çç»§æ¿å±æ¬¡ï¼å¯¹åºä¸ä¸ªæ å°æä»¶ï¼å¹¶ä»¥æä¹
åçè¶
ç±»åç§°å½"
-"åï¼ä¾å¦ï¼ <literal>Cat.hbm.xml</literal>ï¼ <literal>Dog.hbm.xml</literal>ï¼"
-"æè
å¦æä½¿ç¨ç»§æ¿ï¼<literal>Animal.hbm.xml</literal>ã"
+#, no-c-format
+msgid "The <literal>hibernate-mapping</literal> element allows you to nest several persistent <literal><class></literal> mappings, as shown above. It is, however, good practice (and expected by some tools) to map only a single persistent class, or a single class hierarchy, in one mapping file and name it after the persistent superclass. For example, <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, <literal>Animal.hbm.xml</literal>."
+msgstr "注æ <literal>hibernate-mapping</literal> å
ç´ å
è®¸ä½ åµå¥å¤ä¸ªå¦ä¸æç¤ºç <literal><class></literal> æ å°ã使¯æå¥½çåæ³ï¼ä¹è®¸ä¸äºå·¥å
·éè¦çï¼æ¯ä¸ä¸ªæä¹
åç±»ï¼æä¸ä¸ªç±»çç»§æ¿å±æ¬¡ï¼å¯¹åºä¸ä¸ªæ å°æä»¶ï¼å¹¶ä»¥æä¹
åçè¶
ç±»åç§°å½åï¼ä¾å¦ï¼<literal>Cat.hbm.xml</literal>ã<literal>Dog.hbm.xml</literal>ï¼æè
å¦æä½¿ç¨ç»§æ¿ï¼<literal>Animal.hbm.xml</literal>ã"
#. Tag: title
-#: basic_mapping.xml:205
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Class"
-msgstr "class"
+msgstr "ç±»"
#. Tag: para
-#: basic_mapping.xml:207
-#, fuzzy, no-c-format
-msgid ""
-"You can declare a persistent class using the <literal>class</literal> "
-"element. For example:"
-msgstr "ä½ å¯ä»¥ä½¿ç¨<literal>class</literal>å
ç´ æ¥å®ä¹ä¸ä¸ªæä¹
åç±»ï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:235
#, no-c-format
-msgid ""
-"<![CDATA[<class\n"
-" name=\"ClassName\"\n"
-" table=\"tableName\"\n"
-" discriminator-value=\"discriminator_value\"\n"
-" mutable=\"true|false\"\n"
-" schema=\"owner\"\n"
-" catalog=\"catalog\"\n"
-" proxy=\"ProxyInterface\"\n"
-" dynamic-update=\"true|false\"\n"
-" dynamic-insert=\"true|false\"\n"
-" select-before-update=\"true|false\"\n"
-" polymorphism=\"implicit|explicit\"\n"
-" where=\"arbitrary sql where condition\"\n"
-" persister=\"PersisterClass\"\n"
-" batch-size=\"N\"\n"
-" optimistic-lock=\"none|version|dirty|all\"\n"
-" lazy=\"true|false\"\n"
-" entity-name=\"EntityName\"\n"
-" check=\"arbitrary sql check condition\"\n"
-" rowid=\"rowid\"\n"
-" subselect=\"SQL expression\"\n"
-" abstract=\"true|false\"\n"
-" node=\"element-name\"\n"
-"/>]]>"
-msgstr ""
+msgid "You can declare a persistent class using the <literal>class</literal> element. For example:"
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>class</literal> å
ç´ æ¥å®ä¹ä¸ä¸ªæä¹
åç±»ãä¾å¦ï¼"
#. Tag: para
-#: basic_mapping.xml:238
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal> (optional): the fully qualified Java class name of "
-"the persistent class or interface. If this attribute is missing, it is "
-"assumed that the mapping is for a non-POJO entity."
-msgstr ""
-"<literal>name</literal> (å¯é): æä¹
åç±»ï¼æè
æ¥å£ï¼çJavaå
¨éå®åã 妿è¿ä¸ª"
-"屿§ä¸åå¨ï¼Hibernateå°åå®è¿æ¯ä¸ä¸ªéPOJOçå®ä½æ å°ã"
+#, no-c-format
+msgid "<literal>name</literal> (optional): the fully qualified Java class name of the persistent class or interface. If this attribute is missing, it is assumed that the mapping is for a non-POJO entity."
+msgstr "<literal>name</literal>ï¼å¯éï¼ï¼æä¹
åç±»ï¼æè
æ¥å£ï¼ç Java å
¨éå®åã 妿è¿ä¸ªå±æ§ä¸åå¨ï¼Hibernate å°åå®è¿æ¯ä¸ä¸ªé POJO çå®ä½æ å°ã "
#. Tag: para
-#: basic_mapping.xml:245
-#, fuzzy, no-c-format
-msgid ""
-"<literal>table</literal> (optional - defaults to the unqualified class "
-"name): the name of its database table."
-msgstr ""
-"<literal>table</literal> (å¯é - é»è®¤æ¯ç±»çéå
¨éå®å): 对åºçæ°æ®åºè¡¨åã"
+#, no-c-format
+msgid "<literal>table</literal> (optional - defaults to the unqualified class name): the name of its database table."
+msgstr "<literal>table</literal>ï¼å¯é â é»è®¤æ¯ç±»çéå
¨éå®åï¼ï¼å¯¹åºçæ°æ®åºè¡¨åã "
#. Tag: para
-#: basic_mapping.xml:251
-#, fuzzy, no-c-format
-msgid ""
-"<literal>discriminator-value</literal> (optional - defaults to the class "
-"name): a value that distinguishes individual subclasses that is used for "
-"polymorphic behavior. Acceptable values include <literal>null</literal> and "
-"<literal>not null</literal>."
-msgstr ""
-"<literal>discriminator-value</literal> (å¯é - é»è®¤åç±»å䏿 ·): ä¸ä¸ªç¨äºåºå"
-"ä¸åçåç±»çå¼ï¼å¨å¤æè¡ä¸ºæ¶ä½¿ç¨ãå®å¯ä»¥æ¥åçå¼å
æ¬ <literal>null</literal> "
-"å <literal>not null</literal>ã"
+#, no-c-format
+msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): a value that distinguishes individual subclasses that is used for polymorphic behavior. Acceptable values include <literal>null</literal> and <literal>not null</literal>."
+msgstr "<literal>discriminator-value</literal>ï¼å¯é â é»è®¤åç±»å䏿 ·ï¼ï¼ä¸ä¸ªç¨äºåºåä¸åçåç±»çå¼ï¼å¨å¤æè¡ä¸ºæ¶ä½¿ç¨ãå®å¯ä»¥æ¥åçå¼å
æ¬ <literal>null</literal> å <literal>not null</literal>ã "
#. Tag: para
-#: basic_mapping.xml:258
-#, fuzzy, no-c-format
-msgid ""
-"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
-"specifies that instances of the class are (not) mutable."
-msgstr ""
-"<literal>mutable</literal> (å¯éï¼é»è®¤å¼ä¸º<literal>true</literal>): 表æè¯¥ç±»"
-"çå®ä¾æ¯å¯åçæè
ä¸å¯åçã"
+#, no-c-format
+msgid "<literal>mutable</literal> (optional - defaults to <literal>true</literal>): specifies that instances of the class are (not) mutable."
+msgstr "<literal>mutable</literal>ï¼å¯éï¼é»è®¤å¼ä¸º <literal>true</literal>ï¼ï¼è¡¨æè¯¥ç±»çå®ä¾æ¯å¯åçæè
ä¸å¯åçã "
#. Tag: para
-#: basic_mapping.xml:264 basic_mapping.xml:2231
-#, fuzzy, no-c-format
-msgid ""
-"<literal>schema</literal> (optional): overrides the schema name specified by "
-"the root <literal><hibernate-mapping></literal> element."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>schema</literal> (å¯é): è¦ç卿 ¹<literal><hibernate-mapping>"
-"</literal>å
ç´ ä¸æå®çschemaååã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>schema</literal> (å¯é):è¦çç±æ ¹<literal><hibernate-mapping></"
-"literal>å
ç´ æå®ç模å¼åç§°ã"
+#, no-c-format
+msgid "<literal>schema</literal> (optional): overrides the schema name specified by the root <literal><hibernate-mapping></literal> element."
+msgstr "<literal>schema</literal>ï¼å¯éï¼ï¼è¦ç卿 ¹ <literal><hibernate-mapping></literal> å
ç´ ä¸æå®ç schema ååã "
#. Tag: para
-#: basic_mapping.xml:270 basic_mapping.xml:2237
-#, fuzzy, no-c-format
-msgid ""
-"<literal>catalog</literal> (optional): overrides the catalog name specified "
-"by the root <literal><hibernate-mapping></literal> element."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>catalog</literal> (å¯é): è¦ç卿 ¹<literal><hibernate-mapping>"
-"</literal>å
ç´ ä¸æå®çcatalogååã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>catalog</literal> (å¯é): è¦çç±æ ¹ <literal><hibernate-"
-"mapping></literal>å
ç´ æå®çç®å½åç§°ã"
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): overrides the catalog name specified by the root <literal><hibernate-mapping></literal> element."
+msgstr "<literal>catalog</literal>ï¼å¯éï¼ï¼è¦ç卿 ¹ <literal><hibernate-mapping></literal> å
ç´ ä¸æå®ç catalog ååã "
#. Tag: para
-#: basic_mapping.xml:276
-#, fuzzy, no-c-format
-msgid ""
-"<literal>proxy</literal> (optional): specifies an interface to use for lazy "
-"initializing proxies. You can specify the name of the class itself."
-msgstr ""
-"<literal>proxy</literal> (å¯é): æå®ä¸ä¸ªæ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使ç¨ã ä½ "
-"å¯ä»¥å¨è¿é使ç¨è¯¥ç±»èªå·±çååã"
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies an interface to use for lazy initializing proxies. You can specify the name of the class itself."
+msgstr "<literal>proxy</literal>ï¼å¯éï¼ï¼æå®ä¸ä¸ªæ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使ç¨ãä½ å¯ä»¥å¨è¿é使ç¨è¯¥ç±»èªå·±çååã "
#. Tag: para
-#: basic_mapping.xml:282
-#, fuzzy, no-c-format
-msgid ""
-"<literal>dynamic-update</literal> (optional - defaults to <literal>false</"
-"literal>): specifies that <literal>UPDATE</literal> SQL should be generated "
-"at runtime and can contain only those columns whose values have changed."
-msgstr ""
-"<literal>dynamic-update</literal> (å¯é, é»è®¤ä¸º <literal>false</literal>): æ"
-"å®ç¨äº<literal>UPDATE</literal> çSQLå°ä¼å¨è¿è¡æ¶å¨æçæï¼å¹¶ä¸åªæ´æ°é£äºæ¹å"
-"è¿çåæ®µã"
+#, no-c-format
+msgid "<literal>dynamic-update</literal> (optional - defaults to <literal>false</literal>): specifies that <literal>UPDATE</literal> SQL should be generated at runtime and can contain only those columns whose values have changed."
+msgstr "<literal>dynamic-update</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼æå®ç¨äº <literal>UPDATE</literal> ç SQL å°ä¼å¨è¿è¡æ¶å¨æçæï¼å¹¶ä¸åªæ´æ°é£äºæ¹åè¿çåæ®µã "
#. Tag: para
-#: basic_mapping.xml:289
-#, fuzzy, no-c-format
-msgid ""
-"<literal>dynamic-insert</literal> (optional - defaults to <literal>false</"
-"literal>): specifies that <literal>INSERT</literal> SQL should be generated "
-"at runtime and contain only the columns whose values are not null."
-msgstr ""
-"<literal>dynamic-insert</literal> (å¯é, é»è®¤ä¸º <literal>false</literal>): æ"
-"å®ç¨äº<literal>INSERT</literal>ç SQL å°ä¼å¨è¿è¡æ¶å¨æçæï¼å¹¶ä¸åªå
å«é£äºé"
-"空å¼å段ã"
+#, no-c-format
+msgid "<literal>dynamic-insert</literal> (optional - defaults to <literal>false</literal>): specifies that <literal>INSERT</literal> SQL should be generated at runtime and contain only the columns whose values are not null."
+msgstr "<literal>dynamic-insert</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼æå®ç¨äº <literal>INSERT</literal> ç SQL å°ä¼å¨è¿è¡æ¶å¨æçæï¼å¹¶ä¸åªå
å«é£äºé空å¼å段ã "
#. Tag: para
-#: basic_mapping.xml:296
-#, fuzzy, no-c-format
-msgid ""
-"<literal>select-before-update</literal> (optional - defaults to "
-"<literal>false</literal>): specifies that Hibernate should <emphasis>never</"
-"emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that "
-"an object is actually modified. Only when a transient object has been "
-"associated with a new session using <literal>update()</literal>, will "
-"Hibernate perform an extra SQL <literal>SELECT</literal> to determine if an "
-"<literal>UPDATE</literal> is actually required."
-msgstr ""
-"<literal>select-before-update</literal> (å¯é, é»è®¤ä¸º <literal>false</"
-"literal>): æå®Hibernateé¤éç¡®å®å¯¹è±¡çæ£è¢«ä¿®æ¹äºï¼å¦æè¯¥å¼ä¸ºtrueï¼è¯æ³¨ï¼ï¼å¦"
-"å<emphasis>ä¸ä¼</emphasis>æ§è¡SQL <literal>UPDATE</literal>æä½ãå¨ç¹å®åºå"
-"ï¼å®é
ä¸ï¼å®åªå¨ä¸ä¸ªç¬æ¶å¯¹è±¡ï¼transient objectï¼å
³èå°ä¸ä¸ª æ°çsession䏿¶æ§"
-"è¡çupdate()ä¸çæï¼ï¼è¿è¯´æHibernateä¼å¨<literal>UPDATE</literal> ä¹åæ§è¡ä¸"
-"次é¢å¤çSQL <literal>SELECT</literal>æä½ï¼æ¥å³å®æ¯å¦åºè¯¥æ§è¡ "
-"<literal>UPDATE</literal>ã"
+#, no-c-format
+msgid "<literal>select-before-update</literal> (optional - defaults to <literal>false</literal>): specifies that Hibernate should <emphasis>never</emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that an object is actually modified. Only when a transient object has been associated with a new session using <literal>update()</literal>, will Hibernate perform an extra SQL <literal>SELECT</literal> to determine if an <literal>UPDATE</literal> is actually required."
+msgstr "<literal>select-before-update</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼æå® Hibernate é¤éç¡®å®å¯¹è±¡çæ£è¢«ä¿®æ¹äºï¼å¦æè¯¥å¼ä¸º true â è¯æ³¨ï¼ï¼å¦å<emphasis>ä¸ä¼</emphasis>æ§è¡ SQL <literal>UPDATE</literal> æä½ãå¨ç¹å®åºåï¼å®é
ä¸ï¼å®åªå¨ä¸ä¸ªç¬æ¶å¯¹è±¡ï¼transient objectï¼å
³èå°ä¸ä¸ªæ°ç session 䏿¶æ§è¡ç update() ä¸çæï¼ï¼è¿è¯´æ Hibernate ä¼å¨ <literal>UPDATE</literal> ä¹åæ§è¡ä¸æ¬¡é¢å¤ç SQL <literal>SELECT</literal> æä½æ¥å³å®æ¯å¦ç¡®å®éè¦æ§è¡ <literal>UPDATE</literal>ã"
#. Tag: para
-#: basic_mapping.xml:306
-#, fuzzy, no-c-format
-msgid ""
-"<literal>polymorphism</literal> (optional - defaults to <literal>implicit</"
-"literal>): determines whether implicit or explicit query polymorphism is "
-"used."
-msgstr ""
-"<literal>polymorphismï¼å¤æï¼</literal> (å¯é, é»è®¤å¼ä¸º <literal>implicit (é"
-"å¼) </literal>): ç宿¯éå¼è¿æ¯æ¾å¼ç使ç¨å¤ææ¥è¯¢ï¼è¿åªå¨Hibernateçå
·ä½è¡¨ç»§"
-"æ¿çç¥ä¸ç¨å°ï¼è¯æ³¨ï¼ã"
+#, no-c-format
+msgid "<literal>polymorphism</literal> (optional - defaults to <literal>implicit</literal>): determines whether implicit or explicit query polymorphism is used."
+msgstr "<literal>polymorphismï¼å¤æï¼</literal>ï¼å¯éï¼é»è®¤å¼ä¸º <literal>implicit ï¼éå¼ï¼</literal>ï¼ï¼ç宿¯éå¼è¿æ¯æ¾å¼ç使ç¨å¤ææ¥è¯¢ï¼è¿åªå¨ Hibernate çå
·ä½è¡¨ç»§æ¿çç¥ä¸ç¨å° â è¯æ³¨ï¼ã "
#. Tag: para
-#: basic_mapping.xml:312
-#, fuzzy, no-c-format
-msgid ""
-"<literal>where</literal> (optional): specifies an arbitrary SQL "
-"<literal>WHERE</literal> condition to be used when retrieving objects of "
-"this class."
-msgstr ""
-"<literal>where</literal> (å¯é) æå®ä¸ä¸ªéå çSQL<literal>WHERE</literal> æ¡"
-"ä»¶ï¼ å¨æåè¿ä¸ªç±»ç对象æ¶ä¼ä¸ç´å¢å è¿ä¸ªæ¡ä»¶ã"
+#, no-c-format
+msgid "<literal>where</literal> (optional): specifies an arbitrary SQL <literal>WHERE</literal> condition to be used when retrieving objects of this class."
+msgstr "<literal>where</literal>ï¼å¯éï¼æå®ä¸ä¸ªéå ç SQL <literal>WHERE</literal> æ¡ä»¶ï¼å¨æåè¿ä¸ªç±»ç对象æ¶ä¼ä¸ç´å¢å è¿ä¸ªæ¡ä»¶ã "
#. Tag: para
-#: basic_mapping.xml:318
-#, fuzzy, no-c-format
-msgid ""
-"<literal>persister</literal> (optional): specifies a custom "
-"<literal>ClassPersister</literal>."
-msgstr ""
-"<literal>persister</literal> (å¯é): æå®ä¸ä¸ªå®å¶ç<literal>ClassPersister</"
-"literal>ã"
+#, no-c-format
+msgid "<literal>persister</literal> (optional): specifies a custom <literal>ClassPersister</literal>."
+msgstr "<literal>persister</literal>ï¼å¯éï¼ï¼æå®ä¸ä¸ªå®å¶ç <literal>ClassPersister</literal>ã "
#. Tag: para
-#: basic_mapping.xml:323
-#, fuzzy, no-c-format
-msgid ""
-"<literal>batch-size</literal> (optional - defaults to <literal>1</literal>): "
-"specifies a \"batch size\" for fetching instances of this class by "
-"identifier."
-msgstr ""
-"<literal>batch-size</literal> (å¯é,é»è®¤æ¯<literal>1</literal>) æå®ä¸ä¸ªç¨äº "
-"æ ¹æ®æ è¯ç¬¦ï¼identifierï¼æåå®ä¾æ¶ä½¿ç¨ç\"batch size\"ï¼æ¹æ¬¡æåæ°éï¼ã"
+#, no-c-format
+msgid "<literal>batch-size</literal> (optional - defaults to <literal>1</literal>): specifies a \"batch size\" for fetching instances of this class by identifier."
+msgstr "<literal>batch-size</literal>ï¼å¯é,é»è®¤æ¯ <literal>1</literal>ï¼æå®ä¸ä¸ªç¨äº æ ¹æ®æ è¯ç¬¦ï¼identifierï¼æåå®ä¾æ¶ä½¿ç¨ç \"batch size\"ï¼æ¹æ¬¡æåæ°éï¼ã "
#. Tag: para
-#: basic_mapping.xml:329
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>version</"
-"literal>): determines the optimistic locking strategy."
-msgstr ""
-"<literal>optimistic-lockï¼ä¹è§éå®ï¼</literal> (å¯éï¼é»è®¤æ¯"
-"<literal>version</literal>): å³å®ä¹è§éå®ççç¥ã"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>version</literal>): determines the optimistic locking strategy."
+msgstr "<literal>optimistic-lockï¼ä¹è§éå®ï¼</literal>ï¼å¯éï¼é»è®¤æ¯ <literal>version</literal>ï¼ï¼å³å®ä¹è§éå®ççç¥ã "
#. Tag: para
-#: basic_mapping.xml:335
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional): lazy fetching can be disabled by setting "
-"<literal>lazy=\"false\"</literal>."
-msgstr ""
-"<literal>lazy</literal> (å¯é): éè¿è®¾ç½®<literal>lazy=\"false\"</literal>ï¼ "
-"ææçå»¶è¿å è½½ï¼Lazy fetchingï¼åè½å°è¢«å
¨é¨ç¦ç¨ï¼disabledï¼ã"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional): lazy fetching can be disabled by setting <literal>lazy=\"false\"</literal>."
+msgstr "<literal>lazy</literal>ï¼å¯éï¼ï¼éè¿è®¾ç½® <literal>lazy=\"false\"</literal>ï¼ææçå»¶è¿å è½½ï¼Lazy fetchingï¼åè½å°è¢«å
¨é¨ç¦ç¨ï¼disabledï¼ã"
#. Tag: para
-#: basic_mapping.xml:341
-#, fuzzy, no-c-format
-msgid ""
-"<literal>entity-name</literal> (optional - defaults to the class name): "
-"Hibernate3 allows a class to be mapped multiple times, potentially to "
-"different tables. It also allows entity mappings that are represented by "
-"Maps or XML at the Java level. In these cases, you should provide an "
-"explicit arbitrary name for the entity. See <xref linkend=\"persistent-"
-"classes-dynamicmodels\"/> and <xref linkend=\"xml\"/> for more information."
-msgstr ""
-"<literal>entity-name</literal> (å¯éï¼é»è®¤ä¸ºç±»å): Hibernate3å
许ä¸ä¸ªç±»è¿è¡å¤"
-"次æ å°ï¼ åææ¯æ å°å°ä¸åç表ï¼ï¼å¹¶ä¸å
许使ç¨MapsæXML代æ¿Java屿¬¡çå®ä½æ å° "
-"ï¼ä¹å°±æ¯å®ç°å¨æé¢å模åï¼ä¸ç¨åæä¹
åç±»ï¼è¯æ³¨ï¼ã æ´å¤ä¿¡æ¯è¯·ç<xref linkend="
-"\"persistent-classes-dynamicmodels\"/> and <xref linkend=\"xml\"/>ã"
+#, no-c-format
+msgid "<literal>entity-name</literal> (optional - defaults to the class name): Hibernate3 allows a class to be mapped multiple times, potentially to different tables. It also allows entity mappings that are represented by Maps or XML at the Java level. In these cases, you should provide an explicit arbitrary name for the entity. See <xref linkend=\"persistent-classes-dynamicmodels\" /> and <xref linkend=\"xml\" /> for more information."
+msgstr "<literal>entity-name</literal>ï¼å¯éï¼é»è®¤ä¸ºç±»åï¼ï¼Hibernate3 å
许ä¸ä¸ªç±»è¿è¡å¤æ¬¡æ å°ï¼åææ¯æ å°å°ä¸åç表ï¼ï¼å¹¶ä¸å
è®¸ä½¿ç¨ Maps æ XML ä»£æ¿ Java 屿¬¡çå®ä½æ å°ï¼ä¹å°±æ¯å®ç°å¨æé¢å模åï¼ä¸ç¨åæä¹
åç±»ï¼è¯æ³¨ï¼ãæ´å¤ä¿¡æ¯è¯·ç <xref linkend=\"persistent-classes-dynamicmodels\"/> å <xref linkend=\"xml\"/>ã "
#. Tag: para
-#: basic_mapping.xml:351
-#, fuzzy, no-c-format
-msgid ""
-"<literal>check</literal> (optional): an SQL expression used to generate a "
-"multi-row <emphasis>check</emphasis> constraint for automatic schema "
-"generation."
-msgstr ""
-"<literal>check</literal> (å¯é): è¿æ¯ä¸ä¸ªSQL表达å¼ï¼ ç¨äºä¸ºèªå¨çæçschemaæ·»"
-"å å¤è¡ï¼multi-rowï¼çº¦æ<emphasis>æ£æ¥</emphasis>ã"
+#, no-c-format
+msgid "<literal>check</literal> (optional): an SQL expression used to generate a multi-row <emphasis>check</emphasis> constraint for automatic schema generation."
+msgstr "<literal>check</literal>ï¼å¯éï¼ï¼è¿æ¯ä¸ä¸ª SQL 表达å¼ï¼ ç¨äºä¸ºèªå¨çæç schema æ·»å å¤è¡ï¼multi-rowï¼çº¦æ<emphasis>æ£æ¥</emphasis>ã "
#. Tag: para
-#: basic_mapping.xml:357
-#, fuzzy, no-c-format
-msgid ""
-"<literal>rowid</literal> (optional): Hibernate can use ROWIDs on databases. "
-"On Oracle, for example, Hibernate can use the <literal>rowid</literal> extra "
-"column for fast updates once this option has been set to <literal>rowid</"
-"literal>. A ROWID is an implementation detail and represents the physical "
-"location of a stored tuple."
-msgstr ""
-"<literal>rowid</literal> (å¯é): Hibernateå¯ä»¥ä½¿ç¨æ°æ®åºæ¯æçæè°çROWIDsï¼"
-"ä¾å¦ï¼ Oracleæ°æ®åºï¼å¦æä½ 设置è¿ä¸ªå¯éç<literal>rowid</literal>ï¼ Hibernate"
-"å¯ä»¥ä½¿ç¨é¢å¤çåæ®µ<literal>rowid</literal>å®ç°å¿«éæ´æ°ãROWIDæ¯è¿ä¸ªåè½å®ç°ç"
-"éç¹ï¼ å®ä»£è¡¨äºä¸ä¸ªåå¨å
ç»ï¼tupleï¼çç©çä½ç½®ã"
+#, no-c-format
+msgid "<literal>rowid</literal> (optional): Hibernate can use ROWIDs on databases. On Oracle, for example, Hibernate can use the <literal>rowid</literal> extra column for fast updates once this option has been set to <literal>rowid</literal>. A ROWID is an implementation detail and represents the physical location of a stored tuple."
+msgstr "<literal>rowid</literal>ï¼å¯éï¼ï¼Hibernate å¯ä»¥ä½¿ç¨æ°æ®åºæ¯æçæè°ç ROWIDsï¼ä¾å¦ï¼Oracle æ°æ®åºï¼å¦æä½ 设置è¿ä¸ªå¯éç <literal>rowid</literal>ï¼Hibernate å¯ä»¥ä½¿ç¨é¢å¤çåæ®µ <literal>rowid</literal> å®ç°å¿«éæ´æ°ãROWID æ¯è¿ä¸ªåè½å®ç°çéç¹ï¼å®ä»£è¡¨äºä¸ä¸ªåå¨å
ç»ï¼tupleï¼çç©çä½ç½®ã "
#. Tag: para
-#: basic_mapping.xml:364
-#, fuzzy, no-c-format
-msgid ""
-"<literal>subselect</literal> (optional): maps an immutable and read-only "
-"entity to a database subselect. This is useful if you want to have a view "
-"instead of a base table. See below for more information."
-msgstr ""
-"<literal>subselect</literal> (å¯é): å®å°ä¸ä¸ªä¸å¯åï¼immutableï¼å¹¶ä¸åªè¯»çå®"
-"使 å°å°ä¸ä¸ªæ°æ®åºç åæ¥è¯¢ä¸ãå½ä½ æ³ç¨è§å¾ä»£æ¿ä¸å¼ åºæ¬è¡¨çæ¶åï¼è¿æ¯æç¨çï¼"
-"使好ä¸è¦è¿æ ·åãæ´å¤çä»ç»è¯·çä¸é¢å
容ã"
+#, no-c-format
+msgid "<literal>subselect</literal> (optional): maps an immutable and read-only entity to a database subselect. This is useful if you want to have a view instead of a base table. See below for more information."
+msgstr "<literal>subselect</literal>ï¼å¯éï¼ï¼å®å°ä¸ä¸ªä¸å¯åï¼immutableï¼å¹¶ä¸åªè¯»çå®ä½æ å°å°ä¸ä¸ªæ°æ®åºçåæ¥è¯¢ä¸ãå½ä½ æ³ç¨è§å¾ä»£æ¿ä¸å¼ åºæ¬è¡¨çæ¶åï¼è¿æ¯æç¨çï¼ä½æå¥½ä¸è¦è¿æ ·åãæ´å¤çä»ç»è¯·çä¸é¢å
容ã "
#. Tag: para
-#: basic_mapping.xml:371
-#, fuzzy, no-c-format
-msgid ""
-"<literal>abstract</literal> (optional): is used to mark abstract "
-"superclasses in <literal><union-subclass></literal> hierarchies."
-msgstr ""
-"<literal>abstract</literal> (å¯é): ç¨äºå¨<literal><union-subclass></"
-"literal>çç»§æ¿ç»æ ï¼hierarchiesï¼ä¸æ è¯æ½è±¡è¶
ç±»ã"
+#, no-c-format
+msgid "<literal>abstract</literal> (optional): is used to mark abstract superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr "<literal>abstract</literal>ï¼å¯éï¼ï¼ç¨äºå¨ <literal><union-subclass></literal> ç屿¬¡ç»æï¼hierarchiesï¼ä¸æ è¯æ½è±¡è¶
ç±»ã"
#. Tag: para
-#: basic_mapping.xml:379
-#, fuzzy, no-c-format
-msgid ""
-"It is acceptable for the named persistent class to be an interface. You can "
-"declare implementing classes of that interface using the <literal><"
-"subclass></literal> element. You can persist any <emphasis>static</"
-"emphasis> inner class. Specify the class name using the standard form i.e. "
-"<literal>e.g.Foo$Bar</literal>."
-msgstr ""
-"è¥ææçæä¹
åç±»å®é
䏿¯ä¸ä¸ªæ¥å£ï¼è¿ä¹æ¯å®å
¨å¯ä»¥æ¥åçã ä¹åä½ å¯ä»¥ç¨å
ç´ "
-"<literal><subclass></literal>æ¥æå®è¯¥æ¥å£çå®é
å®ç°ç±»ã ä½ å¯ä»¥æä¹
åä»»"
-"ä½<emphasis>static</emphasis>ï¼éæçï¼å
é¨ç±»ã ä½ åºè¯¥ä½¿ç¨æ åçç±»åæ ¼å¼æ¥æ"
-"å®ç±»åï¼<literal>æ¯å¦ï¼Foo$Bar</literal>ã"
+#, no-c-format
+msgid "It is acceptable for the named persistent class to be an interface. You can declare implementing classes of that interface using the <literal><subclass></literal> element. You can persist any <emphasis>static</emphasis> inner class. Specify the class name using the standard form i.e. <literal>e.g.Foo$Bar</literal>."
+msgstr "è¥ææçæä¹
åç±»å®é
䏿¯ä¸ä¸ªæ¥å£ï¼è¿ä¹æ¯å®å
¨å¯ä»¥æ¥åçãä¹åä½ å¯ä»¥ç¨å
ç´ <literal><subclass></literal> æ¥æå®è¯¥æ¥å£çå®é
å®ç°ç±»ãä½ å¯ä»¥æä¹
åä»»ä½ <emphasis>static</emphasis>ï¼éæçï¼å
é¨ç±»ãä½ åºè¯¥ä½¿ç¨æ åçç±»åæ ¼å¼æ¥æå®ç±»åï¼æ¯å¦ï¼<literal>Foo$Bar</literal>ã"
#. Tag: para
-#: basic_mapping.xml:386
-#, fuzzy, no-c-format
-msgid ""
-"Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated "
-"or deleted by the application. This allows Hibernate to make some minor "
-"performance optimizations."
-msgstr ""
-"ä¸å¯åç±»ï¼<literal>mutable=\"false\"</literal>ä¸å¯ä»¥è¢«åºç¨ç¨åºæ´æ°æè
å é¤ã "
-"è¿å¯ä»¥è®©Hibernateåä¸äºå°å°çæ§è½ä¼åã"
+#, no-c-format
+msgid "Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated or deleted by the application. This allows Hibernate to make some minor performance optimizations."
+msgstr "ä¸å¯åç±»ï¼<literal>mutable=\"false\"</literal> ä¸å¯ä»¥è¢«åºç¨ç¨åºæ´æ°æè
å é¤ãè¿å
许 Hibernate å®ç°ä¸äºå°å°çæ§è½ä¼åã"
#. Tag: para
-#: basic_mapping.xml:391
-#, fuzzy, no-c-format
-msgid ""
-"The optional <literal>proxy</literal> attribute enables lazy initialization "
-"of persistent instances of the class. Hibernate will initially return CGLIB "
-"proxies that implement the named interface. The persistent object will load "
-"when a method of the proxy is invoked. See \"Initializing collections and "
-"proxies\" below."
-msgstr ""
-"å¯éç<literal>proxy</literal>屿§å
许延è¿å 载类çæä¹
åå®ä¾ã Hibernateå¼å§"
-"ä¼è¿åå®ç°äºè¿ä¸ªå½åæ¥å£çCGLIB代çãå½ä»£ççæä¸ªæ¹æ³è¢«å®é
è°ç¨çæ¶åï¼ çå®"
-"çæä¹
å对象æä¼è¢«è£
è½½ãåè§ä¸é¢çâç¨äºå»¶è¿è£
è½½ç代çâã"
+#, no-c-format
+msgid "The optional <literal>proxy</literal> attribute enables lazy initialization of persistent instances of the class. Hibernate will initially return CGLIB proxies that implement the named interface. The persistent object will load when a method of the proxy is invoked. See \"Initializing collections and proxies\" below."
+msgstr "å¯éç <literal>proxy</literal> 屿§å
许延è¿å 载类çæä¹
åå®ä¾ãHibernate å¼å§ä¼è¿åå®ç°äºè¿ä¸ªå½åæ¥å£ç CGLIB 代çãå½ä»£ççæä¸ªæ¹æ³è¢«å®é
è°ç¨çæ¶åï¼çå®çæä¹
å对象æä¼è¢«è£
è½½ãåè§ä¸é¢çâç¨äºå»¶è¿è£
è½½ç代çâã "
#. Tag: para
-#: basic_mapping.xml:398
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Implicit</emphasis> polymorphism means that instances of the class "
-"will be returned by a query that names any superclass or implemented "
-"interface or class, and that instances of any subclass of the class will be "
-"returned by a query that names the class itself. <emphasis>Explicit</"
-"emphasis> polymorphism means that class instances will be returned only by "
-"queries that explicitly name that class. Queries that name the class will "
-"return only instances of subclasses mapped inside this <literal><class>"
-"</literal> declaration as a <literal><subclass></literal> or "
-"<literal><joined-subclass></literal>. For most purposes, the default "
-"<literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit "
-"polymorphism is useful when two different classes are mapped to the same "
-"table This allows a \"lightweight\" class that contains a subset of the "
-"table columns."
-msgstr ""
-"<emphasis>Implicit</emphasis> (éå¼)çå¤ææ¯æï¼å¦ææ¥è¯¢æ¶ç»åºçæ¯ä»»ä½è¶
ç±»ã"
-"该类å®ç°çæ¥å£æè
该类ç ååï¼é½ä¼è¿åè¿ä¸ªç±»çå®ä¾ï¼å¦ææ¥è¯¢ä¸ç»åºçæ¯åç±»ç"
-"ååï¼åä¼è¿ååç±»çå®ä¾ã <emphasis>Explicit</emphasis> ï¼æ¾å¼ï¼çå¤ææ¯æï¼"
-"åªæå¨æ¥è¯¢æ¶ç»åºæç¡®ç该类ååæ¶æä¼è¿åè¿ä¸ªç±»çå®ä¾ï¼ åæ¶åªæå¨è¿ä¸ª"
-"<literal><class></literal>çå®ä¹ä¸ä½ä¸º<literal><subclass></"
-"literal> æè
<literal><joined-subclass></literal>åºç°çåç±»ï¼æä¼å¯è½è¿"
-"åã å¨å¤§å¤æ°æ
åµä¸ï¼é»è®¤ç<literal>polymorphism=\"implicit\"</literal>齿¯å"
-"éçã æ¾å¼çå¤æå¨æä¸¤ä¸ªä¸åçç±»æ å°å°åä¸ä¸ªè¡¨çæ¶å徿ç¨ãï¼å
许ä¸ä¸ªâè½»"
-"åâçç±»ï¼åªå
å«é¨åè¡¨åæ®µï¼ã"
+#, no-c-format
+msgid "<emphasis>Implicit</emphasis> polymorphism means that instances of the class will be returned by a query that names any superclass or implemented interface or class, and that instances of any subclass of the class will be returned by a query that names the class itself. <emphasis>Explicit</emphasis> polymorphism means that class instances will be returned only by queries that explicitly name that class. Queries that name the class will return only instances of subclasses mapped inside this <literal><class></literal> declaration as a <literal><subclass></literal> or <literal><joined-subclass></literal>. For most purposes, the default <literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit polymorphism is useful when two different classes are mapped to the same table This allows a \"lightweight\" class that contains a subset of the table columns."
+msgstr "<emphasis>Implicit</emphasis>ï¼éå¼ï¼çå¤ææ¯æï¼å¦ææ¥è¯¢æ¶ç»åºçæ¯ä»»ä½è¶
ç±»ã该类å®ç°çæ¥å£æè
该类çååï¼é½ä¼è¿åè¿ä¸ªç±»çå®ä¾ï¼å¦ææ¥è¯¢ä¸ç»åºçæ¯åç±»çååï¼åä¼è¿ååç±»çå®ä¾ã<emphasis>Explicit</emphasis>ï¼æ¾å¼ï¼çå¤ææ¯æï¼åªæå¨æ¥è¯¢æ¶ç»åºæç¡®ç该类ååæ¶æä¼è¿åè¿ä¸ªç±»çå®ä¾ï¼ åæ¶åªæå¨è¿ä¸ª <literal><class></literal> çå®ä¹ä¸ä½ä¸º <literal><subclass></literal> æè
<literal><joined-subclass></literal> åºç°çåç±»ï¼æä¼å¯è½è¿åãå¨å¤§å¤æ°æ
åµä¸ï¼é»è®¤ç <literal>polymorphism=\"implicit\"</literal> 齿¯åéçãæ¾å¼çå¤æå¨æä¸¤ä¸ªä¸åçç±»æ å°å°åä¸ä¸ªè¡¨çæ¶å徿ç¨ãï¼å
许ä¸ä¸ªâè½»é级âçç±»ï¼åªå
å«é¨åè¡¨åæ®µï¼ã "
#. Tag: para
-#: basic_mapping.xml:410
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>persister</literal> attribute lets you customize the "
-"persistence strategy used for the class. You can, for example, specify your "
-"own subclass of <literal>org.hibernate.persister.EntityPersister</literal>, "
-"or you can even provide a completely new implementation of the interface "
-"<literal>org.hibernate.persister.ClassPersister</literal> that implements, "
-"for example, persistence via stored procedure calls, serialization to flat "
-"files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for "
-"a simple example of \"persistence\" to a <literal>Hashtable</literal>."
-msgstr ""
-"<literal>persister</literal>屿§å¯ä»¥è®©ä½ å®å¶è¿ä¸ªç±»ä½¿ç¨çæä¹
åçç¥ã ä½ å¯ä»¥æ"
-"å®ä½ èªå·±å®ç° <literal>org.hibernate.persister.EntityPersister</literal>çå"
-"ç±»ï¼ä½ çè³å¯ä»¥å®å
¨ä»å¤´å¼å§ç¼åä¸ä¸ª <literal>org.hibernate.persister."
-"ClassPersister</literal>æ¥å£çå®ç°ï¼ æ¯å¦æ¯ç¨å¨åè¿ç¨è°ç¨ãåºååå°æä»¶æè
"
-"LDAPæ°æ®åºæ¥å®ç°ã åé
<literal>org.hibernate.test.CustomPersister</"
-"literal>ï¼è¿æ¯ä¸ä¸ªç®åçä¾å ï¼âæä¹
åâå°ä¸ä¸ª<literal>Hashtable</literal>ï¼ã"
+#, no-c-format
+msgid "The <literal>persister</literal> attribute lets you customize the persistence strategy used for the class. You can, for example, specify your own subclass of <literal>org.hibernate.persister.EntityPersister</literal>, or you can even provide a completely new implementation of the interface <literal>org.hibernate.persister.ClassPersister</literal> that implements, for example, persistence via stored procedure calls, serialization to flat files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for a simple example of \"persistence\" to a <literal>Hashtable</literal>."
+msgstr "<literal>persister</literal> 屿§å¯ä»¥è®©ä½ å®å¶è¿ä¸ªç±»ä½¿ç¨çæä¹
åçç¥ãä½ å¯ä»¥æå®ä½ èªå·±å®ç° <literal>org.hibernate.persister.EntityPersister</literal> çåç±»ï¼ä½ çè³å¯ä»¥å®å
¨ä»å¤´å¼å§ç¼åä¸ä¸ª <literal>org.hibernate.persister.ClassPersister</literal> æ¥å£çå®ç°ï¼æ¯å¦æ¯ç¨å¨åè¿ç¨è°ç¨ãåºååå°æä»¶æè
LDAP æ°æ®åºæ¥å®ç°ãåé
<literal>org.hibernate.test.CustomPersister</literal>ï¼è¿æ¯æä¹
åå° <literal>Hashtable</literal> çä¸ä¸ªç®åä¾åã "
#. Tag: para
-#: basic_mapping.xml:421
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> "
-"settings are not inherited by subclasses, so they can also be specified on "
-"the <literal><subclass></literal> or <literal><joined-subclass></"
-"literal> elements. Although these settings can increase performance in some "
-"cases, they can actually decrease performance in others."
-msgstr ""
-"请注æ<literal>dynamic-update</literal>å<literal>dynamic-insert</literal>ç"
-"设置并ä¸ä¼ç»§æ¿å°åç±»ï¼ æä»¥å¨<literal><subclass></literal>æè
"
-"<literal><joined-subclass></literal>å
ç´ ä¸å¯è½ éè¦å次设置ãè¿äºè®¾ç½®æ¯"
-"å¦è½å¤æé«æçè¦è§æ
å½¢èå®ã请ç¨ä½ çæºæ
§å³å®æ¯å¦ä½¿ç¨ã"
+#, no-c-format
+msgid "The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> settings are not inherited by subclasses, so they can also be specified on the <literal><subclass></literal> or <literal><joined-subclass></literal> elements. Although these settings can increase performance in some cases, they can actually decrease performance in others."
+msgstr "请注æ <literal>dynamic-update</literal> å <literal>dynamic-insert</literal> ç设置并ä¸ä¼ç»§æ¿å°åç±»ï¼æä»¥å¨ <literal><subclass></literal> æè
<literal><joined-subclass></literal> å
ç´ ä¸å¯è½éè¦å次设置ãè¿äºè®¾ç½®å¨æäºæ
åµä¸è½å¤æé«æçï¼èå
¶ä»æ
åµä¸ååèå¯è½é使§è½ã"
#. Tag: para
-#: basic_mapping.xml:429
-#, fuzzy, no-c-format
-msgid ""
-"Use of <literal>select-before-update</literal> will usually decrease "
-"performance. It is useful to prevent a database update trigger being called "
-"unnecessarily if you reattach a graph of detached instances to a "
-"<literal>Session</literal>."
-msgstr ""
-"使ç¨<literal>select-before-update</literal>é常ä¼é使§è½ãå¦æä½ éæ°è¿æ¥ä¸ä¸ª"
-"è±ç®¡ï¼detacheï¼å¯¹è±¡å®ä¾ å°ä¸ä¸ª<literal>Session</literal>䏿¶ï¼å®å¯ä»¥é²æ¢æ°æ®"
-"åºä¸å¿
è¦ç触åupdateã è¿å°±å¾æç¨äºã"
+#, no-c-format
+msgid "Use of <literal>select-before-update</literal> will usually decrease performance. It is useful to prevent a database update trigger being called unnecessarily if you reattach a graph of detached instances to a <literal>Session</literal>."
+msgstr "ä½¿ç¨ <literal>select-before-update</literal> é常ä¼é使§è½ãå¦æä½ éæ°è¿æ¥ä¸ä¸ªè±ç®¡ï¼detachedï¼å¯¹è±¡å®ä¾ å°ä¸ä¸ª <literal>Session</literal> 䏿¶ï¼å®å¯ä»¥é²æ¢æ°æ®åºä¸å¿
è¦ç触å updateãè¿å°±å¾æç¨äºã"
#. Tag: para
-#: basic_mapping.xml:435
#, no-c-format
-msgid ""
-"If you enable <literal>dynamic-update</literal>, you will have a choice of "
-"optimistic locking strategies:"
-msgstr ""
-"å¦æä½ æå¼äº<literal>dynamic-update</literal>ï¼ä½ å¯ä»¥éæ©å ç§ä¹è§éå®ççç¥ï¼"
+msgid "If you enable <literal>dynamic-update</literal>, you will have a choice of optimistic locking strategies:"
+msgstr "å¦æä½ æå¼äº<literal>dynamic-update</literal>ï¼ä½ å¯ä»¥éæ©å ç§ä¹è§éå®ççç¥ï¼"
#. Tag: para
-#: basic_mapping.xml:441
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>version</literal>: check the version/timestamp columns"
-msgstr "<literal>versionï¼çæ¬æ£æ¥ï¼</literal> æ£æ¥version/timestampåæ®µ"
+msgstr "<literal>versionï¼çæ¬æ£æ¥ï¼</literal>ï¼æ£æ¥ version/timestamp åæ®µ"
#. Tag: para
-#: basic_mapping.xml:446
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>all</literal>: check all columns"
-msgstr "<literal>allï¼å
¨é¨ï¼</literal> æ£æ¥å
¨é¨å段"
+msgstr "<literal>allï¼å
¨é¨ï¼</literal>ï¼æ£æ¥å
¨é¨å段"
#. Tag: para
-#: basic_mapping.xml:451
-#, fuzzy, no-c-format
-msgid ""
-"<literal>dirty</literal>: check the changed columns, allowing some "
-"concurrent updates"
-msgstr "<literal>dirtyï¼èæ£æ¥ï¼</literal>åªæ£å¯ä¿®æ¹è¿çåæ®µ"
+#, no-c-format
+msgid "<literal>dirty</literal>: check the changed columns, allowing some concurrent updates"
+msgstr "<literal>dirtyï¼èæ£æ¥ï¼</literal>ï¼åªæ£å¯ä¿®æ¹è¿çåæ®µï¼å
许æäºå¹¶è¡æ´æ°"
#. Tag: para
-#: basic_mapping.xml:456
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>none</literal>: do not use optimistic locking"
-msgstr "<literal>noneï¼ä¸æ£æ¥ï¼</literal>ä¸ä½¿ç¨ä¹è§éå®"
+msgstr "<literal>noneï¼ä¸æ£æ¥ï¼</literal>ï¼ä¸ä½¿ç¨ä¹è§éå®"
#. Tag: para
-#: basic_mapping.xml:461
-#, fuzzy, no-c-format
-msgid ""
-"It is <emphasis>strongly</emphasis> recommended that you use version/"
-"timestamp columns for optimistic locking with Hibernate. This strategy "
-"optimizes performance and correctly handles modifications made to detached "
-"instances (i.e. when <literal>Session.merge()</literal> is used)."
-msgstr ""
-"æä»¬<emphasis>é常</emphasis>强çå»ºè®®ä½ å¨Hibernateä¸ä½¿ç¨version/timestampåæ®µ"
-"æ¥è¿è¡ä¹è§éå®ã 对æ§è½æ¥è¯´ï¼è¿æ¯æå¥½çéæ©ï¼å¹¶ä¸è¿ä¹æ¯å¯ä¸è½å¤å¤çå¨session"
-"å¤è¿è¡æä½ççç¥ï¼ä¾å¦ï¼ å¨ä½¿ç¨<literal>Session.merge()</literal>çæ¶åï¼ã"
+#, no-c-format
+msgid "It is <emphasis>strongly</emphasis> recommended that you use version/timestamp columns for optimistic locking with Hibernate. This strategy optimizes performance and correctly handles modifications made to detached instances (i.e. when <literal>Session.merge()</literal> is used)."
+msgstr "æä»¬<emphasis>强ç</emphasis>å»ºè®®ä½ å¨ Hibernate ä¸ä½¿ç¨ version/timestamp åæ®µæ¥è¿è¡ä¹è§éå®ãè¿ä¸ªéæ©å¯ä»¥ä¼åæ§è½ï¼ä¸è½å¤å¤ç对è±ç®¡å®ä¾çä¿®æ¹ï¼ä¾å¦ï¼å¨ä½¿ç¨ <literal>Session.merge()</literal> çæ¶åï¼ã"
#. Tag: para
-#: basic_mapping.xml:468
-#, fuzzy, no-c-format
-msgid ""
-"There is no difference between a view and a base table for a Hibernate "
-"mapping. This is transparent at the database level, although some DBMS do "
-"not support views properly, especially with updates. Sometimes you want to "
-"use a view, but you cannot create one in the database (i.e. with a legacy "
-"schema). In this case, you can map an immutable and read-only entity to a "
-"given SQL subselect expression:"
-msgstr ""
-"对Hibernateæ å°æ¥è¯´è§å¾åè¡¨æ¯æ²¡æåºå«çï¼è¿æ¯å 为å®ä»¬å¨æ°æ®å±é½æ¯éæçï¼ æ³¨"
-"æï¼ä¸äºæ°æ®åºä¸æ¯æè§å¾å±æ§ï¼ç¹å«æ¯æ´æ°çæ¶åï¼ãææ¶ä½ æ³ä½¿ç¨è§å¾ï¼ä½å´ä¸è½"
-"卿°æ®åº ä¸å建å®ï¼ä¾å¦ï¼å¨éççschemaä¸ï¼ãè¿æ ·çè¯ï¼ä½ å¯ä»¥æ å°ä¸ä¸ªä¸å¯åç"
-"ï¼immutableï¼å¹¶ä¸æ¯ åªè¯»çå®ä½å°ä¸ä¸ªç»å®çSQLåæ¥è¯¢è¡¨è¾¾å¼ï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:476
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Summary\">\n"
-" <subselect>\n"
-" select item.name, max(bid.amount), count(*)\n"
-" from item\n"
-" join bid on bid.item_id = item.id\n"
-" group by item.name\n"
-" </subselect>\n"
-" <synchronize table=\"item\"/>\n"
-" <synchronize table=\"bid\"/>\n"
-" <id name=\"name\"/>\n"
-" ...\n"
-"</class>]]>"
-msgstr ""
+msgid "There is no difference between a view and a base table for a Hibernate mapping. This is transparent at the database level, although some DBMS do not support views properly, especially with updates. Sometimes you want to use a view, but you cannot create one in the database (i.e. with a legacy schema). In this case, you can map an immutable and read-only entity to a given SQL subselect expression:"
+msgstr "对 Hibernate æ å°æ¥è¯´è§å¾åè¡¨æ¯æ²¡æåºå«çï¼è¿æ¯å 为å®ä»¬å¨æ°æ®å±é½æ¯éæçï¼ æ³¨æï¼ä¸äºæ°æ®åºä¸æ¯æè§å¾å±æ§ï¼ç¹å«æ¯æ´æ°çæ¶åï¼ãææ¶ä½ æ³ä½¿ç¨è§å¾ï¼ä½å´ä¸è½å¨æ°æ®åºä¸å建å®ï¼ä¾å¦ï¼å¨éçç schema ä¸ï¼ãè¿æ ·çè¯ï¼ä½ å¯ä»¥æ å°ä¸ä¸ªä¸å¯åçï¼immutableï¼å¹¶ä¸æ¯ åªè¯»çå®ä½å°ä¸ä¸ªç»å®ç SQL åæ¥è¯¢è¡¨è¾¾å¼ï¼ "
#. Tag: para
-#: basic_mapping.xml:478
-#, fuzzy, no-c-format
-msgid ""
-"Declare the tables to synchronize this entity with, ensuring that auto-flush "
-"happens correctly and that queries against the derived entity do not return "
-"stale data. The <literal><subselect></literal> is available both as an "
-"attribute and a nested mapping element."
-msgstr ""
-"å®ä¹è¿ä¸ªå®ä½ç¨å°çè¡¨ä¸ºåæ¥ï¼synchronizeï¼ï¼ç¡®ä¿èªå¨å·æ°ï¼auto-flushï¼æ£ç¡®æ§"
-"è¡ï¼ å¹¶ä¸ä¾èµåå®ä½çæ¥è¯¢ä¸ä¼è¿åè¿ææ°æ®ã<literal><subselect></"
-"literal>å¨å±æ§å
ç´ åä¸ä¸ªåµå¥æ å°å
ç´ ä¸é½å¯è§ã"
+#, no-c-format
+msgid "Declare the tables to synchronize this entity with, ensuring that auto-flush happens correctly and that queries against the derived entity do not return stale data. The <literal><subselect></literal> is available both as an attribute and a nested mapping element."
+msgstr "å®ä¹è¿ä¸ªå®ä½ç¨å°çè¡¨ä¸ºåæ¥ï¼synchronizeï¼ï¼ç¡®ä¿èªå¨å·æ°ï¼auto-flushï¼æ£ç¡®æ§è¡ï¼å¹¶ä¸ä¾èµåå®ä½çæ¥è¯¢ä¸ä¼è¿åè¿ææ°æ®ãå¨å±æ§å
ç´ ååµå¥æ å°å
ç´ ä¸é½å¯ä½¿ç¨ <literal><subselect></literal>ã"
#. Tag: title
-#: basic_mapping.xml:488
#, no-c-format
-msgid "<title>id</title>"
-msgstr ""
+msgid "id"
+msgstr "id"
#. Tag: para
-#: basic_mapping.xml:490
#, no-c-format
-msgid ""
-"Mapped classes <emphasis>must</emphasis> declare the primary key column of "
-"the database table. Most classes will also have a JavaBeans-style property "
-"holding the unique identifier of an instance. The <literal><id></"
-"literal> element defines the mapping from that property to the primary key "
-"column."
-msgstr ""
-"被æ å°çç±»<emphasis>å¿
é¡»</emphasis>å®ä¹å¯¹åºæ°æ®åºè¡¨ä¸»é®å段ã大夿°ç±»æä¸ä¸ª"
-"JavaBeans飿 ¼ç屿§ï¼ 为æ¯ä¸ä¸ªå®ä¾å
å«å¯ä¸çæ è¯ã<literal><id></"
-"literal> å
ç´ å®ä¹äºè¯¥å±æ§å°æ°æ®åºè¡¨ä¸»é®åæ®µçæ å°ã"
+msgid "Mapped classes <emphasis>must</emphasis> declare the primary key column of the database table. Most classes will also have a JavaBeans-style property holding the unique identifier of an instance. The <literal><id></literal> element defines the mapping from that property to the primary key column."
+msgstr "被æ å°çç±»<emphasis>å¿
é¡»</emphasis>å®ä¹å¯¹åºæ°æ®åºè¡¨ä¸»é®å段ã大夿°ç±»æä¸ä¸ª JavaBeans 飿 ¼ç屿§ï¼ 为æ¯ä¸ä¸ªå®ä¾å
å«å¯ä¸çæ è¯ã<literal><id></literal> å
ç´ å®ä¹äºè¯¥å±æ§å°æ°æ®åºè¡¨ä¸»é®åæ®µçæ å°ã"
-#. Tag: programlisting
-#: basic_mapping.xml:505
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<id\n"
-" name=\"propertyName\"\n"
-" type=\"typename\"\n"
-" column=\"column_name\"\n"
-" unsaved-value=\"null|any|none|undefined|id_value\"\n"
-" access=\"field|property|ClassName\">\n"
-" node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-"\n"
-" <generator class=\"generatorClass\"/>\n"
-"</id>]]>"
-msgstr ""
+msgid "<literal>name</literal> (optional): the name of the identifier property."
+msgstr "<literal>name</literal>ï¼å¯éï¼ï¼æ è¯å±æ§çååã "
#. Tag: para
-#: basic_mapping.xml:508
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal> (optional): the name of the identifier property."
-msgstr "<literal>name</literal> (å¯é): æ è¯å±æ§çååã"
+#, no-c-format
+msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgstr "<literal>type</literal>ï¼å¯éï¼ï¼ä¸ä¸ª Hibernate ç±»åçååã"
#. Tag: para
-#: basic_mapping.xml:513 basic_mapping.xml:1351
#, no-c-format
-msgid ""
-"<literal>type</literal> (optional): a name that indicates the Hibernate type."
-msgstr "<literal>type</literal> (å¯é): ä¸ä¸ªHibernateç±»åçååã"
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of the primary key column."
+msgstr "<literal>column</literal>ï¼å¯é â é»è®¤ä¸ºå±æ§åï¼ï¼ä¸»é®å段çååã "
#. Tag: para
-#: basic_mapping.xml:518
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of the primary key column."
-msgstr "<literal>column</literal> (å¯é - é»è®¤ä¸ºå±æ§å): 主é®å段çååã"
+#, no-c-format
+msgid "<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" value): an identifier property value that indicates an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session."
+msgstr "<literal>unsaved-value</literal>ï¼å¯é â é»è®¤ä¸ºä¸ä¸ªååå®é
ï¼sensibleï¼çå¼ï¼ï¼ä¸ä¸ªç¹å®çæ è¯å±æ§å¼ï¼ç¨æ¥æ å¿è¯¥å®ä¾æ¯ååå建çï¼å°æªä¿åãè¿å¯ä»¥æè¿ç§å®ä¾åä»ä»¥åç session ä¸è£
è½½è¿ï¼å¯è½ååè¿ä¿®æ¹--è¯è
注ï¼ä½æªå次æä¹
åçå®ä¾åºå弿¥ã "
#. Tag: para
-#: basic_mapping.xml:524
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" "
-"value): an identifier property value that indicates an instance is newly "
-"instantiated (unsaved), distinguishing it from detached instances that were "
-"saved or loaded in a previous session."
-msgstr ""
-"<literal>unsaved-value</literal> (å¯é - é»è®¤ä¸ºä¸ä¸ªååå®é
ï¼sensibleï¼ç"
-"å¼): ä¸ä¸ªç¹å®çæ è¯å±æ§å¼ï¼ç¨æ¥æ å¿è¯¥å®ä¾æ¯ååå建çï¼å°æªä¿åã è¿å¯ä»¥æè¿"
-"ç§å®ä¾åä»ä»¥åçsessionä¸è£
è½½è¿ï¼å¯è½ååè¿ä¿®æ¹--è¯è
æ³¨ï¼ ä½æªå次æä¹
åçå®"
-"ä¾åºå弿¥ã"
+#, no-c-format
+msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate should use for accessing the property value."
+msgstr "<literal>access</literal>ï¼å¯é â é»è®¤ä¸º <literal>property</literal>ï¼ï¼Hibernate ç¨æ¥è®¿é®å±æ§å¼ççç¥ã "
#. Tag: para
-#: basic_mapping.xml:532
-#, fuzzy, no-c-format
-msgid ""
-"<literal>access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate should use for accessing the property "
-"value."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤ä¸º<literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤ä¸º<literal>property</literal>): "
-"Hibernateåºè¯¥ä½¿ç¨çè®¿é®æ¤å±æ§å¼ççç¥\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨äºè®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨äºè®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤å¼ä¸º <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é -é»è®¤æ¯ <literal>property</literal>): "
-"Hibernate ç¨æ¥è®¿é®å±æ§å¼ççç¥ã"
+#, no-c-format
+msgid "If the <literal>name</literal> attribute is missing, it is assumed that the class has no identifier property."
+msgstr "妿 <literal>name</literal> 屿§ä¸åå¨ï¼ä¼è®¤ä¸ºè¿ä¸ªç±»æ²¡ææ è¯å±æ§ã"
#. Tag: para
-#: basic_mapping.xml:540
#, no-c-format
-msgid ""
-"If the <literal>name</literal> attribute is missing, it is assumed that the "
-"class has no identifier property."
-msgstr "妿 <literal>name</literal>屿§ä¸åå¨ï¼ä¼è®¤ä¸ºè¿ä¸ªç±»æ²¡ææ è¯å±æ§ã"
+msgid "The <literal>unsaved-value</literal> attribute is almost never needed in Hibernate3."
+msgstr "<literal>unsaved-value</literal> 屿§å¨ Hibernate3 ä¸å ä¹ä¸åéè¦ã"
#. Tag: para
-#: basic_mapping.xml:545
#, no-c-format
-msgid ""
-"The <literal>unsaved-value</literal> attribute is almost never needed in "
-"Hibernate3."
-msgstr "<literal>unsaved-value</literal> 屿§å¨Hibernate3ä¸å ä¹ä¸åéè¦ã"
+msgid "There is an alternative <literal><composite-id></literal> declaration that allows access to legacy data with composite keys. Its use is strongly discouraged for anything else."
+msgstr "è¿æä¸ä¸ªå¦å¤ç <literal><composite-id></literal> å®ä¹å¯ä»¥è®¿é®æ§å¼çå¤ä¸»é®æ°æ®ãæä»¬é常ä¸é¼å±ä½¿ç¨è¿ç§æ¹å¼ã"
-#. Tag: para
-#: basic_mapping.xml:549
-#, fuzzy, no-c-format
-msgid ""
-"There is an alternative <literal><composite-id></literal> declaration "
-"that allows access to legacy data with composite keys. Its use is strongly "
-"discouraged for anything else."
-msgstr ""
-"è¿æä¸ä¸ªå¦å¤ç<literal><composite-id></literal>å®ä¹å¯ä»¥è®¿é®æ§å¼çå¤ä¸»é®"
-"æ°æ®ã æä»¬å¼ºçä¸å»ºè®®ä½¿ç¨è¿ç§æ¹å¼ã"
-
#. Tag: title
-#: basic_mapping.xml:555
#, no-c-format
msgid "Generator"
msgstr "Generator"
#. Tag: para
-#: basic_mapping.xml:557
#, no-c-format
-msgid ""
-"The optional <literal><generator></literal> child element names a Java "
-"class used to generate unique identifiers for instances of the persistent "
-"class. If any parameters are required to configure or initialize the "
-"generator instance, they are passed using the <literal><param></"
-"literal> element."
-msgstr ""
-"å¯éç<literal><generator></literal>åå
ç´ æ¯ä¸ä¸ªJavaç±»çååï¼ ç¨æ¥ä¸ºè¯¥"
-"æä¹
åç±»çå®ä¾çæå¯ä¸çæ è¯ã妿è¿ä¸ªçæå¨å®ä¾éè¦æäºé
ç½®å¼æè
åå§åå"
-"æ°ï¼ ç¨<literal><param></literal>å
ç´ æ¥ä¼ éã"
+msgid "The optional <literal><generator></literal> child element names a Java class used to generate unique identifiers for instances of the persistent class. If any parameters are required to configure or initialize the generator instance, they are passed using the <literal><param></literal> element."
+msgstr "å¯éç <literal><generator></literal> åå
ç´ æ¯ä¸ä¸ª Java ç±»çååï¼ç¨æ¥ä¸ºè¯¥æä¹
åç±»çå®ä¾çæå¯ä¸çæ è¯ã妿è¿ä¸ªçæå¨å®ä¾éè¦æäºé
ç½®å¼æè
åå§ååæ°ï¼ç¨ <literal><param></literal> å
ç´ æ¥ä¼ éã"
-#. Tag: programlisting
-#: basic_mapping.xml:564
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-" <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
-" <param name=\"table\">uid_table</param>\n"
-" <param name=\"column\">next_hi_value_column</param>\n"
-" </generator>\n"
-"</id>]]>"
-msgstr ""
+msgid "All generators implement the interface <literal>org.hibernate.id.IdentifierGenerator</literal>. This is a very simple interface. Some applications can choose to provide their own specialized implementations, however, Hibernate provides a range of built-in implementations. The shortcut names for the built-in generators are as follows:"
+msgstr "ææççæå¨é½å®ç° <literal>org.hibernate.id.IdentifierGenerator</literal> æ¥å£ãè¿æ¯ä¸ä¸ªé常ç®åçæ¥å£ï¼æäºåºç¨ç¨åºå¯ä»¥éæ©æä¾ä»ä»¬èªå·±ç¹å®çå®ç°ãå½ç¶ï¼Hibernate æä¾äºå¾å¤å
ç½®çå®ç°ãä¸é¢æ¯ä¸äºå
ç½®çæå¨çå¿«æ·ååï¼ "
-#. Tag: para
-#: basic_mapping.xml:566
-#, fuzzy, no-c-format
-msgid ""
-"All generators implement the interface <literal>org.hibernate.id."
-"IdentifierGenerator</literal>. This is a very simple interface. Some "
-"applications can choose to provide their own specialized implementations, "
-"however, Hibernate provides a range of built-in implementations. The "
-"shortcut names for the built-in generators are as follows:"
-msgstr ""
-"ææççæå¨é½å®ç°<literal>org.hibernate.id.IdentifierGenerator</literal>æ¥"
-"å£ã è¿æ¯ä¸ä¸ªé常ç®åçæ¥å£ï¼æäºåºç¨ç¨åºå¯ä»¥éæ©æä¾ä»ä»¬èªå·±ç¹å®çå®ç°ãå½"
-"ç¶ï¼ Hibernateæä¾äºå¾å¤å
ç½®çå®ç°ãä¸é¢æ¯ä¸äºå
ç½®çæå¨çå¿«æ·ååï¼ "
-"<placeholder-1/>"
-
-#. Tag: literal
-#: basic_mapping.xml:574
+#. Tag: term
#, no-c-format
-msgid "increment"
-msgstr "increment"
+msgid "<literal>increment</literal>"
+msgstr "<literal>increment</literal>"
#. Tag: para
-#: basic_mapping.xml:576
#, no-c-format
-msgid ""
-"generates identifiers of type <literal>long</literal>, <literal>short</"
-"literal> or <literal>int</literal> that are unique only when no other "
-"process is inserting data into the same table. <emphasis>Do not use in a "
-"cluster.</emphasis>"
-msgstr ""
-"ç¨äºä¸º<literal>long</literal>, <literal>short</literal>æè
<literal>int</"
-"literal>ç±»åçæ å¯ä¸æ è¯ãåªæå¨æ²¡æå
¶ä»è¿ç¨å¾åä¸å¼ è¡¨ä¸æå
¥æ°æ®æ¶æè½ä½¿"
-"ç¨ã <emphasis>å¨é群ä¸ä¸è¦ä½¿ç¨ã</emphasis>"
+msgid "generates identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal> that are unique only when no other process is inserting data into the same table. <emphasis>Do not use in a cluster.</emphasis>"
+msgstr "ç¨äºä¸º <literal>long</literal>, <literal>short</literal> æè
<literal>int</literal> ç±»åçæ å¯ä¸æ è¯ãåªæå¨æ²¡æå
¶ä»è¿ç¨å¾åä¸å¼ è¡¨ä¸æå
¥æ°æ®æ¶æè½ä½¿ç¨ã<emphasis>å¨é群ä¸ä¸è¦ä½¿ç¨ã</emphasis>"
-#. Tag: literal
-#: basic_mapping.xml:585
+#. Tag: term
#, no-c-format
-msgid "identity"
-msgstr "identity"
+msgid "<literal>identity</literal>"
+msgstr "<literal>identity</literal>"
#. Tag: para
-#: basic_mapping.xml:587
#, no-c-format
-msgid ""
-"supports identity columns in DB2, MySQL, MS SQL Server, Sybase and "
-"HypersonicSQL. The returned identifier is of type <literal>long</literal>, "
-"<literal>short</literal> or <literal>int</literal>."
-msgstr ""
-"对DB2,MySQL, MS SQL Server, SybaseåHypersonicSQLçå
ç½®æ è¯å段æä¾æ¯æã è¿"
-"åçæ è¯ç¬¦æ¯<literal>long</literal>, <literal>short</literal> æè
"
-"<literal>int</literal>ç±»åçã"
+msgid "supports identity columns in DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL. The returned identifier is of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>."
+msgstr "对 DB2ï¼MySQLï¼MS SQL Serverï¼Sybase å HypersonicSQL çå
ç½®æ è¯å段æä¾æ¯æãè¿åçæ è¯ç¬¦æ¯ <literal>long</literal>ï¼<literal>short</literal> æè
<literal>int</literal> ç±»åçã"
-#. Tag: literal
-#: basic_mapping.xml:595
+#. Tag: term
#, no-c-format
-msgid "sequence"
-msgstr "sequence"
+msgid "<literal>sequence</literal>"
+msgstr "<literal>sequence</literal>"
#. Tag: para
-#: basic_mapping.xml:597
#, no-c-format
-msgid ""
-"uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in "
-"Interbase. The returned identifier is of type <literal>long</literal>, "
-"<literal>short</literal> or <literal>int</literal>"
-msgstr ""
-"å¨DB2,PostgreSQL, Oracle, SAP DB, McKoiä¸ä½¿ç¨åºåï¼sequence)ï¼ èå¨Interbase"
-"ä¸ä½¿ç¨çæå¨(generator)ãè¿åçæ è¯ç¬¦æ¯<literal>long</literal>, "
-"<literal>short</literal>æè
<literal>int</literal>ç±»åçã"
+msgid "uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in Interbase. The returned identifier is of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>"
+msgstr "å¨ DB2ï¼PostgreSQLï¼Oracleï¼SAP DBï¼McKoi ä¸ä½¿ç¨åºåï¼sequenceï¼ï¼ èå¨ Interbase ä¸ä½¿ç¨çæå¨ï¼generatorï¼ãè¿åçæ è¯ç¬¦æ¯ <literal>long</literal>ï¼<literal>short</literal> æè
<literal>int</literal> ç±»åçã"
-#. Tag: literal
-#: basic_mapping.xml:605
+#. Tag: term
#, no-c-format
-msgid "hilo"
-msgstr "hilo"
+msgid "<literal>hilo</literal>"
+msgstr "<literal>hilo</literal>"
#. Tag: para
-#: basic_mapping.xml:607
#, no-c-format
-msgid ""
-"uses a hi/lo algorithm to efficiently generate identifiers of type "
-"<literal>long</literal>, <literal>short</literal> or <literal>int</literal>, "
-"given a table and column (by default <literal>hibernate_unique_key</literal> "
-"and <literal>next_hi</literal> respectively) as a source of hi values. The "
-"hi/lo algorithm generates identifiers that are unique only for a particular "
-"database."
-msgstr ""
-"使ç¨ä¸ä¸ªé«/ä½ä½ç®æ³é«æççæ<literal>long</literal>, <literal>short</"
-"literal> æè
<literal>int</literal>ç±»åçæ è¯ç¬¦ãç»å®ä¸ä¸ªè¡¨ååæ®µï¼é»è®¤åå«"
-"æ¯ <literal>hibernate_unique_key</literal> å<literal>next_hi</literal>ï¼ä½ä¸º"
-"é«ä½å¼çæ¥æºã é«/ä½ä½ç®æ³çæçæ è¯ç¬¦åªå¨ä¸ä¸ªç¹å®çæ°æ®åºä¸æ¯å¯ä¸çã"
+msgid "uses a hi/lo algorithm to efficiently generate identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>, given a table and column (by default <literal>hibernate_unique_key</literal> and <literal>next_hi</literal> respectively) as a source of hi values. The hi/lo algorithm generates identifiers that are unique only for a particular database."
+msgstr "使ç¨ä¸ä¸ªé«/ä½ä½ç®æ³é«æççæ <literal>long</literal>ï¼<literal>short</literal> æè
<literal>int</literal> ç±»åçæ è¯ç¬¦ãç»å®ä¸ä¸ªè¡¨ååæ®µï¼é»è®¤å嫿¯ <literal>hibernate_unique_key</literal> å <literal>next_hi</literal>ï¼ä½ä¸ºé«ä½å¼çæ¥æºãé«/ä½ä½ç®æ³çæçæ è¯ç¬¦åªå¨ä¸ä¸ªç¹å®çæ°æ®åºä¸æ¯å¯ä¸çã"
-#. Tag: literal
-#: basic_mapping.xml:617
+#. Tag: term
#, no-c-format
-msgid "seqhilo"
-msgstr "seqhilo"
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>seqhilo</literal>"
#. Tag: para
-#: basic_mapping.xml:619
#, no-c-format
-msgid ""
-"uses a hi/lo algorithm to efficiently generate identifiers of type "
-"<literal>long</literal>, <literal>short</literal> or <literal>int</literal>, "
-"given a named database sequence."
-msgstr ""
-"使ç¨ä¸ä¸ªé«/ä½ä½ç®æ³æ¥é«æççæ<literal>long</literal>, <literal>short</"
-"literal> æè
<literal>int</literal>ç±»åçæ è¯ç¬¦ï¼ç»å®ä¸ä¸ªæ°æ®åºåºå"
-"ï¼sequence)çååã"
+msgid "uses a hi/lo algorithm to efficiently generate identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>, given a named database sequence."
+msgstr "使ç¨ä¸ä¸ªé«/ä½ä½ç®æ³æ¥é«æççæ <literal>long</literal>ï¼<literal>short</literal> æè
<literal>int</literal> ç±»åçæ è¯ç¬¦ï¼ç»å®ä¸ä¸ªæ°æ®åºåºåï¼sequence)çååã"
-#. Tag: literal
-#: basic_mapping.xml:627
+#. Tag: term
#, no-c-format
-msgid "uuid"
-msgstr "uuid"
+msgid "<literal>uuid</literal>"
+msgstr "<literal>uuid</literal>"
#. Tag: para
-#: basic_mapping.xml:629
-#, fuzzy, no-c-format
-msgid ""
-"uses a 128-bit UUID algorithm to generate identifiers of type string that "
-"are unique within a network (the IP address is used). The UUID is encoded as "
-"a string of 32 hexadecimal digits in length."
-msgstr ""
-"ç¨ä¸ä¸ª128-bitçUUIDç®æ³çæå符串类åçæ è¯ç¬¦ï¼ è¿å¨ä¸ä¸ªç½ç»ä¸æ¯å¯ä¸çï¼ä½¿ç¨"
-"äºIPå°åï¼ãUUID被ç¼ç 为ä¸ä¸ª32ä½16è¿å¶æ°åçå符串ã"
+#, no-c-format
+msgid "uses a 128-bit UUID algorithm to generate identifiers of type string that are unique within a network (the IP address is used). The UUID is encoded as a string of 32 hexadecimal digits in length."
+msgstr "ç¨ä¸ä¸ª 128-bit ç UUID ç®æ³çæå符串类åçæ è¯ç¬¦ï¼è¿å¨ä¸ä¸ªç½ç»ä¸æ¯å¯ä¸çï¼ä½¿ç¨äº IP å°åï¼ãUUID 被ç¼ç 为ä¸ä¸ª 32 ä½ 16 è¿å¶æ°åçå符串ã "
-#. Tag: literal
-#: basic_mapping.xml:637
+#. Tag: term
#, no-c-format
-msgid "guid"
-msgstr "guid"
+msgid "<literal>guid</literal>"
+msgstr "<literal>guid</literal>"
#. Tag: para
-#: basic_mapping.xml:639
#, no-c-format
msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
-msgstr "å¨MS SQL Server å MySQL ä¸ä½¿ç¨æ°æ®åºçæçGUIDå符串ã"
+msgstr "å¨ MS SQL Server å MySQL ä¸ä½¿ç¨æ°æ®åºçæç GUID å符串ã"
-#. Tag: literal
-#: basic_mapping.xml:645
+#. Tag: term
#, no-c-format
-msgid "native"
-msgstr "native"
+msgid "<literal>native</literal>"
+msgstr "<literal>native</literal>"
#. Tag: para
-#: basic_mapping.xml:647
-#, fuzzy, no-c-format
-msgid ""
-"selects <literal>identity</literal>, <literal>sequence</literal> or "
-"<literal>hilo</literal> depending upon the capabilities of the underlying "
-"database."
-msgstr ""
-"æ ¹æ®åºå±æ°æ®åºçè½åéæ©<literal>identity</literal>, <literal>sequence</"
-"literal> æè
<literal>hilo</literal>ä¸çä¸ä¸ªã"
+#, no-c-format
+msgid "selects <literal>identity</literal>, <literal>sequence</literal> or <literal>hilo</literal> depending upon the capabilities of the underlying database."
+msgstr "æ ¹æ®åºå±æ°æ®åºçè½åéæ© <literal>identity</literal>ã<literal>sequence</literal> æè
<literal>hilo</literal> ä¸çä¸ä¸ªã"
-#. Tag: literal
-#: basic_mapping.xml:655
+#. Tag: term
#, no-c-format
-msgid "assigned"
-msgstr "assigned"
+msgid "<literal>assigned</literal>"
+msgstr "<literal>assigned</literal>"
#. Tag: para
-#: basic_mapping.xml:657
-#, fuzzy, no-c-format
-msgid ""
-"lets the application assign an identifier to the object before <literal>save"
-"()</literal> is called. This is the default strategy if no <literal><"
-"generator></literal> element is specified."
-msgstr ""
-"让åºç¨ç¨åºå¨<literal>save()</literal>ä¹å为对象åé
ä¸ä¸ªæ 示符ãè¿æ¯ "
-"<literal><generator></literal>å
ç´ æ²¡ææå®æ¶çé»è®¤çæçç¥ã"
+#, no-c-format
+msgid "lets the application assign an identifier to the object before <literal>save()</literal> is called. This is the default strategy if no <literal><generator></literal> element is specified."
+msgstr "让åºç¨ç¨åºå¨è°ç¨ <literal>save()</literal> ä¹å为对象åé
ä¸ä¸ªæ è¯ç¬¦ãè¿æ¯ <literal><generator></literal> å
ç´ æ²¡ææå®æ¶çé»è®¤çæçç¥ã"
-#. Tag: literal
-#: basic_mapping.xml:665
+#. Tag: term
#, no-c-format
-msgid "select"
-msgstr "select"
+msgid "<literal>select</literal>"
+msgstr "<literal>select</literal>"
#. Tag: para
-#: basic_mapping.xml:667
-#, fuzzy, no-c-format
-msgid ""
-"retrieves a primary key, assigned by a database trigger, by selecting the "
-"row by some unique key and retrieving the primary key value."
-msgstr "éè¿æ°æ®åºè§¦åå¨éæ©ä¸äºå¯ä¸ä¸»é®çè¡å¹¶è¿å主é®å¼æ¥åé
ä¸ä¸ªä¸»é®ã"
+#, no-c-format
+msgid "retrieves a primary key, assigned by a database trigger, by selecting the row by some unique key and retrieving the primary key value."
+msgstr "éè¿æ°æ®åºè§¦åå¨éæ©ä¸äºå¯ä¸ä¸»é®çè¡å¹¶è¿å主é®å¼æ¥åé
ä¸ä¸ªä¸»é®ã "
-#. Tag: literal
-#: basic_mapping.xml:674
+#. Tag: term
#, no-c-format
-msgid "foreign"
-msgstr "foreign"
+msgid "<literal>foreign</literal>"
+msgstr "<literal>foreign</literal>"
#. Tag: para
-#: basic_mapping.xml:676
-#, fuzzy, no-c-format
-msgid ""
-"uses the identifier of another associated object. It is usually used in "
-"conjunction with a <literal><one-to-one></literal> primary key "
-"association."
-msgstr ""
-"使ç¨å¦å¤ä¸ä¸ªç¸å
³èçå¯¹è±¡çæ è¯ç¬¦ãé常å<literal><one-to-one></literal>"
-"èåèµ·æ¥ä½¿ç¨ã"
+#, no-c-format
+msgid "uses the identifier of another associated object. It is usually used in conjunction with a <literal><one-to-one></literal> primary key association."
+msgstr "使ç¨å¦å¤ä¸ä¸ªç¸å
³èçå¯¹è±¡çæ è¯ç¬¦ãå®é常å <literal><one-to-one></literal> èåèµ·æ¥ä½¿ç¨ã"
-#. Tag: literal
-#: basic_mapping.xml:683
+#. Tag: term
#, no-c-format
-msgid "sequence-identity"
-msgstr "sequence-identity"
+msgid "<literal>sequence-identity</literal>"
+msgstr "<literal>sequence-identity</literal>"
#. Tag: para
-#: basic_mapping.xml:685
-#, fuzzy, no-c-format
-msgid ""
-"a specialized sequence generation strategy that utilizes a database sequence "
-"for the actual value generation, but combines this with JDBC3 "
-"getGeneratedKeys to return the generated identifier value as part of the "
-"insert statement execution. This strategy is only supported on Oracle 10g "
-"drivers targeted for JDK 1.4. Comments on these insert statements are "
-"disabled due to a bug in the Oracle drivers."
-msgstr ""
-"ä¸ç§ç¹å«çåºåçæçç¥,ä½¿ç¨æ°æ®åºåºåæ¥çæå®é
å¼,ä½å°å®åJDBC3ç"
-"getGeneratedKeysç»åå¨ä¸èµ·,使å¾å¨æå
¥è¯å¥æ§è¡çæ¶åå°±è¿åçæçå¼ãç®å为æ¢åª"
-"æé¢åJDK 1.4çOracle 10g驱卿¯æè¿ä¸çç¥ã注æï¼å 为Oracle驱å¨ç¨åºçä¸ä¸ª"
-"bugï¼è¿äºæå
¥è¯å¥ç注é被å
³éäºãï¼åæï¼Note comments on these insert "
-"statements are disabled due to a bug in the Oracle drivers.ï¼"
+#, no-c-format
+msgid "a specialized sequence generation strategy that utilizes a database sequence for the actual value generation, but combines this with JDBC3 getGeneratedKeys to return the generated identifier value as part of the insert statement execution. This strategy is only supported on Oracle 10g drivers targeted for JDK 1.4. Comments on these insert statements are disabled due to a bug in the Oracle drivers."
+msgstr "ä¸ç§ç¹å«çåºåçæçç¥ï¼å®ä½¿ç¨æ°æ®åºåºåæ¥çæå®é
å¼ï¼ä½å°å®å JDBC3 ç getGeneratedKeys ç»åå¨ä¸èµ·ï¼ä½¿å¾å¨æå
¥è¯å¥æ§è¡çæ¶åå°±è¿åçæçå¼ãç®å为æ¢åªæé¢å JDK 1.4 ç Oracle 10g 驱卿¯æè¿ä¸çç¥ãç±äº Oracle 驱å¨ç¨åºçä¸ä¸ª bugï¼è¿äºæå
¥è¯å¥ç注é被å
³éäºã"
#. Tag: title
-#: basic_mapping.xml:702
#, no-c-format
msgid "Hi/lo algorithm"
msgstr "é«/ä½ä½ç®æ³ï¼Hi/Lo Algorithmï¼"
#. Tag: para
-#: basic_mapping.xml:703
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>hilo</literal> and <literal>seqhilo</literal> generators "
-"provide two alternate implementations of the hi/lo algorithm. The first "
-"implementation requires a \"special\" database table to hold the next "
-"available \"hi\" value. Where supported, the second uses an Oracle-style "
-"sequence."
-msgstr ""
-"<literal>hilo</literal> å <literal>seqhilo</literal>çæå¨ç»åºäºä¸¤ç§hi/loç®"
-"æ³çå®ç°ï¼ è¿æ¯ä¸ç§å¾ä»¤äººæ»¡æçæ è¯ç¬¦çæç®æ³ã第ä¸ç§å®ç°éè¦ä¸ä¸ªâç¹æ®âçæ°æ®"
-"åºè¡¨æ¥ä¿åä¸ä¸ä¸ªå¯ç¨çâhiâå¼ã 第äºç§å®ç°ä½¿ç¨ä¸ä¸ªOracle飿 ¼çåºåï¼å¨è¢«æ¯æç"
-"æ
åµä¸ï¼ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:710
#, no-c-format
-msgid ""
-"<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-" <generator class=\"hilo\">\n"
-" <param name=\"table\">hi_value</param>\n"
-" <param name=\"column\">next_value</param>\n"
-" <param name=\"max_lo\">100</param>\n"
-" </generator>\n"
-"</id>]]>"
-msgstr ""
+msgid "The <literal>hilo</literal> and <literal>seqhilo</literal> generators provide two alternate implementations of the hi/lo algorithm. The first implementation requires a \"special\" database table to hold the next available \"hi\" value. Where supported, the second uses an Oracle-style sequence."
+msgstr "<literal>hilo</literal> å <literal>seqhilo</literal> çæå¨ç»åºäºä¸¤ç§ hi/lo ç®æ³çå®ç°ï¼ è¿æ¯ä¸ç§å¾ä»¤äººæ»¡æçæ è¯ç¬¦çæç®æ³ã第ä¸ç§å®ç°éè¦ä¸ä¸ªâç¹æ®âçæ°æ®åºè¡¨æ¥ä¿åä¸ä¸ä¸ªå¯ç¨çâhiâå¼ã 第äºç§å®ç°ä½¿ç¨ä¸ä¸ª Oracle 飿 ¼çåºåï¼å¨è¢«æ¯æçæ
åµä¸ï¼ã "
-#. Tag: programlisting
-#: basic_mapping.xml:712
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-" <generator class=\"seqhilo\">\n"
-" <param name=\"sequence\">hi_value</param>\n"
-" <param name=\"max_lo\">100</param>\n"
-" </generator>\n"
-"</id>]]>"
-msgstr ""
+msgid "Unfortunately, you cannot use <literal>hilo</literal> when supplying your own <literal>Connection</literal> to Hibernate. When Hibernate uses an application server datasource to obtain connections enlisted with JTA, you must configure the <literal>hibernate.transaction.manager_lookup_class</literal>."
+msgstr "å¯æçæ¯ï¼ä½ å¨ä¸º Hibernate èªè¡æä¾ <literal>Connection</literal> æ¶æ æ³ä½¿ç¨ <literal>hilo</literal>ã å½ Hibernate ä½¿ç¨ JTA è·ååºç¨æå¡å¨çæ°æ®æºè¿æ¥æ¶ï¼ä½ å¿
é¡»æ£ç¡®å°é
ç½® <literal>hibernate.transaction.manager_lookup_class</literal>ã"
-#. Tag: para
-#: basic_mapping.xml:714
-#, fuzzy, no-c-format
-msgid ""
-"Unfortunately, you cannot use <literal>hilo</literal> when supplying your "
-"own <literal>Connection</literal> to Hibernate. When Hibernate uses an "
-"application server datasource to obtain connections enlisted with JTA, you "
-"must configure the <literal>hibernate.transaction.manager_lookup_class</"
-"literal>."
-msgstr ""
-"å¾ä¸å¹¸ï¼ä½ å¨ä¸ºHibernateèªè¡æä¾<literal>Connection</literal>æ¶æ æ³ä½¿ç¨"
-"<literal>hilo</literal>ã å½Hibernate使ç¨JTAè·ååºç¨æå¡å¨çæ°æ®æºè¿æ¥æ¶,ä½ å¿
"
-"é¡»æ£ç¡®å°é
ç½® <literal>hibernate.transaction.manager_lookup_class</literal>ã"
-
#. Tag: title
-#: basic_mapping.xml:723
#, no-c-format
msgid "UUID algorithm"
-msgstr "UUIDç®æ³ï¼UUID Algorithm ï¼"
+msgstr "UUID ç®æ³ï¼UUID Algorithm ï¼"
#. Tag: para
-#: basic_mapping.xml:724
-#, fuzzy, no-c-format
-msgid ""
-"The UUID contains: IP address, startup time of the JVM that is accurate to a "
-"quarter second, system time and a counter value that is unique within the "
-"JVM. It is not possible to obtain a MAC address or memory address from Java "
-"code, so this is the best option without using JNI."
-msgstr ""
-"UUIDå
å«ï¼IPå°åï¼JVMçå¯å¨æ¶é´ï¼ç²¾ç¡®å°1/4ç§ï¼ï¼ç³»ç»æ¶é´åä¸ä¸ªè®¡æ°å¨å¼ï¼å¨JVM"
-"ä¸å¯ä¸ï¼ã å¨Java代ç ä¸ä¸å¯è½è·å¾MACå°åæè
å
åå°åï¼æä»¥è¿å·²ç»æ¯æä»¬å¨ä¸ä½¿"
-"ç¨JNIçåæä¸çè½åçæå¥½å®ç°äºã"
+#, no-c-format
+msgid "The UUID contains: IP address, startup time of the JVM that is accurate to a quarter second, system time and a counter value that is unique within the JVM. It is not possible to obtain a MAC address or memory address from Java code, so this is the best option without using JNI."
+msgstr "UUID å
å«ï¼IP å°åãJVM çå¯å¨æ¶é´ï¼ç²¾ç¡®å° 1/4 ç§ï¼ãç³»ç»æ¶é´åä¸ä¸ªè®¡æ°å¨å¼ï¼å¨ JVM ä¸å¯ä¸ï¼ã å¨ Java 代ç ä¸ä¸å¯è½è·å¾ MAC å°åæè
å
åå°åï¼æä»¥è¿å·²ç»æ¯æä»¬å¨ä¸ä½¿ç¨ JNI çåæä¸çè½åçæå¥½å®ç°äºã"
#. Tag: title
-#: basic_mapping.xml:733
#, no-c-format
msgid "Identity columns and sequences"
msgstr "æ è¯å段ååºåï¼Identity columns and Sequencesï¼"
#. Tag: para
-#: basic_mapping.xml:734
-#, fuzzy, no-c-format
-msgid ""
-"For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), "
-"you can use <literal>identity</literal> key generation. For databases that "
-"support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you "
-"can use <literal>sequence</literal> style key generation. Both of these "
-"strategies require two SQL queries to insert a new object. For example:"
-msgstr ""
-"对äºå
鍿¯ææ è¯åæ®µçæ°æ®åº(DB2,MySQL,Sybase,MS SQL)ï¼ä½ å¯ä»¥ä½¿ç¨"
-"<literal>identity</literal>å
³é®åçæã 对äºå
鍿¯æåºåçæ°æ®åºï¼DB2,"
-"Oracle, PostgreSQL, Interbase, McKoi,SAP DB), ä½ å¯ä»¥ä½¿ç¨<literal>sequence</"
-"literal>飿 ¼çå
³é®åçæã è¿ä¸¤ç§æ¹å¼å¯¹äºæå
¥ä¸ä¸ªæ°ç对象é½éè¦ä¸¤æ¬¡SQLæ¥è¯¢ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:742
#, no-c-format
-msgid ""
-"<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
-" <generator class=\"sequence\">\n"
-" <param name=\"sequence\">person_id_sequence</param>\n"
-" </generator>\n"
-"</id>]]>"
-msgstr ""
+msgid "For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), you can use <literal>identity</literal> key generation. For databases that support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you can use <literal>sequence</literal> style key generation. Both of these strategies require two SQL queries to insert a new object. For example:"
+msgstr "对äºå
鍿¯ææ è¯åæ®µçæ°æ®åºï¼DB2ãMySQLãSybase å MS SQLï¼ï¼ä½ å¯ä»¥ä½¿ç¨ <literal>identity</literal> å
³é®åçæã对äºå
鍿¯æåºåçæ°æ®åºï¼DB2ãOracleãPostgreSQLãInterbaseãMcKoi å SAP DBï¼ï¼ä½ å¯ä»¥ä½¿ç¨ <literal>sequence</literal> 飿 ¼çå
³é®åçæãè¿ä¸¤ç§æ¹å¼å¯¹äºæå
¥ä¸ä¸ªæ°ç对象é½éè¦ä¸¤æ¬¡ SQL æ¥è¯¢ãä¾å¦ï¼"
-#. Tag: programlisting
-#: basic_mapping.xml:744
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0"
-"\">\n"
-" <generator class=\"identity\"/>\n"
-"</id>]]>"
-msgstr ""
+msgid "For cross-platform development, the <literal>native</literal> strategy will, depending on the capabilities of the underlying database, choose from the <literal>identity</literal>, <literal>sequence</literal> and <literal>hilo</literal> strategies."
+msgstr "对äºè·¨å¹³å°å¼åï¼<literal>native</literal> çç¥ä¼ä» <literal>identity</literal>ã<literal>sequence</literal> å <literal>hilo</literal> ä¸è¿è¡éæ©ï¼éæ©åªä¸ä¸ªï¼è¿åå³äºåºå±æ°æ®åºçæ¯æè½åã"
-#. Tag: para
-#: basic_mapping.xml:746
-#, fuzzy, no-c-format
-msgid ""
-"For cross-platform development, the <literal>native</literal> strategy will, "
-"depending on the capabilities of the underlying database, choose from the "
-"<literal>identity</literal>, <literal>sequence</literal> and <literal>hilo</"
-"literal> strategies."
-msgstr ""
-"对äºè·¨å¹³å°å¼åï¼<literal>native</literal>çç¥ä¼ä»<literal>identity</"
-"literal>, <literal>sequence</literal> å<literal>hilo</literal>ä¸è¿è¡éæ©ï¼é"
-"æ©åªä¸ä¸ªï¼è¿åå³äºåºå±æ°æ®åºçæ¯æè½åã"
-
#. Tag: title
-#: basic_mapping.xml:754
#, no-c-format
msgid "Assigned identifiers"
msgstr "ç¨åºåé
çæ è¯ç¬¦ï¼Assigned Identifiersï¼"
#. Tag: para
-#: basic_mapping.xml:755
-#, fuzzy, no-c-format
-msgid ""
-"If you want the application to assign identifiers, as opposed to having "
-"Hibernate generate them, you can use the <literal>assigned</literal> "
-"generator. This special generator uses the identifier value already assigned "
-"to the object's identifier property. The generator is used when the primary "
-"key is a natural key instead of a surrogate key. This is the default "
-"behavior if you do not specify a <literal><generator></literal> "
-"element."
-msgstr ""
-"å¦æä½ éè¦åºç¨ç¨åºåé
ä¸ä¸ªæ 示符ï¼èéHibernateæ¥çæï¼ï¼ä½ å¯ä»¥ä½¿ç¨"
-"<literal>assigned</literal> çæå¨ãè¿ç§ç¹æ®ççæå¨ä¼ä½¿ç¨å·²ç»åé
ç»å¯¹è±¡çæ "
-"è¯ç¬¦å±æ§çæ è¯ç¬¦å¼ã è¿ä¸ªçæå¨ä½¿ç¨ä¸ä¸ªèªç¶é®ï¼natural keyï¼æå䏿ä¹çåï¼"
-"è¯æ³¨ï¼ä½ä¸ºä¸»é®ï¼è䏿¯ä½¿ç¨ä¸ä¸ªä»£çé®ï¼ surrogate keyï¼æ²¡æå䏿ä¹çåï¼è¯"
-"注ï¼ãè¿æ¯æ²¡ææå®<literal><generator></literal>å
ç´ æ¶çé»è®¤è¡ä¸º"
+#, no-c-format
+msgid "If you want the application to assign identifiers, as opposed to having Hibernate generate them, you can use the <literal>assigned</literal> generator. This special generator uses the identifier value already assigned to the object's identifier property. The generator is used when the primary key is a natural key instead of a surrogate key. This is the default behavior if you do not specify a <literal><generator></literal> element."
+msgstr "å¦æä½ éè¦åºç¨ç¨åºåé
ä¸ä¸ªæ 示符ï¼èé Hibernate æ¥çæï¼ï¼ä½ å¯ä»¥ä½¿ç¨ <literal>assigned</literal> çæå¨ãè¿ç§ç¹æ®ççæå¨ä¼ä½¿ç¨å·²ç»åé
ç»å¯¹è±¡çæ è¯ç¬¦å±æ§çæ è¯ç¬¦å¼ã è¿ä¸ªçæå¨ä½¿ç¨ä¸ä¸ªèªç¶é®ï¼natural keyï¼æå䏿ä¹çåï¼è¯æ³¨ï¼ä½ä¸ºä¸»é®ï¼è䏿¯ä½¿ç¨ä¸ä¸ªä»£çé®ï¼ surrogate keyï¼æ²¡æå䏿ä¹çåï¼è¯æ³¨ï¼ãè¿æ¯æ²¡ææå® <literal><generator></literal> å
ç´ æ¶çé»è®¤è¡ä¸ºã"
#. Tag: para
-#: basic_mapping.xml:764
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>assigned</literal> generator makes Hibernate use "
-"<literal>unsaved-value=\"undefined\"</literal>. This forces Hibernate to go "
-"to the database to determine if an instance is transient or detached, unless "
-"there is a version or timestamp property, or you define <literal>Interceptor."
-"isUnsaved()</literal>."
-msgstr ""
-"å½éæ©<literal>assigned</literal>çæå¨æ¶ï¼é¤éæä¸ä¸ªversionætimestamp屿§ï¼"
-"æè
ä½ å®ä¹äº <literal>Interceptor.isUnsaved()</literal>ï¼å¦åéè¦è®©Hiberante"
-"ä½¿ç¨ <literal>unsaved-value=\"undefined\"</literal>ï¼å¼ºå¶Hibernatetæ¥è¯¢æ°æ®åº"
-"æ¥ç¡®å®ä¸ä¸ªå®ä¾æ¯ç¬æ¶çï¼transientï¼ è¿æ¯è±ç®¡çï¼detachedï¼ã"
+#, no-c-format
+msgid "The <literal>assigned</literal> generator makes Hibernate use <literal>unsaved-value=\"undefined\"</literal>. This forces Hibernate to go to the database to determine if an instance is transient or detached, unless there is a version or timestamp property, or you define <literal>Interceptor.isUnsaved()</literal>."
+msgstr "å½éæ© <literal>assigned</literal> çæå¨æ¶ï¼é¤éæä¸ä¸ª version æ timestamp 屿§ï¼æè
ä½ å®ä¹äº <literal>Interceptor.isUnsaved()</literal>ï¼å¦åéè¦è®© Hiberante ä½¿ç¨ <literal>unsaved-value=\"undefined\"</literal>ï¼å¼ºå¶ Hibernatet æ¥è¯¢æ°æ®åºæ¥ç¡®å®ä¸ä¸ªå®ä¾æ¯ç¬æ¶çï¼transientï¼ è¿æ¯è±ç®¡çï¼detachedï¼ã"
#. Tag: title
-#: basic_mapping.xml:774
#, no-c-format
msgid "Primary keys assigned by triggers"
msgstr "触åå¨å®ç°ç主é®çæå¨ï¼Primary keys assigned by triggersï¼"
#. Tag: para
-#: basic_mapping.xml:775
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate does not generate DDL with triggers. It is for legacy schemas only."
-msgstr "ä»
ä»
ç¨äºéççschemaä¸ (Hibernateä¸è½ä½¿ç¨è§¦åå¨çæDDL)ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:779
#, no-c-format
-msgid ""
-"<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
-" <generator class=\"select\">\n"
-" <param name=\"key\">socialSecurityNumber</param>\n"
-" </generator>\n"
-"</id>]]>"
-msgstr ""
+msgid "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgstr "ä»
ä»
ç¨äºéçç schema ä¸ï¼Hibernate ä¸è½ç¨è§¦åå¨çæ DDLï¼ã"
#. Tag: para
-#: basic_mapping.xml:781
-#, fuzzy, no-c-format
-msgid ""
-"In the above example, there is a unique valued property named "
-"<literal>socialSecurityNumber</literal>. It is defined by the class, as a "
-"natural key and a surrogate key named <literal>person_id</literal>, whose "
-"value is generated by a trigger."
-msgstr ""
-"å¨ä¸é¢çä¾åä¸ï¼ç±»å®ä¹äºä¸ä¸ªå½å为<literal>socialSecurityNumber</literal>çå¯"
-"ä¸å¼å±æ§ï¼ 宿¯ä¸ä¸ªèªç¶é®ï¼natural keyï¼ï¼å½å为<literal>person_id</literal>"
-"ç代çé®ï¼surrogate keyï¼ çå¼ç±è§¦åå¨çæã"
+#, no-c-format
+msgid "In the above example, there is a unique valued property named <literal>socialSecurityNumber</literal>. It is defined by the class, as a natural key and a surrogate key named <literal>person_id</literal>, whose value is generated by a trigger."
+msgstr "å¨ä¸é¢çä¾åä¸ï¼ç±»å®ä¹äºä¸ä¸ªå½å为 <literal>socialSecurityNumber</literal> çå
·æå¯ä¸å¼ç屿§ï¼å®æ¯ä¸ä¸ªèªç¶é®ï¼natural keyï¼ï¼å½å为 <literal>person_id</literal> ç代çé®ï¼surrogate keyï¼çå¼ç±è§¦åå¨çæã"
#. Tag: title
-#: basic_mapping.xml:793
#, no-c-format
msgid "Enhanced identifier generators"
-msgstr "Enhanced identifier generators"
+msgstr "å¢å¼ºçæ è¯ç¬¦çæå¨"
#. Tag: para
-#: basic_mapping.xml:795
-#, fuzzy, no-c-format
-msgid ""
-"Starting with release 3.2.3, there are 2 new generators which represent a re-"
-"thinking of 2 different aspects of identifier generation. The first aspect "
-"is database portability; the second is optimization Optimization means that "
-"you do not have to query the database for every request for a new identifier "
-"value. These two new generators are intended to take the place of some of "
-"the named generators described above, starting in 3.3.x. However, they are "
-"included in the current releases and can be referenced by FQN."
-msgstr ""
-"Starting with release 3.2.3, there are 2 new generators which represent a re-"
-"thinking of 2 different aspects of identifier generation. The first aspect "
-"is database portability; the second is optimization (not having to query the "
-"database for every request for a new identifier value). These two new "
-"generators are intended to take the place of some of the named generators "
-"described above (starting in 3.3.x); however, they are included in the "
-"current releases and can be referenced by FQN."
+#, no-c-format
+msgid "Starting with release 3.2.3, there are 2 new generators which represent a re-thinking of 2 different aspects of identifier generation. The first aspect is database portability; the second is optimization Optimization means that you do not have to query the database for every request for a new identifier value. These two new generators are intended to take the place of some of the named generators described above, starting in 3.3.x. However, they are included in the current releases and can be referenced by FQN."
+msgstr "ä» 3.2.3 çæ¬å¼å§ï¼æä¸¤ä¸ªä»£è¡¨ä¸åæ è¯ç¬¦çææ¦å¿µçæ°ççæå¨ã第ä¸ä¸ªæ¦å¿µæ¯æ°æ®åºç§»æ¤æ§ï¼ç¬¬äºä¸ªæ¯ä¼åãä¼åè¡¨ç¤ºä½ ä¸é对æ¯ä¸ªæ°æ è¯ç¬¦ç请æ±é½æ¥è¯¢æ°æ®åºãä» 3.3.x å¼å§ï¼è¿ä¸¤ä¸ªæ°ççæå¨é½æ¯ç¨æ¥å代ä¸é¢æè¿°ççæå¨çãç¶èï¼å®ä»¬ä¹å
æ¬å¨å½åçæ¬éä¸å¯ä»¥ç± FQN è¿è¡å¼ç¨ã"
#. Tag: para
-#: basic_mapping.xml:803
-#, fuzzy, no-c-format
-msgid ""
-"The first of these new generators is <literal>org.hibernate.id.enhanced."
-"SequenceStyleGenerator</literal> which is intended, firstly, as a "
-"replacement for the <literal>sequence</literal> generator and, secondly, as "
-"a better portability generator than <literal>native</literal>. This is "
-"because <literal>native</literal> generally chooses between "
-"<literal>identity</literal> and <literal>sequence</literal> which have "
-"largely different semantics that can cause subtle issues in applications "
-"eyeing portability. <literal>org.hibernate.id.enhanced."
-"SequenceStyleGenerator</literal>, however, achieves portability in a "
-"different manner. It chooses between a table or a sequence in the database "
-"to store its incrementing values, depending on the capabilities of the "
-"dialect being used. The difference between this and <literal>native</"
-"literal> is that table-based and sequence-based storage have the same exact "
-"semantic. In fact, sequences are exactly what Hibernate tries to emulate "
-"with its table-based generators. This generator has a number of "
-"configuration parameters:"
-msgstr ""
-"The first of these new generators is <literal>org.hibernate.id.enhanced."
-"SequenceStyleGenerator</literal> which is intended firstly as a replacement "
-"for the <literal>sequence</literal> generator and secondly as a better "
-"portability generator than <literal>native</literal> (because "
-"<literal>native</literal> (generally) chooses between <literal>identity</"
-"literal> and <literal>sequence</literal> which have largely different "
-"semantics which can cause subtle isssues in applications eyeing "
-"portability). <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</"
-"literal> however achieves portability in a different manner. It chooses "
-"between using a table or a sequence in the database to store its "
-"incrementing values depending on the capabilities of the dialect being used. "
-"The difference between this and <literal>native</literal> is that table-"
-"based and sequence-based storage have the same exact semantic (in fact "
-"sequences are exactly what Hibernate tries to emmulate with its table-based "
-"generators). This generator has a number of configuration parameters: "
-"<placeholder-1/>"
+#, no-c-format
+msgid "The first of these new generators is <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal> which is intended, firstly, as a replacement for the <literal>sequence</literal> generator and, secondly, as a better portability generator than <literal>native</literal>. This is because <literal>native</literal> generally chooses between <literal>identity</literal> and <literal>sequence</literal> which have largely different semantics that can cause subtle issues in applications eyeing portability. <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal>, however, achieves portability in a different manner. It chooses between a table or a sequence in the database to store its incrementing values, depending on the capabilities of the dialect being used. The difference between this and <literal>native</literal> is that table-based and sequence-based storage have the same exact semantic. In fact, sequences are exactly what Hibernate tries to emulate with!
its table-based generators. This generator has a number of configuration parameters:"
+msgstr "è¿äºçæå¨ç第ä¸ä¸ªæ¯ <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal>ï¼é¦å
ï¼å®æ¯ä½ä¸º <literal>sequence</literal> çæå¨çæ¿ä»£ç©ï¼å
¶æ¬¡ï¼å®æ¯æ¯ <literal>native</literal> å
·ææ´å¥½ç§»æ¤æ§ççæå¨ãè¿æ¯å 为 <literal>native</literal> éå¸¸å¨ <literal>identity</literal> å <literal>sequence</literal> ä¹é´éæ©ï¼å®æå·®å«å¾å¤§ç semanticï¼å¨ç§»æ¤æ¶ä¼å¯¼è´æ½å¨çé®é¢ãç¶èï¼<literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal> 以ä¸åçæ¹å¼å®ç°ç§»æ¤æ§ã宿 ¹æ®æä½¿ç¨çæ¹è¨çè½åï¼å¨æ°æ®åºè¡¨æåºåä¹é´éæ©ä»¥åå¨å
¶å¢éãè¿å <literal>native</literal> çåºå«æ¯åºäºè¡¨æåºåçåå¨å
·ææ°å¥½ç¸åç semanticãå®é
ä¸ï¼åºåå°±æ¯ Hibernate è¯å¾ç¨åºäºè¡¨ççæå¨æ¥æ¨¡æçãè¿ä¸ªçæå¨æå¦ä¸çé
ç½®åæ°ï¼"
#. Tag: para
-#: basic_mapping.xml:817
-#, fuzzy, no-c-format
-msgid ""
-"<literal>sequence_name</literal> (optional, defaults to "
-"<literal>hibernate_sequence</literal>): the name of the sequence or table to "
-"be used."
-msgstr ""
-"<literal>sequence_name</literal> (optional, defaults to "
-"<literal>hibernate_sequence</literal>): The name of the sequence (or table) "
-"to be used."
+#, no-c-format
+msgid "<literal>sequence_name</literal> (optional, defaults to <literal>hibernate_sequence</literal>): the name of the sequence or table to be used."
+msgstr "<literal>sequence_name</literal>ï¼å¯é â é»è®¤ä¸º <literal>hibernate_sequence</literal>ï¼ï¼åºåæè¡¨çåå"
#. Tag: para
-#: basic_mapping.xml:823
-#, fuzzy, no-c-format
-msgid ""
-"<literal>initial_value</literal> (optional, defaults to <literal>1</"
-"literal>): the initial value to be retrieved from the sequence/table. In "
-"sequence creation terms, this is analogous to the clause typically named "
-"\"STARTS WITH\"."
-msgstr ""
-"<literal>initial_value</literal> (optional, defaults to <literal>1</"
-"literal>): The initial value to be retrieved from the sequence/table. In "
-"sequence creation terms, this is analogous to the clause typical named "
-"\"STARTS WITH\"."
+#, no-c-format
+msgid "<literal>initial_value</literal> (optional, defaults to <literal>1</literal>): the initial value to be retrieved from the sequence/table. In sequence creation terms, this is analogous to the clause typically named \"STARTS WITH\"."
+msgstr "<literal>initial_value</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>1</literal>ï¼ï¼ä»åºå/表éè·åçåå§å¼ãæç
§åºååå»ºçæ¯è¯ï¼è¿çåäºåå¥ \"STARTS WITH\"ã"
#. Tag: para
-#: basic_mapping.xml:830
-#, fuzzy, no-c-format
-msgid ""
-"<literal>increment_size</literal> (optional - defaults to <literal>1</"
-"literal>): the value by which subsequent calls to the sequence/table should "
-"differ. In sequence creation terms, this is analogous to the clause "
-"typically named \"INCREMENT BY\"."
-msgstr ""
-"<literal>increment_size</literal> (optional, defaults to <literal>1</"
-"literal>): The value by which subsequent calls to the sequence/table should "
-"differ. In sequence creation terms, this is analogous to the clause typical "
-"named \"INCREMENT BY\"."
+#, no-c-format
+msgid "<literal>increment_size</literal> (optional - defaults to <literal>1</literal>): the value by which subsequent calls to the sequence/table should differ. In sequence creation terms, this is analogous to the clause typically named \"INCREMENT BY\"."
+msgstr "<literal>increment_size</literal>ï¼å¯é - 缺ç为 <literal>1</literal>ï¼ï¼å¯¹åºå/表çè°ç¨åºè¯¥åºåçå¼ãæç
§åºååå»ºçæ¯è¯ï¼è¿çåäºåå¥ \"INCREMENT BY\"ã"
#. Tag: para
-#: basic_mapping.xml:837
-#, fuzzy, no-c-format
-msgid ""
-"<literal>force_table_use</literal> (optional - defaults to <literal>false</"
-"literal>): should we force the use of a table as the backing structure even "
-"though the dialect might support sequence?"
-msgstr ""
-"<literal>force_table_use</literal> (optional, defaults to <literal>false</"
-"literal>): Should we force the use of a table as the backing structure even "
-"though the dialect might support sequence?"
+#, no-c-format
+msgid "<literal>force_table_use</literal> (optional - defaults to <literal>false</literal>): should we force the use of a table as the backing structure even though the dialect might support sequence?"
+msgstr "<literal>force_table_use</literal>ï¼å¯é - 缺ç为 <literal>false</literal>ï¼ï¼å³ä½¿æ¹è¨å¯è½æ¯æåºåï¼æ¯å¦ä¹åºè¯¥å¼ºå¶æè¡¨ç¨ä½åå°ç»æã"
#. Tag: para
-#: basic_mapping.xml:844
-#, fuzzy, no-c-format
-msgid ""
-"<literal>value_column</literal> (optional - defaults to <literal>next_val</"
-"literal>): only relevant for table structures, it is the name of the column "
-"on the table which is used to hold the value."
-msgstr ""
-"<literal>value_column</literal> (optional, defaults to <literal>next_val</"
-"literal>): Only relevant for table structures! The name of the column on the "
-"table which is used to hold the value."
+#, no-c-format
+msgid "<literal>value_column</literal> (optional - defaults to <literal>next_val</literal>): only relevant for table structures, it is the name of the column on the table which is used to hold the value."
+msgstr "<literal>value_column</literal>ï¼å¯é - 缺ç为 <literal>next_val</literal>ï¼ï¼åªåè¡¨ç»æç¸å
³ï¼å®æ¯ç¨äºä¿åå¼çåæ®µçåç§°ã"
#. Tag: para
-#: basic_mapping.xml:851
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimizer</literal> (optional - defaults to <literal>none</"
-"literal>): See"
-msgstr ""
-"<literal>cascade</literal> (å¯é -é»è®¤æ¯<literal>none</literal>): 级èçç±»å"
+#, no-c-format
+msgid "<literal>optimizer</literal> (optional - defaults to <literal>none</literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgstr "<literal>optimizer</literal>ï¼å¯é â é»è®¤æ¯<literal>none</literal>ï¼ï¼è¯·åè <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />ã"
#. Tag: para
-#: basic_mapping.xml:858
-#, fuzzy, no-c-format
-msgid ""
-"The second of these new generators is <literal>org.hibernate.id.enhanced."
-"TableGenerator</literal>, which is intended, firstly, as a replacement for "
-"the <literal>table</literal> generator, even though it actually functions "
-"much more like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</"
-"literal>, and secondly, as a re-implementation of <literal>org.hibernate.id."
-"MultipleHiLoPerTableGenerator</literal> that utilizes the notion of "
-"pluggable optimizers. Essentially this generator defines a table capable of "
-"holding a number of different increment values simultaneously by using "
-"multiple distinctly keyed rows. This generator has a number of configuration "
-"parameters:"
-msgstr ""
-"The second of these new generators is <literal>org.hibernate.id.enhanced."
-"TableGenerator</literal> which is intended firstly as a replacement for the "
-"<literal>table</literal> generator (although it actually functions much more "
-"like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>) and "
-"secondly as a re-implementation of <literal>org.hibernate.id."
-"MultipleHiLoPerTableGenerator</literal> utilizing the notion of pluggable "
-"optimiziers. Essentially this generator defines a table capable of holding a "
-"number of different increment values simultaneously by using multiple "
-"distinctly keyed rows. This generator has a number of configuration "
-"parameters: <placeholder-1/>"
+#, no-c-format
+msgid "The second of these new generators is <literal>org.hibernate.id.enhanced.TableGenerator</literal>, which is intended, firstly, as a replacement for the <literal>table</literal> generator, even though it actually functions much more like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>, and secondly, as a re-implementation of <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> that utilizes the notion of pluggable optimizers. Essentially this generator defines a table capable of holding a number of different increment values simultaneously by using multiple distinctly keyed rows. This generator has a number of configuration parameters:"
+msgstr "æ°çæå¨ç第äºä¸ªæ¯ <literal>org.hibernate.id.enhanced.TableGenerator</literal>ï¼å®çç®çé¦å
æ¯æ¿ä»£ <literal>table</literal> çæå¨ï¼å³ä½¿å®å®é
䏿¯ <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> åè½è¦å¼ºå¾å¤ï¼å
¶æ¬¡ï¼ä½ä¸ºå©ç¨å¯ææ optimizer ç <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> çæ¿ä»£åãåºæ¬ä¸è¿ä¸ªçæå¨å®ä¹äºä¸ä¸ªå¯ä»¥å©ç¨å¤ä¸ªä¸åçé®å¼è®°å½åå¨å¤§éä¸åå¢éå¼ç表ãè¿ä¸ªçæå¨æå¦ä¸çé
ç½®åæ°ï¼"
#. Tag: para
-#: basic_mapping.xml:868
-#, fuzzy, no-c-format
-msgid ""
-"<literal>table_name</literal> (optional - defaults to "
-"<literal>hibernate_sequences</literal>): the name of the table to be used."
-msgstr ""
-"<literal>table_name</literal> (optional, defaults to "
-"<literal>hibernate_sequences</literal>): The name of the table to be used."
+#, no-c-format
+msgid "<literal>table_name</literal> (optional - defaults to <literal>hibernate_sequences</literal>): the name of the table to be used."
+msgstr "<literal>table_name</literal>ï¼å¯é â é»è®¤æ¯ <literal>hibernate_sequences</literal>ï¼ï¼æç¨ç表çåç§°ã"
#. Tag: para
-#: basic_mapping.xml:874
-#, fuzzy, no-c-format
-msgid ""
-"<literal>value_column_name</literal> (optional - defaults to "
-"<literal>next_val</literal>): the name of the column on the table that is "
-"used to hold the value."
-msgstr ""
-"<literal>value_column_name</literal> (optional, defaults to "
-"<literal>next_val</literal>): The name of the column on the table which is "
-"used to hold the value."
+#, no-c-format
+msgid "<literal>value_column_name</literal> (optional - defaults to <literal>next_val</literal>): the name of the column on the table that is used to hold the value."
+msgstr "<literal>value_column_name</literal>ï¼å¯é â é»è®¤ä¸º <literal>next_val</literal>ï¼ï¼ç¨äºåå¨è¿äºå¼ç表çåæ®µçååã"
#. Tag: para
-#: basic_mapping.xml:880
-#, fuzzy, no-c-format
-msgid ""
-"<literal>segment_column_name</literal> (optional - defaults to "
-"<literal>sequence_name</literal>): the name of the column on the table that "
-"is used to hold the \"segment key\". This is the value which identifies "
-"which increment value to use."
-msgstr ""
-"<literal>segment_column_name</literal> (optional, defaults to "
-"<literal>sequence_name</literal>): The name of the column on the table which "
-"is used to hold the \"segement key\". This is the value which distinctly "
-"identifies which increment value to use."
+#, no-c-format
+msgid "<literal>segment_column_name</literal> (optional - defaults to <literal>sequence_name</literal>): the name of the column on the table that is used to hold the \"segment key\". This is the value which identifies which increment value to use."
+msgstr "<literal>segment_column_name</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>sequence_name</literal>ï¼ï¼ç¨äºä¿å \"segment key\" çåæ®µçåç§°ãè¿æ¯æ è¯ä½¿ç¨åªä¸ªå¢éå¼çå¼ã"
#. Tag: para
-#: basic_mapping.xml:887
-#, fuzzy, no-c-format
-msgid ""
-"<literal>segment_value</literal> (optional - defaults to <literal>default</"
-"literal>): The \"segment key\" value for the segment from which we want to "
-"pull increment values for this generator."
-msgstr ""
-"<literal>segment_value</literal> (optional, defaults to <literal>default</"
-"literal>): The \"segment key\" value for the segment from which we want to "
-"pull increment values for this generator."
+#, no-c-format
+msgid "<literal>segment_value</literal> (optional - defaults to <literal>default</literal>): The \"segment key\" value for the segment from which we want to pull increment values for this generator."
+msgstr "<literal>segment_value</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>default</literal>ï¼ï¼æä»¬ä¸ºè¿ä¸ªçæå¨è·åå¢éå¼ç segment ç \"segment key\"ã"
#. Tag: para
-#: basic_mapping.xml:894
-#, fuzzy, no-c-format
-msgid ""
-"<literal>segment_value_length</literal> (optional - defaults to "
-"<literal>255</literal>): Used for schema generation; the column size to "
-"create this segment key column."
-msgstr ""
-"<literal>segment_value_length</literal> (optional, defaults to <literal>255</"
-"literal>): Used for schema generation; the column size to create this "
-"segment key column."
+#, no-c-format
+msgid "<literal>segment_value_length</literal> (optional - defaults to <literal>255</literal>): Used for schema generation; the column size to create this segment key column."
+msgstr "<literal>segment_value_length</literal>ï¼å¯é â é»è®¤ä¸º <literal>255</literal>ï¼ï¼ç¨äº schema çæï¼å建 Segment Key åæ®µçåæ®µå¤§å°ã"
#. Tag: para
-#: basic_mapping.xml:900
-#, fuzzy, no-c-format
-msgid ""
-"<literal>initial_value</literal> (optional - defaults to <literal>1</"
-"literal>): The initial value to be retrieved from the table."
-msgstr ""
-"<literal>initial_value</literal> (optional, defaults to <literal>1</"
-"literal>): The initial value to be retrieved from the table."
+#, no-c-format
+msgid "<literal>initial_value</literal> (optional - defaults to <literal>1</literal>): The initial value to be retrieved from the table."
+msgstr "<literal>initial_value</literal>ï¼å¯é â é»è®¤æ¯ <literal>1</literal>ï¼ï¼ä»è¡¨éè·åçåå§å¼ã"
#. Tag: para
-#: basic_mapping.xml:906
-#, fuzzy, no-c-format
-msgid ""
-"<literal>increment_size</literal> (optional - defaults to <literal>1</"
-"literal>): The value by which subsequent calls to the table should differ."
-msgstr ""
-"<literal>increment_size</literal> (optional, defaults to <literal>1</"
-"literal>): The value by which subsequent calls to the table should differ."
+#, no-c-format
+msgid "<literal>increment_size</literal> (optional - defaults to <literal>1</literal>): The value by which subsequent calls to the table should differ."
+msgstr "<literal>increment_size</literal>ï¼å¯é â é»è®¤æ¯ <literal>1</literal>ï¼ï¼å¯¹è¡¨éåçè°ç¨åºè¯¥åºåçå¼ã"
#. Tag: para
-#: basic_mapping.xml:912
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimizer</literal> (optional - defaults to <literal></literal>): "
-"See"
-msgstr ""
-"<literal>cascade</literal> (å¯é -é»è®¤æ¯<literal>none</literal>): 级èçç±»å"
+#, no-c-format
+msgid "<literal>optimizer</literal> (optional - defaults to <literal></literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgstr "<literal>optimizer</literal>ï¼å¯é â é»è®¤æ¯ <literal> </literal>ï¼ï¼è¯·åè <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />ã"
#. Tag: title
-#: basic_mapping.xml:922
#, no-c-format
msgid "Identifier generator optimization"
-msgstr "Identifier generator optimization"
+msgstr "æ è¯ç¬¦çæå¨çä¼å"
#. Tag: para
-#: basic_mapping.xml:923
-#, fuzzy, no-c-format
-msgid ""
-"For identifier generators that store values in the database, it is "
-"inefficient for them to hit the database on each and every call to generate "
-"a new identifier value. Instead, you can group a bunch of them in memory and "
-"only hit the database when you have exhausted your in-memory value group. "
-"This is the role of the pluggable optimizers. Currently only the two "
-"enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced\"/> "
-"support this operation."
-msgstr ""
-"For identifier generators which store values in the database, it is "
-"inefficient for them to hit the database on each and every call to generate "
-"a new identifier value. Instead, you'd ideally want to group a bunch of them "
-"in memory and only hit the database when you have exhausted your in-memory "
-"value group. This is the role of the pluggable optimizers. Currently only "
-"the two enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced"
-"\"/> support this notion. <placeholder-1/>"
+#, no-c-format
+msgid "For identifier generators that store values in the database, it is inefficient for them to hit the database on each and every call to generate a new identifier value. Instead, you can group a bunch of them in memory and only hit the database when you have exhausted your in-memory value group. This is the role of the pluggable optimizers. Currently only the two enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced\" /> support this operation."
+msgstr "对äºå¨æ°æ®åºéåå¨å¼çæ è¯ç¬¦çæå¨ï¼çææ°æ è¯ç¬¦æ¶çæ¯æ¬¡è°ç¨é½è®¿é®æ°æ®åºæ¯ä½æçãå æ¤ï¼ä½ å¯ä»¥æå®ä»¬å¨å
åéåç»å¹¶åªæå¨å¿«ç¨å
å
åæ¶æè®¿é®æ°æ®åºãè¿æ¯å¯ææ optimizer çä»»å¡ãç®ååªæä¸¤ä¸ªå¢å¼ºåççæå¨æ¯æè¿ä¸ªæä½ï¼<xref linkend=\"mapping-declaration-id-enhanced\"/>ï¼ã "
#. Tag: para
-#: basic_mapping.xml:931
-#, fuzzy, no-c-format
-msgid ""
-"<literal>none</literal> (generally this is the default if no optimizer was "
-"specified): this will not perform any optimizations and hit the database for "
-"each and every request."
-msgstr ""
-"<literal>none</literal> (generally this is the default if no optimizer was "
-"specified): This says to not perform any optimizations, and hit the database "
-"each and every request."
+#, no-c-format
+msgid "<literal>none</literal> (generally this is the default if no optimizer was specified): this will not perform any optimizations and hit the database for each and every request."
+msgstr "<literal>none</literal>ï¼å¦ææ²¡ææå® optimizerï¼éå¸¸è¿æ¯ç¼ºçé
ç½®ï¼ï¼è¿ä¸ä¼æ§è¡ä»»ä½ä¼åï¼å¨æ¯æ¬¡è¯·æ±æ¶é½è®¿é®æ°æ®åºã"
#. Tag: para
-#: basic_mapping.xml:937
-#, fuzzy, no-c-format
-msgid ""
-"<literal>hilo</literal>: applies a hi/lo algorithm around the database "
-"retrieved values. The values from the database for this optimizer are "
-"expected to be sequential. The values retrieved from the database structure "
-"for this optimizer indicates the \"group number\". The "
-"<literal>increment_size</literal> is multiplied by that value in memory to "
-"define a group \"hi value\"."
-msgstr ""
-"<literal>hilo</literal>: applies a hi/lo algorithm around the database "
-"retrieved values. The values from the database for this optimizer are "
-"expected to be sequential. The values retrieved from the database structure "
-"for this optimizer indicates the \"group number\"; the "
-"<literal>increment_size</literal> is multiplied by that value in memory to "
-"define a group \"hi value\"."
+#, no-c-format
+msgid "<literal>hilo</literal>: applies a hi/lo algorithm around the database retrieved values. The values from the database for this optimizer are expected to be sequential. The values retrieved from the database structure for this optimizer indicates the \"group number\". The <literal>increment_size</literal> is multiplied by that value in memory to define a group \"hi value\"."
+msgstr "<literal>hilo</literal>ï¼å¯¹ä»æ°æ®åºè·åçå¼åºç¨ hi/lo ç®æ³ãç¨äºè¿ä¸ª optimizer ç仿°æ®åºè·åçå¼åºè¯¥æ¯æåºçãå®ä»¬è¡¨æâç»ç¼å·âã<literal>increment_size</literal> å°ä¹ä»¥å
åéç弿¥å®ä¹ç»çâhi å¼âã"
#. Tag: para
-#: basic_mapping.xml:946
-#, fuzzy, no-c-format
-msgid ""
-"<literal>pooled</literal>: as with the case of <literal>hilo</literal>, this "
-"optimizer attempts to minimize the number of hits to the database. Here, "
-"however, we simply store the starting value for the \"next group\" into the "
-"database structure rather than a sequential value in combination with an in-"
-"memory grouping algorithm. Here, <literal>increment_size</literal> refers to "
-"the values coming from the database."
-msgstr ""
-"<literal>pooled</literal>: like was discussed for <literal>hilo</literal>, "
-"this optimizers attempts to minimize the number of hits to the database. "
-"Here, however, we simply store the starting value for the \"next group\" "
-"into the database structure rather than a sequential value in combination "
-"with an in-memory grouping algorithm. <literal>increment_size</literal> here "
-"refers to the values coming from the database."
+#, no-c-format
+msgid "<literal>pooled</literal>: as with the case of <literal>hilo</literal>, this optimizer attempts to minimize the number of hits to the database. Here, however, we simply store the starting value for the \"next group\" into the database structure rather than a sequential value in combination with an in-memory grouping algorithm. Here, <literal>increment_size</literal> refers to the values coming from the database."
+msgstr "<literal>pooled</literal>ï¼å <literal>hilo</literal> 䏿 ·ï¼è¿ä¸ª optimizer è¯å¾æå°åå¯¹æ°æ®åºç访é®ãç¶èï¼æä»¬åªæ¯ç®åå°æâä¸ä¸ç»âçèµ·å§å¼è䏿¯æåºåå¼ååç»ç®æ³çç»ååå
¥å°æ°æ®åºç»æéãå¨è¿éï¼<literal>increment_size</literal> è¡¨ç¤ºæ°æ®åºéçå¼ã"
#. Tag: title
-#: basic_mapping.xml:959
#, no-c-format
msgid "composite-id"
msgstr "composite-id"
-#. Tag: programlisting
-#: basic_mapping.xml:961
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<composite-id\n"
-" name=\"propertyName\"\n"
-" class=\"ClassName\"\n"
-" mapped=\"true|false\"\n"
-" access=\"field|property|ClassName\">\n"
-" node=\"element-name|.\"\n"
-"\n"
-" <key-property name=\"propertyName\" type=\"typename\" column="
-"\"column_name\"/>\n"
-" <key-many-to-one name=\"propertyName class=\"ClassName\" column="
-"\"column_name\"/>\n"
-" ......\n"
-"</composite-id>]]>"
-msgstr ""
+msgid "A table with a composite key can be mapped with multiple properties of the class as identifier properties. The <literal><composite-id></literal> element accepts <literal><key-property></literal> property mappings and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr "å¦æè¡¨ä½¿ç¨èå主é®ï¼ä½ å¯ä»¥æ å°ç±»çå¤ä¸ªå±æ§ä¸ºæ è¯ç¬¦å±æ§ã<literal><composite-id></literal> å
ç´ æ¥å <literal><key-property></literal> 屿§æ å°å <literal><key-many-to-one></literal> 屿§æ å°ä½ä¸ºåå
ç´ ã "
#. Tag: para
-#: basic_mapping.xml:963
-#, fuzzy, no-c-format
-msgid ""
-"A table with a composite key can be mapped with multiple properties of the "
-"class as identifier properties. The <literal><composite-id></literal> "
-"element accepts <literal><key-property></literal> property mappings "
-"and <literal><key-many-to-one></literal> mappings as child elements."
-msgstr ""
-"å¦æè¡¨ä½¿ç¨èå主é®ï¼ä½ å¯ä»¥æ å°ç±»çå¤ä¸ªå±æ§ä¸ºæ è¯ç¬¦å±æ§ã <literal><"
-"composite-id></literal>å
ç´ æ¥å<literal><key-property></literal> å±"
-"æ§æ å°å<literal><key-many-to-one></literal>屿§æ å°ä½ä¸ºåå
ç´ ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:970
#, no-c-format
-msgid ""
-"<![CDATA[<composite-id>\n"
-" <key-property name=\"medicareNumber\"/>\n"
-" <key-property name=\"dependent\"/>\n"
-"</composite-id>]]>"
-msgstr ""
+msgid "The persistent class <emphasis>must</emphasis> override <literal>equals()</literal> and <literal>hashCode()</literal> to implement composite identifier equality. It must also implement <literal>Serializable</literal>."
+msgstr "ä½ çæä¹
åç±»<emphasis>å¿
é¡»</emphasis>è¦ç <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼æ¥å®ç°ç»åçæ è¯ç¬¦çç¸ç夿ãå®ç° <literal>Serializable</literal> æ¥å£ä¹æ¯å¿
é¡»çã"
#. Tag: para
-#: basic_mapping.xml:972
-#, fuzzy, no-c-format
-msgid ""
-"The persistent class <emphasis>must</emphasis> override <literal>equals()</"
-"literal> and <literal>hashCode()</literal> to implement composite identifier "
-"equality. It must also implement <literal>Serializable</literal>."
-msgstr ""
-"ä½ çæä¹
åç±»<emphasis>å¿
é¡»</emphasis>éè½½<literal>equals()</literal>å "
-"<literal>hashCode()</literal>æ¹æ³ï¼æ¥å®ç°ç»åçæ è¯ç¬¦çç¸ç夿ã å®ç°"
-"<literal>Serializable</literal>æ¥å£ä¹æ¯å¿
é¡»çã"
+#, no-c-format
+msgid "Unfortunately, this approach means that a persistent object is its own identifier. There is no convenient \"handle\" other than the object itself. You must instantiate an instance of the persistent class itself and populate its identifier properties before you can <literal>load()</literal> the persistent state associated with a composite key. We call this approach an <emphasis>embedded</emphasis> composite identifier, and discourage it for serious applications."
+msgstr "ä¸å¹¸çæ¯ï¼è¿ç§ç»åå
³é®åçæ¹æ³æå³çä¸ä¸ªæä¹
åç±»æ¯å®èªå·±çæ è¯ãé¤äºå¯¹è±¡èªå·±ä¹å¤ï¼æ²¡æä»ä¹æ¹ä¾¿çâææâå¯ç¨ãä½ å¿
é¡»åå§åæä¹
åç±»çå®ä¾ï¼å¡«å
å®çæ è¯ç¬¦å±æ§ï¼å <literal>load()</literal> ç»åå
³é®åå
³èçæä¹
ç¶æãæä»¬æè¿ç§æ¹æ³ç§°ä¸º <emphasis>embeddedï¼åµå
¥å¼ï¼</emphasis>çç»åæ è¯ç¬¦ï¼å¨éè¦çåºç¨ä¸ä¸é¼å±ä½¿ç¨è¿ç§ç¨æ³ã "
#. Tag: para
-#: basic_mapping.xml:978
-#, fuzzy, no-c-format
-msgid ""
-"Unfortunately, this approach means that a persistent object is its own "
-"identifier. There is no convenient \"handle\" other than the object itself. "
-"You must instantiate an instance of the persistent class itself and populate "
-"its identifier properties before you can <literal>load()</literal> the "
-"persistent state associated with a composite key. We call this approach an "
-"<emphasis>embedded</emphasis> composite identifier, and discourage it for "
-"serious applications."
-msgstr ""
-"ä¸å¹¸çæ¯ï¼è¿ç§ç»åå
³é®åçæ¹æ³æå³çä¸ä¸ªæä¹
åç±»æ¯å®èªå·±çæ è¯ãé¤äºå¯¹è±¡èªå·±"
-"ä¹å¤ï¼ 没æä»ä¹æ¹ä¾¿çâææâå¯ç¨ãä½ å¿
é¡»åå§åæä¹
åç±»çå®ä¾ï¼å¡«å
å®çæ è¯ç¬¦å±"
-"æ§ï¼å<literal>load()</literal> ç»åå
³é®åå
³èçæä¹
ç¶æãæä»¬æè¿ç§æ¹æ³ç§°ä¸º"
-"<emphasis>embeddedï¼åµå
¥å¼ï¼</emphasis>çç»åæ è¯ç¬¦ï¼å¨éè¦çåºç¨ä¸ä¸é¼å±ä½¿ç¨"
-"è¿ç§ç¨æ³ã"
+#, no-c-format
+msgid "A second approach is what we call a <emphasis>mapped</emphasis> composite identifier, where the identifier properties named inside the <literal><composite-id></literal> element are duplicated on both the persistent class and a separate identifier class."
+msgstr "第äºç§æ¹æ³æä»¬ç§°ä¸º <emphasis>mappedï¼æ å°å¼ï¼</emphasis>ç»åæ è¯ç¬¦ï¼mapped composite identifierï¼ï¼<literal><composite-id></literal> å
ç´ ä¸ååºçæ è¯å±æ§ä¸ä½å¨æä¹
åç±»åºç°ï¼è¿å½¢æä¸ä¸ªç¬ç«çæ è¯ç¬¦ç±»ã"
#. Tag: para
-#: basic_mapping.xml:987
#, no-c-format
-msgid ""
-"A second approach is what we call a <emphasis>mapped</emphasis> composite "
-"identifier, where the identifier properties named inside the <literal><"
-"composite-id></literal> element are duplicated on both the persistent "
-"class and a separate identifier class."
-msgstr ""
-"第äºç§æ¹æ³æä»¬ç§°ä¸º<emphasis>mapped(æ å°å¼)</emphasis>ç»åæ è¯ç¬¦ (mapped "
-"composite identifier),<literal><composite-id></literal>å
ç´ ä¸ååºçæ è¯"
-"屿§ä¸ä½å¨æä¹
åç±»åºç°ï¼è¿å½¢æä¸ä¸ªç¬ç«çæ è¯ç¬¦ç±»ã"
+msgid "In this example, both the composite identifier class, <literal>MedicareId</literal>, and the entity class itself have properties named <literal>medicareNumber</literal> and <literal>dependent</literal>. The identifier class must override <literal>equals()</literal> and <literal>hashCode()</literal> and implement <literal>Serializable</literal>. The main disadvantage of this approach is code duplication."
+msgstr "å¨è¿ä¸ªä¾åä¸ï¼ç»åæ è¯ç¬¦ç±» <literal>MedicareId</literal> åå®ä½ç±»é½å«æ <literal>medicareNumber</literal> å <literal>dependent</literal> 屿§ãæ è¯ç¬¦ç±»å¿
é¡»éè½½ <literal>equals()</literal> å <literal>hashCode()</literal> å¹¶ä¸å®ç° <literal>Serializable</literal> æ¥å£ãè¿ç§æ¹æ³çç¼ºç¹æ¯åºç°äºææ¾ç代ç éå¤ã"
-#. Tag: programlisting
-#: basic_mapping.xml:993
-#, no-c-format
-msgid ""
-"<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
-" <key-property name=\"medicareNumber\"/>\n"
-" <key-property name=\"dependent\"/>\n"
-"</composite-id>]]>"
-msgstr ""
-
#. Tag: para
-#: basic_mapping.xml:995
-#, fuzzy, no-c-format
-msgid ""
-"In this example, both the composite identifier class, <literal>MedicareId</"
-"literal>, and the entity class itself have properties named "
-"<literal>medicareNumber</literal> and <literal>dependent</literal>. The "
-"identifier class must override <literal>equals()</literal> and "
-"<literal>hashCode()</literal> and implement <literal>Serializable</literal>. "
-"The main disadvantage of this approach is code duplication."
-msgstr ""
-"å¨è¿ä¸ªä¾åä¸ï¼ç»åæ è¯ç¬¦ç±»<literal>MedicareId</literal>åå®ä½ç±»é½å«æ"
-"<literal>medicareNumber</literal>å<literal>dependent</literal>屿§ãæ è¯ç¬¦ç±»"
-"å¿
é¡»éè½½<literal>equals()</literal>å<literal>hashCode()</literal>å¹¶ä¸å®ç°"
-"<literal>Serializable</literal>æ¥å£ãè¿ç§æ¹æ³çç¼ºç¹æ¯åºç°äºææ¾ç代ç éå¤ã"
-
-#. Tag: para
-#: basic_mapping.xml:1004
#, no-c-format
-msgid ""
-"The following attributes are used to specify a mapped composite identifier:"
+msgid "The following attributes are used to specify a mapped composite identifier:"
msgstr "ä¸é¢ååºç屿§æ¯ç¨æ¥æå®ä¸ä¸ªæ å°å¼ç»åæ è¯ç¬¦çï¼"
#. Tag: para
-#: basic_mapping.xml:1010
-#, fuzzy, no-c-format
-msgid ""
-"<literal>mapped</literal> (optional - defaults to <literal>false</literal>): "
-"indicates that a mapped composite identifier is used, and that the contained "
-"property mappings refer to both the entity class and the composite "
-"identifier class."
-msgstr ""
-"<literal>mapped</literal> (å¯é, é»è®¤ä¸º<literal>false</literal>): ææä½¿ç¨ä¸"
-"个æ å°å¼ç»åæ è¯ç¬¦ï¼å
¶å
å«ç屿§æ å°åæ¶å¨å®ä½ç±»åç»åæ è¯ç¬¦ç±»ä¸åºç°ã"
+#, no-c-format
+msgid "<literal>mapped</literal> (optional - defaults to <literal>false</literal>): indicates that a mapped composite identifier is used, and that the contained property mappings refer to both the entity class and the composite identifier class."
+msgstr "<literal>mapped</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼ææä½¿ç¨ä¸ä¸ªæ å°å¼ç»åæ è¯ç¬¦ï¼å
¶å
å«ç屿§æ å°åæ¶å¨å®ä½ç±»åç»åæ è¯ç¬¦ç±»ä¸åºç°ã "
#. Tag: para
-#: basic_mapping.xml:1018
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal> (optional - but required for a mapped composite "
-"identifier): the class used as a composite identifier."
-msgstr ""
-"<literal>class</literal> (å¯é,ä½å¯¹æ å°å¼ç»åæ è¯ç¬¦å¿
é¡»æå®): ä½ä¸ºç»åæ è¯ç¬¦"
-"类使ç¨çç±»å."
+#, no-c-format
+msgid "<literal>class</literal> (optional - but required for a mapped composite identifier): the class used as a composite identifier."
+msgstr "<literal>class</literal>ï¼å¯é,ä½å¯¹æ å°å¼ç»åæ è¯ç¬¦å¿
é¡»æå®ï¼ï¼ä½ä¸ºç»åæ è¯ç¬¦ç±»ä½¿ç¨çç±»åã"
#. Tag: para
-#: basic_mapping.xml:1025
-#, fuzzy, no-c-format
-msgid ""
-"We will describe a third, even more convenient approach, where the composite "
-"identifier is implemented as a component class in <xref linkend=\"components-"
-"compositeid\"/>. The attributes described below apply only to this "
-"alternative approach:"
-msgstr ""
-"å¨<xref linkend=\"components-compositeid\"/>ä¸èä¸,æä»¬ä¼æè¿°ç¬¬ä¸ç§æ¹å¼,é£å°±"
-"æ¯æç»åæ è¯ç¬¦å®ç°ä¸ºä¸ä¸ªç»ä»¶(component)ç±»,è¿æ¯æ´æ¹ä¾¿çæ¹æ³ãä¸é¢ç屿§ä»
对第"
-"ä¸ç§æ¹æ³ææï¼"
+#, no-c-format
+msgid "We will describe a third, even more convenient approach, where the composite identifier is implemented as a component class in <xref linkend=\"components-compositeid\" />. The attributes described below apply only to this alternative approach:"
+msgstr "å¨ <xref linkend=\"components-compositeid\"/> ä¸èä¸,æä»¬ä¼æè¿°ç¬¬ä¸ç§æ¹å¼,é£å°±æ¯æç»åæ è¯ç¬¦å®ç°ä¸ºä¸ä¸ªç»ä»¶ï¼componentï¼ç±»,è¿æ¯æ´æ¹ä¾¿çæ¹æ³ãä¸é¢ç屿§ä»
对第ä¸ç§æ¹æ³ææï¼ "
#. Tag: para
-#: basic_mapping.xml:1033
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal> (optional - required for this approach): a property "
-"of component type that holds the composite identifier. Please see chapter 9 "
-"for more information."
-msgstr ""
-"<literal>name</literal> (å¯é,ä½å¯¹è¿ç§æ¹æ³èè¨å¿
é¡»): å
嫿¤ç»ä»¶æ è¯ç¬¦çç»ä»¶ç±»"
-"åçåå (åé
第9ç« )."
+#, no-c-format
+msgid "<literal>name</literal> (optional - required for this approach): a property of component type that holds the composite identifier. Please see chapter 9 for more information."
+msgstr "<literal>name</literal>ï¼å¯é,ä½å¯¹è¿ç§æ¹æ³èè¨å¿
é¡»ï¼ï¼å
嫿¤ç»ä»¶æ è¯ç¬¦çç»ä»¶ç±»åçååï¼åé
第 9 ç« ï¼ã"
#. Tag: para
-#: basic_mapping.xml:1039 basic_mapping.xml:1260 basic_mapping.xml:1372
-#: basic_mapping.xml:1561 basic_mapping.xml:1735 basic_mapping.xml:1905
-#: basic_mapping.xml:2484
-#, fuzzy, no-c-format
-msgid ""
-"<literal>access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate uses for accessing the property value."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤ä¸º<literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤ä¸º<literal>property</literal>): "
-"Hibernateåºè¯¥ä½¿ç¨çè®¿é®æ¤å±æ§å¼ççç¥\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨äºè®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨äºè®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤å¼ä¸º <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é -é»è®¤æ¯ <literal>property</literal>): "
-"Hibernate ç¨æ¥è®¿é®å±æ§å¼ççç¥ã"
+#, no-c-format
+msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses for accessing the property value."
+msgstr "<literal>access</literal>ï¼å¯é â é»è®¤ä¸º <literal>property</literal>ï¼ï¼Hibernate ç¨æ¥è®¿é®å±æ§å¼ççç¥ã "
#. Tag: para
-#: basic_mapping.xml:1045
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal> (optional - defaults to the property type "
-"determined by reflection): the component class used as a composite "
-"identifier. Please see the next section for more information."
-msgstr ""
-"<literal>class</literal> (å¯é - é»è®¤ä¼ç¨åå°æ¥èªå¨å¤å®å±æ§ç±»å ): ç¨æ¥ä½ä¸ºç»"
-"åæ è¯ç¬¦çç»ä»¶ç±»çç±»åï¼åé
ä¸ä¸èï¼"
+#, no-c-format
+msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the component class used as a composite identifier. Please see the next section for more information."
+msgstr "<literal>class</literal>ï¼å¯é â é»è®¤ä¼ç¨åå°æ¥èªå¨å¤å®å±æ§ç±»å ï¼ï¼ç¨æ¥ä½ä¸ºç»åæ è¯ç¬¦çç»ä»¶ç±»çç±»åï¼åé
ä¸ä¸èï¼ã "
#. Tag: para
-#: basic_mapping.xml:1052
-#, fuzzy, no-c-format
-msgid ""
-"The third approach, an <emphasis>identifier component</emphasis>, is "
-"recommended for almost all applications."
-msgstr ""
-"第ä¸ç§æ¹å¼ï¼è¢«ç§°ä¸º<emphasis>identifier component(æ è¯ç¬¦ç»ä»¶)</emphasis>æ¯æä»¬"
-"对å 乿æåºç¨é½æ¨è使ç¨çæ¹å¼ã"
+#, no-c-format
+msgid "The third approach, an <emphasis>identifier component</emphasis>, is recommended for almost all applications."
+msgstr "第ä¸ç§æ¹å¼ï¼è¢«ç§°ä¸º <emphasis>identifier componentï¼æ è¯ç¬¦ç»ä»¶ï¼</emphasis>æ¯æä»¬å¯¹å 乿æåºç¨é½æ¨è使ç¨çæ¹å¼ã "
#. Tag: title
-#: basic_mapping.xml:1060
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Discriminator"
-msgstr "é´å«å¨ï¼discriminatorï¼"
+msgstr "é´å«å¨ï¼discriminatorï¼ "
#. Tag: para
-#: basic_mapping.xml:1062
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><discriminator></literal> element is required for "
-"polymorphic persistence using the table-per-class-hierarchy mapping "
-"strategy. It declares a discriminator column of the table. The discriminator "
-"column contains marker values that tell the persistence layer what subclass "
-"to instantiate for a particular row. A restricted set of types can be used: "
-"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
-"literal>, <literal>byte</literal>, <literal>short</literal>, "
-"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
-"literal>."
-msgstr ""
-"å¨\"䏿£µå¯¹è±¡ç»§æ¿æ 对åºä¸ä¸ªè¡¨\"ççç¥ä¸,<literal><discriminator></"
-"literal>å
ç´ æ¯å¿
éç, å®å®ä¹äºè¡¨çé´å«å¨å段ãé´å«å¨å段å
嫿 å¿å¼ï¼ç¨äºåç¥"
-"æä¹
åå±åºè¯¥ä¸ºæä¸ªç¹å®çè¡å建åªä¸ä¸ªåç±»çå®ä¾ã å¦ä¸è¿äºåå°éå¶çç±»åå¯ä»¥ä½¿"
-"ç¨ï¼ <literal>string</literal>, <literal>character</literal>, "
-"<literal>integer</literal>, <literal>byte</literal>, <literal>short</"
-"literal>, <literal>boolean</literal>, <literal>yes_no</literal>, "
-"<literal>true_false</literal>."
-
-#. Tag: programlisting
-#: basic_mapping.xml:1080
#, no-c-format
-msgid ""
-"<![CDATA[<discriminator\n"
-" column=\"discriminator_column\"\n"
-" type=\"discriminator_type\"\n"
-" force=\"true|false\"\n"
-" insert=\"true|false\"\n"
-" formula=\"arbitrary sql expression\"\n"
-"/>]]>"
-msgstr ""
+msgid "The <literal><discriminator></literal> element is required for polymorphic persistence using the table-per-class-hierarchy mapping strategy. It declares a discriminator column of the table. The discriminator column contains marker values that tell the persistence layer what subclass to instantiate for a particular row. A restricted set of types can be used: <literal>string</literal>, <literal>character</literal>, <literal>integer</literal>, <literal>byte</literal>, <literal>short</literal>, <literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</literal>."
+msgstr "å¨\"䏿£µå¯¹è±¡ç»§æ¿æ 对åºä¸ä¸ªè¡¨\"ççç¥ä¸ï¼<literal><discriminator></literal> å
ç´ æ¯å¿
éçï¼å®å®ä¹äºè¡¨çé´å«å¨å段ãé´å«å¨å段å
嫿 å¿å¼ï¼ç¨äºåç¥æä¹
åå±åºè¯¥ä¸ºæä¸ªç¹å®çè¡å建åªä¸ä¸ªåç±»çå®ä¾ãå¦ä¸è¿äºåå°éå¶çç±»åå¯ä»¥ä½¿ç¨ï¼<literal>string</literal>ã<literal>character</literal>ã<literal>integer</literal>ã<literal>byte</literal>ã<literal>short</literal>ã<literal>boolean</literal>ã<literal>yes_no</literal>ã<literal>true_false</literal>ã"
#. Tag: para
-#: basic_mapping.xml:1083
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to <literal>class</literal>): "
-"the name of the discriminator column."
-msgstr ""
-"<literal>column</literal> (å¯é - é»è®¤ä¸º <literal>class</literal>) é´å«å¨å段"
-"çåå"
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to <literal>class</literal>): the name of the discriminator column."
+msgstr "<literal>column</literal>ï¼å¯é â é»è®¤ä¸º <literal>class</literal>ï¼discriminator å¨å段çååã"
#. Tag: para
-#: basic_mapping.xml:1089
-#, fuzzy, no-c-format
-msgid ""
-"<literal>type</literal> (optional - defaults to <literal>string</literal>): "
-"a name that indicates the Hibernate type"
-msgstr ""
-"<literal>type</literal> (å¯é - é»è®¤ä¸º <literal>string</literal>) ä¸ä¸ª"
-"Hibernateåæ®µç±»åçåå"
+#, no-c-format
+msgid "<literal>type</literal> (optional - defaults to <literal>string</literal>): a name that indicates the Hibernate type"
+msgstr "<literal>type</literal>ï¼å¯é â é»è®¤ä¸º <literal>string</literal>ï¼ä¸ä¸ª Hibernate åæ®µç±»åçåå "
#. Tag: para
-#: basic_mapping.xml:1095
-#, fuzzy, no-c-format
-msgid ""
-"<literal>force</literal> (optional - defaults to <literal>false</literal>): "
-"\"forces\" Hibernate to specify the allowed discriminator values, even when "
-"retrieving all instances of the root class."
-msgstr ""
-"<literal>force(强å¶)</literal> (å¯é - é»è®¤ä¸º <literal>false</literal>) \"强"
-"å¶\"Hibernateæå®å
许çé´å«å¨å¼,å³ä½¿å½åå¾çææå®ä¾é½æ¯æ ¹ç±»çã"
+#, no-c-format
+msgid "<literal>force</literal> (optional - defaults to <literal>false</literal>): \"forces\" Hibernate to specify the allowed discriminator values, even when retrieving all instances of the root class."
+msgstr "<literal>force(强å¶)</literal>ï¼å¯é â é»è®¤ä¸º <literal>false</literal>ï¼\"强å¶\" Hibernate æå®å
许çé´å«å¨å¼,å³ä½¿å½åå¾çææå®ä¾é½æ¯æ ¹ç±»çã "
#. Tag: para
-#: basic_mapping.xml:1102
-#, fuzzy, no-c-format
-msgid ""
-"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
-"set this to <literal>false</literal> if your discriminator column is also "
-"part of a mapped composite identifier. It tells Hibernate not to include the "
-"column in SQL <literal>INSERTs</literal>."
-msgstr ""
-"<literal>insert</literal> (å¯é - é»è®¤ä¸º<literal>true</literal>) å¦æä½ çé´å«"
-"å¨åæ®µä¹æ¯æ å°ä¸ºå¤åæ è¯ï¼composite identifierï¼çä¸é¨åï¼åéå° è¿ä¸ªå¼è®¾ä¸º"
-"<literal>false</literal>ãï¼åè¯Hibernateå¨åSQL <literal>INSERT</literal> æ¶"
-"ä¸å
å«è¯¥åï¼"
+#, no-c-format
+msgid "<literal>insert</literal> (optional - defaults to <literal>true</literal>): set this to <literal>false</literal> if your discriminator column is also part of a mapped composite identifier. It tells Hibernate not to include the column in SQL <literal>INSERTs</literal>."
+msgstr "<literal>insert</literal>ï¼å¯é - é»è®¤ä¸º<literal>true</literal>ï¼å¦æä½ çé´å«å¨åæ®µä¹æ¯æ å°ä¸ºå¤åæ è¯ï¼composite identifierï¼çä¸é¨åï¼åéå°è¿ä¸ªå¼è®¾ä¸º <literal>false</literal>ãï¼åè¯ Hibernate å¨å SQL <literal>INSERT</literal> æ¶ä¸å
å«è¯¥åï¼ "
#. Tag: para
-#: basic_mapping.xml:1110
-#, fuzzy, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): an arbitrary SQL expression that is "
-"executed when a type has to be evaluated. It allows content-based "
-"discrimination."
-msgstr ""
-"<literal>formula</literal> (å¯é) ä¸ä¸ªSQL表达å¼ï¼å¨ç±»å夿ï¼å¤ææ¯ç¶ç±»è¿æ¯å
·"
-"ä½åç±»ï¼è¯æ³¨ï¼æ¶æ§è¡ãå¯ç¨äºåºäºå
容çé´å«å¨ã"
+#, no-c-format
+msgid "<literal>formula</literal> (optional): an arbitrary SQL expression that is executed when a type has to be evaluated. It allows content-based discrimination."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ä¸ä¸ª SQL 表达å¼ï¼å¨ç±»å夿ï¼å¤ææ¯ç¶ç±»è¿æ¯å
·ä½åç±» â è¯æ³¨ï¼æ¶æ§è¡ãå¯ç¨äºåºäºå
容çé´å«å¨ã "
#. Tag: para
-#: basic_mapping.xml:1118
#, no-c-format
-msgid ""
-"Actual values of the discriminator column are specified by the "
-"<literal>discriminator-value</literal> attribute of the <literal><"
-"class></literal> and <literal><subclass></literal> elements."
-msgstr ""
-"é´å«å¨å段çå®é
弿¯æ ¹æ®<literal><class></literal>å<literal><"
-"subclass></literal>å
ç´ ä¸ ç<literal>discriminator-value</literal>屿§å¾æ¥"
-"çã"
+msgid "Actual values of the discriminator column are specified by the <literal>discriminator-value</literal> attribute of the <literal><class></literal> and <literal><subclass></literal> elements."
+msgstr "é´å«å¨å段çå®é
弿¯æ ¹æ® <literal><class></literal> å <literal><subclass></literal> å
ç´ ä¸ç <literal>discriminator-value</literal> 屿§å¾æ¥çã"
#. Tag: para
-#: basic_mapping.xml:1124
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>force</literal> attribute is only useful if the table contains "
-"rows with \"extra\" discriminator values that are not mapped to a persistent "
-"class. This will not usually be the case."
-msgstr ""
-"<literal>force</literal>屿§ä»
ä»
å¨è¿ç§æ
åµä¸æç¨çï¼è¡¨ä¸å
嫿²¡æè¢«æ å°å°æä¹
"
-"åç±»çéå 辨å«å¨å¼ã è¿ç§æ
åµä¸ä¼ç»å¸¸éå°ã"
+#, no-c-format
+msgid "The <literal>force</literal> attribute is only useful if the table contains rows with \"extra\" discriminator values that are not mapped to a persistent class. This will not usually be the case."
+msgstr "<literal>force</literal> 屿§ä»
ä»
å¨è¿ç§æ
åµä¸æç¨çï¼è¡¨ä¸å
嫿²¡æè¢«æ å°å°æä¹
åç±»çéå 辨å«å¨å¼ãè¿ç§æ
åµä¸ä¼ç»å¸¸éå°ã "
#. Tag: para
-#: basic_mapping.xml:1130
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>formula</literal> attribute allows you to declare an arbitrary "
-"SQL expression that will be used to evaluate the type of a row. For example:"
-msgstr ""
-"使ç¨<literal>formula</literal>屿§ä½ å¯ä»¥å®ä¹ä¸ä¸ªSQL表达å¼ï¼ç¨æ¥å¤æä¸ä¸ªè¡æ°æ®"
-"çç±»åã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1135
#, no-c-format
-msgid ""
-"<![CDATA[<discriminator\n"
-" formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end\"\n"
-" type=\"integer\"/>]]>"
-msgstr ""
+msgid "The <literal>formula</literal> attribute allows you to declare an arbitrary SQL expression that will be used to evaluate the type of a row. For example:"
+msgstr "ä½¿ç¨ <literal>formula</literal> 屿§ä½ å¯ä»¥å®ä¹ä¸ä¸ª SQL 表达å¼ï¼ç¨æ¥å¤æä¸è¡æ°æ®çç±»åã"
#. Tag: title
-#: basic_mapping.xml:1140
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Version (optional)"
-msgstr "çæ¬ï¼versionï¼(å¯é)"
+msgstr "çæ¬ï¼versionï¼ï¼å¯éï¼ "
#. Tag: para
-#: basic_mapping.xml:1142
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><version></literal> element is optional and indicates "
-"that the table contains versioned data. This is particularly useful if you "
-"plan to use <emphasis>long transactions</emphasis>. See below for more "
-"information:"
-msgstr ""
-"<literal><version></literal>å
ç´ æ¯å¯éçï¼è¡¨æè¡¨ä¸å
å«éå¸¦çæ¬ä¿¡æ¯çæ°"
-"æ®ã è¿å¨ä½ åå¤ä½¿ç¨<emphasis> é¿äºå¡ï¼long transactionsï¼</emphasis>çæ¶åç¹"
-"嫿ç¨ãï¼è§åï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1158
#, no-c-format
-msgid ""
-"<![CDATA[<version\n"
-" column=\"version_column\"\n"
-" name=\"propertyName\"\n"
-" type=\"typename\"\n"
-" access=\"field|property|ClassName\"\n"
-" unsaved-value=\"null|negative|undefined\"\n"
-" generated=\"never|always\"\n"
-" insert=\"true|false\"\n"
-" node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-"/>]]>"
-msgstr ""
+msgid "The <literal><version></literal> element is optional and indicates that the table contains versioned data. This is particularly useful if you plan to use <emphasis>long transactions</emphasis>. See below for more information:"
+msgstr "<literal><version></literal> å
ç´ æ¯å¯éçï¼è¡¨æè¡¨ä¸å
å«éå¸¦çæ¬ä¿¡æ¯çæ°æ®ãè¿å¨ä½ åå¤ä½¿ç¨<emphasis> é¿äºå¡ï¼long transactionsï¼</emphasis>çæ¶åç¹å«æç¨ãä¸é¢æ¯æ´å¤ä¿¡æ¯ï¼"
#. Tag: para
-#: basic_mapping.xml:1161
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of the column holding the version number."
-msgstr ""
-"<literal>column</literal> (å¯é - é»è®¤ä¸ºå±æ§å): æå®ææçæ¬å·çåæ®µåã"
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of the column holding the version number."
+msgstr "<literal>column</literal>ï¼å¯é â é»è®¤ä¸ºå±æ§åï¼ï¼æå®ææçæ¬å·çåæ®µåã "
#. Tag: para
-#: basic_mapping.xml:1167
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal>: the name of a property of the persistent class."
-msgstr "<literal>name</literal>: æä¹
åç±»ç屿§åã"
+#, no-c-format
+msgid "<literal>name</literal>: the name of a property of the persistent class."
+msgstr "<literal>name</literal>ï¼æä¹
åç±»ç屿§åã "
#. Tag: para
-#: basic_mapping.xml:1172
-#, fuzzy, no-c-format
-msgid ""
-"<literal>type</literal> (optional - defaults to <literal>integer</literal>): "
-"the type of the version number."
-msgstr ""
-"<literal>type</literal> (å¯é - é»è®¤æ¯ <literal>integer</literal>): çæ¬å·ç"
-"ç±»åã"
+#, no-c-format
+msgid "<literal>type</literal> (optional - defaults to <literal>integer</literal>): the type of the version number."
+msgstr "<literal>type</literal>ï¼å¯é â é»è®¤æ¯ <literal>integer</literal>ï¼ï¼çæ¬å·çç±»åã "
#. Tag: para
-#: basic_mapping.xml:1178
-#, fuzzy, no-c-format
-msgid ""
-"<literal>access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate uses to access the property value."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤ä¸º<literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤ä¸º<literal>property</literal>): "
-"Hibernateåºè¯¥ä½¿ç¨çè®¿é®æ¤å±æ§å¼ççç¥\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨äºè®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨äºè®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤å¼ä¸º <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§å¼ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é - é»è®¤æ¯ <literal>property</literal>): "
-"Hibernateç¨æ¥è®¿é®å±æ§ççç¥ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>access</literal> (å¯é -é»è®¤æ¯ <literal>property</literal>): "
-"Hibernate ç¨æ¥è®¿é®å±æ§å¼ççç¥ã"
+#, no-c-format
+msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses to access the property value."
+msgstr "<literal>access</literal>ï¼å¯é â é»è®¤ä¸º <literal>property</literal>ï¼ï¼Hibernate ç¨æ¥è®¿é®å±æ§å¼ççç¥ã "
#. Tag: para
-#: basic_mapping.xml:1184
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</"
-"literal>): a version property value that indicates that an instance is newly "
-"instantiated (unsaved), distinguishing it from detached instances that were "
-"saved or loaded in a previous session. <literal>Undefined</literal> "
-"specifies that the identifier property value should be used."
-msgstr ""
-"<literal>unsaved-value</literal> (å¯é - é»è®¤æ¯<literal>undefined</"
-"literal>): ç¨äºæ ææä¸ªå®ä¾æ¶åå被å®ä¾åçï¼å°æªä¿åï¼çæ¬å±æ§å¼ï¼ä¾é è¿ä¸ªå¼"
-"å°±å¯ä»¥æè¿ç§æ
åµ åå·²ç»å¨å
åçsessionä¸ä¿åæè£
è½½çè±ç®¡ï¼detachedï¼å®ä¾åºå"
-"弿¥ã ï¼<literal>undefined</literal>ææåºè¢«ä½¿ç¨çæ è¯å±æ§å¼ãï¼"
+#, no-c-format
+msgid "<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</literal>): a version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. <literal>Undefined</literal> specifies that the identifier property value should be used."
+msgstr "<literal>unsaved-value</literal>ï¼å¯é â é»è®¤æ¯ <literal>undefined</literal>ï¼ï¼ç¨äºæ ææä¸ªå®ä¾æ¶åå被å®ä¾åçï¼å°æªä¿åï¼çæ¬å±æ§å¼ï¼ä¾é è¿ä¸ªå¼å°±å¯ä»¥æè¿ç§æ
åµ åå·²ç»å¨å
åç session ä¸ä¿åæè£
è½½çè±ç®¡ï¼detachedï¼å®ä¾åºå弿¥ãï¼<literal>undefined</literal> ææåºè¢«ä½¿ç¨çæ è¯å±æ§å¼ãï¼ "
#. Tag: para
-#: basic_mapping.xml:1193
-#, fuzzy, no-c-format
-msgid ""
-"<literal>generated</literal> (optional - defaults to <literal>never</"
-"literal>): specifies that this version property value is generated by the "
-"database. See the discussion of <link linkend=\"mapping-generated"
-"\">generated properties</link> for more information."
-msgstr ""
-"<literal>generated</literal> (å¯é - é»è®¤æ¯ <literal>never</literal>): è¡¨ææ¤"
-"çæ¬å±æ§å¼æ¯å¦å®é
䏿¯ç±æ°æ®åºçæçã请åé
<xref linkend=\"mapping-generated"
-"\">generated properties</xref>é¨åç讨论ã"
+#, no-c-format
+msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): specifies that this version property value is generated by the database. See the discussion of generated properties for more information (<xref linkend=\"mapping-generated\" />)."
+msgstr "<literal>generated</literal>ï¼å¯é â é»è®¤æ¯ <literal>never</literal>ï¼ï¼è¡¨ææ¤çæ¬å±æ§å¼æ¯å¦å®é
䏿¯ç±æ°æ®åºçæçã请åé
<xref linkend=\"mapping-generated\"/> é¨åç讨论ã "
#. Tag: para
-#: basic_mapping.xml:1200
-#, fuzzy, no-c-format
-msgid ""
-"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
-"specifies whether the version column should be included in SQL insert "
-"statements. It can be set to <literal>false</literal> if the database column "
-"is defined with a default value of <literal>0</literal>."
-msgstr ""
-"<literal>insert</literal> (å¯é - é»è®¤æ¯ <literal>true</literal>): è¡¨ææ¤çæ¬"
-"ååºè¯¥å
å«å¨SQLæå
¥è¯å¥ä¸ãåªæå½æ°æ®åºå段æé»è®¤å¼<literal>0</literal>çæ¶"
-"åï¼æå¯ä»¥è®¾ç½®ä¸º<literal>false</literal>ã"
+#, no-c-format
+msgid "<literal>insert</literal> (optional - defaults to <literal>true</literal>): specifies whether the version column should be included in SQL insert statements. It can be set to <literal>false</literal> if the database column is defined with a default value of <literal>0</literal>."
+msgstr "<literal>insert</literal>ï¼å¯é â é»è®¤æ¯ <literal>true</literal>ï¼ï¼è¡¨ææ¤çæ¬ååºè¯¥å
å«å¨ SQL æå
¥è¯å¥ä¸ãåªæå½æ°æ®åºå段æé»è®¤å¼ <literal>0</literal> çæ¶åï¼æå¯ä»¥è®¾ç½®ä¸º <literal>false</literal>ã "
#. Tag: para
-#: basic_mapping.xml:1210
-#, fuzzy, no-c-format
-msgid ""
-"Version numbers can be of Hibernate type <literal>long</literal>, "
-"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
-"literal> or <literal>calendar</literal>."
-msgstr ""
-"çæ¬å·å¿
é¡»æ¯ä»¥ä¸ç±»åï¼<literal>long</literal>, <literal>integer</literal>, "
-"<literal>short</literal>, <literal>timestamp</literal>æè
<literal>calendar</"
-"literal>ã"
+#, no-c-format
+msgid "Version numbers can be of Hibernate type <literal>long</literal>, <literal>integer</literal>, <literal>short</literal>, <literal>timestamp</literal> or <literal>calendar</literal>."
+msgstr "çæ¬å·å¿
é¡»æ¯ä»¥ä¸ç±»åï¼<literal>long</literal>ã<literal>integer</literal>ã<literal>short</literal>ã<literal>timestamp</literal> æè
<literal>calendar</literal>ã"
#. Tag: para
-#: basic_mapping.xml:1215
-#, fuzzy, no-c-format
-msgid ""
-"A version or timestamp property should never be null for a detached "
-"instance. Hibernate will detect any instance with a null version or "
-"timestamp as transient, irrespective of what other <literal>unsaved-value</"
-"literal> strategies are specified. <emphasis>Declaring a nullable version or "
-"timestamp property is an easy way to avoid problems with transitive "
-"reattachment in Hibernate. It is especially useful for people using assigned "
-"identifiers or composite keys</emphasis>."
-msgstr ""
-"ä¸ä¸ªè±ç®¡ï¼detachedï¼å®ä¾çversionætimestamp屿§ä¸è½ä¸ºç©ºï¼nullï¼ï¼å 为"
-"Hibernateä¸ç®¡ <literal>unsaved-value</literal>被æå®ä¸ºä½ç§çç¥ï¼å®å°ä»»ä½å±æ§"
-"为空çversionætimestamp å®ä¾çä½ä¸ºç¬æ¶ï¼transientï¼å®ä¾ã <emphasis>é¿å
"
-"Hibernateä¸çä¼ éééï¼transitive reattachmentï¼é®é¢çä¸ä¸ªç®åæ¹æ³æ¯ å®ä¹ä¸ä¸ª"
-"ä¸è½ä¸ºç©ºçversionætimestamp屿§ï¼ç¹å«æ¯å¨äººä»¬ä½¿ç¨ç¨åºåé
çæ è¯ç¬¦ï¼assigned "
-"identifiersï¼ æå¤å䏻鮿¶é常æç¨ï¼</emphasis>"
+#, no-c-format
+msgid "A version or timestamp property should never be null for a detached instance. Hibernate will detect any instance with a null version or timestamp as transient, irrespective of what other <literal>unsaved-value</literal> strategies are specified. <emphasis>Declaring a nullable version or timestamp property is an easy way to avoid problems with transitive reattachment in Hibernate. It is especially useful for people using assigned identifiers or composite keys</emphasis>."
+msgstr "ä¸ä¸ªè±ç®¡ï¼detachedï¼å®ä¾ç version æ timestamp 屿§ä¸è½ä¸ºç©ºï¼nullï¼ï¼å 为 Hibernate ä¸ç®¡ <literal>unsaved-value</literal> 被æå®ä¸ºä½ç§çç¥ï¼å®å°ä»»ä½å±æ§ä¸ºç©ºç version æ timestamp å®ä¾çä½ä¸ºç¬æ¶ï¼transientï¼å®ä¾ã <emphasis>é¿å
Hibernate ä¸çä¼ éééï¼transitive reattachmentï¼é®é¢çä¸ä¸ªç®åæ¹æ³æ¯ å®ä¹ä¸ä¸ªä¸è½ä¸ºç©ºç version æ timestamp 屿§ï¼ç¹å«æ¯å¨äººä»¬ä½¿ç¨ç¨åºåé
çæ è¯ç¬¦ï¼assigned identifiersï¼ æå¤å䏻鮿¶é常æç¨</emphasis>ã"
#. Tag: title
-#: basic_mapping.xml:1226
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Timestamp (optional)"
-msgstr "timestamp (å¯é)"
+msgstr "timestampï¼å¯é) "
#. Tag: para
-#: basic_mapping.xml:1228
-#, fuzzy, no-c-format
-msgid ""
-"The optional <literal><timestamp></literal> element indicates that the "
-"table contains timestamped data. This provides an alternative to versioning. "
-"Timestamps are a less safe implementation of optimistic locking. However, "
-"sometimes the application might use the timestamps in other ways."
-msgstr ""
-"å¯éç<literal><timestamp></literal>å
ç´ ææäºè¡¨ä¸å
嫿¶é´æ³æ°æ®ã è¿ç¨"
-"æ¥ä½ä¸ºçæ¬çæ¿ä»£ãæ¶é´æ³æ¬è´¨ä¸æ¯ä¸ç§å¯¹ä¹è§éå®çä¸ç§ä¸æ¯ç¹å«å®å
¨çå®ç°ãå½"
-"ç¶ï¼ ææ¶ååºç¨ç¨åºå¯è½å¨å
¶ä»æ¹é¢ä½¿ç¨æ¶é´æ³ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1244
#, no-c-format
-msgid ""
-"<![CDATA[<timestamp\n"
-" column=\"timestamp_column\"\n"
-" name=\"propertyName\"\n"
-" access=\"field|property|ClassName\"\n"
-" unsaved-value=\"null|undefined\"\n"
-" source=\"vm|db\"\n"
-" generated=\"never|always\"\n"
-" node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-"/>]]>"
-msgstr ""
+msgid "The optional <literal><timestamp></literal> element indicates that the table contains timestamped data. This provides an alternative to versioning. Timestamps are a less safe implementation of optimistic locking. However, sometimes the application might use the timestamps in other ways."
+msgstr "å¯éç <literal><timestamp></literal> å
ç´ ææäºè¡¨ä¸å
嫿¶é´æ³æ°æ®ãè¿ç¨æ¥ä½ä¸ºçæ¬çæ¿ä»£ãæ¶é´æ³æ¬è´¨ä¸æ¯ä¸ç§å¯¹ä¹è§éå®çä¸ç§ä¸æ¯ç¹å«å®å
¨çå®ç°ãå½ç¶ï¼ææ¶ååºç¨ç¨åºå¯è½å¨å
¶ä»æ¹é¢ä½¿ç¨æ¶é´æ³ã "
#. Tag: para
-#: basic_mapping.xml:1247
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of a column holding the timestamp."
-msgstr "<literal>column</literal> (å¯é - é»è®¤ä¸ºå±æ§å): æææ¶é´æ³çåæ®µåã"
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of a column holding the timestamp."
+msgstr "<literal>column</literal>ï¼å¯é â é»è®¤ä¸ºå±æ§åï¼ï¼åææ¶é´æ³çåæ®µåã "
#. Tag: para
-#: basic_mapping.xml:1253
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal>: the name of a JavaBeans style property of Java type "
-"<literal>Date</literal> or <literal>Timestamp</literal> of the persistent "
-"class."
-msgstr ""
-"<literal>name</literal>: 卿ä¹
åç±»ä¸çJavaBeans飿 ¼ç屿§åï¼ å
¶Javaç±»åæ¯ "
-"<literal>Date</literal> æè
<literal>Timestamp</literal>çã"
+#, no-c-format
+msgid "<literal>name</literal>: the name of a JavaBeans style property of Java type <literal>Date</literal> or <literal>Timestamp</literal> of the persistent class."
+msgstr "<literal>name</literal>ï¼å¨æä¹
åç±»ä¸ç JavaBeans 飿 ¼ç屿§åï¼å
¶ Java ç±»åæ¯ <literal>Date</literal> æè
<literal>Timestamp</literal> çã "
#. Tag: para
-#: basic_mapping.xml:1266
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unsaved-value</literal> (optional - defaults to <literal>null</"
-"literal>): a version property value that indicates that an instance is newly "
-"instantiated (unsaved), distinguishing it from detached instances that were "
-"saved or loaded in a previous session. <literal>Undefined</literal> "
-"specifies that the identifier property value should be used."
-msgstr ""
-"<literal>unsaved-value</literal> (å¯é - é»è®¤æ¯<literal>null</literal>): ç¨äº"
-"æ ææä¸ªå®ä¾æ¶åå被å®ä¾åçï¼å°æªä¿åï¼çæ¬å±æ§å¼ï¼ä¾é è¿ä¸ªå¼å°±å¯ä»¥æè¿ç§æ
"
-"åµå å·²ç»å¨å
åçsessionä¸ä¿åæè£
è½½çè±ç®¡ï¼detachedï¼å®ä¾åºå弿¥ã"
-"ï¼<literal>undefined</literal> ææä½¿ç¨æ è¯å±æ§å¼è¿è¡è¿ç§å¤æãï¼"
+#, no-c-format
+msgid "<literal>unsaved-value</literal> (optional - defaults to <literal>null</literal>): a version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. <literal>Undefined</literal> specifies that the identifier property value should be used."
+msgstr "<literal>unsaved-value</literal>ï¼å¯é â é»è®¤æ¯ <literal>null</literal>ï¼ï¼ç¨äºæ ææä¸ªå®ä¾æ¶åå被å®ä¾åçï¼å°æªä¿åï¼çæ¬å±æ§å¼ï¼ä¾é è¿ä¸ªå¼å°±å¯ä»¥æè¿ç§æ
åµåå·²ç»å¨å
åç session ä¸ä¿åæè£
è½½çè±ç®¡ï¼detachedï¼å®ä¾åºå弿¥ãï¼<literal>undefined</literal> ææä½¿ç¨æ è¯å±æ§å¼è¿è¡è¿ç§å¤æãï¼ "
#. Tag: para
-#: basic_mapping.xml:1275
-#, fuzzy, no-c-format
-msgid ""
-"<literal>source</literal> (optional - defaults to <literal>vm</literal>): "
-"Where should Hibernate retrieve the timestamp value from? From the database, "
-"or from the current JVM? Database-based timestamps incur an overhead because "
-"Hibernate must hit the database in order to determine the \"next value\". It "
-"is safer to use in clustered environments. Not all <literal>Dialects</"
-"literal> are known to support the retrieval of the database's current "
-"timestamp. Others may also be unsafe for usage in locking due to lack of "
-"precision (Oracle 8, for example)."
-msgstr ""
-"<literal>source</literal> (å¯é - é»è®¤æ¯ <literal>vm</literal>): Hibernateå¦"
-"使è½è·åå°æ¶é´æ³çå¼å¢ï¼ä»æ°æ®åºï¼è¿æ¯å½åJVMï¼ä»æ°æ®åºè·åä¼å¸¦æ¥ä¸äºè´æ
ï¼"
-"å 为Hibernateå¿
é¡»è®¿é®æ°æ®åºæ¥è·å¾âä¸ä¸ä¸ªå¼âï¼ä½æ¯å¨é群ç¯å¢ä¸ä¼æ´å®å
¨äºãè¿è¦"
-"注æï¼å¹¶ä¸æ¯ææç<literal>Dialectï¼æ¹è¨ï¼</literal>齿¯æè·å¾æ°æ®åºçå½åæ¶"
-"é´æ³çï¼èæ¯æçæ°æ®åºä¸åæä¸é¨åå 为精度ä¸è¶³,ç¨äºé宿¯ä¸å®å
¨çï¼ä¾å¦"
-"Oracle 8ï¼ã"
+#, no-c-format
+msgid "<literal>source</literal> (optional - defaults to <literal>vm</literal>): Where should Hibernate retrieve the timestamp value from? From the database, or from the current JVM? Database-based timestamps incur an overhead because Hibernate must hit the database in order to determine the \"next value\". It is safer to use in clustered environments. Not all <literal>Dialects</literal> are known to support the retrieval of the database's current timestamp. Others may also be unsafe for usage in locking due to lack of precision (Oracle 8, for example)."
+msgstr "<literal>source</literal>ï¼å¯é â é»è®¤æ¯ <literal>vm</literal>ï¼ï¼Hibernate å¦ä½æè½è·åå°æ¶é´æ³çå¼å¢ï¼ä»æ°æ®åºï¼è¿æ¯å½å JVMï¼ä»æ°æ®åºè·åä¼å¸¦æ¥ä¸äºè´æ
ï¼å 为 Hibernate å¿
é¡»è®¿é®æ°æ®åºæ¥è·å¾âä¸ä¸ä¸ªå¼âï¼ä½æ¯å¨é群ç¯å¢ä¸ä¼æ´å®å
¨äºãè¿è¦æ³¨æï¼å¹¶ä¸æ¯ææç <literal>Dialectï¼æ¹è¨ï¼</literal>齿¯æè·å¾æ°æ®åºçå½åæ¶é´æ³çï¼èæ¯æçæ°æ®åºä¸åæä¸é¨åå 为精度ä¸è¶³ï¼ç¨äºé宿¯ä¸å®å
¨çï¼ä¾å¦ Oracle 8ï¼ã "
#. Tag: para
-#: basic_mapping.xml:1287
-#, fuzzy, no-c-format
-msgid ""
-"<literal>generated</literal> (optional - defaults to <literal>never</"
-"literal>): specifies that this timestamp property value is actually "
-"generated by the database. See the discussion of <link linkend=\"mapping-"
-"generated\">generated properties</link> for more information."
-msgstr ""
-"<literal>generated</literal> (å¯é - é»è®¤æ¯ <literal>never</literal>): æåºæ¶"
-"é´æ³å¼æ¯å¦å®é
䏿¯ç±æ°æ®åºçæç.请åé
<xref linkend=\"mapping-generated"
-"\">generated properties</xref>ç讨论ã"
+#, no-c-format
+msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): specifies that this timestamp property value is actually generated by the database. See the discussion of generated properties for more information (<xref linkend=\"mapping-generated\" />)."
+msgstr "<literal>generated</literal>ï¼å¯é - é»è®¤æ¯ <literal>never</literal>ï¼ï¼æåºæ¶é´æ³å¼æ¯å¦å®é
䏿¯ç±æ°æ®åºçæçã请åé
<xref linkend=\"mapping-generated\"/> ç讨论ã "
#. Tag: title
-#: basic_mapping.xml:1298 basic_mapping.xml:2890
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
#. Tag: para
-#: basic_mapping.xml:1299
-#, fuzzy, no-c-format
-msgid ""
-"<literal><Timestamp></literal> is equivalent to <literal><version "
-"type=\"timestamp\"></literal>. And <literal><timestamp source=\"db"
-"\"></literal> is equivalent to <literal><version type=\"dbtimestamp"
-"\"></literal>"
-msgstr ""
-"注æï¼<literal><timestamp></literal> å<literal><version type="
-"\"timestamp\"></literal>æ¯çä»·çãå¹¶ä¸<literal><timestamp source=\"db"
-"\"></literal>å<literal><version type=\"dbtimestamp\"></literal>æ¯ç"
-"ä»·çã"
+#, no-c-format
+msgid "<literal><Timestamp></literal> is equivalent to <literal><version type=\"timestamp\"></literal>. And <literal><timestamp source=\"db\"></literal> is equivalent to <literal><version type=\"dbtimestamp\"></literal>"
+msgstr "注æï¼<literal><timestamp></literal> å <literal><version type=\"timestamp\"></literal> æ¯çä»·çãå¹¶ä¸ <literal><timestamp source=\"db\"></literal> å <literal><version type=\"dbtimestamp\"></literal> æ¯çä»·çã "
#. Tag: title
-#: basic_mapping.xml:1311
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Property"
-msgstr "property"
+msgstr "Property"
#. Tag: para
-#: basic_mapping.xml:1313
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><property></literal> element declares a persistent "
-"JavaBean style property of the class."
-msgstr ""
-"<literal><property></literal>å
ç´ ä¸ºç±»å®ä¹äºä¸ä¸ªæä¹
åç,JavaBean飿 ¼ç"
-"屿§ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1335
#, no-c-format
-msgid ""
-"<![CDATA[<property\n"
-" name=\"propertyName\"\n"
-" column=\"column_name\"\n"
-" type=\"typename\"\n"
-" update=\"true|false\"\n"
-" insert=\"true|false\"\n"
-" formula=\"arbitrary SQL expression\"\n"
-" access=\"field|property|ClassName\"\n"
-" lazy=\"true|false\"\n"
-" unique=\"true|false\"\n"
-" not-null=\"true|false\"\n"
-" optimistic-lock=\"true|false\"\n"
-" generated=\"never|insert|always\"\n"
-" node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-" index=\"index_name\"\n"
-" unique_key=\"unique_key_id\"\n"
-" length=\"L\"\n"
-" precision=\"P\"\n"
-" scale=\"S\"\n"
-"/>]]>"
-msgstr ""
+msgid "The <literal><property></literal> element declares a persistent JavaBean style property of the class."
+msgstr "<literal><property></literal> å
ç´ ä¸ºç±»å®ä¹äºä¸ä¸ªæä¹
åçãJavaBean 飿 ¼ç屿§ã "
#. Tag: para
-#: basic_mapping.xml:1338
#, no-c-format
-msgid ""
-"<literal>name</literal>: the name of the property, with an initial lowercase "
-"letter."
-msgstr "<literal>name</literal>: 屿§çåå,以å°å忝å¼å¤´ã"
+msgid "<literal>name</literal>: the name of the property, with an initial lowercase letter."
+msgstr "<literal>name</literal>ï¼å±æ§çååï¼ä»¥å°å忝å¼å¤´ã"
#. Tag: para
-#: basic_mapping.xml:1344
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of the mapped database table column. This can also be specified by "
-"nested <literal><column></literal> element(s)."
-msgstr ""
-"<literal>column</literal> (å¯é - é»è®¤ä¸ºå±æ§åå): 对åºçæ°æ®åºå段åã ä¹å¯"
-"以éè¿åµå¥ç<literal><column></literal>å
ç´ æå®ã"
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of the mapped database table column. This can also be specified by nested <literal><column></literal> element(s)."
+msgstr "<literal>column</literal>ï¼å¯é â é»è®¤ä¸ºå±æ§ååï¼ï¼å¯¹åºçæ°æ®åºå段åã ä¹å¯ä»¥éè¿åµå¥ç <literal><column></literal> å
ç´ æå®ã "
#. Tag: para
-#: basic_mapping.xml:1356
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update, insert</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that the mapped columns should be included in SQL "
-"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
-"Setting both to <literal>false</literal> allows a pure \"derived\" property "
-"whose value is initialized from some other property that maps to the same "
-"column(s), or by a trigger or other application."
-msgstr ""
-"<literal>update, insert</literal> (å¯é - é»è®¤ä¸º <literal>true</literal>) : "
-"表æç¨äº<literal>UPDATE</literal> å/æ <literal>INSERT</literal> çSQLè¯å¥ä¸"
-"æ¯å¦å
å«è¿ä¸ªè¢«æ å°äºçåæ®µãè¿äºè
妿é½è®¾ç½®ä¸º<literal>false</literal> å表æ"
-"è¿æ¯ä¸ä¸ªâ夿ºæ§ï¼derivedï¼âç屿§ï¼å®ç弿¥æºäºæ å°å°åä¸ä¸ªï¼æå¤ä¸ªï¼ åæ®µç"
-"æäºå
¶ä»å±æ§ï¼æè
éè¿ä¸ä¸ªtrigger(触åå¨ï¼æå
¶ä»ç¨åºçæã"
+#, no-c-format
+msgid "<literal>update, insert</literal> (optional - defaults to <literal>true</literal>): specifies that the mapped columns should be included in SQL <literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. Setting both to <literal>false</literal> allows a pure \"derived\" property whose value is initialized from some other property that maps to the same column(s), or by a trigger or other application."
+msgstr "<literal>update, insert</literal>ï¼å¯é â é»è®¤ä¸º <literal>true</literal>ï¼ï¼ 表æç¨äºã<literal>UPDATE</literal> å/æ <literal>INSERT</literal> ç SQL è¯å¥ä¸æ¯å¦å
å«è¿ä¸ªè¢«æ å°äºçåæ®µãè¿äºè
妿é½è®¾ç½®ä¸º <literal>false</literal> å表æè¿æ¯ä¸ä¸ªâ夿ºæ§ï¼derivedï¼âç屿§ï¼å®ç弿¥æºäºæ å°å°åä¸ä¸ªï¼æå¤ä¸ªï¼ åæ®µçæäºå
¶ä»å±æ§ï¼æè
éè¿ä¸ä¸ª triggerï¼è§¦åå¨ï¼æå
¶ä»ç¨åºçæã "
#. Tag: para
-#: basic_mapping.xml:1365
#, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): an SQL expression that defines the "
-"value for a <emphasis>computed</emphasis> property. Computed properties do "
-"not have a column mapping of their own."
-msgstr ""
-"<literal>formula</literal> (å¯é): ä¸ä¸ªSQL表达å¼ï¼å®ä¹äºè¿ä¸ª<emphasis>è®¡ç® "
-"ï¼computedï¼</emphasis> 屿§çå¼ã计ç®å±æ§æ²¡æåå®å¯¹åºçæ°æ®åºå段ã"
+msgid "<literal>formula</literal> (optional): an SQL expression that defines the value for a <emphasis>computed</emphasis> property. Computed properties do not have a column mapping of their own."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ä¸ä¸ª SQL 表达å¼ï¼å®ä¹äºè¿ä¸ª<emphasis>è®¡ç® ï¼computedï¼</emphasis> 屿§çå¼ã计ç®å±æ§æ²¡æåå®å¯¹åºçæ°æ®åºå段ã"
#. Tag: para
-#: basic_mapping.xml:1378
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
-"specifies that this property should be fetched lazily when the instance "
-"variable is first accessed. It requires build-time bytecode instrumentation."
-msgstr ""
-"<literal>lazy</literal> (å¯é - é»è®¤ä¸º <literal>false</literal>): æå® æå®å®"
-"ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®æ¶ï¼è¿ä¸ªå±æ§æ¯å¦å»¶è¿æåï¼fetched lazilyï¼ï¼ éè¦è¿è¡æ¶åè"
-"ç å¢å¼ºï¼ã"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): specifies that this property should be fetched lazily when the instance variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr "<literal>lazy</literal>ï¼å¯é â é»è®¤ä¸º <literal>false</literal>ï¼ï¼æå® æå®å®ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®æ¶ï¼è¿ä¸ªå±æ§æ¯å¦å»¶è¿æåï¼fetched lazilyï¼ï¼ éè¦è¿è¡æ¶åèç å¢å¼ºï¼ã "
#. Tag: para
-#: basic_mapping.xml:1385
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional): enables the DDL generation of a unique "
-"constraint for the columns. Also, allow this to be the target of a "
-"<literal>property-ref</literal>."
-msgstr ""
-"<literal>unique</literal> (å¯é): 使ç¨DDLä¸ºè¯¥åæ®µæ·»å å¯ä¸ç约æã åæ ·ï¼å
许"
-"å®ä½ä¸º<literal>property-ref</literal>å¼ç¨çç®æ ã"
+#, no-c-format
+msgid "<literal>unique</literal> (optional): enables the DDL generation of a unique constraint for the columns. Also, allow this to be the target of a <literal>property-ref</literal>."
+msgstr "<literal>unique</literal>ï¼å¯éï¼ï¼ä½¿ç¨ DDL ä¸ºè¯¥åæ®µæ·»å å¯ä¸ç约æãåæ ·ï¼å
许å®ä½ä¸º <literal>property-ref</literal> å¼ç¨çç®æ ã "
#. Tag: para
-#: basic_mapping.xml:1392
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-null</literal> (optional): enables the DDL generation of a "
-"nullability constraint for the columns."
-msgstr ""
-"<literal>not-null</literal> (å¯é): 使ç¨DDLä¸ºè¯¥åæ®µæ·»å å¯å¦ä¸ºç©º"
-"ï¼nullabilityï¼ç约æã"
+#, no-c-format
+msgid "<literal>not-null</literal> (optional): enables the DDL generation of a nullability constraint for the columns."
+msgstr "<literal>not-null</literal>ï¼å¯éï¼ï¼ä½¿ç¨ DDL ä¸ºè¯¥åæ®µæ·»å å¯å¦ä¸ºç©ºï¼nullabilityï¼ç约æã "
#. Tag: para
-#: basic_mapping.xml:1398 basic_mapping.xml:1581
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to this property do or do not require "
-"acquisition of the optimistic lock. In other words, it determines if a "
-"version increment should occur when this property is dirty."
-msgstr ""
-"<literal>optimistic-lock</literal> (å¯é - é»è®¤ä¸º <literal>true</literal>): "
-"æå®è¿ä¸ªå±æ§å¨åæ´æ°æ¶æ¯å¦éè¦è·å¾ä¹è§éå®ï¼optimistic lockï¼ã æ¢å¥è¯è¯´ï¼å®"
-"å³å®è¿ä¸ªå±æ§åçèæ°æ®æ¶çæ¬ï¼versionï¼ç弿¯å¦å¢é¿ã"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, it determines if a version increment should occur when this property is dirty."
+msgstr "<literal>optimistic-lock</literal>ï¼å¯é â é»è®¤ä¸º <literal>true</literal>ï¼ï¼æå®è¿ä¸ªå±æ§å¨åæ´æ°æ¶æ¯å¦éè¦è·å¾ä¹è§éå®ï¼optimistic lockï¼ãæ¢å¥è¯è¯´ï¼å®å³å®è¿ä¸ªå±æ§åçèæ°æ®æ¶çæ¬ï¼versionï¼ç弿¯å¦å¢é¿ã "
#. Tag: para
-#: basic_mapping.xml:1406
-#, fuzzy, no-c-format
-msgid ""
-"<literal>generated</literal> (optional - defaults to <literal>never</"
-"literal>): specifies that this property value is actually generated by the "
-"database. See the discussion of <link linkend=\"mapping-generated"
-"\">generated properties</link> for more information."
-msgstr ""
-"<literal>generated</literal> (å¯é - é»è®¤ä¸º <literal>never</literal>): è¡¨ææ¤"
-"屿§å¼æ¯å¦å®é
䏿¯ç±æ°æ®åºçæçã请åé
<xref linkend=\"mapping-generated"
-"\">generated properties</xref>ç讨论ã"
+#, no-c-format
+msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): specifies that this property value is actually generated by the database. See the discussion of generated properties for more information (<xref linkend=\"mapping-generated\" />)."
+msgstr "<literal>generated</literal>ï¼å¯é â é»è®¤ä¸º <literal>never</literal>ï¼ï¼è¡¨ææ¤å±æ§å¼æ¯å¦å®é
䏿¯ç±æ°æ®åºçæçã请åé
<xref linkend=\"mapping-generated\"/> ç讨论ã "
#. Tag: para
-#: basic_mapping.xml:1415
#, no-c-format
msgid "<emphasis>typename</emphasis> could be:"
-msgstr "<emphasis>typename</emphasis>å¯ä»¥æ¯å¦ä¸å ç§ï¼"
+msgstr "<emphasis>typename</emphasis> å¯ä»¥æ¯å¦ä¸å ç§ï¼"
#. Tag: para
-#: basic_mapping.xml:1421
-#, fuzzy, no-c-format
-msgid ""
-"The name of a Hibernate basic type: <literal>integer, string, character, "
-"date, timestamp, float, binary, serializable, object, blob</literal> etc."
-msgstr ""
-"Hibernateåºæ¬ç±»ååï¼æ¯å¦ï¼<literal>integer, string, character,date, "
-"timestamp, float, binary, serializable, object, blob</literal>ï¼ã"
+#, no-c-format
+msgid "The name of a Hibernate basic type: <literal>integer, string, character, date, timestamp, float, binary, serializable, object, blob</literal> etc."
+msgstr "Hibernate åºæ¬ç±»ååï¼æ¯å¦ï¼<literal>integer, string, character,date, timestamp, float, binary, serializable, object, blob</literal>ï¼ã "
#. Tag: para
-#: basic_mapping.xml:1427
-#, fuzzy, no-c-format
-msgid ""
-"The name of a Java class with a default basic type: <literal>int, float, "
-"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
-"literal> etc."
-msgstr ""
-"ä¸ä¸ªJavaç±»çååï¼è¿ä¸ªç±»å±äºä¸ç§é»è®¤åºç¡ç±»å (æ¯å¦ï¼ <literal>int, float,"
-"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
-"literal>)ã"
+#, no-c-format
+msgid "The name of a Java class with a default basic type: <literal>int, float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</literal> etc."
+msgstr "ä¸ä¸ª Java ç±»çååï¼è¿ä¸ªç±»å±äºä¸ç§é»è®¤åºç¡ç±»åï¼æ¯å¦ï¼<literal>int, float,char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</literal>)ã "
#. Tag: para
-#: basic_mapping.xml:1433
#, no-c-format
msgid "The name of a serializable Java class."
-msgstr "ä¸ä¸ªå¯ä»¥åºååçJavaç±»çååã"
+msgstr "ä¸ä¸ªå¯ä»¥åºååç Java ç±»çååã"
#. Tag: para
-#: basic_mapping.xml:1438
-#, fuzzy, no-c-format
-msgid ""
-"The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
-"literal> etc."
-msgstr ""
-"ä¸ä¸ªèªå®ä¹ç±»åçç±»çååãï¼æ¯å¦ï¼ <literal>com.illflow.type.MyCustomType</"
-"literal>)ã"
+#, no-c-format
+msgid "The class name of a custom type: <literal>com.illflow.type.MyCustomType</literal> etc."
+msgstr "ä¸ä¸ªèªå®ä¹ç±»åçç±»çååãï¼æ¯å¦ï¼<literal>com.illflow.type.MyCustomType</literal>)ã "
#. Tag: para
-#: basic_mapping.xml:1444
-#, fuzzy, no-c-format
-msgid ""
-"If you do not specify a type, Hibernate will use reflection upon the named "
-"property and guess the correct Hibernate type. Hibernate will attempt to "
-"interpret the name of the return class of the property getter using, in "
-"order, rules 2, 3, and 4. In certain cases you will need the <literal>type</"
-"literal> attribute. For example, to distinguish between <literal>Hibernate."
-"DATE</literal> and <literal>Hibernate.TIMESTAMP</literal>, or to specify a "
-"custom type."
-msgstr ""
-"å¦æä½ æ²¡ææå®ç±»åï¼Hibernarteä¼ä½¿ç¨åå°æ¥å¾å°è¿ä¸ªååç屿§ï¼ä»¥æ¤æ¥çæµæ£ç¡®"
-"çHibernateç±»åã Hibernate伿ç
§è§å2,3,4ç顺åºå¯¹å±æ§è¯»åå¨(getteræ¹æ³ï¼çè¿"
-"åç±»è¿è¡è§£éãç¶èï¼è¿è¿ä¸å¤ã å¨æäºæ
åµä¸ä½ ä»ç¶éè¦<literal>type</literal>"
-"屿§ãï¼æ¯å¦ï¼ä¸ºäºåºå«<literal>Hibernate.DATE</literal> å<literal>Hibernate."
-"TIMESTAMP</literal>,æè
ä¸ºäºæå®ä¸ä¸ªèªå®ä¹ç±»åãï¼"
+#, no-c-format
+msgid "If you do not specify a type, Hibernate will use reflection upon the named property and guess the correct Hibernate type. Hibernate will attempt to interpret the name of the return class of the property getter using, in order, rules 2, 3, and 4. In certain cases you will need the <literal>type</literal> attribute. For example, to distinguish between <literal>Hibernate.DATE</literal> and <literal>Hibernate.TIMESTAMP</literal>, or to specify a custom type."
+msgstr "å¦æä½ æ²¡ææå®ç±»åï¼Hibernarte ä¼ä½¿ç¨åå°æ¥å¾å°è¿ä¸ªååç屿§ï¼ä»¥æ¤æ¥çæµæ£ç¡®ç Hibernate ç±»åãHibernate 伿ç
§è§å 2ï¼3ï¼4 ç顺åºå¯¹å±æ§è¯»åå¨ï¼getteræ¹æ³ï¼çè¿åç±»è¿è¡è§£éãç¶èï¼è¿è¿ä¸å¤ã å¨æäºæ
åµä¸ä½ ä»ç¶éè¦ <literal>type</literal> 屿§ãï¼æ¯å¦ï¼ä¸ºäºåºå«<literal>Hibernate.DATE</literal> å<literal>Hibernate.TIMESTAMP</literal>,æè
ä¸ºäºæå®ä¸ä¸ªèªå®ä¹ç±»åãï¼ "
#. Tag: para
-#: basic_mapping.xml:1454
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>access</literal> attribute allows you to control how Hibernate "
-"accesses the property at runtime. By default, Hibernate will call the "
-"property get/set pair. If you specify <literal>access=\"field\"</literal>, "
-"Hibernate will bypass the get/set pair and access the field directly using "
-"reflection. You can specify your own strategy for property access by naming "
-"a class that implements the interface <literal>org.hibernate.property."
-"PropertyAccessor</literal>."
-msgstr ""
-"<literal>access</literal>屿§ç¨æ¥è®©ä½ æ§å¶Hibernateå¦ä½å¨è¿è¡æ¶è®¿é®å±æ§ãå¨é»"
-"认æ
åµä¸ï¼ Hibernateä¼ä½¿ç¨å±æ§çget/setæ¹æ³å¯¹ï¼pairï¼ãå¦æä½ ææ"
-"<literal>access=\"field\"</literal>, Hibernateä¼å¿½ç¥get/setæ¹æ³å¯¹ï¼ç´æ¥ä½¿ç¨å"
-"å°æ¥è®¿é®æååéãä½ ä¹å¯ä»¥æå®ä½ èªå·±ççç¥ï¼ è¿å°±éè¦ä½ èªå·±å®ç°<literal>org."
-"hibernate.property.PropertyAccessor</literal>æ¥å£ï¼ åå¨accessä¸è®¾ç½®ä½ èªå®ä¹"
-"çç¥ç±»çååã"
+#, no-c-format
+msgid "The <literal>access</literal> attribute allows you to control how Hibernate accesses the property at runtime. By default, Hibernate will call the property get/set pair. If you specify <literal>access=\"field\"</literal>, Hibernate will bypass the get/set pair and access the field directly using reflection. You can specify your own strategy for property access by naming a class that implements the interface <literal>org.hibernate.property.PropertyAccessor</literal>."
+msgstr "<literal>access</literal> 屿§ç¨æ¥è®©ä½ æ§å¶ Hibernate å¦ä½å¨è¿è¡æ¶è®¿é®å±æ§ãå¨é»è®¤æ
åµä¸ï¼Hibernate ä¼ä½¿ç¨å±æ§ç get/set æ¹æ³å¯¹ï¼pairï¼ãå¦æä½ ææ <literal>access=\"field\"</literal>ï¼Hibernate ä¼å¿½ç¥ get/set æ¹æ³å¯¹ï¼ç´æ¥ä½¿ç¨åå°æ¥è®¿é®æååéãä½ ä¹å¯ä»¥æå®ä½ èªå·±ççç¥ï¼è¿å°±éè¦ä½ èªå·±å®ç° <literal>org.hibernate.property.PropertyAccessor</literal> æ¥å£ï¼åå¨ access ä¸è®¾ç½®ä½ èªå®ä¹çç¥ç±»çååã "
#. Tag: para
-#: basic_mapping.xml:1463
-#, fuzzy, no-c-format
-msgid ""
-"A powerful feature is derived properties. These properties are by definition "
-"read-only. The property value is computed at load time. You declare the "
-"computation as an SQL expression. This then translates to a <literal>SELECT</"
-"literal> clause subquery in the SQL query that loads an instance:"
-msgstr ""
-"è¡ç屿§ï¼derive propertieï¼æ¯ä¸ä¸ªç¹å«å¼ºå¤§çç¹å¾ãè¿äºå±æ§åºè¯¥å®ä¹ä¸ºåªè¯»ï¼å±"
-"æ§å¼å¨è£
è½½æ¶è®¡ç®çæã ä½ ç¨ä¸ä¸ªSQL表达å¼çæè®¡ç®çç»æï¼å®ä¼å¨è¿ä¸ªå®ä¾è½¬è½½æ¶"
-"ç¿»è¯æä¸ä¸ªSQLæ¥è¯¢ç<literal>SELECT</literal> åæ¥è¯¢è¯å¥ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1470
#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"<property name=\"totalPrice\"\n"
-" formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, Product "
-"p\n"
-" WHERE li.productId = p.productId\n"
-" AND li.customerId = customerId\n"
-" AND li.orderNumber = orderNumber )\"/>]]>"
-msgstr ""
+msgid "A powerful feature is derived properties. These properties are by definition read-only. The property value is computed at load time. You declare the computation as an SQL expression. This then translates to a <literal>SELECT</literal> clause subquery in the SQL query that loads an instance:"
+msgstr "è¡ç屿§ï¼derive propertieï¼æ¯ä¸ä¸ªç¹å«å¼ºå¤§çç¹å¾ãè¿äºå±æ§åºè¯¥å®ä¹ä¸ºåªè¯»ï¼å±æ§å¼å¨è£
è½½æ¶è®¡ç®çæã ä½ ç¨ä¸ä¸ª SQL 表达å¼çæè®¡ç®çç»æï¼å®ä¼å¨è¿ä¸ªå®ä¾è½¬è½½æ¶ç¿»è¯æä¸ä¸ª SQL æ¥è¯¢ç <literal>SELECT</literal> åæ¥è¯¢è¯å¥ã "
#. Tag: para
-#: basic_mapping.xml:1472
-#, fuzzy, no-c-format
-msgid ""
-"You can reference the entity table by not declaring an alias on a particular "
-"column. This would be <literal>customerId</literal> in the given example. "
-"You can also use the nested <literal><formula></literal> mapping "
-"element if you do not want to use the attribute."
-msgstr ""
-"注æï¼ä½ å¯ä»¥ä½¿ç¨å®ä½èªå·±ç表ï¼èä¸ç¨ä¸ºè¿ä¸ªç¹å«çåå®ä¹å«åï¼ ä¸é¢ä¾åä¸ç"
-"<literal>customerId</literal>ï¼ãåæ¶æ³¨æï¼å¦æä½ ä¸å欢使ç¨å±æ§ï¼ ä½ å¯ä»¥ä½¿ç¨"
-"åµå¥ç<literal><formula></literal>æ å°å
ç´ ã"
+#, no-c-format
+msgid "You can reference the entity table by not declaring an alias on a particular column. This would be <literal>customerId</literal> in the given example. You can also use the nested <literal><formula></literal> mapping element if you do not want to use the attribute."
+msgstr "注æï¼ä½ å¯ä»¥ä½¿ç¨å®ä½èªå·±ç表ï¼èä¸ç¨ä¸ºè¿ä¸ªç¹å«çåå®ä¹å«åï¼ä¸é¢ä¾åä¸ç <literal>customerId</literal>ï¼ãåæ¶æ³¨æï¼å¦æä½ ä¸å欢使ç¨å±æ§ï¼ ä½ å¯ä»¥ä½¿ç¨åµå¥ç <literal><formula></literal> æ å°å
ç´ ã "
#. Tag: title
-#: basic_mapping.xml:1482
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Many-to-one"
-msgstr "å¤å¯¹ä¸ï¼many-to-oneï¼"
+msgstr "å¤å¯¹ä¸ï¼many-to-oneï¼ "
#. Tag: para
-#: basic_mapping.xml:1484
-#, fuzzy, no-c-format
-msgid ""
-"An ordinary association to another persistent class is declared using a "
-"<literal>many-to-one</literal> element. The relational model is a many-to-"
-"one association; a foreign key in one table is referencing the primary key "
-"column(s) of the target table."
-msgstr ""
-"éè¿<literal>many-to-one</literal>å
ç´ ,å¯ä»¥å®ä¹ä¸ç§å¸¸è§çä¸å¦ä¸ä¸ªæä¹
åç±»çå
³"
-"èã è¿ç§å
³ç³»æ¨¡åæ¯å¤å¯¹ä¸å
³èï¼å®é
䏿¯ä¸ä¸ªå¯¹è±¡å¼ç¨ï¼è¯æ³¨ï¼ï¼è¿ä¸ªè¡¨çä¸ä¸ªå¤é®"
-"å¼ç¨ç®æ 表ç 主é®å段ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1512
#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one\n"
-" name=\"propertyName\"\n"
-" column=\"column_name\"\n"
-" class=\"ClassName\"\n"
-" cascade=\"cascade_style\"\n"
-" fetch=\"join|select\"\n"
-" update=\"true|false\"\n"
-" insert=\"true|false\"\n"
-" property-ref=\"propertyNameFromAssociatedClass\"\n"
-" access=\"field|property|ClassName\"\n"
-" unique=\"true|false\"\n"
-" not-null=\"true|false\"\n"
-" optimistic-lock=\"true|false\"\n"
-" lazy=\"proxy|no-proxy|false\"\n"
-" not-found=\"ignore|exception\"\n"
-" entity-name=\"EntityName\"\n"
-" formula=\"arbitrary SQL expression\"\n"
-" node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-" embed-xml=\"true|false\"\n"
-" index=\"index_name\"\n"
-" unique_key=\"unique_key_id\"\n"
-" foreign-key=\"foreign_key_name\"\n"
-"/>]]>"
-msgstr ""
+msgid "An ordinary association to another persistent class is declared using a <literal>many-to-one</literal> element. The relational model is a many-to-one association; a foreign key in one table is referencing the primary key column(s) of the target table."
+msgstr "éè¿ <literal>many-to-one</literal> å
ç´ ,å¯ä»¥å®ä¹ä¸ç§å¸¸è§çä¸å¦ä¸ä¸ªæä¹
åç±»çå
³èãè¿ç§å
³ç³»æ¨¡åæ¯å¤å¯¹ä¸å
³èï¼å®é
䏿¯ä¸ä¸ªå¯¹è±¡å¼ç¨ï¼è¯æ³¨ï¼ï¼è¿ä¸ªè¡¨çä¸ä¸ªå¤é®å¼ç¨ç®æ 表ç主é®å段ã "
#. Tag: para
-#: basic_mapping.xml:1515 basic_mapping.xml:1696 basic_mapping.xml:1882
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>name</literal>: the name of the property."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>name</literal>: 屿§åã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>name</literal>: 屿§çååã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>name</literal>: 屿§å"
+msgstr "<literal>name</literal>ï¼å±æ§åã"
#. Tag: para
-#: basic_mapping.xml:1520 basic_mapping.xml:2311
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional): the name of the foreign key column. "
-"This can also be specified by nested <literal><column></literal> "
-"element(s)."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>column</literal> (å¯é): å¤é´å段åãå®ä¹å¯ä»¥éè¿åµå¥ç "
-"<literal><column></literal>å
ç´ æå®ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>column</literal> (å¯é): å¤é®å段çåç§°ãä¹å¯ä»¥éè¿åµå¥ç "
-"<literal><column></literal>æå®ã"
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the foreign key column. This can also be specified by nested <literal><column></literal> element(s)."
+msgstr "<literal>column</literal>ï¼å¯éï¼ï¼å¤é®å段çåç§°ãä¹å¯ä»¥éè¿åµå¥ç <literal><column></literal> æå®ã "
#. Tag: para
-#: basic_mapping.xml:1527 basic_mapping.xml:1701
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal> (optional - defaults to the property type "
-"determined by reflection): the name of the associated class."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>class</literal> (å¯é - é»è®¤æ¯éè¿åå°å¾å°å±æ§ç±»å): å
³èçç±»çå"
-"åã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>class</literal> (å¯é - é»è®¤æ¯éè¿åå°å¾å°ç屿§ç±»å)ï¼è¢«å
³èçç±»ç"
-"ååã"
+#, no-c-format
+msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the name of the associated class."
+msgstr "<literal>class</literal>ï¼å¯é â é»è®¤æ¯éè¿åå°å¾å°ç屿§ç±»åï¼ï¼è¢«å
³èçç±»çååã "
#. Tag: para
-#: basic_mapping.xml:1533 basic_mapping.xml:1707
-#, fuzzy, no-c-format
-msgid ""
-"<literal>cascade</literal> (optional): specifies which operations should be "
-"cascaded from the parent object to the associated object."
-msgstr ""
-"<literal>cascade(级è)</literal> (å¯é) 表ææä½æ¯å¦ä»ç¶å¯¹è±¡çº§èå°è¢«å
³èç对"
-"象ã"
+#, no-c-format
+msgid "<literal>cascade</literal> (optional): specifies which operations should be cascaded from the parent object to the associated object."
+msgstr "<literal>cascadeï¼çº§èï¼</literal>ï¼å¯éï¼è¡¨ææä½æ¯å¦ä»ç¶å¯¹è±¡çº§èå°è¢«å
³èç对象ã "
#. Tag: para
-#: basic_mapping.xml:1539 basic_mapping.xml:1722
-#, fuzzy, no-c-format
-msgid ""
-"<literal>fetch</literal> (optional - defaults to <literal>select</literal>): "
-"chooses between outer-join fetching or sequential select fetching."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>fetch</literal> (å¯é - é»è®¤ä¸º <literal>select</literal>): å¨å¤è¿æ¥"
-"æåï¼outer-join fetchingï¼ååºåéæ©æåï¼sequential select fetchingï¼ä¸¤è
ä¸"
-"éæ©å
¶ä¸ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>fetch</literal> (å¯é - é»è®¤è®¾ç½®ä¸º<literal>éæ©</literal>): å¨å¤è¿æ¥"
-"æåæè
åºåéæ©æåéæ©å
¶ä¸."
+#, no-c-format
+msgid "<literal>fetch</literal> (optional - defaults to <literal>select</literal>): chooses between outer-join fetching or sequential select fetching."
+msgstr "<literal>fetch</literal>ï¼å¯é â é»è®¤ä¸º <literal>select</literal>ï¼ï¼å¨å¤è¿æ¥æåï¼outer-join fetchingï¼ååºåéæ©æåï¼sequential select fetchingï¼ä¸¤è
ä¸éæ©å
¶ä¸ã "
#. Tag: para
-#: basic_mapping.xml:1545
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update, insert</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that the mapped columns should be included in SQL "
-"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
-"Setting both to <literal>false</literal> allows a pure \"derived\" "
-"association whose value is initialized from another property that maps to "
-"the same column(s), or by a trigger or other application."
-msgstr ""
-"<literal>update, insert</literal> (å¯é - é»è®¤ä¸º <literal>true</literal>) æ"
-"å®å¯¹åºçåæ®µæ¯å¦å
å«å¨ç¨äº<literal>UPDATE</literal> å/æ <literal>INSERT</"
-"literal> çSQLè¯å¥ä¸ã妿äºè
齿¯<literal>false</literal>,åè¿æ¯ä¸ä¸ªçº¯ç²¹ç "
-"â夿ºæ§ï¼derivedï¼âå
³èï¼å®ç弿¯éè¿æ å°å°åä¸ä¸ªï¼æå¤ä¸ªï¼å段çæäºå
¶ä»å±æ§"
-"å¾å° æè
éè¿trigger(触åå¨ï¼ãæå
¶ä»ç¨åºçæã"
+#, no-c-format
+msgid "<literal>update, insert</literal> (optional - defaults to <literal>true</literal>): specifies that the mapped columns should be included in SQL <literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. Setting both to <literal>false</literal> allows a pure \"derived\" association whose value is initialized from another property that maps to the same column(s), or by a trigger or other application."
+msgstr "<literal>update, insert</literal>ï¼å¯é â é»è®¤ä¸º <literal>true</literal>ï¼æå®å¯¹åºçåæ®µæ¯å¦å
å«å¨ç¨äº <literal>UPDATE</literal> å/æ <literal>INSERT</literal> ç SQL è¯å¥ä¸ã妿äºè
齿¯<literal>false</literal>,åè¿æ¯ä¸ä¸ªçº¯ç²¹ç â夿ºæ§ï¼derivedï¼âå
³èï¼å®ç弿¯éè¿æ å°å°åä¸ä¸ªï¼æå¤ä¸ªï¼å段çæäºå
¶ä»å±æ§å¾å° æè
éè¿ triggerï¼è§¦åå¨ï¼ãæå
¶ä»ç¨åºçæã "
#. Tag: para
-#: basic_mapping.xml:1554
-#, fuzzy, no-c-format
-msgid ""
-"<literal>property-ref</literal> (optional): the name of a property of the "
-"associated class that is joined to this foreign key. If not specified, the "
-"primary key of the associated class is used."
-msgstr ""
-"<literal>property-ref</literal>: (å¯é) æå®å
³èç±»çä¸ä¸ªå±æ§ï¼è¿ä¸ªå±æ§å°ä¼å"
-"æ¬å¤é®ç¸å¯¹åºã å¦ææ²¡ææå®ï¼ä¼ä½¿ç¨å¯¹æ¹å
³èç±»ç主é®ã"
+#, no-c-format
+msgid "<literal>property-ref</literal> (optional): the name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used."
+msgstr "<literal>property-ref</literal>ï¼ï¼å¯éï¼è¢«å
³èå°æ¤å¤é®çç±»ä¸ç对åºå±æ§çååãå¦ææ²¡ææå®ï¼è¢«å
³èç±»ç主é®å°è¢«ä½¿ç¨ã "
#. Tag: para
-#: basic_mapping.xml:1567
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional): enables the DDL generation of a unique "
-"constraint for the foreign-key column. By allowing this to be the target of "
-"a <literal>property-ref</literal>, you can make the association multiplicity "
-"one-to-one."
-msgstr ""
-"<literal>unique</literal> (å¯é): 使ç¨DDL为å¤é®å段çæä¸ä¸ªå¯ä¸çº¦æãæ¤å¤ï¼ "
-"è¿ä¹å¯ä»¥ç¨ä½<literal>property-ref</literal>çç®æ 屿§ãè¿ä½¿å
³èåæ¶å
·æ ä¸å¯¹"
-"ä¸çææã"
+#, no-c-format
+msgid "<literal>unique</literal> (optional): enables the DDL generation of a unique constraint for the foreign-key column. By allowing this to be the target of a <literal>property-ref</literal>, you can make the association multiplicity one-to-one."
+msgstr "<literal>unique</literal>ï¼å¯éï¼ï¼ä½¿ç¨ DDL 为å¤é®å段çæä¸ä¸ªå¯ä¸çº¦æãæ¤å¤ï¼ è¿ä¹å¯ä»¥ç¨ä½ <literal>property-ref</literal> çç®æ 屿§ãè¿ä½¿å
³èåæ¶å
·æä¸å¯¹ä¸çææã "
#. Tag: para
-#: basic_mapping.xml:1575
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-null</literal> (optional): enables the DDL generation of a "
-"nullability constraint for the foreign key columns."
-msgstr ""
-"<literal>not-null</literal> (å¯é): 使ç¨DDL为å¤é®å段çæä¸ä¸ªé空约æã"
+#, no-c-format
+msgid "<literal>not-null</literal> (optional): enables the DDL generation of a nullability constraint for the foreign key columns."
+msgstr "<literal>not-null</literal>ï¼å¯éï¼ï¼ä½¿ç¨ DDL 为å¤é®å段çæä¸ä¸ªé空约æã "
#. Tag: para
-#: basic_mapping.xml:1589
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
-"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
-"\"</literal> specifies that the property should be fetched lazily when the "
-"instance variable is first accessed. This requires build-time bytecode "
-"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
-"association will always be eagerly fetched."
-msgstr ""
-"<literal>lazy</literal> (å¯é - é»è®¤ä¸º <literal>proxy</literal>): é»è®¤æ
åµ"
-"ä¸ï¼åç¹å
³èæ¯ç»è¿ä»£ççã<literal>lazy=\"no-proxy\"</literal>æå®æ¤å±æ§åºè¯¥"
-"å¨å®ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®æ¶åºè¯¥å»¶è¿æåï¼fetche lazilyï¼ï¼éè¦è¿è¡æ¶åèç çå¢"
-"强ï¼ã <literal>lazy=\"false\"</literal>æå®æ¤å
³èæ»æ¯è¢«é¢å
æåã"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): by default, single point associations are proxied. <literal>lazy=\"no-proxy\"</literal> specifies that the property should be fetched lazily when the instance variable is first accessed. This requires build-time bytecode instrumentation. <literal>lazy=\"false\"</literal> specifies that the association will always be eagerly fetched."
+msgstr "<literal>lazy</literal>ï¼å¯é â é»è®¤ä¸º <literal>proxy</literal>ï¼ï¼é»è®¤æ
åµä¸ï¼åç¹å
³èæ¯ç»è¿ä»£ççã<literal>lazy=\"no-proxy\"</literal> æå®æ¤å±æ§åºè¯¥å¨å®ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®æ¶åºè¯¥å»¶è¿æåï¼fetche lazilyï¼ï¼éè¦è¿è¡æ¶åèç çå¢å¼ºï¼ã<literal>lazy=\"false\"</literal> æå®æ¤å
³èæ»æ¯è¢«é¢å
æåã "
#. Tag: para
-#: basic_mapping.xml:1599
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-found</literal> (optional - defaults to <literal>exception</"
-"literal>): specifies how foreign keys that reference missing rows will be "
-"handled. <literal>ignore</literal> will treat a missing row as a null "
-"association."
-msgstr ""
-"<literal>not-found</literal> (å¯é - é»è®¤ä¸º <literal>exception</literal>): æ"
-"å®å¤é®å¼ç¨çæ°æ®ä¸å卿¶å¦ä½å¤çï¼ <literal>ignore</literal>ä¼å°è¡æ°æ®ä¸åå¨"
-"è§ä¸ºä¸ä¸ªç©ºï¼nullï¼å
³èã"
+#, no-c-format
+msgid "<literal>not-found</literal> (optional - defaults to <literal>exception</literal>): specifies how foreign keys that reference missing rows will be handled. <literal>ignore</literal> will treat a missing row as a null association."
+msgstr "<literal>not-found</literal>ï¼å¯é - é»è®¤ä¸º<literal>exception</literal>ï¼ï¼æå®å¦ä½å¤çå¼ç¨ç¼ºå¤±è¡çå¤é®ï¼<literal>ignore</literal> ä¼æç¼ºå¤±çè¡ä½ä¸ºä¸ä¸ªç©ºå
³èå¤çã "
#. Tag: para
-#: basic_mapping.xml:1606 basic_mapping.xml:1760
-#, fuzzy, no-c-format
-msgid ""
-"<literal>entity-name</literal> (optional): the entity name of the associated "
-"class."
-msgstr "<literal>entity-name</literal> (å¯é): 被å
³èçç±»çå®ä½åã"
+#, no-c-format
+msgid "<literal>entity-name</literal> (optional): the entity name of the associated class."
+msgstr "<literal>entity-name</literal>ï¼å¯éï¼ï¼è¢«å
³èçç±»çå®ä½åã "
#. Tag: para
-#: basic_mapping.xml:1611
#, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): an SQL expression that defines the "
-"value for a <emphasis>computed</emphasis> foreign key."
-msgstr ""
-"<literal>formula</literal> (å¯é): SQL表达å¼ï¼ç¨äºå®ä¹<emphasis>computedï¼è®¡"
-"ç®åºçï¼</emphasis>å¤é®å¼ã"
+msgid "<literal>formula</literal> (optional): an SQL expression that defines the value for a <emphasis>computed</emphasis> foreign key."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼SQL 表达å¼ï¼ç¨äºå®ä¹ <emphasis>computedï¼è®¡ç®åºçï¼</emphasis>å¤é®å¼ã"
#. Tag: para
-#: basic_mapping.xml:1619
-#, fuzzy, no-c-format
-msgid ""
-"Setting a value of the <literal>cascade</literal> attribute to any "
-"meaningful value other than <literal>none</literal> will propagate certain "
-"operations to the associated object. The meaningful values are divided into "
-"three categories. First, basic operations, which include: <literal>persist, "
-"merge, delete, save-update, evict, replicate, lock and refresh</literal>; "
-"second, special values: <literal>delete-orphan</literal>; and third,"
-"<literal>all</literal> comma-separated combinations of operation names: "
-"<literal>cascade=\"persist,merge,evict\"</literal> or <literal>cascade=\"all,"
-"delete-orphan\"</literal>. See <xref linkend=\"objectstate-transitive\"/> "
-"for a full explanation. Note that single valued, many-to-one and one-to-one, "
-"associations do not support orphan delete."
-msgstr ""
-"<literal>cascade</literal>屿§è®¾ç½®ä¸ºé¤äº<literal>none</literal>以å¤ä»»ä½ææä¹"
-"çå¼ï¼ å®å°æç¹å®çæä½ä¼ éå°å
³è对象ä¸ãè¿ä¸ªå¼å°±ä»£è¡¨çHibernateåºæ¬æä½çå"
-"ç§°ï¼ <literal>persist, merge, delete, save-update, evict, replicate, lock, "
-"refresh</literal>ï¼ ä»¥åç¹å«çå¼<literal>delete-orphan</literal>å"
-"<literal>all</literal>ï¼å¹¶ä¸å¯ä»¥ç¨éå·åé符 æ¥ç»åè¿äºæä½ï¼ä¾å¦ï¼"
-"<literal>cascade=\"persist,merge,evict\"</literal>æ <literal>cascade=\"all,"
-"delete-orphan\"</literal>ãæ´å
¨é¢çè§£é请åè<xref linkend=\"objectstate-"
-"transitive\"/>. 注æï¼åå¼å
³è (many-to-one å one-to-one å
³è) 䏿¯æå é¤å¤"
-"å¿ï¼orphan deleteï¼å é¤ä¸å被å¼ç¨çå¼ï¼."
+#, no-c-format
+msgid "Setting a value of the <literal>cascade</literal> attribute to any meaningful value other than <literal>none</literal> will propagate certain operations to the associated object. The meaningful values are divided into three categories. First, basic operations, which include: <literal>persist, merge, delete, save-update, evict, replicate, lock and refresh</literal>; second, special values: <literal>delete-orphan</literal>; and third,<literal>all</literal> comma-separated combinations of operation names: <literal>cascade=\"persist,merge,evict\"</literal> or <literal>cascade=\"all,delete-orphan\"</literal>. See <xref linkend=\"objectstate-transitive\" /> for a full explanation. Note that single valued, many-to-one and one-to-one, associations do not support orphan delete."
+msgstr "<literal>cascade</literal> 屿§è®¾ç½®ä¸ºé¤äº<literal>none</literal> 以å¤ä»»ä½ææä¹çå¼ï¼å®å°æç¹å®çæä½ä¼ éå°å
³è对象ä¸ãè¿ä¸ªå¼å°±ä»£è¡¨ç Hibernate åºæ¬æä½çåç§°ï¼<literal>persist, merge, delete, save-update, evict, replicate, lock, refresh</literal>ï¼ä»¥åç¹å«çå¼ <literal>delete-orphan</literal> å <literal>all</literal>ï¼å¹¶ä¸å¯ä»¥ç¨éå·åé符æ¥ç»åè¿äºæä½ï¼ä¾å¦ï¼<literal>cascade=\"persist,merge,evict\"</literal> æ <literal>cascade=\"all,delete-orphan\"</literal>ãæ´å
¨é¢çè§£é请åè <xref linkend=\"objectstate-transitive\"/>ãæ³¨æï¼åå¼å
³èï¼many-to-one å one-to-one å
³èï¼ä¸æ¯æå é¤å¤å¿ï¼orphan deleteï¼å é¤ä¸å被å¼ç¨çå¼ï¼ã "
#. Tag: para
-#: basic_mapping.xml:1632
-#, fuzzy, no-c-format
-msgid ""
-"Here is an example of a typical <literal>many-to-one</literal> declaration:"
-msgstr "ä¸ä¸ªå
¸åçç®å<literal>many-to-one</literal>å®ä¹ä¾åï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1636
#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID"
-"\"/>]]>"
-msgstr ""
+msgid "Here is an example of a typical <literal>many-to-one</literal> declaration:"
+msgstr "ä¸ä¸ªå
¸åçç®å <literal>many-to-one</literal> å®ä¹ä¾åï¼ "
#. Tag: para
-#: basic_mapping.xml:1638
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>property-ref</literal> attribute should only be used for "
-"mapping legacy data where a foreign key refers to a unique key of the "
-"associated table other than the primary key. This is a complicated and "
-"confusing relational model. For example, if the <literal>Product</literal> "
-"class had a unique serial number that is not the primary key. The "
-"<literal>unique</literal> attribute controls Hibernate's DDL generation with "
-"the SchemaExport tool."
-msgstr ""
-"<literal>property-ref</literal>屿§åªåºè¯¥ç¨æ¥å¯¹ä»éç䏿¥çæ°æ®åºç³»ç»ï¼ å¯è½"
-"æå¤é®æå对æ¹å
³èè¡¨çæ¯ä¸ªé主é®å段ï¼ä½æ¯åºè¯¥æ¯ä¸ä¸ªæä¸å
³é®åï¼çæ
åµä¸ã è¿"
-"æ¯ä¸ç§ååä¸éçå
³ç³»æ¨¡åãæ¯å¦è¯´ï¼å设<literal>Product</literal>ç±»æä¸ä¸ªæä¸"
-"çåºåå·ï¼ å®å¹¶ä¸æ¯ä¸»é®ãï¼<literal>unique</literal>屿§æ§å¶Hibernateéè¿"
-"SchemaExportå·¥å
·è¿è¡çDDLçæãï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1647
#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" "
-"column=\"SERIAL_NUMBER\"/>]]>"
-msgstr ""
+msgid "The <literal>property-ref</literal> attribute should only be used for mapping legacy data where a foreign key refers to a unique key of the associated table other than the primary key. This is a complicated and confusing relational model. For example, if the <literal>Product</literal> class had a unique serial number that is not the primary key. The <literal>unique</literal> attribute controls Hibernate's DDL generation with the SchemaExport tool."
+msgstr "<literal>property-ref</literal> 屿§åªåºè¯¥ç¨æ¥å¯¹ä»éç䏿¥çæ°æ®åºç³»ç»ï¼å¯è½æå¤é®æå对æ¹å
³èè¡¨çæ¯ä¸ªé主é®å段ï¼ä½æ¯åºè¯¥æ¯ä¸ä¸ªæä¸å
³é®åï¼çæ
åµä¸ãè¿æ¯ä¸ç§ååä¸éçå
³ç³»æ¨¡åãæ¯å¦è¯´ï¼å设 <literal>Product</literal> ç±»æä¸ä¸ªæä¸çåºåå·ï¼å®å¹¶ä¸æ¯ä¸»é®ãï¼<literal>unique</literal> 屿§æ§å¶ Hibernate éè¿ SchemaExport å·¥å
·è¿è¡ç DDL çæãï¼ "
#. Tag: para
-#: basic_mapping.xml:1649
#, no-c-format
msgid "Then the mapping for <literal>OrderItem</literal> might use:"
-msgstr "é£ä¹å
³äº<literal>OrderItem</literal> çæ å°å¯è½æ¯ï¼"
+msgstr "é£ä¹å
³äº <literal>OrderItem</literal> çæ å°å¯è½æ¯ï¼"
-#. Tag: programlisting
-#: basic_mapping.xml:1653
-#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" column="
-"\"PRODUCT_SERIAL_NUMBER\"/>]]>"
-msgstr ""
-
#. Tag: para
-#: basic_mapping.xml:1655
-#, fuzzy, no-c-format
+#, no-c-format
msgid "This is not encouraged, however."
-msgstr "å½ç¶ï¼æä»¬å³ä¸é¼å±è¿ç§ç¨æ³ã"
+msgstr "å½ç¶ï¼æä»¬å³ä¸é¼å±è¿ç§ç¨æ³ã "
#. Tag: para
-#: basic_mapping.xml:1659
#, no-c-format
-msgid ""
-"If the referenced unique key comprises multiple properties of the associated "
-"entity, you should map the referenced properties inside a named <literal><"
-"properties></literal> element."
-msgstr ""
-"å¦æè¢«å¼ç¨çå¯ä¸ä¸»é®ç±å
³èå®ä½çå¤ä¸ªå±æ§ç»æï¼ä½ åºè¯¥å¨å称为<literal><"
-"properties></literal>çå
ç´ é颿 å°ææå
³èç屿§ã"
+msgid "If the referenced unique key comprises multiple properties of the associated entity, you should map the referenced properties inside a named <literal><properties></literal> element."
+msgstr "å¦æè¢«å¼ç¨çå¯ä¸ä¸»é®ç±å
³èå®ä½çå¤ä¸ªå±æ§ç»æï¼ä½ åºè¯¥å¨å称为 <literal><properties></literal> çå
ç´ é颿 å°ææå
³èç屿§ã"
#. Tag: para
-#: basic_mapping.xml:1664
-#, fuzzy, no-c-format
-msgid ""
-"If the referenced unique key is the property of a component, you can specify "
-"a property path:"
-msgstr "åè¥è¢«å¼ç¨çå¯ä¸ä¸»é®æ¯ç»ä»¶ç屿§ï¼ä½ å¯ä»¥æå®å±æ§è·¯å¾ï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1668
#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
-"\"OWNER_SSN\"/>]]>"
-msgstr ""
+msgid "If the referenced unique key is the property of a component, you can specify a property path:"
+msgstr "åè¥è¢«å¼ç¨çå¯ä¸ä¸»é®æ¯ç»ä»¶ç屿§ï¼ä½ å¯ä»¥æå®å±æ§è·¯å¾ï¼ "
#. Tag: title
-#: basic_mapping.xml:1673
-#, fuzzy, no-c-format
+#, no-c-format
msgid "One-to-one"
-msgstr "ä¸å¯¹ä¸"
+msgstr "ä¸å¯¹ä¸ "
#. Tag: para
-#: basic_mapping.xml:1675
#, no-c-format
-msgid ""
-"A one-to-one association to another persistent class is declared using a "
-"<literal>one-to-one</literal> element."
-msgstr ""
-"æä¹
å对象ä¹é´ä¸å¯¹ä¸çå
³èå
³ç³»æ¯éè¿<literal>one-to-one</literal>å
ç´ å®ä¹çã"
+msgid "A one-to-one association to another persistent class is declared using a <literal>one-to-one</literal> element."
+msgstr "æä¹
å对象ä¹é´ä¸å¯¹ä¸çå
³èå
³ç³»æ¯éè¿ <literal>one-to-one</literal> å
ç´ å®ä¹çã"
-#. Tag: programlisting
-#: basic_mapping.xml:1693
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<one-to-one\n"
-" name=\"propertyName\"\n"
-" class=\"ClassName\"\n"
-" cascade=\"cascade_style\"\n"
-" constrained=\"true|false\"\n"
-" fetch=\"join|select\"\n"
-" property-ref=\"propertyNameFromAssociatedClass\"\n"
-" access=\"field|property|ClassName\"\n"
-" formula=\"any SQL expression\"\n"
-" lazy=\"proxy|no-proxy|false\"\n"
-" entity-name=\"EntityName\"\n"
-" node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-" embed-xml=\"true|false\"\n"
-" foreign-key=\"foreign_key_name\"\n"
-"/>]]>"
-msgstr ""
+msgid "<literal>constrained</literal> (optional): specifies that a foreign key constraint on the primary key of the mapped table and references the table of the associated class. This option affects the order in which <literal>save()</literal> and <literal>delete()</literal> are cascaded, and determines whether the association can be proxied. It is also used by the schema export tool."
+msgstr "<literal>constrainedï¼çº¦æï¼</literal>ï¼å¯éï¼è¡¨æè¯¥ç±»å¯¹åºç表对åºçæ°æ®åºè¡¨ï¼å被å
³èç对象æå¯¹åºçæ°æ®åºè¡¨ä¹é´ï¼éè¿ä¸ä¸ªå¤é®å¼ç¨å¯¹ä¸»é®è¿è¡çº¦æãè¿ä¸ªé项影å <literal>save()</literal> å <literal>delete()</literal> å¨çº§èæ§è¡æ¶çå
å顺åºä»¥åå³å®è¯¥å
³èè½å¦è¢«å§æï¼ä¹å¨ schema export tool ä¸è¢«ä½¿ç¨ï¼ã "
#. Tag: para
-#: basic_mapping.xml:1713
-#, fuzzy, no-c-format
-msgid ""
-"<literal>constrained</literal> (optional): specifies that a foreign key "
-"constraint on the primary key of the mapped table and references the table "
-"of the associated class. This option affects the order in which <literal>save"
-"()</literal> and <literal>delete()</literal> are cascaded, and determines "
-"whether the association can be proxied. It is also used by the schema export "
-"tool."
-msgstr ""
-"<literal>constrained(约æ)</literal> (å¯é) 表æè¯¥ç±»å¯¹åºç表对åºçæ°æ®åºè¡¨ï¼"
-"å被å
³èç对象æå¯¹åºçæ°æ®åºè¡¨ä¹é´ï¼éè¿ä¸ä¸ªå¤é®å¼ç¨å¯¹ä¸»é®è¿è¡çº¦æã è¿ä¸ªé项"
-"å½±å<literal>save()</literal>å<literal>delete()</literal>å¨çº§èæ§è¡æ¶çå
å"
-"顺åºä»¥å å³å®è¯¥å
³èè½å¦è¢«å§æ(ä¹å¨schema export toolä¸è¢«ä½¿ç¨)."
+#, no-c-format
+msgid "<literal>property-ref</literal> (optional): the name of a property of the associated class that is joined to the primary key of this class. If not specified, the primary key of the associated class is used."
+msgstr "<literal>property-ref</literal>ï¼ï¼å¯éï¼æå®å
³èç±»ç屿§åï¼è¿ä¸ªå±æ§å°ä¼åæ¬ç±»ç主é®ç¸å¯¹åºãå¦ææ²¡ææå®ï¼ä¼ä½¿ç¨å¯¹æ¹å
³èç±»ç主é®ã "
#. Tag: para
-#: basic_mapping.xml:1728
-#, fuzzy, no-c-format
-msgid ""
-"<literal>property-ref</literal> (optional): the name of a property of the "
-"associated class that is joined to the primary key of this class. If not "
-"specified, the primary key of the associated class is used."
-msgstr ""
-"<literal>property-ref</literal>: (å¯é) æå®å
³èç±»ç屿§åï¼è¿ä¸ªå±æ§å°ä¼åæ¬"
-"ç±»ç主é®ç¸å¯¹åºãå¦ææ²¡ææå®ï¼ä¼ä½¿ç¨å¯¹æ¹å
³èç±»ç主é®ã"
+#, no-c-format
+msgid "<literal>formula</literal> (optional): almost all one-to-one associations map to the primary key of the owning entity. If this is not the case, you can specify another column, columns or expression to join on using an SQL formula. See <literal>org.hibernate.test.onetooneformula</literal> for an example."
+msgstr "<literal>formula </literal>ï¼å¯éï¼ï¼ç»å¤§å¤æ°ä¸å¯¹ä¸çå
³è齿åå
¶å®ä½ç主é®ãå¨ä¸äºå°è§çæ
åµä¸ï¼ä½ å¯è½ä¼æåå
¶ä»çä¸ä¸ªæå¤ä¸ªåæ®µï¼æè
æ¯ä¸ä¸ªè¡¨è¾¾å¼ï¼è¿äºæ
åµä¸ï¼ä½ å¯ä»¥ç¨ä¸ä¸ª SQL å
¬å¼æ¥è¡¨ç¤ºãï¼å¯ä»¥å¨ org.hibernate.test.onetooneformula æ¾å°ä¾åï¼ "
#. Tag: para
-#: basic_mapping.xml:1741
-#, fuzzy, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): almost all one-to-one associations "
-"map to the primary key of the owning entity. If this is not the case, you "
-"can specify another column, columns or expression to join on using an SQL "
-"formula. See <literal>org.hibernate.test.onetooneformula</literal> for an "
-"example."
-msgstr ""
-"<literal>formula </literal> (å¯é):ç»å¤§å¤æ°ä¸å¯¹ä¸çå
³è齿åå
¶å®ä½ç主é®ãå¨"
-"ä¸äºå°è§çæ
åµä¸ï¼ ä½ å¯è½ä¼æåå
¶ä»çä¸ä¸ªæå¤ä¸ªåæ®µï¼æè
æ¯ä¸ä¸ªè¡¨è¾¾å¼ï¼è¿äºæ
"
-"åµä¸ï¼ä½ å¯ä»¥ç¨ä¸ä¸ªSQLå
¬å¼æ¥è¡¨ç¤ºã ï¼å¯ä»¥å¨org.hibernate.test.onetooneformula"
-"æ¾å°ä¾åï¼"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): by default, single point associations are proxied. <literal>lazy=\"no-proxy\"</literal> specifies that the property should be fetched lazily when the instance variable is first accessed. It requires build-time bytecode instrumentation. <literal>lazy=\"false\"</literal> specifies that the association will always be eagerly fetched. <emphasis>Note that if <literal>constrained=\"false\"</literal>, proxying is impossible and Hibernate will eagerly fetch the association</emphasis>."
+msgstr "<literal>lazy</literal>ï¼å¯é â é»è®¤ä¸º <literal>proxy</literal>ï¼ï¼é»è®¤æ
åµä¸ï¼åç¹å
³èæ¯ç»è¿ä»£ççã<literal>lazy=\"no-proxy\"</literal>æå®æ¤å±æ§åºè¯¥å¨å®ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®æ¶åºè¯¥å»¶è¿æåï¼fetche lazilyï¼ï¼éè¦è¿è¡æ¶åèç çå¢å¼ºï¼ã <literal>lazy=\"false\"</literal>æå®æ¤å
³èæ»æ¯è¢«é¢å
æåã<emphasis>注æï¼å¦æ<literal>constrained=\"false\"</literal>, ä¸å¯è½ä½¿ç¨ä»£çï¼Hibernateä¼éåé¢å
æå</emphasis>ã"
#. Tag: para
-#: basic_mapping.xml:1749
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
-"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
-"\"</literal> specifies that the property should be fetched lazily when the "
-"instance variable is first accessed. It requires build-time bytecode "
-"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
-"association will always be eagerly fetched. <emphasis>Note that if "
-"<literal>constrained=\"false\"</literal>, proxying is impossible and "
-"Hibernate will eagerly fetch the association</emphasis>."
-msgstr ""
-"<literal>lazy</literal> (å¯é - é»è®¤ä¸º <literal>proxy</literal>): é»è®¤æ
åµ"
-"ä¸ï¼åç¹å
³èæ¯ç»è¿ä»£ççã<literal>lazy=\"no-proxy\"</literal>æå®æ¤å±æ§åºè¯¥"
-"å¨å®ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®æ¶åºè¯¥å»¶è¿æåï¼fetche lazilyï¼ï¼éè¦è¿è¡æ¶åèç çå¢"
-"强ï¼ã <literal>lazy=\"false\"</literal>æå®æ¤å
³èæ»æ¯è¢«é¢å
æåã<emphasis>"
-"注æï¼å¦æ<literal>constrained=\"false\"</literal>, ä¸å¯è½ä½¿ç¨ä»£çï¼Hibernate"
-"ä¼éåé¢å
æåï¼</emphasis>"
-
-#. Tag: para
-#: basic_mapping.xml:1767
-#, fuzzy, no-c-format
+#, no-c-format
msgid "There are two varieties of one-to-one associations:"
-msgstr "æä¸¤ç§ä¸åçä¸å¯¹ä¸å
³èï¼"
+msgstr "æä¸¤ç§ä¸åçä¸å¯¹ä¸å
³èï¼ "
#. Tag: para
-#: basic_mapping.xml:1771
#, no-c-format
msgid "primary key associations"
msgstr "主é®å
³è"
#. Tag: para
-#: basic_mapping.xml:1774
#, no-c-format
msgid "unique foreign key associations"
msgstr "æä¸å¤é®å
³è"
#. Tag: para
-#: basic_mapping.xml:1779
-#, fuzzy, no-c-format
-msgid ""
-"Primary key associations do not need an extra table column. If two rows are "
-"related by the association, then the two table rows share the same primary "
-"key value. To relate two objects by a primary key association, ensure that "
-"they are assigned the same identifier value."
-msgstr ""
-"主é®å
³èä¸éè¦é¢å¤çè¡¨åæ®µï¼å¦æä¸¤è¡æ¯éè¿è¿ç§ä¸å¯¹ä¸å
³ç³»ç¸å
³èçï¼é£ä¹è¿ä¸¤è¡"
-"å°±å
±äº«åæ ·ç主å
³é®åå¼ãæä»¥å¦æä½ å¸æä¸¤ä¸ªå¯¹è±¡éè¿ä¸»é®ä¸å¯¹ä¸å
³èï¼ä½ å¿
须确认"
-"å®ä»¬è¢«èµäºåæ ·çæ è¯å¼ï¼"
+#, no-c-format
+msgid "Primary key associations do not need an extra table column. If two rows are related by the association, then the two table rows share the same primary key value. To relate two objects by a primary key association, ensure that they are assigned the same identifier value."
+msgstr "主é®å
³èä¸éè¦é¢å¤çè¡¨åæ®µï¼å¦æä¸¤è¡æ¯éè¿è¿ç§ä¸å¯¹ä¸å
³ç³»ç¸å
³èçï¼é£ä¹è¿ä¸¤è¡å°±å
±äº«åæ ·ç主å
³é®åå¼ãæä»¥å¦æä½ å¸æä¸¤ä¸ªå¯¹è±¡éè¿ä¸»é®ä¸å¯¹ä¸å
³èï¼ä½ å¿
须确认å®ä»¬è¢«èµäºåæ ·çæ è¯å¼ã"
#. Tag: para
-#: basic_mapping.xml:1786
-#, fuzzy, no-c-format
-msgid ""
-"For a primary key association, add the following mappings to "
-"<literal>Employee</literal> and <literal>Person</literal> respectively:"
-msgstr ""
-"æ¯å¦è¯´ï¼å¯¹ä¸é¢ç<literal>Employee</literal>å<literal>Person</literal>è¿è¡ä¸»"
-"é®ä¸å¯¹ä¸å
³è:"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1791
#, no-c-format
-msgid "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
-msgstr ""
+msgid "For a primary key association, add the following mappings to <literal>Employee</literal> and <literal>Person</literal> respectively:"
+msgstr "æ¯å¦è¯´ï¼å¯¹ä¸é¢ç <literal>Employee</literal> å <literal>Person</literal> è¿è¡ä¸»é®ä¸å¯¹ä¸å
³èï¼"
-#. Tag: programlisting
-#: basic_mapping.xml:1792
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true"
-"\"/>]]>"
-msgstr ""
+msgid "Ensure that the primary keys of the related rows in the PERSON and EMPLOYEE tables are equal. You use a special Hibernate identifier generation strategy called <literal>foreign</literal>:"
+msgstr "ç°å¨æä»¬å¿
é¡»ç¡®ä¿ PERSON å EMPLOYEE ä¸ç¸å
³çåæ®µæ¯ç¸ççãæä»¬ä½¿ç¨ä¸ä¸ªè¢«æä¸º <literal>foreign</literal> çç¹æ®ç hibernate æ è¯ç¬¦çæçç¥ï¼ "
#. Tag: para
-#: basic_mapping.xml:1794
-#, fuzzy, no-c-format
-msgid ""
-"Ensure that the primary keys of the related rows in the PERSON and EMPLOYEE "
-"tables are equal. You use a special Hibernate identifier generation strategy "
-"called <literal>foreign</literal>:"
-msgstr ""
-"ç°å¨æä»¬å¿
须确ä¿PERSONåEMPLOYEEä¸ç¸å
³çåæ®µæ¯ç¸ççãæä»¬ä½¿ç¨ä¸ä¸ªè¢«æä¸º"
-"<literal>foreign</literal>çç¹æ®çhibernateæ è¯ç¬¦çæçç¥ï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1800
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
-" <id name=\"id\" column=\"PERSON_ID\">\n"
-" <generator class=\"foreign\">\n"
-" <param name=\"property\">employee</param>\n"
-" </generator>\n"
-" </id>\n"
-" ...\n"
-" <one-to-one name=\"employee\"\n"
-" class=\"Employee\"\n"
-" constrained=\"true\"/>\n"
-"</class>]]>"
-msgstr ""
+msgid "A newly saved instance of <literal>Person</literal> is assigned the same primary key value as the <literal>Employee</literal> instance referred with the <literal>employee</literal> property of that <literal>Person</literal>."
+msgstr "ä¸ä¸ªååä¿åç <literal>Person</literal> å®ä¾è¢«èµäºå该 <literal>Person</literal> ç <literal>employee</literal> 屿§ææåç <literal>Employee</literal> å®ä¾åæ ·çå
³é®åå¼ã "
#. Tag: para
-#: basic_mapping.xml:1802
-#, fuzzy, no-c-format
-msgid ""
-"A newly saved instance of <literal>Person</literal> is assigned the same "
-"primary key value as the <literal>Employee</literal> instance referred with "
-"the <literal>employee</literal> property of that <literal>Person</literal>."
-msgstr ""
-"ä¸ä¸ªååä¿åç<literal>Person</literal>å®ä¾è¢«èµäºå该<literal>Person</"
-"literal>ç<literal>employee</literal>屿§ææåç<literal>Employee</literal>"
-"å®ä¾åæ ·çå
³é®åå¼ã"
-
-#. Tag: para
-#: basic_mapping.xml:1808
-#, fuzzy, no-c-format
-msgid ""
-"Alternatively, a foreign key with a unique constraint, from "
-"<literal>Employee</literal> to <literal>Person</literal>, can be expressed "
-"as:"
-msgstr ""
-"å¦ä¸ç§æ¹å¼æ¯ä¸ä¸ªå¤é®åä¸ä¸ªæä¸å
³é®å对åºï¼ä¸é¢ç<literal>Employee</literal>å"
-"<literal>Person</literal>çä¾åï¼å¦æä½¿ç¨è¿ç§å
³èæ¹å¼ï¼å¯ä»¥è¡¨è¾¾æï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1813
#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" "
-"unique=\"true\"/>]]>"
-msgstr ""
+msgid "Alternatively, a foreign key with a unique constraint, from <literal>Employee</literal> to <literal>Person</literal>, can be expressed as:"
+msgstr "å¦ä¸ç§æ¹å¼æ¯ä¸ä¸ªå¤é®åä¸ä¸ªæä¸å
³é®å对åºï¼ä¸é¢ç <literal>Employee</literal> å <literal>Person</literal> çä¾åï¼å¦æä½¿ç¨è¿ç§å
³èæ¹å¼ï¼å¯ä»¥è¡¨è¾¾æï¼ "
#. Tag: para
-#: basic_mapping.xml:1815
-#, fuzzy, no-c-format
-msgid ""
-"This association can be made bidirectional by adding the following to the "
-"<literal>Person</literal> mapping:"
-msgstr ""
-"妿å¨<literal>Person</literal>çæ å°å å
¥ä¸é¢å å¥ï¼è¿ç§å
³èå°±æ¯ååçï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1820
#, no-c-format
-msgid ""
-"<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref="
-"\"person\"/>]]>"
-msgstr ""
+msgid "This association can be made bidirectional by adding the following to the <literal>Person</literal> mapping:"
+msgstr "å¦æå¨ <literal>Person</literal> çæ å°å å
¥ä¸é¢å å¥ï¼è¿ç§å
³èå°±æ¯ååçï¼ "
#. Tag: title
-#: basic_mapping.xml:1825
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Natural-id"
-msgstr "èªç¶ID(natural-id)"
+msgstr "èªç¶ IDï¼natural-idï¼ "
-#. Tag: programlisting
-#: basic_mapping.xml:1827
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<natural-id mutable=\"true|false\"/>\n"
-" <property ... />\n"
-" <many-to-one ... />\n"
-" ......\n"
-"</natural-id>]]>"
-msgstr ""
+msgid "Although we recommend the use of surrogate keys as primary keys, you should try to identify natural keys for all entities. A natural key is a property or combination of properties that is unique and non-null. It is also immutable. Map the properties of the natural key inside the <literal><natural-id></literal> element. Hibernate will generate the necessary unique key and nullability constraints and, as a result, your mapping will be more self-documenting."
+msgstr "æä»¬å»ºè®®ä½¿ç¨ä»£ç¨é®ï¼é®å¼ä¸å
·å¤å®é
æä¹ï¼ä½ä¸ºä¸»é®ï¼æä»¬ä»ç¶åºè¯¥å°è¯ä¸ºææçå®ä½éç¨èªç¶çé®å¼ä½ä¸ºï¼éå ââè¯è
æ³¨ï¼æ 示ãèªç¶é®ï¼natural keyï¼æ¯å个æç»å屿§ï¼ä»ä»¬å¿
é¡»å¯ä¸ä¸é空ã妿å®è¿æ¯ä¸å¯åçé£å°±æ´çæ³äºãå¨ <literal><natural-id></literal> å
ç´ ä¸ååºèªç¶é®ç屿§ãHibernate ä¼å¸®ä½ çæå¿
é¡»çå¯ä¸é®å¼åé空约æï¼ä½ çæ å°ä¼æ´å çææ¾ææï¼åææ¯ self-documentingï¼èªææ³¨è§£ï¼ã "
#. Tag: para
-#: basic_mapping.xml:1829
-#, fuzzy, no-c-format
-msgid ""
-"Although we recommend the use of surrogate keys as primary keys, you should "
-"try to identify natural keys for all entities. A natural key is a property "
-"or combination of properties that is unique and non-null. It is also "
-"immutable. Map the properties of the natural key inside the <literal><"
-"natural-id></literal> element. Hibernate will generate the necessary "
-"unique key and nullability constraints and, as a result, your mapping will "
-"be more self-documenting."
-msgstr ""
-"æä»¬å»ºè®®ä½¿ç¨ä»£ç¨é®ï¼é®å¼ä¸å
·å¤å®é
æä¹ï¼ä½ä¸ºä¸»é®ï¼æä»¬ä»ç¶åºè¯¥å°è¯ä¸ºææçå®"
-"ä½éç¨èªç¶çé®å¼ä½ä¸ºï¼éå ââè¯è
æ³¨ï¼æ 示ãèªç¶é®ï¼natural keyï¼æ¯å个æç»åå±"
-"æ§ï¼ä»ä»¬å¿
é¡»å¯ä¸ä¸é空ã妿å®è¿æ¯ä¸å¯åçé£å°±æ´çæ³äºãå¨<literal><"
-"natural-id></literal>å
ç´ ä¸ååºèªç¶é®ç屿§ãHibernateä¼å¸®ä½ çæå¿
é¡»çå¯ä¸"
-"é®å¼åé空约æï¼ä½ çæ å°ä¼æ´å çææ¾ææï¼åææ¯self-documentingï¼èªææ³¨"
-"è§£ï¼ã"
+#, no-c-format
+msgid "It is recommended that you implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the natural key properties of the entity."
+msgstr "æä»¬å¼ºçå»ºè®®ä½ å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³,æ¥æ¯è¾å®ä½çèªç¶é®å±æ§ã "
#. Tag: para
-#: basic_mapping.xml:1838
-#, fuzzy, no-c-format
-msgid ""
-"It is recommended that you implement <literal>equals()</literal> and "
-"<literal>hashCode()</literal> to compare the natural key properties of the "
-"entity."
-msgstr ""
-"æä»¬å¼ºçå»ºè®®ä½ å®ç°<literal>equals()</literal> å<literal>hashCode()</literal>"
-"æ¹æ³,æ¥æ¯è¾å®ä½çèªç¶é®å±æ§ã"
+#, no-c-format
+msgid "This mapping is not intended for use with entities that have natural primary keys."
+msgstr "è¿ä¸æ å°ä¸æ¯ä¸ºäºæèªç¶é®ä½ä¸ºä¸»é®èåå¤çã "
#. Tag: para
-#: basic_mapping.xml:1843
-#, fuzzy, no-c-format
-msgid ""
-"This mapping is not intended for use with entities that have natural primary "
-"keys."
-msgstr "è¿ä¸æ å°ä¸æ¯ä¸ºäºæèªç¶é®ä½ä¸ºä¸»é®èåå¤çã"
+#, no-c-format
+msgid "<literal>mutable</literal> (optional - defaults to <literal>false</literal>): by default, natural identifier properties are assumed to be immutable (constant)."
+msgstr "<literal>mutable</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼é»è®¤æ
åµä¸ï¼èªç¶æ è¯å±æ§è¢«åå®ä¸ºä¸å¯åçï¼å¸¸éï¼ã "
-#. Tag: para
-#: basic_mapping.xml:1849
-#, fuzzy, no-c-format
-msgid ""
-"<literal>mutable</literal> (optional - defaults to <literal>false</"
-"literal>): by default, natural identifier properties are assumed to be "
-"immutable (constant)."
-msgstr ""
-"<literal>mutable</literal> (å¯é, é»è®¤ä¸º<literal>false</literal>): é»è®¤æ
åµ"
-"ä¸ï¼èªç¶æ è¯å±æ§è¢«åå®ä¸ºä¸å¯åçï¼å¸¸éï¼ã"
-
#. Tag: title
-#: basic_mapping.xml:1859
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Component and dynamic-component"
-msgstr "ç»ä»¶(component), 卿ç»ä»¶(dynamic-component)"
+msgstr "ç»ä»¶ï¼componentï¼å卿ç»ä»¶ï¼dynamic-componentï¼ "
#. Tag: para
-#: basic_mapping.xml:1861
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><component></literal> element maps properties of a child "
-"object to columns of the table of a parent class. Components can, in turn, "
-"declare their own properties, components or collections. See the \"Component"
-"\" examples below:"
-msgstr ""
-"<literal><component></literal>å
ç´ æå对象çä¸äºå
ç´ ä¸ç¶ç±»å¯¹åºç表çä¸"
-"äºå段æ å°èµ·æ¥ã ç¶åç»ä»¶å¯ä»¥å®ä¹å®ä»¬èªå·±ç屿§ãç»ä»¶æè
éåãåè§åé¢"
-"çâComponentsâä¸ç« ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1879
#, no-c-format
-msgid ""
-"<![CDATA[<component\n"
-" name=\"propertyName\"\n"
-" class=\"className\"\n"
-" insert=\"true|false\"\n"
-" update=\"true|false\"\n"
-" access=\"field|property|ClassName\"\n"
-" lazy=\"true|false\"\n"
-" optimistic-lock=\"true|false\"\n"
-" unique=\"true|false\"\n"
-" node=\"element-name|.\"\n"
-">\n"
-"\n"
-" <property ...../>\n"
-" <many-to-one .... />\n"
-" ........\n"
-"</component>]]>"
-msgstr ""
+msgid "The <literal><component></literal> element maps properties of a child object to columns of the table of a parent class. Components can, in turn, declare their own properties, components or collections. See the \"Component\" examples below:"
+msgstr "<literal><component></literal> å
ç´ æå对象çä¸äºå
ç´ ä¸ç¶ç±»å¯¹åºç表çä¸äºå段æ å°èµ·æ¥ãç¶åç»ä»¶å¯ä»¥å®ä¹å®ä»¬èªå·±ç屿§ãç»ä»¶æè
éåãåè§åé¢çâComponentsâä¸ç« ã "
#. Tag: para
-#: basic_mapping.xml:1887
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal> (optional - defaults to the property type "
-"determined by reflection): the name of the component (child) class."
-msgstr ""
-"<literal>class</literal> (å¯é - é»è®¤ä¸ºéè¿åå°å¾å°ç屿§ç±»å):ç»ä»¶(å)ç±»çå"
-"åã"
+#, no-c-format
+msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the name of the component (child) class."
+msgstr "<literal>class</literal>ï¼å¯é â é»è®¤ä¸ºéè¿åå°å¾å°ç屿§ç±»åï¼ï¼ç»ä»¶ï¼åï¼ç±»çååã "
#. Tag: para
-#: basic_mapping.xml:1893 basic_mapping.xml:1982
-#, fuzzy, no-c-format
-msgid ""
-"<literal>insert</literal>: do the mapped columns appear in SQL "
-"<literal>INSERTs</literal>?"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>insert</literal>: 被æ å°çåæ®µæ¯å¦åºç°å¨SQLç<literal>INSERT</"
-"literal>è¯å¥ä¸?\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>insert</literal>: 被æ å°çåæ®µæ¯å¦åºç°å¨SQLç <literal>INSERT</"
-"literal>è¯å¥ä¸?"
+#, no-c-format
+msgid "<literal>insert</literal>: do the mapped columns appear in SQL <literal>INSERTs</literal>?"
+msgstr "<literal>insert</literal>ï¼è¢«æ å°çåæ®µæ¯å¦åºç°å¨ SQL ç <literal>INSERT</literal> è¯å¥ä¸ï¼ "
#. Tag: para
-#: basic_mapping.xml:1899 basic_mapping.xml:1988
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update</literal>: do the mapped columns appear in SQL "
-"<literal>UPDATEs</literal>?"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>update</literal>: 被æ å°çåæ®µæ¯å¦åºç°å¨SQLç<literal>UPDATE</"
-"literal>è¯å¥ä¸?\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>update</literal>: 被æ å°çåæ®µæ¯å¦åºç°å¨SQLç <literal>UPDATE</"
-"literal>è¯å¥ä¸?"
+#, no-c-format
+msgid "<literal>update</literal>: do the mapped columns appear in SQL <literal>UPDATEs</literal>?"
+msgstr "<literal>update</literal>ï¼è¢«æ å°çåæ®µæ¯å¦åºç°å¨ SQL ç <literal>UPDATE</literal> è¯å¥ä¸ï¼ "
#. Tag: para
-#: basic_mapping.xml:1911
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
-"specifies that this component should be fetched lazily when the instance "
-"variable is first accessed. It requires build-time bytecode instrumentation."
-msgstr ""
-"<literal>lazy</literal> (å¯é - é»è®¤æ¯ <literal>false</literal>): è¡¨ææ¤ç»ä»¶"
-"åºå¨å®ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®çæ¶åå»¶è¿å è½½(éè¦ç¼è¯æ¶åèç è£
ç½®å¨)"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): specifies that this component should be fetched lazily when the instance variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr "<literal>lazy</literal>ï¼å¯é â é»è®¤æ¯ <literal>false</literal>ï¼ï¼è¡¨ææ¤ç»ä»¶åºå¨å®ä¾åéç¬¬ä¸æ¬¡è¢«è®¿é®çæ¶åå»¶è¿å è½½ï¼éè¦ç¼è¯æ¶åèç è£
ç½®å¨ï¼ã"
#. Tag: para
-#: basic_mapping.xml:1918
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to this component either do or do not "
-"require acquisition of the optimistic lock. It determines if a version "
-"increment should occur when this property is dirty."
-msgstr ""
-"<literal>optimistic-lock</literal> (å¯é - é»è®¤æ¯ <literal>true</literal>):表"
-"ææ´æ°æ¤ç»ä»¶æ¯å¦éè¦è·åä¹è§éãæ¢å¥è¯è¯´ï¼å½è¿ä¸ªå±æ§åèæ¶ï¼æ¯å¦å¢å çæ¬å·"
-"(Version)"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to this component either do or do not require acquisition of the optimistic lock. It determines if a version increment should occur when this property is dirty."
+msgstr "<literal>optimistic-lock</literal>ï¼å¯é â é»è®¤æ¯ <literal>true</literal>ï¼ï¼è¡¨ææ´æ°æ¤ç»ä»¶æ¯å¦éè¦è·åä¹è§éãæ¢å¥è¯è¯´ï¼å½è¿ä¸ªå±æ§åèæ¶ï¼æ¯å¦å¢å çæ¬å·ï¼Versionï¼ã"
#. Tag: para
-#: basic_mapping.xml:1926 basic_mapping.xml:2002
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional - defaults to <literal>false</literal>): "
-"specifies that a unique constraint exists upon all mapped columns of the "
-"component."
-msgstr ""
-"<literal>unique</literal> (å¯é - é»è®¤æ¯ <literal>false</literal>):表æç»ä»¶æ "
-"å°çææå段ä¸é½æå¯ä¸æ§çº¦æ"
+#, no-c-format
+msgid "<literal>unique</literal> (optional - defaults to <literal>false</literal>): specifies that a unique constraint exists upon all mapped columns of the component."
+msgstr "<literal>unique</literal>ï¼å¯é â é»è®¤æ¯ <literal>false</literal>ï¼ï¼è¡¨æç»ä»¶æ å°çææå段ä¸é½æå¯ä¸æ§çº¦æã"
#. Tag: para
-#: basic_mapping.xml:1935
#, no-c-format
-msgid ""
-"The child <literal><property></literal> tags map properties of the "
-"child class to table columns."
-msgstr ""
-"å
¶<literal><property></literal>åæ ç¾ä¸ºåç±»çä¸äºå±æ§ä¸è¡¨å段ä¹é´å»ºç«æ "
-"å°ã"
+msgid "The child <literal><property></literal> tags map properties of the child class to table columns."
+msgstr "å
¶ <literal><property></literal> åæ ç¾ä¸ºåç±»çä¸äºå±æ§ä¸è¡¨å段ä¹é´å»ºç«æ å°ã"
#. Tag: para
-#: basic_mapping.xml:1940
#, no-c-format
-msgid ""
-"The <literal><component></literal> element allows a <literal><"
-"parent></literal> subelement that maps a property of the component class "
-"as a reference back to the containing entity."
-msgstr ""
-"<literal><component></literal>å
ç´ å
许å å
¥ä¸ä¸ª<literal><parent></"
-"literal>åå
ç´ ï¼å¨ç»ä»¶ç±»å
é¨å°±å¯ä»¥æä¸ä¸ªæåå
¶å®¹å¨çå®ä½çååå¼ç¨ã"
+msgid "The <literal><component></literal> element allows a <literal><parent></literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr "<literal><component></literal> å
ç´ å
许å å
¥ä¸ä¸ª <literal><parent></literal> åå
ç´ ï¼å¨ç»ä»¶ç±»å
é¨å°±å¯ä»¥æä¸ä¸ªæåå
¶å®¹å¨çå®ä½çååå¼ç¨ã"
#. Tag: para
-#: basic_mapping.xml:1946
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><dynamic-component></literal> element allows a "
-"<literal>Map</literal> to be mapped as a component, where the property names "
-"refer to keys of the map. See <xref linkend=\"components-dynamic\"/> for "
-"more information."
-msgstr ""
-"<literal><dynamic-component></literal>å
ç´ å
许æä¸ä¸ª<literal>Map</"
-"literal>æ å°ä¸ºç»ä»¶ï¼å
¶å±æ§å对åºmapçé®å¼ã åè§<xref linkend=\"components-"
-"dynamic\"/>."
+#, no-c-format
+msgid "The <literal><dynamic-component></literal> element allows a <literal>Map</literal> to be mapped as a component, where the property names refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for more information."
+msgstr "<literal><dynamic-component></literal> å
ç´ å
许æä¸ä¸ª <literal>Map</literal> æ å°ä¸ºç»ä»¶ï¼å
¶å±æ§åå¯¹åº map çé®å¼ãåè§ <xref linkend=\"components-dynamic\"/>ã "
#. Tag: title
-#: basic_mapping.xml:1955
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Properties"
-msgstr "properties"
+msgstr "屿§ï¼Propertiesï¼"
#. Tag: para
-#: basic_mapping.xml:1957
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><properties></literal> element allows the definition of a "
-"named, logical grouping of the properties of a class. The most important use "
-"of the construct is that it allows a combination of properties to be the "
-"target of a <literal>property-ref</literal>. It is also a convenient way to "
-"define a multi-column unique constraint. For example:"
-msgstr ""
-"<literal><properties></literal> å
ç´ å
许å®ä¹ä¸ä¸ªå½åçé»è¾åç»"
-"(grouping)å
å«ä¸ä¸ªç±»ä¸çå¤ä¸ªå±æ§ã è¿ä¸ªå
ç´ æéè¦çç¨å¤æ¯å
许å¤ä¸ªå±æ§çç»åä½"
-"为<literal>property-ref</literal>çç®æ (target)ã è¿ä¹æ¯å®ä¹å¤å段å¯ä¸çº¦æç"
-"ä¸ç§æ¹ä¾¿éå¾ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:1973
#, no-c-format
-msgid ""
-"<![CDATA[<properties\n"
-" name=\"logicalName\"\n"
-" insert=\"true|false\"\n"
-" update=\"true|false\"\n"
-" optimistic-lock=\"true|false\"\n"
-" unique=\"true|false\"\n"
-">\n"
-"\n"
-" <property ...../>\n"
-" <many-to-one .... />\n"
-" ........\n"
-"</properties>]]>"
-msgstr ""
+msgid "The <literal><properties></literal> element allows the definition of a named, logical grouping of the properties of a class. The most important use of the construct is that it allows a combination of properties to be the target of a <literal>property-ref</literal>. It is also a convenient way to define a multi-column unique constraint. For example:"
+msgstr "<literal><properties></literal> å
ç´ å
许å®ä¹ä¸ä¸ªå½åçé»è¾åç»ï¼groupingï¼å
å«ä¸ä¸ªç±»ä¸çå¤ä¸ªå±æ§ãè¿ä¸ªå
ç´ æéè¦çç¨å¤æ¯å
许å¤ä¸ªå±æ§çç»åä½ä¸º <literal>property-ref</literal> çç®æ ï¼targetï¼ãè¿ä¹æ¯å®ä¹å¤å段å¯ä¸çº¦æçä¸ç§æ¹ä¾¿éå¾ãä¾å¦ï¼"
#. Tag: para
-#: basic_mapping.xml:1976
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal>: the logical name of the grouping. It is "
-"<emphasis>not</emphasis> an actual property name."
-msgstr ""
-"<literal>name</literal>: åç»çé»è¾åç§° - <emphasis>䏿¯</emphasis> å®é
屿§"
-"çåç§°."
+#, no-c-format
+msgid "<literal>name</literal>: the logical name of the grouping. It is <emphasis>not</emphasis> an actual property name."
+msgstr "<literal>name</literal>ï¼åç»çé»è¾åç§° â <emphasis>䏿¯</emphasis> å®é
屿§çåç§°ã "
#. Tag: para
-#: basic_mapping.xml:1994
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to these properties either do or do not "
-"require acquisition of the optimistic lock. It determines if a version "
-"increment should occur when these properties are dirty."
-msgstr ""
-"<literal>optimistic-lock</literal> (å¯é - é»è®¤æ¯ <literal>true</literal>):表"
-"ææ´æ°æ¤ç»ä»¶æ¯å¦éè¦è·åä¹è§éãæ¢å¥è¯è¯´ï¼å½è¿ä¸ªå±æ§åèæ¶ï¼æ¯å¦å¢å çæ¬å·"
-"(Version)"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to these properties either do or do not require acquisition of the optimistic lock. It determines if a version increment should occur when these properties are dirty."
+msgstr "<literal>optimistic-lock</literal>ï¼å¯é â é»è®¤æ¯ <literal>true</literal>ï¼ï¼è¡¨ææ´æ°æ¤ç»ä»¶æ¯å¦éè¦è·åä¹è§éãæ¢å¥è¯è¯´ï¼å½è¿ä¸ªå±æ§åèæ¶ï¼æ¯å¦å¢å çæ¬å·ï¼Versionï¼ã"
#. Tag: para
-#: basic_mapping.xml:2011
#, no-c-format
-msgid ""
-"For example, if we have the following <literal><properties></literal> "
-"mapping:"
-msgstr "ä¾å¦ï¼å¦ææä»¬æå¦ä¸ç<literal><properties></literal>æ å°:"
+msgid "For example, if we have the following <literal><properties></literal> mapping:"
+msgstr "ä¾å¦ï¼å¦ææä»¬æå¦ä¸ç <literal><properties></literal> æ å°ï¼"
-#. Tag: programlisting
-#: basic_mapping.xml:2015
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"personNumber\"/>\n"
-"\n"
-" ...\n"
-" <properties name=\"name\"\n"
-" unique=\"true\" update=\"false\">\n"
-" <property name=\"firstName\"/>\n"
-" <property name=\"initial\"/>\n"
-" <property name=\"lastName\"/>\n"
-" </properties>\n"
-"</class>]]>"
-msgstr ""
+msgid "You might have some legacy data association that refers to this unique key of the <literal>Person</literal> table, instead of to the primary key:"
+msgstr "ç¶åï¼æä»¬å¯è½æä¸äºéççæ°æ®å
³èï¼å¼ç¨ <literal>Person</literal> 表çè¿ä¸ªå¯ä¸é®ï¼è䏿¯ä¸»é®ï¼"
#. Tag: para
-#: basic_mapping.xml:2017
-#, fuzzy, no-c-format
-msgid ""
-"You might have some legacy data association that refers to this unique key "
-"of the <literal>Person</literal> table, instead of to the primary key:"
-msgstr ""
-"ç¶åï¼æä»¬å¯è½æä¸äºéççæ°æ®å
³èï¼å¼ç¨ <literal>Person</literal>表çè¿ä¸ªå¯"
-"ä¸é®ï¼è䏿¯ä¸»é®ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2022
#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"person\"\n"
-" class=\"Person\" property-ref=\"name\">\n"
-" <column name=\"firstName\"/>\n"
-" <column name=\"initial\"/>\n"
-" <column name=\"lastName\"/>\n"
-"</many-to-one>]]>"
-msgstr ""
+msgid "The use of this outside the context of mapping legacy data is not recommended."
+msgstr "æä»¬å¹¶ä¸æ¨èè¿æ ·ä½¿ç¨ï¼é¤é卿 å°éçæ°æ®çæ
åµä¸ã "
-#. Tag: para
-#: basic_mapping.xml:2024
-#, fuzzy, no-c-format
-msgid ""
-"The use of this outside the context of mapping legacy data is not "
-"recommended."
-msgstr "æä»¬å¹¶ä¸æ¨èè¿æ ·ä½¿ç¨ï¼é¤é卿 å°éçæ°æ®çæ
åµä¸ã"
-
#. Tag: title
-#: basic_mapping.xml:2032
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Subclass"
-msgstr "åç±»(subclass)"
+msgstr "åç±»ï¼subclassï¼ "
#. Tag: para
-#: basic_mapping.xml:2034
-#, fuzzy, no-c-format
-msgid ""
-"Polymorphic persistence requires the declaration of each subclass of the "
-"root persistent class. For the table-per-class-hierarchy mapping strategy, "
-"the <literal><subclass></literal> declaration is used. For example:"
-msgstr ""
-"æåï¼å¤ææä¹
åéè¦ä¸ºç¶ç±»çæ¯ä¸ªåç±»é½è¿è¡å®ä¹ã对äºâæ¯ä¸æ£µç±»ç»§æ¿æ 对åºä¸ä¸ª"
-"表âççç¥æ¥è¯´ï¼å°±éè¦ä½¿ç¨<literal><subclass></literal>å®ä¹ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2047
#, no-c-format
-msgid ""
-"<![CDATA[<subclass\n"
-" name=\"ClassName\"\n"
-" discriminator-value=\"discriminator_value\"\n"
-" proxy=\"ProxyInterface\"\n"
-" lazy=\"true|false\"\n"
-" dynamic-update=\"true|false\"\n"
-" dynamic-insert=\"true|false\"\n"
-" entity-name=\"EntityName\"\n"
-" node=\"element-name\"\n"
-" extends=\"SuperclassName\">\n"
-"\n"
-" <property .... />\n"
-" .....\n"
-"</subclass>]]>"
-msgstr ""
+msgid "Polymorphic persistence requires the declaration of each subclass of the root persistent class. For the table-per-class-hierarchy mapping strategy, the <literal><subclass></literal> declaration is used. For example:"
+msgstr "æåï¼å¤ææä¹
åéè¦ä¸ºç¶ç±»çæ¯ä¸ªåç±»é½è¿è¡å®ä¹ã对äºâæ¯ä¸æ£µç±»ç»§æ¿æ 对åºä¸ä¸ªè¡¨âççç¥æ¥è¯´ï¼å°±éè¦ä½¿ç¨ <literal><subclass></literal> å®ä¹ã "
#. Tag: para
-#: basic_mapping.xml:2050 basic_mapping.xml:2108 basic_mapping.xml:2171
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal>: the fully qualified class name of the subclass."
-msgstr "<literal>name</literal>: åç±»çå
¨éå®åã"
+#, no-c-format
+msgid "<literal>name</literal>: the fully qualified class name of the subclass."
+msgstr "<literal>name</literal>ï¼åç±»çå
¨éå®åã "
#. Tag: para
-#: basic_mapping.xml:2055
-#, fuzzy, no-c-format
-msgid ""
-"<literal>discriminator-value</literal> (optional - defaults to the class "
-"name): a value that distinguishes individual subclasses."
-msgstr ""
-"<literal>discriminator-value(è¾¨å«æ å¿)</literal> (å¯é - é»è®¤ä¸ºç±»å):ä¸ä¸ªç¨äº"
-"åºåæ¯ä¸ªç¬ç«çåç±»çå¼ã"
+#, no-c-format
+msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): a value that distinguishes individual subclasses."
+msgstr "<literal>discriminator-valueï¼è¾¨å«æ å¿ï¼</literal>ï¼å¯é â é»è®¤ä¸ºç±»åï¼ï¼ä¸ä¸ªç¨äºåºåæ¯ä¸ªç¬ç«çåç±»çå¼ã "
#. Tag: para
-#: basic_mapping.xml:2061
-#, fuzzy, no-c-format
-msgid ""
-"<literal>proxy</literal> (optional): specifies a class or interface used for "
-"lazy initializing proxies."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>proxy(代ç)</literal> (å¯é): æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£"
-"ç使ç¨ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>proxy</literal> (å¯é): æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使"
-"ç¨ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>proxy</literal> (å¯é): æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使"
-"ç¨ã"
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies a class or interface used for lazy initializing proxies."
+msgstr "<literal>proxy</literal>ï¼å¯éï¼ï¼æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使ç¨ã "
#. Tag: para
-#: basic_mapping.xml:2067
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
-"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>lazy</literal> (å¯é, é»è®¤æ¯<literal>true</literal>): 设置为 "
-"<literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿æå\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>lazy</literal> (å¯é, é»è®¤æ¯ <literal>true</literal>): 设置为 "
-"<literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>lazy</literal> (å¯é, é»è®¤æ¯ <literal>true</literal>): 设置为 "
-"<literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>true</literal>): setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr "<literal>lazy</literal>ï¼å¯éï¼é»è®¤æ¯ <literal>true</literal>ï¼ï¼è®¾ç½®ä¸º <literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã "
#. Tag: para
-#: basic_mapping.xml:2075
-#, fuzzy, no-c-format
-msgid ""
-"Each subclass declares its own persistent properties and subclasses. "
-"<literal><version></literal> and <literal><id></literal> "
-"properties are assumed to be inherited from the root class. Each subclass in "
-"a hierarchy must define a unique <literal>discriminator-value</literal>. If "
-"this is not specified, the fully qualified Java class name is used."
-msgstr ""
-"æ¯ä¸ªåç±»é½åºè¯¥å®ä¹å®èªå·±çæä¹
å屿§ååç±»ã <literal><version></"
-"literal> å<literal><id></literal> 屿§å¯ä»¥ä»æ ¹ç¶ç±»ç»§æ¿ä¸æ¥ãå¨ä¸æ£µç»§æ¿"
-"æ ä¸çæ¯ä¸ªåç±»é½å¿
é¡»å®ä¹ä¸ä¸ªå¯ä¸ç<literal>discriminator-value</literal>ãå¦"
-"ææ²¡ææå®ï¼å°±ä¼ä½¿ç¨Javaç±»çå
¨éå®åã"
+#, no-c-format
+msgid "Each subclass declares its own persistent properties and subclasses. <literal><version></literal> and <literal><id></literal> properties are assumed to be inherited from the root class. Each subclass in a hierarchy must define a unique <literal>discriminator-value</literal>. If this is not specified, the fully qualified Java class name is used."
+msgstr "æ¯ä¸ªåç±»é½åºè¯¥å®ä¹å®èªå·±çæä¹
å屿§ååç±»ã<literal><version></literal> å <literal><id></literal> 屿§å¯ä»¥ä»æ ¹ç¶ç±»ç»§æ¿ä¸æ¥ãå¨ä¸æ£µç»§æ¿æ ä¸çæ¯ä¸ªåç±»é½å¿
é¡»å®ä¹ä¸ä¸ªå¯ä¸ç <literal>discriminator-value</literal>ãå¦ææ²¡ææå®ï¼å°±ä¼ä½¿ç¨ Java ç±»çå
¨éå®åã "
#. Tag: para
-#: basic_mapping.xml:2083 basic_mapping.xml:2141 basic_mapping.xml:2199
-#, fuzzy, no-c-format
-msgid ""
-"For information about inheritance mappings see <xref linkend=\"inheritance\"/"
-">."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ´å¤å
³äºç»§æ¿æ å°çä¿¡æ¯, åè <xref linkend=\"inheritance\"/>ç« è.\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ´å¤å
³äºç»§æ¿æ å°çä¿¡æ¯ï¼åè<xref linkend=\"inheritance\"/>ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ´å¤å
³äºç»§æ¿æ å°çä¿¡æ¯ï¼åè<xref linkend=\"inheritance\"/>ã"
+#, no-c-format
+msgid "For information about inheritance mappings see <xref linkend=\"inheritance\" />."
+msgstr "æ´å¤å
³äºç»§æ¿æ å°çä¿¡æ¯ï¼åè <xref linkend=\"inheritance\"/>ã "
#. Tag: title
-#: basic_mapping.xml:2090
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Joined-subclass"
-msgstr "è¿æ¥çåç±»(joined-subclass)"
+msgstr "è¿æ¥çåç±»ï¼joined-subclassï¼ "
#. Tag: para
-#: basic_mapping.xml:2092
-#, fuzzy, no-c-format
-msgid ""
-"Each subclass can also be mapped to its own table. This is called the table-"
-"per-subclass mapping strategy. An inherited state is retrieved by joining "
-"with the table of the superclass. To do this you use the <literal><joined-"
-"subclass></literal> element. For example:"
-msgstr ""
-"æ¤å¤ï¼æ¯ä¸ªåç±»å¯è½è¢«æ å°å°ä»èªå·±ç表ä¸(æ¯ä¸ªåç±»ä¸ä¸ªè¡¨ççç¥)ã被继æ¿çç¶æé"
-"è¿åè¶
ç±»ç表å
³èå¾å°ãæä»¬ä½¿ç¨<literal><joined-subclass></literal>å
"
-"ç´ ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2105
#, no-c-format
-msgid ""
-"<![CDATA[<joined-subclass\n"
-" name=\"ClassName\"\n"
-" table=\"tablename\"\n"
-" proxy=\"ProxyInterface\"\n"
-" lazy=\"true|false\"\n"
-" dynamic-update=\"true|false\"\n"
-" dynamic-insert=\"true|false\"\n"
-" schema=\"schema\"\n"
-" catalog=\"catalog\"\n"
-" extends=\"SuperclassName\"\n"
-" persister=\"ClassName\"\n"
-" subselect=\"SQL expression\"\n"
-" entity-name=\"EntityName\"\n"
-" node=\"element-name\">\n"
-"\n"
-" <key .... >\n"
-"\n"
-" <property .... />\n"
-" .....\n"
-"</joined-subclass>]]>"
-msgstr ""
+msgid "Each subclass can also be mapped to its own table. This is called the table-per-subclass mapping strategy. An inherited state is retrieved by joining with the table of the superclass. To do this you use the <literal><joined-subclass></literal> element. For example:"
+msgstr "æ¤å¤ï¼æ¯ä¸ªåç±»å¯è½è¢«æ å°å°ä»èªå·±ç表ä¸ï¼æ¯ä¸ªåç±»ä¸ä¸ªè¡¨ççç¥ï¼ã被继æ¿çç¶æéè¿åè¶
ç±»ç表å
³èå¾å°ãæä»¬ä½¿ç¨ <literal><joined-subclass></literal> å
ç´ ã "
#. Tag: para
-#: basic_mapping.xml:2113 basic_mapping.xml:2176
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>table</literal>: the name of the subclass table."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>table</literal>: åç±»ç表å.\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>table</literal>: åç±»ç表å"
+msgstr "<literal>table</literal>ï¼åç±»ç表åã"
#. Tag: para
-#: basic_mapping.xml:2118 basic_mapping.xml:2181
-#, fuzzy, no-c-format
-msgid ""
-"<literal>proxy</literal> (optional): specifies a class or interface to use "
-"for lazy initializing proxies."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>proxy(代ç)</literal> (å¯é): æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£"
-"ç使ç¨ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>proxy</literal> (å¯é): æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使"
-"ç¨ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>proxy</literal> (å¯é): æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使"
-"ç¨ã"
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies a class or interface to use for lazy initializing proxies."
+msgstr "<literal>proxy</literal>ï¼å¯éï¼ï¼æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使ç¨ã "
#. Tag: para
-#: basic_mapping.xml:2124 basic_mapping.xml:2187
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional, defaults to <literal>true</literal>): "
-"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>lazy</literal> (å¯é, é»è®¤æ¯<literal>true</literal>): 设置为 "
-"<literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿æå\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>lazy</literal> (å¯é, é»è®¤æ¯ <literal>true</literal>): 设置为 "
-"<literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>lazy</literal> (å¯é, é»è®¤æ¯ <literal>true</literal>): 设置为 "
-"<literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional, defaults to <literal>true</literal>): setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr "<literal>lazy</literal>ï¼å¯éï¼é»è®¤æ¯ <literal>true</literal>ï¼ï¼è®¾ç½®ä¸º <literal>lazy=\"false\"</literal> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã "
#. Tag: para
-#: basic_mapping.xml:2132
-#, fuzzy, no-c-format
-msgid ""
-"A discriminator column is not required for this mapping strategy. Each "
-"subclass must, however, declare a table column holding the object identifier "
-"using the <literal><key></literal> element. The mapping at the start "
-"of the chapter would then be re-written as:"
-msgstr ""
-"è¿ç§æ å°çç¥ä¸éè¦æå®è¾¨å«æ å¿(discriminator)åæ®µã使¯ï¼æ¯ä¸ä¸ªåç±»é½å¿
须使ç¨"
-"<literal><key></literal>å
ç´ æå®ä¸ä¸ªè¡¨åæ®µæ¥ææå¯¹è±¡çæ è¯ç¬¦ãæ¬ç« å¼å§"
-"çæ å°å¯ä»¥è¢«ç¨å¦ä¸æ¹å¼éåï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2139
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\"?>\n"
-"<!DOCTYPE hibernate-mapping PUBLIC\n"
-" \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-"\n"
-"<hibernate-mapping package=\"eg\">\n"
-"\n"
-" <class name=\"Cat\" table=\"CATS\">\n"
-" <id name=\"id\" column=\"uid\" type=\"long\">\n"
-" <generator class=\"hilo\"/>\n"
-" </id>\n"
-" <property name=\"birthdate\" type=\"date\"/>\n"
-" <property name=\"color\" not-null=\"true\"/>\n"
-" <property name=\"sex\" not-null=\"true\"/>\n"
-" <property name=\"weight\"/>\n"
-" <many-to-one name=\"mate\"/>\n"
-" <set name=\"kittens\">\n"
-" <key column=\"MOTHER\"/>\n"
-" <one-to-many class=\"Cat\"/>\n"
-" </set>\n"
-" <joined-subclass name=\"DomesticCat\" table=\"DOMESTIC_CATS"
-"\">\n"
-" <key column=\"CAT\"/>\n"
-" <property name=\"name\" type=\"string\"/>\n"
-" </joined-subclass>\n"
-" </class>\n"
-"\n"
-" <class name=\"eg.Dog\">\n"
-" <!-- mapping for Dog could go here -->\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "A discriminator column is not required for this mapping strategy. Each subclass must, however, declare a table column holding the object identifier using the <literal><key></literal> element. The mapping at the start of the chapter would then be re-written as:"
+msgstr "è¿ç§æ å°çç¥ä¸éè¦æå®è¾¨å«æ å¿ï¼discriminatorï¼å段ã使¯ï¼æ¯ä¸ä¸ªåç±»é½å¿
é¡»ä½¿ç¨ <literal><key></literal> å
ç´ æå®ä¸ä¸ªè¡¨åæ®µæ¥ææå¯¹è±¡çæ è¯ç¬¦ãæ¬ç« å¼å§çæ å°å¯ä»¥è¢«ç¨å¦ä¸æ¹å¼éåï¼ "
#. Tag: title
-#: basic_mapping.xml:2148
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Union-subclass"
-msgstr "èååç±»(union-subclass)"
+msgstr "èååç±»ï¼union-subclassï¼ "
#. Tag: para
-#: basic_mapping.xml:2150
-#, fuzzy, no-c-format
-msgid ""
-"A third option is to map only the concrete classes of an inheritance "
-"hierarchy to tables. This is called the table-per-concrete-class strategy. "
-"Each table defines all persistent states of the class, including the "
-"inherited state. In Hibernate, it is not necessary to explicitly map such "
-"inheritance hierarchies. You can map each class with a separate <literal><"
-"class></literal> declaration. However, if you wish use polymorphic "
-"associations (e.g. an association to the superclass of your hierarchy), you "
-"need to use the <literal><union-subclass></literal> mapping. For "
-"example:"
-msgstr ""
-"第ä¸ç§éæ©æ¯ä»
ä»
æ å°ç±»ç»§æ¿æ ä¸å
·ä½ç±»é¨åå°è¡¨ä¸(æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ççç¥)ãå
¶"
-"ä¸ï¼æ¯å¼ 表å®ä¹äºç±»çæææä¹
åç¶æï¼å
æ¬ç»§æ¿çç¶æãå¨ Hibernate ä¸ï¼å¹¶ä¸éè¦"
-"å®å
¨æ¾å¼å°æ å°è¿æ ·çç»§æ¿æ ãä½ å¯ä»¥ç®åå°ä½¿ç¨åç¬ç<literal><class></"
-"literal>å®ä¹æ å°æ¯ä¸ªç±»ãç¶èï¼å¦æä½ æ³ä½¿ç¨å¤æå
³è(ä¾å¦ï¼ä¸ä¸ªå¯¹ç±»ç»§æ¿æ ä¸è¶
ç±»"
-"çå
³è)ï¼ä½ éè¦ä½¿ç¨<literal><union-subclass></literal>æ å°ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2168
#, no-c-format
-msgid ""
-"<![CDATA[<union-subclass\n"
-" name=\"ClassName\"\n"
-" table=\"tablename\"\n"
-" proxy=\"ProxyInterface\"\n"
-" lazy=\"true|false\"\n"
-" dynamic-update=\"true|false\"\n"
-" dynamic-insert=\"true|false\"\n"
-" schema=\"schema\"\n"
-" catalog=\"catalog\"\n"
-" extends=\"SuperclassName\"\n"
-" abstract=\"true|false\"\n"
-" persister=\"ClassName\"\n"
-" subselect=\"SQL expression\"\n"
-" entity-name=\"EntityName\"\n"
-" node=\"element-name\">\n"
-"\n"
-" <property .... />\n"
-" .....\n"
-"</union-subclass>]]>"
-msgstr ""
+msgid "A third option is to map only the concrete classes of an inheritance hierarchy to tables. This is called the table-per-concrete-class strategy. Each table defines all persistent states of the class, including the inherited state. In Hibernate, it is not necessary to explicitly map such inheritance hierarchies. You can map each class with a separate <literal><class></literal> declaration. However, if you wish use polymorphic associations (e.g. an association to the superclass of your hierarchy), you need to use the <literal><union-subclass></literal> mapping. For example:"
+msgstr "第ä¸ç§éæ©æ¯ä»
ä»
æ å°ç±»ç»§æ¿æ ä¸å
·ä½ç±»é¨åå°è¡¨ä¸ï¼æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ççç¥ï¼ãå
¶ä¸ï¼æ¯å¼ 表å®ä¹äºç±»çæææä¹
åç¶æï¼å
æ¬ç»§æ¿çç¶æãå¨ Hibernate ä¸ï¼å¹¶ä¸éè¦å®å
¨æ¾å¼å°æ å°è¿æ ·çç»§æ¿æ ãä½ å¯ä»¥ç®åå°ä½¿ç¨åç¬ç <literal><class></literal> å®ä¹æ å°æ¯ä¸ªç±»ãç¶èï¼å¦æä½ æ³ä½¿ç¨å¤æå
³èï¼ä¾å¦ï¼ä¸ä¸ªå¯¹ç±»ç»§æ¿æ ä¸è¶
ç±»çå
³èï¼ï¼ä½ éè¦ä½¿ç¨ <literal><union-subclass></literal> æ å°ã "
#. Tag: para
-#: basic_mapping.xml:2195
#, no-c-format
-msgid ""
-"No discriminator column or key column is required for this mapping strategy."
-msgstr "è¿ç§æ å°çç¥ä¸éè¦æå®è¾¨å«æ å¿(discriminator)åæ®µã"
+msgid "No discriminator column or key column is required for this mapping strategy."
+msgstr "è¿ç§æ å°çç¥ä¸éè¦æå®è¾¨å«æ å¿ï¼discriminatorï¼å段ã"
#. Tag: title
-#: basic_mapping.xml:2206
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Join"
-msgstr "è¿æ¥(join)"
+msgstr "è¿æ¥ï¼joinï¼ "
#. Tag: para
-#: basic_mapping.xml:2208
-#, fuzzy, no-c-format
-msgid ""
-"Using the <literal><join></literal> element, it is possible to map "
-"properties of one class to several tables that have a one-to-one "
-"relationship. For example:"
-msgstr ""
-"ä½¿ç¨ <literal><join></literal> å
ç´ ï¼åè¥å¨è¡¨ä¹é´åå¨ä¸å¯¹ä¸å
³è,å¯ä»¥å°"
-"ä¸ä¸ªç±»ç屿§æ å°å°å¤å¼ 表ä¸ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2222
#, no-c-format
-msgid ""
-"<![CDATA[<join\n"
-" table=\"tablename\"\n"
-" schema=\"owner\"\n"
-" catalog=\"catalog\"\n"
-" fetch=\"join|select\"\n"
-" inverse=\"true|false\"\n"
-" optional=\"true|false\">\n"
-"\n"
-" <key ... />\n"
-"\n"
-" <property ... />\n"
-" ...\n"
-"</join>]]>"
-msgstr ""
+msgid "Using the <literal><join></literal> element, it is possible to map properties of one class to several tables that have a one-to-one relationship. For example:"
+msgstr "ä½¿ç¨ <literal><join></literal> å
ç´ ï¼åè¥å¨è¡¨ä¹é´åå¨ä¸å¯¹ä¸å
³è,å¯ä»¥å°ä¸ä¸ªç±»ç屿§æ å°å°å¤å¼ 表ä¸ã "
#. Tag: para
-#: basic_mapping.xml:2226
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>table</literal>: the name of the joined table."
-msgstr "<literal>table</literal>: è¢«è¿æ¥è¡¨çåç§°ã"
+msgstr "<literal>table</literal>ï¼è¢«è¿æ¥è¡¨çåç§°ã "
#. Tag: para
-#: basic_mapping.xml:2243
-#, fuzzy, no-c-format
-msgid ""
-"<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
-"if set to <literal>join</literal>, the default, Hibernate will use an inner "
-"join to retrieve a <literal><join></literal> defined by a class or its "
-"superclasses. It will use an outer join for a <literal><join></"
-"literal> defined by a subclass. If set to <literal>select</literal> then "
-"Hibernate will use a sequential select for a <literal><join></literal> "
-"defined on a subclass. This will be issued only if a row represents an "
-"instance of the subclass. Inner joins will still be used to retrieve a "
-"<literal><join></literal> defined by the class and its superclasses."
-msgstr ""
-"<literal>fetch</literal> (å¯é - é»è®¤æ¯ <literal>join</literal>): å¦æè®¾ç½®ä¸º"
-"é»è®¤å¼<literal>join</literal>ï¼ Hibernate å°ä½¿ç¨ä¸ä¸ªå
è¿æ¥æ¥å¾å°è¿ä¸ªç±»æå
¶è¶
"
-"ç±»å®ä¹ç<literal><join></literal>ï¼è使ç¨ä¸ä¸ªå¤è¿æ¥æ¥å¾å°å
¶åç±»å®ä¹ç"
-"<literal><join></literal>ãå¦æè®¾ç½®ä¸º<literal>select</literal>ï¼å "
-"Hibernate å°ä¸ºåç±»å®ä¹ç <literal><join></literal>使ç¨é¡ºåºéæ©ãè¿ä»
å¨"
-"ä¸è¡æ°æ®è¡¨ç¤ºä¸ä¸ªåç±»çå¯¹è±¡çæ¶åæä¼åçã对è¿ä¸ªç±»åå
¶è¶
ç±»å®ä¹ç<literal><"
-"join></literal>ï¼ä¾ç¶ä¼ä½¿ç¨å
è¿æ¥å¾å°ã"
+#, no-c-format
+msgid "<literal>fetch</literal> (optional - defaults to <literal>join</literal>): if set to <literal>join</literal>, the default, Hibernate will use an inner join to retrieve a <literal><join></literal> defined by a class or its superclasses. It will use an outer join for a <literal><join></literal> defined by a subclass. If set to <literal>select</literal> then Hibernate will use a sequential select for a <literal><join></literal> defined on a subclass. This will be issued only if a row represents an instance of the subclass. Inner joins will still be used to retrieve a <literal><join></literal> defined by the class and its superclasses."
+msgstr "<literal>fetch</literal>ï¼å¯é â é»è®¤æ¯ <literal>join</literal>ï¼ï¼å¦æè®¾ç½®ä¸ºé»è®¤å¼ <literal>join</literal>ï¼Hibernate å°ä½¿ç¨ä¸ä¸ªå
è¿æ¥æ¥å¾å°è¿ä¸ªç±»æå
¶è¶
ç±»å®ä¹ç <literal><join></literal>ï¼è使ç¨ä¸ä¸ªå¤è¿æ¥æ¥å¾å°å
¶åç±»å®ä¹ç <literal><join></literal>ãå¦æè®¾ç½®ä¸º <literal>select</literal>ï¼å Hibernate å°ä¸ºåç±»å®ä¹ç <literal><join></literal> 使ç¨é¡ºåºéæ©ãè¿ä»
å¨ä¸è¡æ°æ®è¡¨ç¤ºä¸ä¸ªåç±»çå¯¹è±¡çæ¶åæä¼åçã对è¿ä¸ªç±»åå
¶è¶
ç±»å®ä¹ç <literal><join></literal>ï¼ä¾ç¶ä¼ä½¿ç¨å
è¿æ¥å¾å°ã "
#. Tag: para
-#: basic_mapping.xml:2256
-#, fuzzy, no-c-format
-msgid ""
-"<literal>inverse</literal> (optional - defaults to <literal>false</"
-"literal>): if enabled, Hibernate will not insert or update the properties "
-"defined by this join."
-msgstr ""
-"<literal>inverse</literal> (å¯é - é»è®¤æ¯ <literal>false</literal>): 妿æ"
-"å¼ï¼Hibernate ä¸ä¼æå
¥æè
æ´æ°æ¤è¿æ¥å®ä¹ç屿§ã"
+#, no-c-format
+msgid "<literal>inverse</literal> (optional - defaults to <literal>false</literal>): if enabled, Hibernate will not insert or update the properties defined by this join."
+msgstr "<literal>inverse</literal>ï¼å¯é â é»è®¤æ¯ <literal>false</literal>ï¼ï¼å¦ææå¼ï¼Hibernate ä¸ä¼æå
¥æè
æ´æ°æ¤è¿æ¥å®ä¹ç屿§ã "
#. Tag: para
-#: basic_mapping.xml:2263
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optional</literal> (optional - defaults to <literal>false</"
-"literal>): if enabled, Hibernate will insert a row only if the properties "
-"defined by this join are non-null. It will always use an outer join to "
-"retrieve the properties."
-msgstr ""
-"<literal>optional</literal> (å¯é - é»è®¤æ¯ <literal>false</literal>): 妿æ"
-"å¼ï¼Hibernate åªä¼å¨æ¤è¿æ¥å®ä¹ç屿§éç©ºæ¶æå
¥ä¸è¡æ°æ®ï¼å¹¶ä¸æ»æ¯ä½¿ç¨ä¸ä¸ªå¤è¿"
-"æ¥æ¥å¾å°è¿äºå±æ§ã"
+#, no-c-format
+msgid "<literal>optional</literal> (optional - defaults to <literal>false</literal>): if enabled, Hibernate will insert a row only if the properties defined by this join are non-null. It will always use an outer join to retrieve the properties."
+msgstr "<literal>optional</literal>ï¼å¯é â é»è®¤æ¯ <literal>false</literal>ï¼ï¼å¦ææå¼ï¼Hibernate åªä¼å¨æ¤è¿æ¥å®ä¹ç屿§éç©ºæ¶æå
¥ä¸è¡æ°æ®ï¼å¹¶ä¸æ»æ¯ä½¿ç¨ä¸ä¸ªå¤è¿æ¥æ¥å¾å°è¿äºå±æ§ã "
#. Tag: para
-#: basic_mapping.xml:2272
-#, fuzzy, no-c-format
-msgid ""
-"For example, address information for a person can be mapped to a separate "
-"table while preserving value type semantics for all properties:"
-msgstr ""
-"ä¾å¦ï¼ä¸ä¸ªäºº(person)çå°å(address)ä¿¡æ¯å¯ä»¥è¢«æ å°å°åç¬ç表ä¸(å¹¶ä¿çææå±æ§"
-"çå¼ç±»åè¯ä¹)ï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2277
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\"\n"
-" table=\"PERSON\">\n"
-"\n"
-" <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
-"\n"
-" <join table=\"ADDRESS\">\n"
-" <key column=\"ADDRESS_ID\"/>\n"
-" <property name=\"address\"/>\n"
-" <property name=\"zip\"/>\n"
-" <property name=\"country\"/>\n"
-" </join>\n"
-" ...]]>"
-msgstr ""
+msgid "For example, address information for a person can be mapped to a separate table while preserving value type semantics for all properties:"
+msgstr "ä¾å¦ï¼ä¸ä¸ªäººï¼personï¼çå°åï¼addressï¼ä¿¡æ¯å¯ä»¥è¢«æ å°å°åç¬ç表ä¸ï¼å¹¶ä¿çææå±æ§çå¼ç±»åè¯ä¹ï¼ï¼ "
#. Tag: para
-#: basic_mapping.xml:2279
-#, fuzzy, no-c-format
-msgid ""
-"This feature is often only useful for legacy data models. We recommend fewer "
-"tables than classes and a fine-grained domain model. However, it is useful "
-"for switching between inheritance mapping strategies in a single hierarchy, "
-"as explained later."
-msgstr ""
-"æ¤ç¹æ§å¸¸å¸¸å¯¹éçæ°æ®æ¨¡åæç¨ï¼æä»¬æ¨èè¡¨ä¸ªæ°æ¯ç±»ä¸ªæ°å°ï¼ä»¥åç»ç²åº¦çé¢å模"
-"åãç¶èï¼å¨åç¬çç»§æ¿æ ä¸åæ¢ç»§æ¿æ å°çç¥æ¯æç¨çï¼åé¢ä¼è§£éè¿ç¹ã"
+#, no-c-format
+msgid "This feature is often only useful for legacy data models. We recommend fewer tables than classes and a fine-grained domain model. However, it is useful for switching between inheritance mapping strategies in a single hierarchy, as explained later."
+msgstr "æ¤ç¹æ§å¸¸å¸¸å¯¹éçæ°æ®æ¨¡åæç¨ï¼æä»¬æ¨èè¡¨ä¸ªæ°æ¯ç±»ä¸ªæ°å°ï¼ä»¥åç»ç²åº¦çé¢å模åãç¶èï¼å¨åç¬çç»§æ¿æ ä¸åæ¢ç»§æ¿æ å°çç¥æ¯æç¨çï¼åé¢ä¼è§£éè¿ç¹ã "
#. Tag: title
-#: basic_mapping.xml:2289
#, no-c-format
-msgid "<title>Key</title>"
-msgstr ""
+msgid "Key"
+msgstr "Key"
#. Tag: para
-#: basic_mapping.xml:2291
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><key></literal> element has featured a few times within "
-"this guide. It appears anywhere the parent mapping element defines a join to "
-"a new table that references the primary key of the original table. It also "
-"defines the foreign key in the joined table:"
-msgstr ""
-"æä»¬ç®åå·²ç»è§å°è¿<literal><key></literal>å
ç´ å¤æ¬¡äºã è¿ä¸ªå
ç´ å¨ç¶æ å°"
-"å
ç´ å®ä¹äºå¯¹æ°è¡¨çè¿æ¥ï¼å¹¶ä¸å¨è¢«è¿æ¥è¡¨ä¸å®ä¹äºä¸ä¸ªå¤é®å¼ç¨å表ç主é®çæ
åµä¸"
-"ç»å¸¸ä½¿ç¨ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2307
#, no-c-format
-msgid ""
-"<![CDATA[<key\n"
-" column=\"columnname\"\n"
-" on-delete=\"noaction|cascade\"\n"
-" property-ref=\"propertyName\"\n"
-" not-null=\"true|false\"\n"
-" update=\"true|false\"\n"
-" unique=\"true|false\"\n"
-"/>]]>"
-msgstr ""
+msgid "The <literal><key></literal> element has featured a few times within this guide. It appears anywhere the parent mapping element defines a join to a new table that references the primary key of the original table. It also defines the foreign key in the joined table:"
+msgstr "æä»¬ç®åå·²ç»è§å°è¿ <literal><key></literal> å
ç´ å¤æ¬¡äºãè¿ä¸ªå
ç´ å¨ç¶æ å°å
ç´ å®ä¹äºå¯¹æ°è¡¨çè¿æ¥ï¼å¹¶ä¸å¨è¢«è¿æ¥è¡¨ä¸å®ä¹äºä¸ä¸ªå¤é®å¼ç¨å表ç主é®çæ
åµä¸ç»å¸¸ä½¿ç¨ã "
#. Tag: para
-#: basic_mapping.xml:2318
-#, fuzzy, no-c-format
-msgid ""
-"<literal>on-delete</literal> (optional - defaults to <literal>noaction</"
-"literal>): specifies whether the foreign key constraint has database-level "
-"cascade delete enabled."
-msgstr ""
-"<literal>on-delete</literal> (å¯é, é»è®¤æ¯ <literal>noaction</literal>): 表æ"
-"å¤é®å
³èæ¯å¦æå¼æ°æ®åºçº§å«ç级èå é¤ã"
+#, no-c-format
+msgid "<literal>on-delete</literal> (optional - defaults to <literal>noaction</literal>): specifies whether the foreign key constraint has database-level cascade delete enabled."
+msgstr "<literal>on-delete</literal>ï¼å¯éï¼é»è®¤æ¯ <literal>noaction</literal>ï¼ï¼è¡¨æå¤é®å
³èæ¯å¦æå¼æ°æ®åºçº§å«ç级èå é¤ã "
#. Tag: para
-#: basic_mapping.xml:2325
-#, fuzzy, no-c-format
-msgid ""
-"<literal>property-ref</literal> (optional): specifies that the foreign key "
-"refers to columns that are not the primary key of the original table. It is "
-"provided for legacy data."
-msgstr ""
-"<literal>property-ref</literal> (å¯é): 表æå¤é®å¼ç¨çåæ®µä¸æ¯å表ç主é®(æä¾"
-"ç»éçæ°æ®)ã"
+#, no-c-format
+msgid "<literal>property-ref</literal> (optional): specifies that the foreign key refers to columns that are not the primary key of the original table. It is provided for legacy data."
+msgstr "<literal>property-ref</literal>ï¼å¯éï¼ï¼è¡¨æå¤é®å¼ç¨çåæ®µä¸æ¯å表ç主é®ï¼æä¾ç»éçæ°æ®ï¼ã "
#. Tag: para
-#: basic_mapping.xml:2332
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-null</literal> (optional): specifies that the foreign key "
-"columns are not nullable. This is implied whenever the foreign key is also "
-"part of the primary key."
-msgstr ""
-"<literal>not-null</literal> (å¯é): 表æå¤é®çåæ®µä¸å¯ä¸ºç©º(è¿æå³çæ è®ºä½æ¶å¤"
-"é®é½æ¯ä¸»é®çä¸é¨å)ã"
+#, no-c-format
+msgid "<literal>not-null</literal> (optional): specifies that the foreign key columns are not nullable. This is implied whenever the foreign key is also part of the primary key."
+msgstr "<literal>not-null</literal>ï¼å¯éï¼ï¼è¡¨æå¤é®çåæ®µä¸å¯ä¸ºç©ºï¼è¿æå³çæ è®ºä½æ¶å¤é®é½æ¯ä¸»é®çä¸é¨åï¼ã "
#. Tag: para
-#: basic_mapping.xml:2339
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update</literal> (optional): specifies that the foreign key should "
-"never be updated. This is implied whenever the foreign key is also part of "
-"the primary key."
-msgstr ""
-"<literal>update</literal> (å¯é): 表æå¤é®å³ä¸åºè¯¥è¢«æ´æ°(è¿æå³çæ è®ºä½æ¶å¤é®"
-"齿¯ä¸»é®çä¸é¨å)ã"
+#, no-c-format
+msgid "<literal>update</literal> (optional): specifies that the foreign key should never be updated. This is implied whenever the foreign key is also part of the primary key."
+msgstr "<literal>update</literal>ï¼å¯éï¼ï¼è¡¨æå¤é®å³ä¸åºè¯¥è¢«æ´æ°ï¼è¿æå³çæ è®ºä½æ¶å¤é®é½æ¯ä¸»é®çä¸é¨åï¼ã "
#. Tag: para
-#: basic_mapping.xml:2346
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional): specifies that the foreign key should "
-"have a unique constraint. This is implied whenever the foreign key is also "
-"the primary key."
-msgstr ""
-"<literal>unique</literal> (å¯é): 表æå¤é®åºæå¯ä¸æ§çº¦æ (è¿æå³çæ è®ºä½æ¶å¤"
-"é®é½æ¯ä¸»é®çä¸é¨å)ã"
+#, no-c-format
+msgid "<literal>unique</literal> (optional): specifies that the foreign key should have a unique constraint. This is implied whenever the foreign key is also the primary key."
+msgstr "<literal>unique</literal>ï¼å¯éï¼ï¼è¡¨æå¤é®åºæå¯ä¸æ§çº¦æï¼è¿æå³çæ è®ºä½æ¶å¤é®é½æ¯ä¸»é®çä¸é¨åï¼ã "
#. Tag: para
-#: basic_mapping.xml:2354
-#, fuzzy, no-c-format
-msgid ""
-"For systems where delete performance is important, we recommend that all "
-"keys should be defined <literal>on-delete=\"cascade\"</literal>. Hibernate "
-"uses a database-level <literal>ON CASCADE DELETE</literal> constraint, "
-"instead of many individual <literal>DELETE</literal> statements. Be aware "
-"that this feature bypasses Hibernate's usual optimistic locking strategy for "
-"versioned data."
-msgstr ""
-"对é£äºçéå 餿§è½çç³»ç»ï¼æä»¬æ¨èææçé®é½åºè¯¥å®ä¹ä¸º<literal>on-delete="
-"\"cascade\"</literal>ï¼è¿æ · Hibernate å°ä½¿ç¨æ°æ®åºçº§ç<literal>ON CASCADE "
-"DELETE</literal>约æï¼è䏿¯å¤ä¸ª<literal>DELETE</literal>è¯å¥ã 注æï¼è¿ä¸ªç¹"
-"æ§ä¼ç»è¿ Hibernate éå¸¸å¯¹çæ¬æ°æ®(versioned data)éç¨çä¹è§éçç¥ã"
+#, no-c-format
+msgid "For systems where delete performance is important, we recommend that all keys should be defined <literal>on-delete=\"cascade\"</literal>. Hibernate uses a database-level <literal>ON CASCADE DELETE</literal> constraint, instead of many individual <literal>DELETE</literal> statements. Be aware that this feature bypasses Hibernate's usual optimistic locking strategy for versioned data."
+msgstr "对é£äºçéå 餿§è½çç³»ç»ï¼æä»¬æ¨èææçé®é½åºè¯¥å®ä¹ä¸º <literal>on-delete=\"cascade\"</literal>ï¼è¿æ · Hibernate å°ä½¿ç¨æ°æ®åºçº§ç <literal>ON CASCADE DELETE</literal> 约æï¼è䏿¯å¤ä¸ª <literal>DELETE</literal> è¯å¥ã注æï¼è¿ä¸ªç¹æ§ä¼ç»è¿ Hibernate éå¸¸å¯¹çæ¬æ°æ®ï¼versioned dataï¼éç¨çä¹è§éçç¥ã "
#. Tag: para
-#: basic_mapping.xml:2362
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>not-null</literal> and <literal>update</literal> attributes are "
-"useful when mapping a unidirectional one-to-many association. If you map a "
-"unidirectional one-to-many association to a non-nullable foreign key, you "
-"<emphasis>must</emphasis> declare the key column using <literal><key not-"
-"null=\"true\"></literal>."
-msgstr ""
-"<literal>not-null</literal> å <literal>update</literal> 屿§å¨æ å°ååä¸å¯¹å¤"
-"å
³èçæ¶åæç¨ãå¦æä½ æ å°ä¸ä¸ªååä¸å¯¹å¤å
³èå°é空ç(non-nullable)å¤é®ï¼ä½ "
-"<emphasis>å¿
é¡»</emphasis> ç¨<literal><key not-null=\"true\"></literal>"
-"å®ä¹æ¤é®å段ã"
+#, no-c-format
+msgid "The <literal>not-null</literal> and <literal>update</literal> attributes are useful when mapping a unidirectional one-to-many association. If you map a unidirectional one-to-many association to a non-nullable foreign key, you <emphasis>must</emphasis> declare the key column using <literal><key not-null=\"true\"></literal>."
+msgstr "<literal>not-null</literal> å <literal>update</literal> 屿§å¨æ å°ååä¸å¯¹å¤å
³èçæ¶åæç¨ãå¦æä½ æ å°ä¸ä¸ªååä¸å¯¹å¤å
³èå°é空çï¼non-nullableï¼å¤é®ï¼ä½ <emphasis>å¿
é¡»</emphasis> ç¨ <literal><key not-null=\"true\"></literal> å®ä¹æ¤é®å段ã "
#. Tag: title
-#: basic_mapping.xml:2372
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Column and formula elements"
-msgstr "åæ®µåè§åå
ç´ ï¼column and formula elementsï¼"
+msgstr "åæ®µåè§åå
ç´ ï¼column and formula elementsï¼ "
#. Tag: para
-#: basic_mapping.xml:2373
-#, fuzzy, no-c-format
-msgid ""
-"Mapping elements which accept a <literal>column</literal> attribute will "
-"alternatively accept a <literal><column></literal> subelement. "
-"Likewise, <literal><formula></literal> is an alternative to the "
-"<literal>formula</literal> attribute. For example:"
-msgstr ""
-"任使¥å<literal>column</literal>屿§çæ å°å
ç´ é½å¯ä»¥éæ©æ¥å<literal><"
-"column></literal> åå
ç´ ãåæ ·çï¼<literal>formula</literal>åå
ç´ ä¹å¯ä»¥æ¿"
-"æ¢<literal><formula></literal>屿§ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2379
#, no-c-format
-msgid ""
-"<![CDATA[<column\n"
-" name=\"column_name\"\n"
-" length=\"N\"\n"
-" precision=\"N\"\n"
-" scale=\"N\"\n"
-" not-null=\"true|false\"\n"
-" unique=\"true|false\"\n"
-" unique-key=\"multicolumn_unique_key_name\"\n"
-" index=\"index_name\"\n"
-" sql-type=\"sql_type_name\"\n"
-" check=\"SQL expression\"\n"
-" default=\"SQL expression\"/>]]>"
-msgstr ""
+msgid "Mapping elements which accept a <literal>column</literal> attribute will alternatively accept a <literal><column></literal> subelement. Likewise, <literal><formula></literal> is an alternative to the <literal>formula</literal> attribute. For example:"
+msgstr "任使¥å <literal>column</literal> 屿§çæ å°å
ç´ é½å¯ä»¥éæ©æ¥å <literal><column></literal> åå
ç´ ãåæ ·çï¼<literal>formula</literal> åå
ç´ ä¹å¯ä»¥æ¿æ¢ <literal><formula></literal> 屿§ã "
-#. Tag: programlisting
-#: basic_mapping.xml:2381
-#, no-c-format
-msgid "<![CDATA[<formula>SQL expression</formula>]]>"
-msgstr ""
-
#. Tag: para
-#: basic_mapping.xml:2383
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> and <literal>formula</literal> attributes can even "
-"be combined within the same property or association mapping to express, for "
-"example, exotic join conditions."
-msgstr ""
-"<literal>column</literal> å <literal>formula</literal> 屿§çè³å¯ä»¥å¨åä¸ä¸ª"
-"屿§æå
³èæ å°ä¸è¢«åå¹¶æ¥è¡¨è¾¾ï¼ä¾å¦ï¼ä¸äºå¥å¼çè¿æ¥æ¡ä»¶ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2389
#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
-" insert=\"false\" update=\"false\">\n"
-" <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
-" <formula>'MAILING'</formula>\n"
-"</many-to-one>]]>"
-msgstr ""
+msgid "<literal>column</literal> and <literal>formula</literal> attributes can even be combined within the same property or association mapping to express, for example, exotic join conditions."
+msgstr "<literal>column</literal> å <literal>formula</literal> 屿§çè³å¯ä»¥å¨åä¸ä¸ªå±æ§æå
³èæ å°ä¸è¢«åå¹¶æ¥è¡¨è¾¾ï¼ä¾å¦ï¼ä¸äºå¥å¼çè¿æ¥æ¡ä»¶ã "
#. Tag: title
-#: basic_mapping.xml:2394
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Import"
-msgstr "å¼ç¨(import)"
+msgstr "å¼ç¨ï¼importï¼ "
#. Tag: para
-#: basic_mapping.xml:2396
-#, fuzzy, no-c-format
-msgid ""
-"If your application has two persistent classes with the same name, and you "
-"do not want to specify the fully qualified package name in Hibernate "
-"queries, classes can be \"imported\" explicitly, rather than relying upon "
-"<literal>auto-import=\"true\"</literal>. You can also import classes and "
-"interfaces that are not explicitly mapped:"
-msgstr ""
-"åè®¾ä½ çåºç¨ç¨åºæä¸¤ä¸ªåæ ·ååçæä¹
åç±»ï¼ä½æ¯ä½ 䏿³å¨Hibernateæ¥è¯¢ä¸ä½¿ç¨ä»ä»¬"
-"çå
¨éå®åãé¤äºä¾èµ<literal>auto-import=\"true\"</literal>以å¤ï¼ç±»ä¹å¯ä»¥è¢«æ¾"
-"å¼å°âimport(å¼ç¨)âãä½ çè³å¯ä»¥å¼ç¨æ²¡æè¢«æç¡®æ å°çç±»åæ¥å£ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2403
#, no-c-format
-msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
-msgstr ""
+msgid "If your application has two persistent classes with the same name, and you do not want to specify the fully qualified package name in Hibernate queries, classes can be \"imported\" explicitly, rather than relying upon <literal>auto-import=\"true\"</literal>. You can also import classes and interfaces that are not explicitly mapped:"
+msgstr "åè®¾ä½ çåºç¨ç¨åºæä¸¤ä¸ªåæ ·ååçæä¹
åç±»ï¼ä½æ¯ä½ 䏿³å¨ Hibernate æ¥è¯¢ä¸ä½¿ç¨ä»ä»¬çå
¨éå®åãé¤äºä¾èµ <literal>auto-import=\"true\"</literal> 以å¤ï¼ç±»ä¹å¯ä»¥è¢«æ¾å¼å°âimportï¼å¼ç¨ï¼âãä½ çè³å¯ä»¥å¼ç¨æ²¡æè¢«æç¡®æ å°çç±»åæ¥å£ã "
-#. Tag: programlisting
-#: basic_mapping.xml:2410
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<import\n"
-" class=\"ClassName\"\n"
-" rename=\"ShortName\"\n"
-"/>]]>"
-msgstr ""
+msgid "<literal>class</literal>: the fully qualified class name of any Java class."
+msgstr "<literal>class</literal>ï¼ä»»ä½ Java ç±»çå
¨éå®åã "
#. Tag: para
-#: basic_mapping.xml:2413
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal>: the fully qualified class name of any Java class."
-msgstr "<literal>class</literal>: ä»»ä½Javaç±»çå
¨éå®åã"
+#, no-c-format
+msgid "<literal>rename</literal> (optional - defaults to the unqualified class name): a name that can be used in the query language."
+msgstr "<literal>rename</literal>ï¼å¯é â é»è®¤ä¸ºç±»çå
¨éå®åï¼ï¼å¨æ¥è¯¢è¯å¥ä¸å¯ä»¥ä½¿ç¨çååã "
-#. Tag: para
-#: basic_mapping.xml:2418
-#, fuzzy, no-c-format
-msgid ""
-"<literal>rename</literal> (optional - defaults to the unqualified class "
-"name): a name that can be used in the query language."
-msgstr ""
-"<literal>rename</literal> (å¯é - é»è®¤ä¸ºç±»çå
¨éå®å): 卿¥è¯¢è¯å¥ä¸å¯ä»¥ä½¿ç¨ç"
-"ååã"
-
#. Tag: title
-#: basic_mapping.xml:2429
#, no-c-format
-msgid "<title>Any</title>"
-msgstr ""
+msgid "Any"
+msgstr "Any"
#. Tag: para
-#: basic_mapping.xml:2431
-#, fuzzy, no-c-format
-msgid ""
-"There is one more type of property mapping. The <literal><any></"
-"literal> mapping element defines a polymorphic association to classes from "
-"multiple tables. This type of mapping requires more than one column. The "
-"first column contains the type of the associated entity. The remaining "
-"columns contain the identifier. It is impossible to specify a foreign key "
-"constraint for this kind of association. This is not the usual way of "
-"mapping polymorphic associations and you should use this only in special "
-"cases. For example, for audit logs, user session data, etc."
-msgstr ""
-"è¿æ¯å±æ§æ å°çåä¸ç§ç±»åã<literal><any></literal> æ å°å
ç´ å®ä¹äºä¸ç§ä»"
-"å¤ä¸ªè¡¨å°ç±»ç夿å
³èãè¿ç§ç±»åçæ å°å¸¸å¸¸éè¦å¤äºä¸ä¸ªå段ã第ä¸ä¸ªå段ææè¢«å
³"
-"èå®ä½çç±»åï¼å
¶ä»çåæ®µæææ è¯ç¬¦ã对è¿ç§ç±»åçå
³èæ¥è¯´ï¼ä¸å¯è½æå®ä¸ä¸ªå¤é®"
-"约æï¼æä»¥è¿å½ç¶ä¸æ¯æ å°(夿)å
³èçéå¸¸çæ¹å¼ãä½ åªåºè¯¥å¨éå¸¸ç¹æ®çæ
åµä¸ä½¿"
-"ç¨å®(æ¯å¦ï¼å®¡è®¡logï¼ç¨æ·ä¼è¯æ°æ®çç)ã"
+#, no-c-format
+msgid "There is one more type of property mapping. The <literal><any></literal> mapping element defines a polymorphic association to classes from multiple tables. This type of mapping requires more than one column. The first column contains the type of the associated entity. The remaining columns contain the identifier. It is impossible to specify a foreign key constraint for this kind of association. This is not the usual way of mapping polymorphic associations and you should use this only in special cases. For example, for audit logs, user session data, etc."
+msgstr "è¿æ¯å±æ§æ å°çåä¸ç§ç±»åã<literal><any></literal> æ å°å
ç´ å®ä¹äºä¸ç§ä»å¤ä¸ªè¡¨å°ç±»ç夿å
³èãè¿ç§ç±»åçæ å°å¸¸å¸¸éè¦å¤äºä¸ä¸ªå段ã第ä¸ä¸ªå段ææè¢«å
³èå®ä½çç±»åï¼å
¶ä»çåæ®µæææ è¯ç¬¦ã对è¿ç§ç±»åçå
³èæ¥è¯´ï¼ä¸å¯è½æå®ä¸ä¸ªå¤é®çº¦æï¼æä»¥è¿å½ç¶ä¸æ¯æ å°ï¼å¤æï¼å
³èçéå¸¸çæ¹å¼ãä½ åªåºè¯¥å¨éå¸¸ç¹æ®çæ
åµä¸ä½¿ç¨å®(æ¯å¦ï¼å®¡è®¡ logï¼ç¨æ·ä¼è¯æ°æ®çç)ã "
#. Tag: para
-#: basic_mapping.xml:2441
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>meta-type</literal> attribute allows the application to specify "
-"a custom type that maps database column values to persistent classes that "
-"have identifier properties of the type specified by <literal>id-type</"
-"literal>. You must specify the mapping from values of the meta-type to class "
-"names."
-msgstr ""
-"<literal>meta-type</literal> 屿§ä½¿å¾åºç¨ç¨åºè½æå®ä¸ä¸ªå°æ°æ®åºå段ç弿 å°å°"
-"æä¹
åç±»çèªå®ä¹ç±»åãè¿ä¸ªæä¹
åç±»å
嫿ç¨<literal>id-type</literal>æå®çæ "
-"è¯ç¬¦å±æ§ã ä½ å¿
é¡»æå®ä»meta-typeçå¼å°ç±»åçæ å°ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2448
#, no-c-format
-msgid ""
-"<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
-" <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
-" <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
-" <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
-" <column name=\"table_name\"/>\n"
-" <column name=\"id\"/>\n"
-"</any>]]>"
-msgstr ""
+msgid "The <literal>meta-type</literal> attribute allows the application to specify a custom type that maps database column values to persistent classes that have identifier properties of the type specified by <literal>id-type</literal>. You must specify the mapping from values of the meta-type to class names."
+msgstr "<literal>meta-type</literal> 屿§ä½¿å¾åºç¨ç¨åºè½æå®ä¸ä¸ªå°æ°æ®åºå段ç弿 å°å°æä¹
åç±»çèªå®ä¹ç±»åãè¿ä¸ªæä¹
åç±»å
å«æç¨ <literal>id-type</literal> æå®çæ è¯ç¬¦å±æ§ãä½ å¿
é¡»æå®ä» meta-type çå¼å°ç±»åçæ å°ã "
-#. Tag: programlisting
-#: basic_mapping.xml:2459
-#, no-c-format
-msgid ""
-"<![CDATA[<any\n"
-" name=\"propertyName\"\n"
-" id-type=\"idtypename\"\n"
-" meta-type=\"metatypename\"\n"
-" cascade=\"cascade_style\"\n"
-" access=\"field|property|ClassName\"\n"
-" optimistic-lock=\"true|false\"\n"
-">\n"
-" <meta-value ... />\n"
-" <meta-value ... />\n"
-" .....\n"
-" <column .... />\n"
-" <column .... />\n"
-" .....\n"
-"</any>]]>"
-msgstr ""
-
#. Tag: para
-#: basic_mapping.xml:2462
#, no-c-format
msgid "<literal>name</literal>: the property name."
-msgstr "<literal>name</literal>: 屿§å"
+msgstr "<literal>name</literal>ï¼å±æ§å"
#. Tag: para
-#: basic_mapping.xml:2467
#, no-c-format
msgid "<literal>id-type</literal>: the identifier type."
-msgstr "<literal>id-type</literal>: æ è¯ç¬¦ç±»å"
+msgstr "<literal>id-type</literal>ï¼æ è¯ç¬¦ç±»å"
#. Tag: para
-#: basic_mapping.xml:2472
-#, fuzzy, no-c-format
-msgid ""
-"<literal>meta-type</literal> (optional - defaults to <literal>string</"
-"literal>): any type that is allowed for a discriminator mapping."
-msgstr ""
-"<literal>meta-type</literal> (å¯é -é»è®¤æ¯ <literal>string</literal>): å
许辨"
-"嫿 å¿(discriminator)æ å°çä»»ä½ç±»å"
+#, no-c-format
+msgid "<literal>meta-type</literal> (optional - defaults to <literal>string</literal>): any type that is allowed for a discriminator mapping."
+msgstr "<literal>meta-type</literal>ï¼å¯é -é»è®¤æ¯ <literal>string</literal>ï¼ï¼å
è®¸è¾¨å«æ å¿(discriminator)æ å°çä»»ä½ç±»åã "
#. Tag: para
-#: basic_mapping.xml:2478
#, no-c-format
-msgid ""
-"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
-"the cascade style."
-msgstr ""
-"<literal>cascade</literal> (å¯é -é»è®¤æ¯<literal>none</literal>): 级èçç±»å"
+msgid "<literal>cascade</literal> (optional- defaults to <literal>none</literal>): the cascade style."
+msgstr "<literal>cascade</literal>ï¼å¯é â é»è®¤æ¯<literal>none</literal>ï¼ï¼çº§èçç±»åã"
#. Tag: para
-#: basic_mapping.xml:2490
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to this property either do or do not "
-"require acquisition of the optimistic lock. It defines whether a version "
-"increment should occur if this property is dirty."
-msgstr ""
-"<literal>optimistic-lock</literal> (å¯é -é»è®¤æ¯ <literal>true</literal>): 表"
-"ææ´æ°æ¤ç»ä»¶æ¯å¦éè¦è·åä¹è§éãæ¢å¥è¯è¯´ï¼å½è¿ä¸ªå±æ§åèæ¶ï¼æ¯å¦å¢å çæ¬å·"
-"(Version)"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to this property either do or do not require acquisition of the optimistic lock. It defines whether a version increment should occur if this property is dirty."
+msgstr "<literal>optimistic-lock</literal>ï¼å¯é â é»è®¤æ¯ <literal>true</literal>ï¼ï¼è¡¨ææ´æ°æ¤ç»ä»¶æ¯å¦éè¦è·åä¹è§éãæ¢å¥è¯è¯´ï¼å½è¿ä¸ªå±æ§åèæ¶ï¼æ¯å¦å¢å çæ¬å·ï¼Versionï¼ã"
#. Tag: title
-#: basic_mapping.xml:2505
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Hibernate types"
-msgstr "Hibernate çç±»å"
+msgstr "Hibernate çç±»å "
#. Tag: title
-#: basic_mapping.xml:2508
#, no-c-format
msgid "Entities and values"
-msgstr "å®ä½(Entities)åå¼(values)"
+msgstr "å®ä½ï¼Entitiesï¼åå¼ï¼valuesï¼"
#. Tag: para
-#: basic_mapping.xml:2510
#, no-c-format
-msgid ""
-"In relation to the persistence service, Java language-level objects are "
-"classified into two groups:"
-msgstr ""
+msgid "In relation to the persistence service, Java language-level objects are classified into two groups:"
+msgstr "åæä¹
åæå¡ç¸æ¯ï¼Java 级å«ç对象å为两个ç»å«ï¼"
#. Tag: para
-#: basic_mapping.xml:2515
-#, fuzzy, no-c-format
-msgid ""
-"An <emphasis>entity</emphasis> exists independently of any other objects "
-"holding references to the entity. Contrast this with the usual Java model, "
-"where an unreferenced object is garbage collected. Entities must be "
-"explicitly saved and deleted. Saves and deletions, however, can be "
-"<emphasis>cascaded</emphasis> from a parent entity to its children. This is "
-"different from the ODMG model of object persistence by reachability and "
-"corresponds more closely to how application objects are usually used in "
-"large systems. Entities support circular and shared references. They can "
-"also be versioned."
-msgstr ""
-"<emphasis>å®ä½entity</emphasis> ç¬ç«äºä»»ä½ææå®ä½å¼ç¨ç对象ãä¸é常çJava模"
-"åç¸æ¯ï¼ä¸å被å¼ç¨ç对象ä¼è¢«å½ä½å徿¶éæãå®ä½å¿
须被æ¾å¼çä¿ååå é¤(é¤éä¿"
-"ååå 餿¯ä»ç¶å®ä½ååå®ä½å¼åç<emphasis>级è</emphasis>)ãè¿åODMG模åä¸å
³"
-"äºå¯¹è±¡éè¿å¯è§¦åä¿ææä¹
æ§æä¸äºä¸åââæ¯è¾èµ·æ¥æ´å æ¥è¿åºç¨ç¨åºå¯¹è±¡é常å¨ä¸ä¸ª"
-"大系ç»ä¸çä½¿ç¨æ¹æ³ãå®ä½æ¯æå¾ªç¯å¼ç¨å交åå¼ç¨ï¼å®ä»¬ä¹å¯ä»¥å ä¸çæ¬ä¿¡æ¯ã"
+#, no-c-format
+msgid "An <emphasis>entity</emphasis> exists independently of any other objects holding references to the entity. Contrast this with the usual Java model, where an unreferenced object is garbage collected. Entities must be explicitly saved and deleted. Saves and deletions, however, can be <emphasis>cascaded</emphasis> from a parent entity to its children. This is different from the ODMG model of object persistence by reachability and corresponds more closely to how application objects are usually used in large systems. Entities support circular and shared references. They can also be versioned."
+msgstr "<emphasis>å®ä½entity</emphasis> ç¬ç«äºä»»ä½ææå®ä½å¼ç¨ç对象ãä¸é常ç Java 模åç¸æ¯ï¼ä¸å被å¼ç¨ç对象ä¼è¢«å½ä½å徿¶éæãå®ä½å¿
须被æ¾å¼çä¿ååå é¤ï¼é¤éä¿ååå 餿¯ä»ç¶å®ä½ååå®ä½å¼åç<emphasis>级è</emphasis>ï¼ãè¿å ODMG 模åä¸å
³äºå¯¹è±¡éè¿å¯è§¦åä¿ææä¹
æ§æä¸äºä¸å â æ¯è¾èµ·æ¥æ´å æ¥è¿åºç¨ç¨åºå¯¹è±¡é常å¨ä¸ä¸ªå¤§ç³»ç»ä¸çä½¿ç¨æ¹æ³ãå®ä½æ¯æå¾ªç¯å¼ç¨å交åå¼ç¨ï¼å®ä»¬ä¹å¯ä»¥å ä¸çæ¬ä¿¡æ¯ã "
#. Tag: para
-#: basic_mapping.xml:2526
-#, fuzzy, no-c-format
-msgid ""
-"An entity's persistent state consists of references to other entities and "
-"instances of <emphasis>value</emphasis> types. Values are primitives: "
-"collections (not what is inside a collection), components and certain "
-"immutable objects. Unlike entities, values in particular collections and "
-"components, <emphasis>are</emphasis> persisted and deleted by reachability. "
-"Since value objects and primitives are persisted and deleted along with "
-"their containing entity, they cannot be independently versioned. Values have "
-"no independent identity, so they cannot be shared by two entities or "
-"collections."
-msgstr ""
-"ä¸ä¸ªå®ä½çæä¹
ç¶æå
嫿åå
¶ä»å®ä½å<emphasis>å¼</emphasis>ç±»åå®ä¾çå¼ç¨ãå¼"
-"å¯ä»¥æ¯åå§ç±»åï¼éå(䏿¯éåä¸ç对象)ï¼ç»ä»¶æè
ç¹å®çä¸å¯å对象ãä¸å®ä½ä¸"
-"åï¼å¼(ç¹å«æ¯éååç»ä»¶)æ¯éè¿å¯è§¦åæ§æ¥è¿è¡æä¹
ååå é¤çãå 为å¼å¯¹è±¡(ååå§"
-"ç±»åæ°æ®)æ¯éçå
å«ä»ä»¬çå®ä½è被æä¹
ååå é¤çï¼ä»ä»¬ä¸è½è¢«ç¬ç«çå ä¸çæ¬ä¿¡"
-"æ¯ã弿²¡æç¬ç«çæ è¯ï¼æä»¥ä»ä»¬ä¸è½è¢«ä¸¤ä¸ªå®ä½æè
éåå
±äº«ã"
+#, no-c-format
+msgid "An entity's persistent state consists of references to other entities and instances of <emphasis>value</emphasis> types. Values are primitives: collections (not what is inside a collection), components and certain immutable objects. Unlike entities, values in particular collections and components, <emphasis>are</emphasis> persisted and deleted by reachability. Since value objects and primitives are persisted and deleted along with their containing entity, they cannot be independently versioned. Values have no independent identity, so they cannot be shared by two entities or collections."
+msgstr "ä¸ä¸ªå®ä½çæä¹
ç¶æå
嫿åå
¶ä»å®ä½å<emphasis>å¼</emphasis>ç±»åå®ä¾çå¼ç¨ãå¼å¯ä»¥æ¯åå§ç±»åï¼éåï¼ä¸æ¯éåä¸ç对象ï¼ï¼ç»ä»¶æè
ç¹å®çä¸å¯å对象ãä¸å®ä½ä¸åï¼å¼ï¼ç¹å«æ¯éååç»ä»¶ï¼æ¯éè¿å¯è§¦åæ§æ¥è¿è¡æä¹
ååå é¤çãå 为å¼å¯¹è±¡ï¼ååå§ç±»åæ°æ®ï¼æ¯éçå
å«ä»ä»¬çå®ä½è被æä¹
ååå é¤çï¼ä»ä»¬ä¸è½è¢«ç¬ç«çå ä¸çæ¬ä¿¡æ¯ã弿²¡æç¬ç«çæ è¯ï¼æä»¥ä»ä»¬ä¸è½è¢«ä¸¤ä¸ªå®ä½æè
éåå
±äº«ã "
#. Tag: para
-#: basic_mapping.xml:2537
-#, fuzzy, no-c-format
-msgid ""
-"Until now, we have been using the term \"persistent class\" to refer to "
-"entities. We will continue to do that. Not all user-defined classes with a "
-"persistent state, however, are entities. A <emphasis>component</emphasis> is "
-"a user-defined class with value semantics. A Java property of type "
-"<literal>java.lang.String</literal> also has value semantics. Given this "
-"definition, all types (classes) provided by the JDK have value type "
-"semantics in Java, while user-defined types can be mapped with entity or "
-"value type semantics. This decision is up to the application developer. An "
-"entity class in a domain model will normally have shared references to a "
-"single instance of that class, while composition or aggregation usually "
-"translates to a value type."
-msgstr ""
-"ç´å°ç°å¨ï¼æä»¬é½ä¸ç´ä½¿ç¨æ¯è¯âæä¹
ç±»â(persistent class)æ¥ä»£è¡¨å®ä½ãæä»¬ä»ç¶ä¼"
-"è¿ä¹åã ç¶èä¸¥æ ¼è¯´æ¥ï¼ä¸æ¯ææçç¨æ·èªå®ä¹çï¼å¸¦ææä¹
åç¶æçç±»é½æ¯å®ä½ã"
-"<emphasis>ç»ä»¶</emphasis>å°±æ¯ç¨æ·èªå®ä¹ç±»ï¼å´æ¯å¼è¯ä¹çã<literal>java.lang."
-"String</literal>ç±»åçjava屿§ä¹æ¯å¼è¯ä¹çãç»äºè¿ä¸ªå®ä¹ä»¥åï¼æä»¬å¯ä»¥è¯´ææ"
-"JDKæä¾çç±»å(ç±»)齿¯å¼ç±»åçè¯ä¹ï¼èç¨äºèªå®ä¹ç±»åå¯è½è¢«æ å°ä¸ºå®ä½ç±»åæå¼ç±»"
-"åè¯ä¹ãéç¨åªç§ç±»åçè¯ä¹åå³äºå¼å人åãå¨é¢å模åä¸ï¼å¯»æ¾å®ä½ç±»çä¸ä¸ªå¥½çº¿"
-"ç´¢æ¯å
±äº«å¼ç¨æåè¿ä¸ªç±»çåä¸å®ä¾ï¼èç»åæèåé常被转å为å¼ç±»åã"
+#, no-c-format
+msgid "Until now, we have been using the term \"persistent class\" to refer to entities. We will continue to do that. Not all user-defined classes with a persistent state, however, are entities. A <emphasis>component</emphasis> is a user-defined class with value semantics. A Java property of type <literal>java.lang.String</literal> also has value semantics. Given this definition, all types (classes) provided by the JDK have value type semantics in Java, while user-defined types can be mapped with entity or value type semantics. This decision is up to the application developer. An entity class in a domain model will normally have shared references to a single instance of that class, while composition or aggregation usually translates to a value type."
+msgstr "ç´å°ç°å¨ï¼æä»¬é½ä¸ç´ä½¿ç¨æ¯è¯âæä¹
ç±»âï¼persistent classï¼æ¥ä»£è¡¨å®ä½ãæä»¬ä»ç¶ä¼è¿ä¹åãç¶èä¸¥æ ¼è¯´æ¥ï¼ä¸æ¯ææçç¨æ·èªå®ä¹çï¼å¸¦ææä¹
åç¶æçç±»é½æ¯å®ä½ã<emphasis>ç»ä»¶</emphasis>å°±æ¯ç¨æ·èªå®ä¹ç±»ï¼å´æ¯å¼è¯ä¹çã<literal>java.lang.String</literal> ç±»åç java 屿§ä¹æ¯å¼è¯ä¹çãç»äºè¿ä¸ªå®ä¹ä»¥åï¼æä»¬å¯ä»¥è¯´ææ JDK æä¾çç±»åï¼ç±»ï¼é½æ¯å¼ç±»åçè¯ä¹ï¼èç¨äºèªå®ä¹ç±»åå¯è½è¢«æ å°ä¸ºå®ä½ç±»åæå¼ç±»åè¯ä¹ãéç¨åªç§ç±»åçè¯ä¹åå³äºå¼å人åãå¨é¢å模åä¸ï¼å¯»æ¾å®ä½ç±»çä¸ä¸ªå¥½çº¿ç´¢æ¯å
±äº«å¼ç¨æåè¿ä¸ªç±»çåä¸å®ä¾ï¼èç»åæèåé常被转å为å¼ç±»åã "
#. Tag: para
-#: basic_mapping.xml:2551
-#, fuzzy, no-c-format
+#, no-c-format
msgid "We will revisit both concepts throughout this reference guide."
-msgstr "æä»¬ä¼å¨æ¬ææ¡£ä¸éå¤ç¢°å°è¿ä¸¤ä¸ªæ¦å¿µã"
+msgstr "æä»¬ä¼å¨æ¬ææ¡£ä¸éå¤ç¢°å°è¿ä¸¤ä¸ªæ¦å¿µã "
#. Tag: para
-#: basic_mapping.xml:2555
-#, fuzzy, no-c-format
-msgid ""
-"The challenge is to map the Java type system, and the developers' definition "
-"of entities and value types, to the SQL/database type system. The bridge "
-"between both systems is provided by Hibernate. For entities, <literal><"
-"class></literal>, <literal><subclass></literal> and so on are used. "
-"For value types we use <literal><property></literal>, <literal><"
-"component></literal>etc., that usually have a <literal>type</literal> "
-"attribute. The value of this attribute is the name of a Hibernate "
-"<emphasis>mapping type</emphasis>. Hibernate provides a range of mappings "
-"for standard JDK value types out of the box. You can write your own mapping "
-"types and implement your own custom conversion strategies."
-msgstr ""
-"ææå¨äºå°javaç±»åç³»ç»(åå¼åè
å®ä¹çå®ä½åå¼ç±»å)æ å°å° SQL/æ°æ®åºç±»åç³»ç»ã"
-"Hibernateæä¾äºè¿æ¥ä¸¤ä¸ªç³»ç»ä¹é´çæ¡¥æ¢ï¼å¯¹äºå®ä½ç±»åï¼æä»¬ä½¿ç¨<literal><"
-"class></literal>, <literal><subclass></literal> ççã对äºå¼ç±»åï¼æ"
-"ä»¬ä½¿ç¨ <literal><property></literal>, <literal><component></"
-"literal> åå
¶ä»ï¼é常è·éç<literal>type</literal>屿§ãè¿ä¸ªå±æ§ç弿¯"
-"Hibernate ç<emphasis>æ å°ç±»å</emphasis>çååãHibernateæä¾äºè®¸å¤ç°æçæ "
-"å°(æ åçJDKå¼ç±»å)ãä½ ä¹å¯ä»¥ç¼åèªå·±çæ å°ç±»åå¹¶å®ç°èªå®ä¹ç忢çç¥ï¼éåæ"
-"们ä¼çå°è¿ç¹ã"
+#, no-c-format
+msgid "The challenge is to map the Java type system, and the developers' definition of entities and value types, to the SQL/database type system. The bridge between both systems is provided by Hibernate. For entities, <literal><class></literal>, <literal><subclass></literal> and so on are used. For value types we use <literal><property></literal>, <literal><component></literal>etc., that usually have a <literal>type</literal> attribute. The value of this attribute is the name of a Hibernate <emphasis>mapping type</emphasis>. Hibernate provides a range of mappings for standard JDK value types out of the box. You can write your own mapping types and implement your own custom conversion strategies."
+msgstr "ææå¨äºå° java ç±»åç³»ç»(åå¼åè
å®ä¹çå®ä½åå¼ç±»å)æ å°å° SQL/æ°æ®åºç±»åç³»ç»ãHibernate æä¾äºè¿æ¥ä¸¤ä¸ªç³»ç»ä¹é´çæ¡¥æ¢ï¼å¯¹äºå®ä½ç±»åï¼æä»¬ä½¿ç¨ <literal><class></literal>ï¼<literal><subclass></literal> ççã对äºå¼ç±»åï¼æä»¬ä½¿ç¨ <literal><property></literal>ï¼<literal><component></literal> åå
¶ä»ï¼é常è·éç <literal>type</literal> 屿§ãè¿ä¸ªå±æ§ç弿¯Hibernate ç<emphasis>æ å°ç±»å</emphasis>çååãHibernate æä¾äºè®¸å¤ç°æçæ å°ï¼æ åç JDK å¼ç±»åï¼ãä½ ä¹å¯ä»¥ç¼åèªå·±çæ å°ç±»åå¹¶å®ç°èªå®ä¹ç忢çç¥ï¼éåæä»¬ä¼çå°è¿ç¹ã "
#. Tag: para
-#: basic_mapping.xml:2568
-#, fuzzy, no-c-format
-msgid ""
-"With the exception of collections, all built-in Hibernate types support null "
-"semantics."
-msgstr "ææçHibernateå
建类åï¼é¤äºcollections以å¤ï¼é½æ¯æç©º(null)è¯ä¹ã"
+#, no-c-format
+msgid "With the exception of collections, all built-in Hibernate types support null semantics."
+msgstr "ææç Hibernate å
建类åï¼é¤äº collections 以å¤ï¼é½æ¯æç©ºï¼nullï¼è¯ä¹ã "
#. Tag: title
-#: basic_mapping.xml:2575
#, no-c-format
msgid "Basic value types"
msgstr "åºæ¬å¼ç±»å"
#. Tag: para
-#: basic_mapping.xml:2577
-#, fuzzy, no-c-format
-msgid ""
-"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
-"categorized into the following:"
-msgstr "å
建ç <emphasis>åºæ¬æ å°ç±»å</emphasis>å¯ä»¥å¤§è´å为 <placeholder-1/>"
+#, no-c-format
+msgid "The built-in <emphasis>basic mapping types</emphasis> can be roughly categorized into the following:"
+msgstr "å
ç½®ç <emphasis>basic mapping types</emphasis> å¯ä»¥å¤§è´å°å类为ï¼"
-#. Tag: literal
-#: basic_mapping.xml:2582
+#. Tag: term
#, no-c-format
-msgid ""
-"integer, long, short, float, double, character, byte, boolean, yes_no, "
-"true_false"
-msgstr ""
-"integer, long, short, float, double, character, byte, boolean, yes_no, "
-"true_false"
+msgid "<literal>integer, long, short, float, double, character, byte, boolean, yes_no, true_false</literal>"
+msgstr "<literal>integer, long, short, float, double, character, byte, boolean, yes_no, true_false</literal>"
#. Tag: para
-#: basic_mapping.xml:2585
#, no-c-format
-msgid ""
-"Type mappings from Java primitives or wrapper classes to appropriate (vendor-"
-"specific) SQL column types. <literal>boolean, yes_no</literal> and "
-"<literal>true_false</literal> are all alternative encodings for a Java "
-"<literal>boolean</literal> or <literal>java.lang.Boolean</literal>."
-msgstr ""
-"è¿äºç±»åé½å¯¹åºJavaçåå§ç±»åæè
å
¶å°è£
ç±»ï¼æ¥ç¬¦å(ç¹å®ååç)SQL åæ®µç±»åã"
-"<literal>boolean, yes_no</literal> å <literal>true_false</literal>齿¯Java "
-"ä¸<literal>boolean</literal> æè
<literal>java.lang.Boolean</literal>çå¦å¤è¯´"
-"æ³ã"
+msgid "Type mappings from Java primitives or wrapper classes to appropriate (vendor-specific) SQL column types. <literal>boolean, yes_no</literal> and <literal>true_false</literal> are all alternative encodings for a Java <literal>boolean</literal> or <literal>java.lang.Boolean</literal>."
+msgstr "è¿äºç±»åé½å¯¹åº Java çåå§ç±»åæè
å
¶å°è£
ç±»ï¼æ¥ç¬¦åï¼ç¹å®ååçï¼SQL åæ®µç±»åã<literal>boolean, yes_no</literal> å <literal>true_false</literal> 齿¯ Java ä¸ <literal>boolean</literal> æè
<literal>java.lang.Boolean</literal> çå¦å¤è¯´æ³ã"
-#. Tag: literal
-#: basic_mapping.xml:2594
+#. Tag: term
#, no-c-format
-msgid "string"
-msgstr "string"
+msgid "<literal>string</literal>"
+msgstr "<literal>string</literal>"
#. Tag: para
-#: basic_mapping.xml:2596
#, no-c-format
-msgid ""
-"A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</"
-"literal> (or Oracle <literal>VARCHAR2</literal>)."
-msgstr ""
-"ä»<literal>java.lang.String</literal> å° <literal>VARCHAR</literal> (æè
"
-"Oracleç <literal>VARCHAR2</literal>)çæ å°ã"
+msgid "A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>)."
+msgstr "ä» <literal>java.lang.String</literal> å° <literal>VARCHAR</literal>ï¼æè
Oracle ç <literal>VARCHAR2</literal>ï¼çæ å°ã"
-#. Tag: literal
-#: basic_mapping.xml:2603
+#. Tag: term
#, no-c-format
-msgid "date, time, timestamp"
-msgstr "date, time, timestamp"
+msgid "<literal>date, time, timestamp</literal>"
+msgstr "<literal>date, time, timestamp</literal>"
#. Tag: para
-#: basic_mapping.xml:2605
#, no-c-format
-msgid ""
-"Type mappings from <literal>java.util.Date</literal> and its subclasses to "
-"SQL types <literal>DATE</literal>, <literal>TIME</literal> and "
-"<literal>TIMESTAMP</literal> (or equivalent)."
-msgstr ""
-"ä»<literal>java.util.Date</literal>åå
¶åç±»å°SQLç±»å<literal>DATE</literal>, "
-"<literal>TIME</literal> å<literal>TIMESTAMP</literal> (æçä»·ç±»å)çæ å°ã"
+msgid "Type mappings from <literal>java.util.Date</literal> and its subclasses to SQL types <literal>DATE</literal>, <literal>TIME</literal> and <literal>TIMESTAMP</literal> (or equivalent)."
+msgstr "ä» <literal>java.util.Date</literal> åå
¶åç±»å° SQL ç±»å <literal>DATE</literal>ï¼<literal>TIME</literal> å <literal>TIMESTAMP</literal>ï¼æçä»·ç±»åï¼çæ å°ã"
-#. Tag: literal
-#: basic_mapping.xml:2613
+#. Tag: term
#, no-c-format
-msgid "calendar, calendar_date"
-msgstr "calendar, calendar_date"
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr "<literal>calendar, calendar_date</literal>"
#. Tag: para
-#: basic_mapping.xml:2615
#, no-c-format
-msgid ""
-"Type mappings from <literal>java.util.Calendar</literal> to SQL types "
-"<literal>TIMESTAMP</literal> and <literal>DATE</literal> (or equivalent)."
-msgstr ""
-"ä»<literal>java.util.Calendar</literal> å°SQL ç±»å<literal>TIMESTAMP</"
-"literal>å <literal>DATE</literal>(æçä»·ç±»å)çæ å°ã"
+msgid "Type mappings from <literal>java.util.Calendar</literal> to SQL types <literal>TIMESTAMP</literal> and <literal>DATE</literal> (or equivalent)."
+msgstr "ä» <literal>java.util.Calendar</literal> å° SQL ç±»å <literal>TIMESTAMP</literal> å <literal>DATE</literal>ï¼æçä»·ç±»åï¼çæ å°ã"
-#. Tag: literal
-#: basic_mapping.xml:2623
+#. Tag: term
#, no-c-format
-msgid "big_decimal, big_integer"
-msgstr "big_decimal, big_integer"
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr "<literal>big_decimal, big_integer</literal>"
#. Tag: para
-#: basic_mapping.xml:2625
#, no-c-format
-msgid ""
-"Type mappings from <literal>java.math.BigDecimal</literal> and <literal>java."
-"math.BigInteger</literal> to <literal>NUMERIC</literal> (or Oracle "
-"<literal>NUMBER</literal>)."
-msgstr ""
-"ä»<literal>java.math.BigDecimal</literal>å<literal>java.math.BigInteger</"
-"literal>å°<literal>NUMERIC</literal> (æè
Oracle ç<literal>NUMBER</literal>"
-"ç±»å)çæ å°ã"
+msgid "Type mappings from <literal>java.math.BigDecimal</literal> and <literal>java.math.BigInteger</literal> to <literal>NUMERIC</literal> (or Oracle <literal>NUMBER</literal>)."
+msgstr "ä» <literal>java.math.BigDecimal</literal> å <literal>java.math.BigInteger</literal> å° <literal>NUMERIC</literal>ï¼æè
Oracle ç <literal>NUMBER</literal>ç±»åï¼çæ å°ã"
-#. Tag: literal
-#: basic_mapping.xml:2633
+#. Tag: term
#, no-c-format
-msgid "locale, timezone, currency"
-msgstr "locale, timezone, currency"
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr "<literal>locale, timezone, currency</literal>"
#. Tag: para
-#: basic_mapping.xml:2635
#, no-c-format
-msgid ""
-"Type mappings from <literal>java.util.Locale</literal>, <literal>java.util."
-"TimeZone</literal> and <literal>java.util.Currency</literal> to "
-"<literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). "
-"Instances of <literal>Locale</literal> and <literal>Currency</literal> are "
-"mapped to their ISO codes. Instances of <literal>TimeZone</literal> are "
-"mapped to their <literal>ID</literal>."
-msgstr ""
-"ä»<literal>java.util.Locale</literal>, <literal>java.util.TimeZone</literal> "
-"å<literal>java.util.Currency</literal> å°<literal>VARCHAR</literal> (æè
"
-"Oracle ç<literal>VARCHAR2</literal>ç±»å)çæ å°. <literal>Locale</literal>å "
-"<literal>Currency</literal> çå®ä¾è¢«æ å°ä¸ºå®ä»¬çISO代ç ã<literal>TimeZone</"
-"literal>çå®ä¾è¢«å½±å°ä¸ºå®ç<literal>ID</literal>ã"
+msgid "Type mappings from <literal>java.util.Locale</literal>, <literal>java.util.TimeZone</literal> and <literal>java.util.Currency</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). Instances of <literal>Locale</literal> and <literal>Currency</literal> are mapped to their ISO codes. Instances of <literal>TimeZone</literal> are mapped to their <literal>ID</literal>."
+msgstr "ä» <literal>java.util.Locale</literal>ï¼<literal>java.util.TimeZone</literal> å <literal>java.util.Currency</literal> å° <literal>VARCHAR</literal>ï¼æè
Oracle ç <literal>VARCHAR2</literal> ç±»åï¼çæ å°ã<literal>Locale</literal> å <literal>Currency</literal> çå®ä¾è¢«æ å°ä¸ºå®ä»¬ç ISO 代ç ã<literal>TimeZone</literal> çå®ä¾è¢«å½±å°ä¸ºå®ç <literal>ID</literal>ã"
-#. Tag: literal
-#: basic_mapping.xml:2647
+#. Tag: term
#, no-c-format
-msgid "class"
-msgstr "class"
+msgid "<literal>class</literal>"
+msgstr "<literal>class</literal>"
#. Tag: para
-#: basic_mapping.xml:2649
#, no-c-format
-msgid ""
-"A type mapping from <literal>java.lang.Class</literal> to <literal>VARCHAR</"
-"literal> (or Oracle <literal>VARCHAR2</literal>). A <literal>Class</literal> "
-"is mapped to its fully qualified name."
-msgstr ""
-"ä»<literal>java.lang.Class</literal> å° <literal>VARCHAR</literal> (æè
"
-"Oracle ç<literal>VARCHAR2</literal>ç±»å)çæ å°ã<literal>Class</literal>被æ "
-"å°ä¸ºå®çå
¨éå®åã"
+msgid "A type mapping from <literal>java.lang.Class</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). A <literal>Class</literal> is mapped to its fully qualified name."
+msgstr "ä» <literal>java.lang.Class</literal> å° <literal>VARCHAR</literal>ï¼æè
Oracle ç <literal>VARCHAR2</literal> ç±»åï¼çæ å°ã<literal>Class</literal> 被æ å°ä¸ºå®çå
¨éå®åã"
-#. Tag: literal
-#: basic_mapping.xml:2657
+#. Tag: term
#, no-c-format
-msgid "binary"
-msgstr "binary"
+msgid "<literal>binary</literal>"
+msgstr "<literal>binary</literal>"
#. Tag: para
-#: basic_mapping.xml:2659
#, no-c-format
msgid "Maps byte arrays to an appropriate SQL binary type."
-msgstr "æåèæ°ç»(byte arrays)æ å°ä¸ºå¯¹åºç SQLäºè¿å¶ç±»åã"
+msgstr "æåèæ°ç»ï¼byte arraysï¼æ å°ä¸ºå¯¹åºç SQL äºè¿å¶ç±»åã"
-#. Tag: literal
-#: basic_mapping.xml:2665
+#. Tag: term
#, no-c-format
-msgid "text"
-msgstr "text"
+msgid "<literal>text</literal>"
+msgstr "<literal>text</literal>"
#. Tag: para
-#: basic_mapping.xml:2667
#, no-c-format
-msgid ""
-"Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
-"literal> type."
-msgstr ""
-"æé¿Javaå符串æ å°ä¸ºSQLç<literal>CLOB</literal>æè
<literal>TEXT</literal>ç±»"
-"åã"
+msgid "Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</literal> type."
+msgstr "æé¿ Java å符串æ å°ä¸º SQL ç <literal>CLOB</literal> æè
<literal>TEXT</literal> ç±»åã"
-#. Tag: literal
-#: basic_mapping.xml:2674
+#. Tag: term
#, no-c-format
-msgid "serializable"
-msgstr "serializable"
+msgid "<literal>serializable</literal>"
+msgstr "<literal>serializable</literal>"
#. Tag: para
-#: basic_mapping.xml:2676
-#, fuzzy, no-c-format
-msgid ""
-"Maps serializable Java types to an appropriate SQL binary type. You can also "
-"indicate the Hibernate type <literal>serializable</literal> with the name of "
-"a serializable Java class or interface that does not default to a basic type."
-msgstr ""
-"æå¯åºååçJavaç±»åæ å°å°å¯¹åºçSQLäºè¿å¶ç±»åãä½ ä¹å¯ä»¥ä¸ºä¸ä¸ªå¹¶éé»è®¤ä¸ºåºæ¬ç±»"
-"åçå¯åºååJavaç±»æè
æ¥å£æå®Hibernateç±»å<literal>serializable</literal>ã"
+#, no-c-format
+msgid "Maps serializable Java types to an appropriate SQL binary type. You can also indicate the Hibernate type <literal>serializable</literal> with the name of a serializable Java class or interface that does not default to a basic type."
+msgstr "æå¯åºååç Java ç±»åæ å°å°å¯¹åºç SQL äºè¿å¶ç±»åãä½ ä¹å¯ä»¥ä¸ºä¸ä¸ªå¹¶éé»è®¤ä¸ºåºæ¬ç±»åçå¯åºåå Java ç±»æè
æ¥å£æå® Hibernate ç±»å <literal>serializable</literal>ã "
-#. Tag: literal
-#: basic_mapping.xml:2685
+#. Tag: term
#, no-c-format
-msgid "clob, blob"
-msgstr "clob, blob"
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>clob, blob</literal>"
#. Tag: para
-#: basic_mapping.xml:2687
-#, fuzzy, no-c-format
-msgid ""
-"Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and "
-"<literal>java.sql.Blob</literal>. These types can be inconvenient for some "
-"applications, since the blob or clob object cannot be reused outside of a "
-"transaction. Driver support is patchy and inconsistent."
-msgstr ""
-"JDBC ç±» <literal>java.sql.Clob</literal> å <literal>java.sql.Blob</literal>"
-"çæ å°ãæäºç¨åºå¯è½ä¸éå使ç¨è¿ä¸ªç±»åï¼å 为blobåclob对象å¯è½å¨ä¸ä¸ªäºå¡ä¹å¤"
-"æ¯æ æ³éç¨çã(èä¸, 驱å¨ç¨åºå¯¹è¿ç§ç±»åçæ¯æå
满çè¡¥ä¸åååçç¾ã)"
+#, no-c-format
+msgid "Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and <literal>java.sql.Blob</literal>. These types can be inconvenient for some applications, since the blob or clob object cannot be reused outside of a transaction. Driver support is patchy and inconsistent."
+msgstr "JDBC ç±» <literal>java.sql.Clob</literal> å <literal>java.sql.Blob</literal>çæ å°ãæäºç¨åºå¯è½ä¸éå使ç¨è¿ä¸ªç±»åï¼å 为 blob å clob 对象å¯è½å¨ä¸ä¸ªäºå¡ä¹å¤æ¯æ æ³éç¨çãï¼èä¸, 驱å¨ç¨åºå¯¹è¿ç§ç±»åçæ¯æå
满çè¡¥ä¸åååçç¾ãï¼ "
-#. Tag: literal
-#: basic_mapping.xml:2697
+#. Tag: term
#, no-c-format
-msgid ""
-"imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
-"imm_serializable, imm_binary"
-msgstr ""
-"imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
-"imm_serializable, imm_binary"
+msgid "<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary</literal>"
+msgstr "<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary</literal>"
#. Tag: para
-#: basic_mapping.xml:2701
-#, fuzzy, no-c-format
-msgid ""
-"Type mappings for what are considered mutable Java types. This is where "
-"Hibernate makes certain optimizations appropriate only for immutable Java "
-"types, and the application treats the object as immutable. For example, you "
-"should not call <literal>Date.setTime()</literal> for an instance mapped as "
-"<literal>imm_timestamp</literal>. To change the value of the property, and "
-"have that change made persistent, the application must assign a new, "
-"nonidentical, object to the property."
-msgstr ""
-"ä¸è¬æ¥è¯´ï¼æ å°ç±»å被åå®ä¸ºæ¯å¯åçJavaç±»åï¼åªæå¯¹ä¸å¯åJavaç±»åï¼Hibernateä¼"
-"éåç¹å®çä¼åæªæ½ï¼åºç¨ç¨åºä¼æè¿äºå¯¹è±¡ä½ä¸ºä¸å¯å对象å¤çãæ¯å¦ï¼ä½ ä¸åºè¯¥å¯¹"
-"ä½ä¸º<literal>imm_timestamp</literal>æ å°çDateæ§è¡<literal>Date.setTime()</"
-"literal>ãè¦æ¹å屿§çå¼ï¼å¹¶ä¸ä¿åè¿ä¸æ¹åï¼åºç¨ç¨åºå¿
须对è¿ä¸å±æ§éæ°è®¾ç½®ä¸"
-"个æ°çï¼ä¸ä¸æ ·çï¼å¯¹è±¡ã"
+#, no-c-format
+msgid "Type mappings for what are considered mutable Java types. This is where Hibernate makes certain optimizations appropriate only for immutable Java types, and the application treats the object as immutable. For example, you should not call <literal>Date.setTime()</literal> for an instance mapped as <literal>imm_timestamp</literal>. To change the value of the property, and have that change made persistent, the application must assign a new, nonidentical, object to the property."
+msgstr "ä¸è¬æ¥è¯´ï¼æ å°ç±»å被åå®ä¸ºæ¯å¯åç Java ç±»åï¼åªæå¯¹ä¸å¯å Java ç±»åï¼Hibernate ä¼éåç¹å®çä¼åæªæ½ï¼åºç¨ç¨åºä¼æè¿äºå¯¹è±¡ä½ä¸ºä¸å¯å对象å¤çãæ¯å¦ï¼ä½ ä¸åºè¯¥å¯¹ä½ä¸º <literal>imm_timestamp</literal> æ å°ç Date æ§è¡ <literal>Date.setTime()</literal>ãè¦æ¹å屿§çå¼ï¼å¹¶ä¸ä¿åè¿ä¸æ¹åï¼åºç¨ç¨åºå¿
须对è¿ä¸å±æ§éæ°è®¾ç½®ä¸ä¸ªæ°çï¼ä¸ä¸æ ·çï¼å¯¹è±¡ã "
#. Tag: para
-#: basic_mapping.xml:2716
-#, fuzzy, no-c-format
-msgid ""
-"Unique identifiers of entities and collections can be of any basic type "
-"except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</"
-"literal>. Composite identifiers are also allowed. See below for more "
-"information."
-msgstr ""
-"å®ä½åå
¶éåçå¯ä¸æ è¯å¯ä»¥æ¯é¤äº<literal>binary</literal>ã <literal>blob</"
-"literal> å <literal>clob</literal>ä¹å¤çä»»ä½åºç¡ç±»åã(èåæ è¯ä¹æ¯å
许çï¼"
-"åé¢ä¼è¯´å°ã)"
+#, no-c-format
+msgid "Unique identifiers of entities and collections can be of any basic type except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</literal>. Composite identifiers are also allowed. See below for more information."
+msgstr "å®ä½åå
¶éåçå¯ä¸æ è¯å¯ä»¥æ¯é¤äº <literal>binary</literal>ã <literal>blob</literal> å <literal>clob</literal> ä¹å¤çä»»ä½åºç¡ç±»åãï¼èåæ è¯ä¹æ¯å
许çï¼åé¢ä¼è¯´å°ãï¼"
#. Tag: para
-#: basic_mapping.xml:2722
#, no-c-format
-msgid ""
-"The basic value types have corresponding <literal>Type</literal> constants "
-"defined on <literal>org.hibernate.Hibernate</literal>. For example, "
-"<literal>Hibernate.STRING</literal> represents the <literal>string</literal> "
-"type."
-msgstr ""
-"å¨<literal>org.hibernate.Hibernate</literal>ä¸ï¼å®ä¹äºåºç¡ç±»å对åºç"
-"<literal>Type</literal>常éãæ¯å¦ï¼<literal>Hibernate.STRING</literal>代表"
-"<literal>string</literal> ç±»åã"
+msgid "The basic value types have corresponding <literal>Type</literal> constants defined on <literal>org.hibernate.Hibernate</literal>. For example, <literal>Hibernate.STRING</literal> represents the <literal>string</literal> type."
+msgstr "å¨ <literal>org.hibernate.Hibernate</literal> ä¸ï¼å®ä¹äºåºç¡ç±»å对åºç <literal>Type</literal> 常éãæ¯å¦ï¼<literal>Hibernate.STRING</literal> 代表 <literal>string</literal> ç±»åã"
#. Tag: title
-#: basic_mapping.xml:2731
#, no-c-format
msgid "Custom value types"
msgstr "èªå®ä¹å¼ç±»å"
#. Tag: para
-#: basic_mapping.xml:2733
-#, fuzzy, no-c-format
-msgid ""
-"It is relatively easy for developers to create their own value types. For "
-"example, you might want to persist properties of type <literal>java.lang."
-"BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does "
-"not provide a built-in type for this. Custom types are not limited to "
-"mapping a property, or collection element, to a single table column. So, for "
-"example, you might have a Java property <literal>getName()</literal>/"
-"<literal>setName()</literal> of type <literal>java.lang.String</literal> "
-"that is persisted to the columns <literal>FIRST_NAME</literal>, "
-"<literal>INITIAL</literal>, <literal>SURNAME</literal>."
-msgstr ""
-"å¼åè
å建å±äºä»ä»¬èªå·±çå¼ç±»å乿¯å¾å®¹æçãæ¯å¦è¯´ï¼ä½ å¯è½å¸ææä¹
å"
-"<literal>java.lang.BigInteger</literal>ç±»åç屿§ï¼æä¹
åæä¸º"
-"<literal>VARCHAR</literal>åæ®µãHibernate没æå
ç½®è¿æ ·ä¸ç§ç±»åãèªå®ä¹ç±»åè½å¤"
-"æ å°ä¸ä¸ªå±æ§(æéåå
ç´ )å°ä¸æ¢ä¸ä¸ªæ°æ®åºè¡¨åæ®µãæ¯å¦è¯´ï¼ä½ å¯è½æè¿æ ·çJavaå±"
-"æ§ï¼<literal>getName()</literal>/<literal>setName()</literal>ï¼è¿æ¯"
-"<literal>java.lang.String</literal>ç±»åçï¼å¯¹åºçæä¹
åå°ä¸ä¸ªå段ï¼"
-"<literal>FIRST_NAME</literal>, <literal>INITIAL</literal>, <literal>SURNAME</"
-"literal>ã"
+#, no-c-format
+msgid "It is relatively easy for developers to create their own value types. For example, you might want to persist properties of type <literal>java.lang.BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does not provide a built-in type for this. Custom types are not limited to mapping a property, or collection element, to a single table column. So, for example, you might have a Java property <literal>getName()</literal>/<literal>setName()</literal> of type <literal>java.lang.String</literal> that is persisted to the columns <literal>FIRST_NAME</literal>, <literal>INITIAL</literal>, <literal>SURNAME</literal>."
+msgstr "å¼åè
å建å±äºä»ä»¬èªå·±çå¼ç±»å乿¯å¾å®¹æçãæ¯å¦è¯´ï¼ä½ å¯è½å¸ææä¹
å <literal>java.lang.BigInteger</literal> ç±»åç屿§ï¼æä¹
åæä¸º <literal>VARCHAR</literal> åæ®µãHibernate没æå
ç½®è¿æ ·ä¸ç§ç±»åãèªå®ä¹ç±»åè½å¤æ å°ä¸ä¸ªå±æ§(æéåå
ç´ )å°ä¸æ¢ä¸ä¸ªæ°æ®åºè¡¨åæ®µãæ¯å¦è¯´ï¼ä½ å¯è½æè¿æ ·ç Java 屿§ï¼<literal>getName()</literal>/<literal>setName()</literal>ï¼è¿æ¯ <literal>java.lang.String</literal> ç±»åçï¼å¯¹åºçæä¹
åå°ä¸ä¸ªå段ï¼<literal>FIRST_NAME</literal>ï¼<literal>INITIAL</literal>ï¼<literal>SURNAME</literal>ã "
#. Tag: para
-#: basic_mapping.xml:2744
-#, fuzzy, no-c-format
-msgid ""
-"To implement a custom type, implement either <literal>org.hibernate."
-"UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and "
-"declare properties using the fully qualified classname of the type. View "
-"<literal>org.hibernate.test.DoubleStringType</literal> to see the kind of "
-"things that are possible."
-msgstr ""
-"è¦å®ç°ä¸ä¸ªèªå®ä¹ç±»åï¼å¯ä»¥å®ç°<literal>org.hibernate.UserType</literal>æ"
-"<literal>org.hibernate.CompositeUserType</literal>ä¸çä»»ä¸ä¸ªï¼å¹¶ä¸ä½¿ç¨ç±»åç"
-"Javaå
¨éå®ç±»åæ¥å®ä¹å±æ§ã请æ¥ç<literal>org.hibernate.test."
-"DoubleStringType</literal>è¿ä¸ªä¾åï¼çç宿¯æä¹åçã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2752
#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test."
-"DoubleStringType\">\n"
-" <column name=\"first_string\"/>\n"
-" <column name=\"second_string\"/>\n"
-"</property>]]>"
-msgstr ""
+msgid "To implement a custom type, implement either <literal>org.hibernate.UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and declare properties using the fully qualified classname of the type. View <literal>org.hibernate.test.DoubleStringType</literal> to see the kind of things that are possible."
+msgstr "è¦å®ç°ä¸ä¸ªèªå®ä¹ç±»åï¼å¯ä»¥å®ç° <literal>org.hibernate.UserType</literal> æ <literal>org.hibernate.CompositeUserType</literal> ä¸çä»»ä¸ä¸ªï¼å¹¶ä¸ä½¿ç¨ç±»åç Java å
¨éå®ç±»åæ¥å®ä¹å±æ§ã请æ¥ç <literal>org.hibernate.test.DoubleStringType</literal> è¿ä¸ªä¾åï¼çç宿¯æä¹åçã "
#. Tag: para
-#: basic_mapping.xml:2754
#, no-c-format
-msgid ""
-"Notice the use of <literal><column></literal> tags to map a property "
-"to multiple columns."
-msgstr ""
-"注æä½¿ç¨<literal><column></literal>æ ç¾æ¥æä¸ä¸ªå±æ§æ å°å°å¤ä¸ªå段çå"
-"æ³ã"
+msgid "Notice the use of <literal><column></literal> tags to map a property to multiple columns."
+msgstr "注æä½¿ç¨ <literal><column></literal> æ ç¾æ¥æä¸ä¸ªå±æ§æ å°å°å¤ä¸ªå段çåæ³ã"
#. Tag: para
-#: basic_mapping.xml:2759
#, no-c-format
-msgid ""
-"The <literal>CompositeUserType</literal>, <literal>EnhancedUserType</"
-"literal>, <literal>UserCollectionType</literal>, and "
-"<literal>UserVersionType</literal> interfaces provide support for more "
-"specialized uses."
-msgstr ""
-"<literal>CompositeUserType</literal>, <literal>EnhancedUserType</literal>, "
-"<literal>UserCollectionType</literal>, å <literal>UserVersionType</literal> "
-"æ¥å£ä¸ºæ´ç¹æ®çä½¿ç¨æ¹å¼æä¾æ¯æã"
+msgid "The <literal>CompositeUserType</literal>, <literal>EnhancedUserType</literal>, <literal>UserCollectionType</literal>, and <literal>UserVersionType</literal> interfaces provide support for more specialized uses."
+msgstr "<literal>CompositeUserType</literal>ï¼<literal>EnhancedUserType</literal>ï¼<literal>UserCollectionType</literal> å <literal>UserVersionType</literal> æ¥å£ä¸ºæ´ç¹æ®çä½¿ç¨æ¹å¼æä¾æ¯æã"
#. Tag: para
-#: basic_mapping.xml:2765
-#, fuzzy, no-c-format
-msgid ""
-"You can even supply parameters to a <literal>UserType</literal> in the "
-"mapping file. To do this, your <literal>UserType</literal> must implement "
-"the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. "
-"To supply parameters to your custom type, you can use the <literal><"
-"type></literal> element in your mapping files."
-msgstr ""
-"ä½ çè³å¯ä»¥å¨ä¸ä¸ªæ 尿件䏿ä¾åæ°ç»ä¸ä¸ª<literal>UserType</literal>ã 为äºè¿"
-"æ ·åï¼ä½ ç<literal>UserType</literal>å¿
é¡»å®ç°<literal>org.hibernate.usertype."
-"ParameterizedType</literal>æ¥å£ã为äºç»èªå®ä¹ç±»åæä¾åæ°ï¼ä½ å¯ä»¥å¨æ å°æä»¶ä¸"
-"使ç¨<literal><type></literal>å
ç´ ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2773
#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"priority\">\n"
-" <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
-" <param name=\"default\">0</param>\n"
-" </type>\n"
-"</property>]]>"
-msgstr ""
+msgid "You can even supply parameters to a <literal>UserType</literal> in the mapping file. To do this, your <literal>UserType</literal> must implement the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. To supply parameters to your custom type, you can use the <literal><type></literal> element in your mapping files."
+msgstr "ä½ çè³å¯ä»¥å¨ä¸ä¸ªæ 尿件䏿ä¾åæ°ç»ä¸ä¸ª <literal>UserType</literal>ã 为äºè¿æ ·åï¼ä½ ç <literal>UserType</literal> å¿
é¡»å®ç° <literal>org.hibernate.usertype.ParameterizedType</literal> æ¥å£ã为äºç»èªå®ä¹ç±»åæä¾åæ°ï¼ä½ å¯ä»¥å¨æ å°æä»¶ä¸ä½¿ç¨ <literal><type></literal> å
ç´ ã "
#. Tag: para
-#: basic_mapping.xml:2775
#, no-c-format
-msgid ""
-"The <literal>UserType</literal> can now retrieve the value for the parameter "
-"named <literal>default</literal> from the <literal>Properties</literal> "
-"object passed to it."
-msgstr ""
-"ç°å¨ï¼<literal>UserType</literal> å¯ä»¥ä»ä¼ å
¥ç<literal>Properties</literal>对"
-"象ä¸å¾å°<literal>default</literal> åæ°çå¼ã"
+msgid "The <literal>UserType</literal> can now retrieve the value for the parameter named <literal>default</literal> from the <literal>Properties</literal> object passed to it."
+msgstr "ç°å¨ï¼<literal>UserType</literal> å¯ä»¥ä»ä¼ å
¥ç <literal>Properties</literal> 对象ä¸å¾å° <literal>default</literal> åæ°çå¼ã"
#. Tag: para
-#: basic_mapping.xml:2780
-#, fuzzy, no-c-format
-msgid ""
-"If you regularly use a certain <literal>UserType</literal>, it is useful to "
-"define a shorter name for it. You can do this using the <literal><"
-"typedef></literal> element. Typedefs assign a name to a custom type, and "
-"can also contain a list of default parameter values if the type is "
-"parameterized."
-msgstr ""
-"å¦æä½ é常é¢ç¹å°ä½¿ç¨æä¸<literal>UserType</literal>ï¼å¯ä»¥ä¸ºä»å®ä¹ä¸ä¸ªç®ç§°ãè¿"
-"å¯ä»¥éè¿ä½¿ç¨ <literal><typedef></literal>å
ç´ æ¥å®ç°ãTypedefs为ä¸èªå®ä¹"
-"ç±»åèµäºä¸ä¸ªåç§°ï¼å¹¶ä¸å¦ææ¤ç±»åæ¯åæ°åçï¼è¿å¯ä»¥å
å«ä¸ç³»åé»è®¤çåæ°å¼ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2787
#, no-c-format
-msgid ""
-"<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" "
-"name=\"default_zero\">\n"
-" <param name=\"default\">0</param>\n"
-"</typedef>]]>"
-msgstr ""
+msgid "If you regularly use a certain <literal>UserType</literal>, it is useful to define a shorter name for it. You can do this using the <literal><typedef></literal> element. Typedefs assign a name to a custom type, and can also contain a list of default parameter values if the type is parameterized."
+msgstr "å¦æä½ é常é¢ç¹å°ä½¿ç¨æä¸ <literal>UserType</literal>ï¼å¯ä»¥ä¸ºä»å®ä¹ä¸ä¸ªç®ç§°ãè¿å¯ä»¥éè¿ä½¿ç¨ <literal><typedef></literal> å
ç´ æ¥å®ç°ãTypedefs 为ä¸èªå®ä¹ç±»åèµäºä¸ä¸ªåç§°ï¼å¹¶ä¸å¦ææ¤ç±»åæ¯åæ°åçï¼è¿å¯ä»¥å
å«ä¸ç³»åé»è®¤çåæ°å¼ã "
-#. Tag: programlisting
-#: basic_mapping.xml:2789
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
-msgstr ""
+msgid "It is also possible to override the parameters supplied in a typedef on a case-by-case basis by using type parameters on the property mapping."
+msgstr "ä¹å¯ä»¥æ ¹æ®å
·ä½æ¡ä¾éè¿å±æ§æ å°ä¸çç±»ååæ°è¦çå¨ typedef 䏿ä¾çåæ°ã"
#. Tag: para
-#: basic_mapping.xml:2791
#, no-c-format
-msgid ""
-"It is also possible to override the parameters supplied in a typedef on a "
-"case-by-case basis by using type parameters on the property mapping."
-msgstr "ä¹å¯ä»¥æ ¹æ®å
·ä½æ¡ä¾éè¿å±æ§æ å°ä¸çç±»ååæ°è¦çå¨typedef䏿ä¾çåæ°ã"
+msgid "Even though Hibernate's rich range of built-in types and support for components means you will rarely need to use a custom type, it is considered good practice to use custom types for non-entity classes that occur frequently in your application. For example, a <literal>MonetaryAmount</literal> class is a good candidate for a <literal>CompositeUserType</literal>, even though it could be mapped as a component. One reason for this is abstraction. With a custom type, your mapping documents would be protected against changes to the way monetary values are represented."
+msgstr "尽管 Hibernate å
建ç丰å¯çç±»åå对ç»ä»¶çæ¯ææå³çä½ å¯è½å¾å° <emphasis>éè¦</emphasis>使ç¨èªå®ä¹ç±»åãä¸è¿ï¼ä¸ºé£äºå¨ä½ çåºç¨ä¸ç»å¸¸åºç°ç(éå®ä½)类使ç¨èªå®ä¹ç±»å乿¯ä¸ä¸ªå¥½æ¹æ³ãä¾å¦ï¼ä¸ä¸ª <literal>MonetaryAmount</literal> ç±»ä½¿ç¨ <literal>CompositeUserType</literal> æ¥æ å°æ¯ä¸éçéæ©ï¼è½ç¶ä»å¯ä»¥å¾å®¹æå°è¢«æ å°æç»ä»¶ãè¿æ ·åç卿ºä¹ä¸æ¯æ½è±¡ã使ç¨èªå®ä¹ç±»åï¼ä»¥ååè¥ä½ æ¹å表示éé¢çæ¹æ³æ¶ï¼å®å¯ä»¥ä¿è¯æ å°æä»¶ä¸éè¦ä¿®æ¹ã "
-#. Tag: para
-#: basic_mapping.xml:2796
-#, fuzzy, no-c-format
-msgid ""
-"Even though Hibernate's rich range of built-in types and support for "
-"components means you will rarely need to use a custom type, it is considered "
-"good practice to use custom types for non-entity classes that occur "
-"frequently in your application. For example, a <literal>MonetaryAmount</"
-"literal> class is a good candidate for a <literal>CompositeUserType</"
-"literal>, even though it could be mapped as a component. One reason for this "
-"is abstraction. With a custom type, your mapping documents would be "
-"protected against changes to the way monetary values are represented."
-msgstr ""
-"尽管 Hibernate å
建ç丰å¯çç±»åå对ç»ä»¶çæ¯ææå³çä½ å¯è½å¾å° <emphasis>éè¦"
-"</emphasis>使ç¨èªå®ä¹ç±»åãä¸è¿ï¼ä¸ºé£äºå¨ä½ çåºç¨ä¸ç»å¸¸åºç°ç(éå®ä½)类使ç¨èª"
-"å®ä¹ç±»å乿¯ä¸ä¸ªå¥½æ¹æ³ãä¾å¦ï¼ä¸ä¸ª<literal>MonetaryAmount</literal>类使ç¨"
-"<literal>CompositeUserType</literal>æ¥æ å°æ¯ä¸éçéæ©ï¼è½ç¶ä»å¯ä»¥å¾å®¹æå°è¢«"
-"æ å°æç»ä»¶ãè¿æ ·åç卿ºä¹ä¸æ¯æ½è±¡ã使ç¨èªå®ä¹ç±»åï¼ä»¥ååè¥ä½ æ¹å表示éé¢ç"
-"æ¹æ³æ¶ï¼å®å¯ä»¥ä¿è¯æ å°æä»¶ä¸éè¦ä¿®æ¹ã"
-
#. Tag: title
-#: basic_mapping.xml:2812
#, no-c-format
msgid "Mapping a class more than once"
msgstr "夿¬¡æ å°åä¸ä¸ªç±»"
#. Tag: para
-#: basic_mapping.xml:2813
-#, fuzzy, no-c-format
-msgid ""
-"It is possible to provide more than one mapping for a particular persistent "
-"class. In this case, you must specify an <emphasis>entity name</emphasis> to "
-"disambiguate between instances of the two mapped entities. By default, the "
-"entity name is the same as the class name. Hibernate lets you specify the "
-"entity name when working with persistent objects, when writing queries, or "
-"when mapping associations to the named entity."
-msgstr ""
-"对ç¹å®çæä¹
åç±»ï¼æ å°å¤æ¬¡æ¯å
许çãè¿ç§æ
å½¢ä¸ï¼ä½ å¿
é¡»æå®<emphasis>entity "
-"name</emphasis>æ¥åºå«ä¸åæ å°å®ä½ç对象å®ä¾ãï¼é»è®¤æ
åµä¸ï¼å®ä½åååç±»åæ¯ç¸"
-"åçãï¼ Hibernate卿使ä¹
å对象ãç¼åæ¥è¯¢æ¡ä»¶ï¼æè
æå
³èæ å°å°æå®å®ä½"
-"æ¶ï¼å
è®¸ä½ æå®è¿ä¸ªentity nameï¼å®ä½ååï¼ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2821
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Contract\" table=\"Contracts\"\n"
-" entity-name=\"CurrentContract\">\n"
-" ...\n"
-" <set name=\"history\" inverse=\"true\"\n"
-" order-by=\"effectiveEndDate desc\">\n"
-" <key column=\"currentContractId\"/>\n"
-" <one-to-many entity-name=\"HistoricalContract\"/>\n"
-" </set>\n"
-"</class>\n"
-"\n"
-"<class name=\"Contract\" table=\"ContractHistory\"\n"
-" entity-name=\"HistoricalContract\">\n"
-" ...\n"
-" <many-to-one name=\"currentContract\"\n"
-" column=\"currentContractId\"\n"
-" entity-name=\"CurrentContract\"/>\n"
-"</class>]]>"
-msgstr ""
+msgid "It is possible to provide more than one mapping for a particular persistent class. In this case, you must specify an <emphasis>entity name</emphasis> to disambiguate between instances of the two mapped entities. By default, the entity name is the same as the class name. Hibernate lets you specify the entity name when working with persistent objects, when writing queries, or when mapping associations to the named entity."
+msgstr "对ç¹å®çæä¹
åç±»ï¼æ å°å¤æ¬¡æ¯å
许çãè¿ç§æ
å½¢ä¸ï¼ä½ å¿
é¡»æå® <emphasis>entity name</emphasis> æ¥åºå«ä¸åæ å°å®ä½ç对象å®ä¾ãï¼é»è®¤æ
åµä¸ï¼å®ä½åååç±»åæ¯ç¸åçãï¼ Hibernate 卿使ä¹
å对象ãç¼åæ¥è¯¢æ¡ä»¶ï¼æè
æå
³èæ å°å°æå®å®ä½æ¶ï¼å
è®¸ä½ æå®è¿ä¸ª entity nameï¼å®ä½ååï¼ã "
#. Tag: para
-#: basic_mapping.xml:2823
-#, fuzzy, no-c-format
-msgid ""
-"Associations are now specified using <literal>entity-name</literal> instead "
-"of <literal>class</literal>."
-msgstr ""
-"注æè¿éå
³èæ¯å¦ä½ç¨<literal>entity-name</literal>æ¥ä»£æ¿<literal>class</"
-"literal>çã"
+#, no-c-format
+msgid "Associations are now specified using <literal>entity-name</literal> instead of <literal>class</literal>."
+msgstr "注æè¿éå
³èæ¯å¦ä½ç¨ <literal>entity-name</literal> æ¥ä»£æ¿ <literal>class</literal> çã "
#. Tag: title
-#: basic_mapping.xml:2831
#, no-c-format
msgid "SQL quoted identifiers"
-msgstr "SQLä¸å¼å·å
å´çæ è¯ç¬¦"
+msgstr "SQL ä¸å¼å·å
å´çæ è¯ç¬¦"
#. Tag: para
-#: basic_mapping.xml:2832
-#, fuzzy, no-c-format
-msgid ""
-"You can force Hibernate to quote an identifier in the generated SQL by "
-"enclosing the table or column name in backticks in the mapping document. "
-"Hibernate will use the correct quotation style for the SQL <literal>Dialect</"
-"literal>. This is usually double quotes, but the SQL Server uses brackets "
-"and MySQL uses backticks."
-msgstr ""
-"ä½ å¯éè¿å¨æ å°ææ¡£ä¸ä½¿ç¨ååå¼å·(`)æè¡¨åæè
åæ®µåå
å´èµ·æ¥ï¼ä»¥å¼ºå¶Hibernate"
-"å¨çæçSQL䏿æ è¯ç¬¦ç¨å¼å·å
å´èµ·æ¥ãHibernateä¼ä½¿ç¨ç¸åºç"
-"SQL<literal>Dialect</literal>(æ¹è¨)æ¥ä½¿ç¨æ£ç¡®çå¼å·é£æ ¼(é常æ¯åå¼å·ï¼ä½æ¯å¨"
-"SQL Server䏿¯æ¬å·ï¼MySQL䏿¯ååå¼å·)ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2839
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
-" <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/></"
-"id>\n"
-" <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
-" ...\n"
-"</class>]]>"
-msgstr ""
+msgid "You can force Hibernate to quote an identifier in the generated SQL by enclosing the table or column name in backticks in the mapping document. Hibernate will use the correct quotation style for the SQL <literal>Dialect</literal>. This is usually double quotes, but the SQL Server uses brackets and MySQL uses backticks."
+msgstr "ä½ å¯éè¿å¨æ å°ææ¡£ä¸ä½¿ç¨ååå¼å·ï¼`ï¼æè¡¨åæè
åæ®µåå
å´èµ·æ¥ï¼ä»¥å¼ºå¶ Hibernate å¨çæç SQL 䏿æ è¯ç¬¦ç¨å¼å·å
å´èµ·æ¥ãHibernate ä¼ä½¿ç¨ç¸åºç SQL<literal>Dialect</literal>ï¼æ¹è¨ï¼æ¥ä½¿ç¨æ£ç¡®çå¼å·é£æ ¼(é常æ¯åå¼å·ï¼ä½æ¯å¨ SQL Server 䏿¯æ¬å·ï¼MySQL 䏿¯ååå¼å·)ã "
#. Tag: title
-#: basic_mapping.xml:2845
#, no-c-format
msgid "Metadata alternatives"
-msgstr "å
¶ä»å
æ°æ®(Metadata)"
+msgstr "å
¶ä»å
æ°æ®ï¼Metadataï¼"
#. Tag: para
-#: basic_mapping.xml:2847
-#, fuzzy, no-c-format
-msgid ""
-"XML does not suit all users so there are some alternative ways to define O/R "
-"mapping metadata in Hibernate."
-msgstr ""
-"XML å¹¶ä¸éç¨äºææäºº, å æ¤æå
¶ä»å®ä¹Hibernate O/R æ å°å
æ°æ®(metadata)çæ¹"
-"æ³ã"
+#, no-c-format
+msgid "XML does not suit all users so there are some alternative ways to define O/R mapping metadata in Hibernate."
+msgstr "XML å¹¶ä¸éç¨äºææäºº, å æ¤æå
¶ä»å®ä¹ Hibernate O/R æ å°å
æ°æ®ï¼metadataï¼çæ¹æ³ã "
#. Tag: title
-#: basic_mapping.xml:2852
#, no-c-format
msgid "Using XDoclet markup"
msgstr "ä½¿ç¨ XDoclet æ è®°"
#. Tag: para
-#: basic_mapping.xml:2854
-#, fuzzy, no-c-format
-msgid ""
-"Many Hibernate users prefer to embed mapping information directly in "
-"sourcecode using XDoclet <literal>@hibernate.tags</literal>. We do not cover "
-"this approach in this reference guide since it is considered part of "
-"XDoclet. However, we include the following example of the <literal>Cat</"
-"literal> class with XDoclet mappings:"
-msgstr ""
-"å¾å¤Hibernate使ç¨è
æ´å欢使ç¨XDoclet<literal>@hibernate.tags</literal>å°æ å°"
-"ä¿¡æ¯ç´æ¥åµå
¥å°æºä»£ç ä¸ãæä»¬ä¸ä¼å¨æ¬ææ¡£ä¸æ¶åè¿ä¸ªæ¹æ³ï¼å ä¸ºä¸¥æ ¼è¯´æ¥ï¼è¿å±äº"
-"XDocletçä¸é¨åãç¶èï¼æä»¬å
å«äºå¦ä¸ä½¿ç¨XDocletæ å°ç<literal>Cat</literal>"
-"ç±»çä¾åã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2861
#, no-c-format
-msgid ""
-"<![CDATA[package eg;\n"
-"import java.util.Set;\n"
-"import java.util.Date;\n"
-"\n"
-"/**\n"
-" * @hibernate.class\n"
-" * table=\"CATS\"\n"
-" */\n"
-"public class Cat {\n"
-" private Long id; // identifier\n"
-" private Date birthdate;\n"
-" private Cat mother;\n"
-" private Set kittens\n"
-" private Color color;\n"
-" private char sex;\n"
-" private float weight;\n"
-"\n"
-" /*\n"
-" * @hibernate.id\n"
-" * generator-class=\"native\"\n"
-" * column=\"CAT_ID\"\n"
-" */\n"
-" public Long getId() {\n"
-" return id;\n"
-" }\n"
-" private void setId(Long id) {\n"
-" this.id=id;\n"
-" }\n"
-"\n"
-" /**\n"
-" * @hibernate.many-to-one\n"
-" * column=\"PARENT_ID\"\n"
-" */\n"
-" public Cat getMother() {\n"
-" return mother;\n"
-" }\n"
-" void setMother(Cat mother) {\n"
-" this.mother = mother;\n"
-" }\n"
-"\n"
-" /**\n"
-" * @hibernate.property\n"
-" * column=\"BIRTH_DATE\"\n"
-" */\n"
-" public Date getBirthdate() {\n"
-" return birthdate;\n"
-" }\n"
-" void setBirthdate(Date date) {\n"
-" birthdate = date;\n"
-" }\n"
-" /**\n"
-" * @hibernate.property\n"
-" * column=\"WEIGHT\"\n"
-" */\n"
-" public float getWeight() {\n"
-" return weight;\n"
-" }\n"
-" void setWeight(float weight) {\n"
-" this.weight = weight;\n"
-" }\n"
-"\n"
-" /**\n"
-" * @hibernate.property\n"
-" * column=\"COLOR\"\n"
-" * not-null=\"true\"\n"
-" */\n"
-" public Color getColor() {\n"
-" return color;\n"
-" }\n"
-" void setColor(Color color) {\n"
-" this.color = color;\n"
-" }\n"
-" /**\n"
-" * @hibernate.set\n"
-" * inverse=\"true\"\n"
-" * order-by=\"BIRTH_DATE\"\n"
-" * @hibernate.collection-key\n"
-" * column=\"PARENT_ID\"\n"
-" * @hibernate.collection-one-to-many\n"
-" */\n"
-" public Set getKittens() {\n"
-" return kittens;\n"
-" }\n"
-" void setKittens(Set kittens) {\n"
-" this.kittens = kittens;\n"
-" }\n"
-" // addKitten not needed by Hibernate\n"
-" public void addKitten(Cat kitten) {\n"
-" kittens.add(kitten);\n"
-" }\n"
-"\n"
-" /**\n"
-" * @hibernate.property\n"
-" * column=\"SEX\"\n"
-" * not-null=\"true\"\n"
-" * update=\"false\"\n"
-" */\n"
-" public char getSex() {\n"
-" return sex;\n"
-" }\n"
-" void setSex(char sex) {\n"
-" this.sex=sex;\n"
-" }\n"
-"}]]>"
-msgstr ""
+msgid "Many Hibernate users prefer to embed mapping information directly in sourcecode using XDoclet <literal>@hibernate.tags</literal>. We do not cover this approach in this reference guide since it is considered part of XDoclet. However, we include the following example of the <literal>Cat</literal> class with XDoclet mappings:"
+msgstr "å¾å¤ Hibernate 使ç¨è
æ´åæ¬¢ä½¿ç¨ XDoclet<literal>@hibernate.tags</literal> å°æ å°ä¿¡æ¯ç´æ¥åµå
¥å°æºä»£ç ä¸ãæä»¬ä¸ä¼å¨æ¬ææ¡£ä¸æ¶åè¿ä¸ªæ¹æ³ï¼å ä¸ºä¸¥æ ¼è¯´æ¥ï¼è¿å±äº XDoclet çä¸é¨åãç¶èï¼æä»¬å
å«äºå¦ä¸ä½¿ç¨ XDoclet æ å°ç <literal>Cat</literal> ç±»çä¾åã "
#. Tag: para
-#: basic_mapping.xml:2863
-#, fuzzy, no-c-format
+#, no-c-format
msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
-msgstr "åèHibernateç½ç«æ´å¤çXdocletåHibernateçä¾å"
+msgstr "åè Hibernate ç½ç«æ´å¤ç Xdoclet å Hibernate çä¾åã"
#. Tag: title
-#: basic_mapping.xml:2870
#, no-c-format
msgid "Using JDK 5.0 Annotations"
-msgstr "ä½¿ç¨ JDK 5.0 çæ³¨è§£(Annotation)"
+msgstr "ä½¿ç¨ JDK 5.0 çæ³¨è§£ï¼Annotationï¼"
#. Tag: para
-#: basic_mapping.xml:2872
-#, fuzzy, no-c-format
-msgid ""
-"JDK 5.0 introduced XDoclet-style annotations at the language level that are "
-"type-safe and checked at compile time. This mechanism is more powerful than "
-"XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, "
-"for example, supports auto-completion and syntax highlighting of JDK 5.0 "
-"annotations. The new revision of the EJB specification (JSR-220) uses JDK "
-"5.0 annotations as the primary metadata mechanism for entity beans. "
-"Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the "
-"persistence API). Support for mapping metadata is available via the "
-"<emphasis>Hibernate Annotations</emphasis> package as a separate download. "
-"Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
-msgstr ""
-"JDK 5.0 å¨è¯è¨çº§å«å¼å
¥äº XDoclet 飿 ¼çæ æ³¨ï¼å¹¶ä¸æ¯ç±»åå®å
¨çï¼å¨ç¼è¯æè¿è¡æ£"
-"æ¥ãè¿ä¸æºå¶æ¯XDocletçæ³¨è§£æ´ä¸ºå¼ºå¤§ï¼ææ´å¥½çå·¥å
·åIDEæ¯æãä¾å¦ï¼ IntelliJ "
-"IDEAï¼æ¯æJDK 5.0注解çèªå¨å®æåè¯æ³é«äº® ãEJBè§èçæ°ä¿®è®¢ç(JSR-220)ä½¿ç¨ "
-"JDK 5.0çæ³¨è§£ä½ä¸ºentity beansç主è¦å
æ°æ®(metadata)æºå¶ãHibernate 3 å®ç°äº"
-"JSR-220 (the persistence API)ç<literal>EntityManager</literal>ï¼æ¯æéè¿"
-"<emphasis>Hibernate Annotations</emphasis>å
å®ä¹æ å°å
æ°æ®ãè¿ä¸ªå
ä½ä¸ºåç¬ç"
-"é¨åä¸è½½ï¼æ¯æEJB3 (JSR-220)åHibernate3çå
æ°æ®ã"
+#, no-c-format
+msgid "JDK 5.0 introduced XDoclet-style annotations at the language level that are type-safe and checked at compile time. This mechanism is more powerful than XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, for example, supports auto-completion and syntax highlighting of JDK 5.0 annotations. The new revision of the EJB specification (JSR-220) uses JDK 5.0 annotations as the primary metadata mechanism for entity beans. Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the persistence API). Support for mapping metadata is available via the <emphasis>Hibernate Annotations</emphasis> package as a separate download. Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
+msgstr "JDK 5.0 å¨è¯è¨çº§å«å¼å
¥äº XDoclet 飿 ¼çæ æ³¨ï¼å¹¶ä¸æ¯ç±»åå®å
¨çï¼å¨ç¼è¯æè¿è¡æ£æ¥ãè¿ä¸æºå¶æ¯ XDoclet çæ³¨è§£æ´ä¸ºå¼ºå¤§ï¼ææ´å¥½çå·¥å
·å IDE æ¯æãä¾å¦ï¼IntelliJ IDEAï¼æ¯æ JDK 5.0 注解çèªå¨å®æåè¯æ³é«äº® ãEJB è§èçæ°ä¿®è®¢ç (JSR-220) ä½¿ç¨ JDK 5.0 çæ³¨è§£ä½ä¸ºentity beansç主è¦å
æ°æ®ï¼metadataï¼æºå¶ãHibernate 3 å®ç°äºJSR-220(the persistence API) ç <literal>EntityManager</literal>ï¼æ¯æéè¿ <emphasis>Hibernate Annotations</emphasis> å
å®ä¹æ å°å
æ°æ®ãè¿ä¸ªå
ä½ä¸ºåç¬çé¨åä¸è½½ï¼æ¯æ EJB3(JSR-220) å Hibernate3 çå
æ°æ®ã "
#. Tag: para
-#: basic_mapping.xml:2883
#, no-c-format
msgid "This is an example of a POJO class annotated as an EJB entity bean:"
-msgstr "è¿æ¯ä¸ä¸ªè¢«æ³¨è§£ä¸ºEJB entity bean çPOJOç±»çä¾å"
+msgstr "è¿æ¯ä¸ä¸ªè¢«æ³¨è§£ä¸º EJB entity bean ç POJO ç±»çä¾å"
-#. Tag: programlisting
-#: basic_mapping.xml:2887
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[@Entity(access = AccessType.FIELD)\n"
-"public class Customer implements Serializable {\n"
-"\n"
-" @Id;\n"
-" Long id;\n"
-"\n"
-" String firstName;\n"
-" String lastName;\n"
-" Date birthday;\n"
-"\n"
-" @Transient\n"
-" Integer age;\n"
-"\n"
-" @Embedded\n"
-" private Address homeAddress;\n"
-"\n"
-" @OneToMany(cascade=CascadeType.ALL)\n"
-" @JoinColumn(name=\"CUSTOMER_ID\")\n"
-" Set<Order> orders;\n"
-"\n"
-" // Getter/setter and business methods\n"
-"}]]>"
-msgstr ""
+msgid "Support for JDK 5.0 Annotations (and JSR-220) is currently under development. Please refer to the Hibernate Annotations module for more details."
+msgstr "注æï¼å¯¹ JDK 5.0 注解ï¼å JSR-220)æ¯æçå·¥ä½ä»ç¶å¨è¿è¡ä¸,å¹¶æªå®æãæ´å¤ç»è请åé
Hibernate Annotations 模åã "
-#. Tag: para
-#: basic_mapping.xml:2891
-#, fuzzy, no-c-format
-msgid ""
-"Support for JDK 5.0 Annotations (and JSR-220) is currently under "
-"development. Please refer to the Hibernate Annotations module for more "
-"details."
-msgstr ""
-"注æï¼å¯¹ JDK 5.0 注解 (å JSR-220)æ¯æçå·¥ä½ä»ç¶å¨è¿è¡ä¸,å¹¶æªå®æãæ´å¤ç»è请"
-"åé
Hibernate Annotations 模åã"
-
#. Tag: title
-#: basic_mapping.xml:2901
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Generated properties"
-msgstr "æ°æ®åºçæå±æ§ï¼Generated Propertiesï¼"
+msgstr "æ°æ®åºçæå±æ§ï¼Generated Propertiesï¼ "
#. Tag: para
-#: basic_mapping.xml:2902
-#, fuzzy, no-c-format
-msgid ""
-"Generated properties are properties that have their values generated by the "
-"database. Typically, Hibernate applications needed to <literal>refresh</"
-"literal> objects that contain any properties for which the database was "
-"generating values. Marking properties as generated, however, lets the "
-"application delegate this responsibility to Hibernate. When Hibernate issues "
-"an SQL INSERT or UPDATE for an entity that has defined generated properties, "
-"it immediately issues a select afterwards to retrieve the generated values."
-msgstr ""
-"Generated propertiesæçæ¯å
¶å¼ç±æ°æ®åºçæç屿§ãä¸è¬æ¥è¯´ï¼å¦æå¯¹è±¡æä»»ä½å±"
-"æ§ç±æ°æ®åºçæå¼ï¼Hibernateåºç¨ç¨åºéè¦è¿è¡<literal>å·æ°(refresh)</literal>ã"
-"ä½å¦ææå±æ§æ æä¸ºgeneratedï¼å°±å¯ä»¥è½¬ç±Hibernateæ¥è´è´£è¿ä¸ªå¨ä½ãå®é
ä¸ã对å®"
-"ä¹äºgenerated propertiesçå®ä½,æ¯å½Hibernateæ§è¡ä¸æ¡SQL INSERTæè
UPDATEè¯"
-"å¥ï¼ä¼ç«å»æ§è¡ä¸æ¡selectæ¥è·å¾çæçå¼ã"
+#, no-c-format
+msgid "Generated properties are properties that have their values generated by the database. Typically, Hibernate applications needed to <literal>refresh</literal> objects that contain any properties for which the database was generating values. Marking properties as generated, however, lets the application delegate this responsibility to Hibernate. When Hibernate issues an SQL INSERT or UPDATE for an entity that has defined generated properties, it immediately issues a select afterwards to retrieve the generated values."
+msgstr "Generated properties æçæ¯å
¶å¼ç±æ°æ®åºçæç屿§ãä¸è¬æ¥è¯´ï¼å¦æå¯¹è±¡æä»»ä½å±æ§ç±æ°æ®åºçæå¼ï¼Hibernate åºç¨ç¨åºéè¦è¿è¡<literal>å·æ°ï¼refreshï¼</literal>ãä½å¦ææå±æ§æ æä¸º generatedï¼å°±å¯ä»¥è½¬ç± Hibernate æ¥è´è´£è¿ä¸ªå¨ä½ãå®é
ä¸ã对å®ä¹äº generated properties çå®ä½,æ¯å½ Hibernate æ§è¡ä¸æ¡ SQL INSERT æè
UPDATE è¯å¥ï¼ä¼ç«å»æ§è¡ä¸æ¡ select æ¥è·å¾çæçå¼ã "
#. Tag: para
-#: basic_mapping.xml:2911
-#, fuzzy, no-c-format
-msgid ""
-"Properties marked as generated must additionally be non-insertable and non-"
-"updateable. Only <link linkend=\"mapping-declaration-version\">versions</"
-"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
-"and <link linkend=\"mapping-declaration-property\">simple properties</link>, "
-"can be marked as generated."
-msgstr ""
-"è¢«æ æä¸ºgeneratedç屿§è¿å¿
é¡»æ¯ non-insertableå non-updateableçãåªæ<xref "
-"linkend=\"mapping-declaration-version\">versions</xref>ï¼<xref linkend="
-"\"mapping-declaration-timestamp\">timestamps</xref>å<xref linkend=\"mapping-"
-"declaration-property\">ç®å屿§ï¼simple propertiesï¼</xref>å¯ä»¥è¢«æ æä¸º"
-"generatedã"
+#, no-c-format
+msgid "Properties marked as generated must additionally be non-insertable and non-updateable. Only versions (<xref linkend=\"mapping-declaration-version\" />), timestamps (<xref linkend=\"mapping-declaration-timestamp\" />), and simple properties (<xref linkend=\"mapping-declaration-property\" />), can be marked as generated."
+msgstr "è¢«æ æä¸º generated ç屿§è¿å¿
é¡»æ¯ non-insertable å non-updateable çãåªæ <xref linkend=\"mapping-declaration-version\"/> versionsã<xref linkend=\"mapping-declaration-timestamp\"/> timestamp å <xref linkend=\"mapping-declaration-property\"/> ç®å屿§ï¼simple propertiesï¼å¯ä»¥è¢«æ æä¸º generatedã "
#. Tag: para
-#: basic_mapping.xml:2918
-#, fuzzy, no-c-format
-msgid ""
-"<literal>never</literal> (the default): the given property value is not "
-"generated within the database."
-msgstr "<literal>never</literal> (é»è®¤) æ ææ¤å±æ§å¼ä¸æ¯ä»æ°æ®åºä¸çæã"
+#, no-c-format
+msgid "<literal>never</literal> (the default): the given property value is not generated within the database."
+msgstr "<literal>never</literal>ï¼é»è®¤ï¼æ ææ¤å±æ§å¼ä¸æ¯ä»æ°æ®åºä¸çæã "
#. Tag: para
-#: basic_mapping.xml:2922
-#, fuzzy, no-c-format
-msgid ""
-"<literal>insert</literal>: the given property value is generated on insert, "
-"but is not regenerated on subsequent updates. Properties like created-date "
-"fall into this category. Even though <link linkend=\"mapping-declaration-"
-"version\">version</link> and <link linkend=\"mapping-declaration-timestamp"
-"\">timestamp</link> properties can be marked as generated, this option is "
-"not available."
-msgstr ""
-"<literal>insert</literal> - æ ææ¤å±æ§å¼å¨insertçæ¶åçæï¼ä½æ¯ä¸ä¼å¨éåç"
-"updateæ¶éæ°çæãæ¯å¦è¯´åå»ºæ¥æå°±å½å±äºè¿ç±»ã注æè½ç¶<xref linkend="
-"\"mapping-declaration-version\">version</xref>å<xref linkend=\"mapping-"
-"declaration-timestamp\">timestamp</xref>屿§å¯ä»¥è¢«æ 注为generatedï¼ä½æ¯ä¸éç¨"
-"è¿ä¸ªé项..."
+#, no-c-format
+msgid "<literal>insert</literal>: the given property value is generated on insert, but is not regenerated on subsequent updates. Properties like created-date fall into this category. Even though version (<xref linkend=\"mapping-declaration-version\" />) and timestamp (<xref linkend=\"mapping-declaration-timestamp\" />) properties can be marked as generated, this option is not available."
+msgstr "<literal>insert</literal> â æ ææ¤å±æ§å¼å¨ insert çæ¶åçæï¼ä½æ¯ä¸ä¼å¨éåç update æ¶éæ°çæãæ¯å¦è¯´åå»ºæ¥æå°±å½å±äºè¿ç±»ã注æè½ç¶ <xref linkend=\"mapping-declaration-version\"/> version å <xref linkend=\"mapping-declaration-timestamp\"/> timestamp 屿§å¯ä»¥è¢«æ 注为 generatedï¼ä½æ¯ä¸éç¨è¿ä¸ªé项... "
#. Tag: para
-#: basic_mapping.xml:2930
-#, fuzzy, no-c-format
-msgid ""
-"<literal>always</literal>: the property value is generated both on insert "
-"and on update."
-msgstr "<literal>always</literal> - æ ææ¤å±æ§å¼å¨insertåupdateæ¶é½ä¼è¢«çæã"
+#, no-c-format
+msgid "<literal>always</literal>: the property value is generated both on insert and on update."
+msgstr "<literal>always</literal> â æ ææ¤å±æ§å¼å¨ insert å update æ¶é½ä¼è¢«çæã "
#. Tag: title
-#: basic_mapping.xml:2937
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Auxiliary database objects"
-msgstr "è¾
婿°æ®åºå¯¹è±¡(Auxiliary Database Objects)"
+msgstr "è¾
婿°æ®åºå¯¹è±¡ï¼Auxiliary Database Objectsï¼ "
#. Tag: para
-#: basic_mapping.xml:2938
-#, fuzzy, no-c-format
-msgid ""
-"Auxiliary database objects allow for the CREATE and DROP of arbitrary "
-"database objects. In conjunction with Hibernate's schema evolution tools, "
-"they have the ability to fully define a user schema within the Hibernate "
-"mapping files. Although designed specifically for creating and dropping "
-"things like triggers or stored procedures, any SQL command that can be run "
-"via a <literal>java.sql.Statement.execute()</literal> method is valid (for "
-"example, ALTERs, INSERTS, etc.). There are essentially two modes for "
-"defining auxiliary database objects:"
-msgstr ""
-"Allows CREATE and DROP of arbitrary database objects, in conjunction with "
-"Hibernate's schema evolution tools, to provide the ability to fully define a "
-"user schema within the Hibernate mapping files. Although designed "
-"specifically for creating and dropping things like triggers or stored "
-"procedures, really any SQL command that can be run via a <literal>java.sql."
-"Statement.execute()</literal> method is valid here (ALTERs, INSERTS, etc). "
-"There are essentially two modes for defining auxiliary database objects... 帮"
-"å©CREATEåDROPä»»ææ°æ®åºå¯¹è±¡ï¼ä¸Hibernateçschema交äºå·¥å
·ç»åèµ·æ¥ï¼å¯ä»¥æä¾å¨"
-"Hibernateæ å°æä»¶ä¸å®å
¨å®ä¹ç¨æ·schemaçè½åãè½ç¶è¿æ¯ä¸ºå建å鿝trigger(触å"
-"å¨ï¼æstored procedure(åå¨è¿ç¨ï¼çç¹å«è®¾è®¡çï¼å®é
ä¸ä»»ä½å¯ä»¥å¨<literal>java."
-"sql.Statement.execute()</literal>æ¹æ³ä¸æ§è¡çSQLå½ä»¤é½å¯ä»¥å¨æ¤ä½¿ç¨ï¼æ¯å¦"
-"ALTER, INSERTï¼ççï¼ãæ¬è´¨ä¸æä¸¤ç§æ¨¡å¼æ¥å®ä¹è¾
婿°æ®åºå¯¹è±¡..."
+#, no-c-format
+msgid "Auxiliary database objects allow for the CREATE and DROP of arbitrary database objects. In conjunction with Hibernate's schema evolution tools, they have the ability to fully define a user schema within the Hibernate mapping files. Although designed specifically for creating and dropping things like triggers or stored procedures, any SQL command that can be run via a <literal>java.sql.Statement.execute()</literal> method is valid (for example, ALTERs, INSERTS, etc.). There are essentially two modes for defining auxiliary database objects:"
+msgstr "å
许 CREATE å DROP ä»»ææ°æ®åºå¯¹è±¡ï¼ä¸ Hibernate ç schema 交äºå·¥å
·ç»åèµ·æ¥ï¼å¯ä»¥æä¾å¨ Hibernate æ å°æä»¶ä¸å®å
¨å®ä¹ç¨æ· schema çè½åãè½ç¶è¿æ¯ä¸ºå建å鿝 triggerï¼è§¦åå¨ï¼æstored procedureï¼åå¨è¿ç¨ï¼çç¹å«è®¾è®¡çï¼å®é
ä¸ä»»ä½å¯ä»¥å¨ <literal>java.sql.Statement.execute()</literal> æ¹æ³ä¸æ§è¡ç SQL å½ä»¤é½å¯ä»¥å¨æ¤ä½¿ç¨ï¼æ¯å¦ALTER, INSERTï¼ççï¼ãæ¬è´¨ä¸æä¸¤ç§æ¨¡å¼æ¥å®ä¹è¾
婿°æ®åºå¯¹è±¡... "
#. Tag: para
-#: basic_mapping.xml:2947
-#, fuzzy, no-c-format
-msgid ""
-"The first mode is to explicitly list the CREATE and DROP commands in the "
-"mapping file:"
-msgstr "第ä¸ç§æ¨¡å¼æ¯å¨æ 尿件䏿¾å¼å£°æCREATEåDROPå½ä»¤ï¼"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2951
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-" ...\n"
-" <database-object>\n"
-" <create>CREATE TRIGGER my_trigger ...</create>\n"
-" <drop>DROP TRIGGER my_trigger</drop>\n"
-" </database-object>\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "The first mode is to explicitly list the CREATE and DROP commands in the mapping file:"
+msgstr "第ä¸ç§æ¨¡å¼æ¯å¨æ 尿件䏿¾å¼å£°æ CREATE å DROP å½ä»¤ï¼ "
#. Tag: para
-#: basic_mapping.xml:2952
-#, fuzzy, no-c-format
-msgid ""
-"The second mode is to supply a custom class that constructs the CREATE and "
-"DROP commands. This custom class must implement the <literal>org.hibernate."
-"mapping.AuxiliaryDatabaseObject</literal> interface."
-msgstr ""
-"第äºç§æ¨¡å¼æ¯æä¾ä¸ä¸ªç±»ï¼è¿ä¸ªç±»ç¥éå¦ä½ç»ç»CREATEåDROPå½ä»¤ãè¿ä¸ªç¹å«ç±»å¿
é¡»å®"
-"ç°<literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal>æ¥å£ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2957
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-" ...\n"
-" <database-object>\n"
-" <definition class=\"MyTriggerDefinition\"/>\n"
-" </database-object>\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "The second mode is to supply a custom class that constructs the CREATE and DROP commands. This custom class must implement the <literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal> interface."
+msgstr "第äºç§æ¨¡å¼æ¯æä¾ä¸ä¸ªç±»ï¼è¿ä¸ªç±»ç¥éå¦ä½ç»ç» CREATE å DROP å½ä»¤ãè¿ä¸ªç¹å«ç±»å¿
é¡»å®ç° <literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal> æ¥å£ã "
#. Tag: para
-#: basic_mapping.xml:2958
-#, fuzzy, no-c-format
-msgid ""
-"Additionally, these database objects can be optionally scoped so that they "
-"only apply when certain dialects are used."
-msgstr "è¿æï¼è¿äºæ°æ®åºå¯¹è±¡å¯ä»¥ç¹å«æå®ä¸ºä»
å¨ç¹å®çæ¹è¨ä¸æä½¿ç¨ã"
-
-#. Tag: programlisting
-#: basic_mapping.xml:2962
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-" ...\n"
-" <database-object>\n"
-" <definition class=\"MyTriggerDefinition\"/>\n"
-" <dialect-scope name=\"org.hibernate.dialect.Oracle9iDialect\"/>\n"
-" <dialect-scope name=\"org.hibernate.dialect.Oracle10gDialect\"/>\n"
-" </database-object>\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "Additionally, these database objects can be optionally scoped so that they only apply when certain dialects are used."
+msgstr "è¿æï¼è¿äºæ°æ®åºå¯¹è±¡å¯ä»¥ç¹å«æå®ä¸ºä»
å¨ç¹å®çæ¹è¨ä¸æä½¿ç¨ã "
#~ msgid ""
-#~ "<literal>type</literal> (optional): A name that indicates the Hibernate "
-#~ "type."
-#~ msgstr "<literal>type</literal> (å¯é): æ è¯Hibernateç±»åçååã"
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\"\n"
+#~ " table=\"cats\"\n"
+#~ " discriminator-value=\"C\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <discriminator column=\"subclass\"\n"
+#~ " type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"weight\"/>\n"
+#~ "\n"
+#~ " <property name=\"birthdate\"\n"
+#~ " type=\"date\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"color\"\n"
+#~ " type=\"eg.types.ColorUserType\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"sex\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"litterId\"\n"
+#~ " column=\"litterId\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <many-to-one name=\"mother\"\n"
+#~ " column=\"mother_id\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <set name=\"kittens\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"litter_id\">\n"
+#~ " <key column=\"mother_id\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"DomesticCat\"\n"
+#~ " discriminator-value=\"D\">\n"
+#~ "\n"
+#~ " <property name=\"name\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\"\n"
+#~ " table=\"cats\"\n"
+#~ " discriminator-value=\"C\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <discriminator column=\"subclass\"\n"
+#~ " type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"weight\"/>\n"
+#~ "\n"
+#~ " <property name=\"birthdate\"\n"
+#~ " type=\"date\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"color\"\n"
+#~ " type=\"eg.types.ColorUserType\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"sex\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"litterId\"\n"
+#~ " column=\"litterId\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <many-to-one name=\"mother\"\n"
+#~ " column=\"mother_id\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <set name=\"kittens\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"litter_id\">\n"
+#~ " <key column=\"mother_id\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"DomesticCat\"\n"
+#~ " discriminator-value=\"D\">\n"
+#~ "\n"
+#~ " <property name=\"name\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" [\n"
+#~ " <!ENTITY types SYSTEM \"classpath://your/domain/types.xml\">\n"
+#~ "]>\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"your.domain\">\n"
+#~ " <class name=\"MyEntity\">\n"
+#~ " <id name=\"id\" type=\"my-custom-id-type\">\n"
+#~ " ...\n"
+#~ " </id>\n"
+#~ " <class>\n"
+#~ " &types;\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" [\n"
+#~ " <!ENTITY types SYSTEM \"classpath://your/domain/types.xml\">\n"
+#~ "]>\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"your.domain\">\n"
+#~ " <class name=\"MyEntity\">\n"
+#~ " <id name=\"id\" type=\"my-custom-id-type\">\n"
+#~ " ...\n"
+#~ " </id>\n"
+#~ " <class>\n"
+#~ " &types;\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping\n"
+#~ " schema=\"schemaName\"\n"
+#~ " catalog=\"catalogName\"\n"
+#~ " default-cascade=\"cascade_style\"\n"
+#~ " default-access=\"field|property|ClassName\"\n"
+#~ " default-lazy=\"true|false\"\n"
+#~ " auto-import=\"true|false\"\n"
+#~ " package=\"package.name\"\n"
+#~ " />]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping\n"
+#~ " schema=\"schemaName\"\n"
+#~ " catalog=\"catalogName\"\n"
+#~ " default-cascade=\"cascade_style\"\n"
+#~ " default-access=\"field|property|ClassName\"\n"
+#~ " default-lazy=\"true|false\"\n"
+#~ " auto-import=\"true|false\"\n"
+#~ " package=\"package.name\"\n"
+#~ " />]]>"
+#~ msgid ""
+#~ "<![CDATA[<class\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tableName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " select-before-update=\"true|false\"\n"
+#~ " polymorphism=\"implicit|explicit\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " persister=\"PersisterClass\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " optimistic-lock=\"none|version|dirty|all\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " check=\"arbitrary sql check condition\"\n"
+#~ " rowid=\"rowid\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tableName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " select-before-update=\"true|false\"\n"
+#~ " polymorphism=\"implicit|explicit\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " persister=\"PersisterClass\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " optimistic-lock=\"none|version|dirty|all\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " check=\"arbitrary sql check condition\"\n"
+#~ " rowid=\"rowid\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Summary\">\n"
+#~ " <subselect>\n"
+#~ " select item.name, max(bid.amount), count(*)\n"
+#~ " from item\n"
+#~ " join bid on bid.item_id = item.id\n"
+#~ " group by item.name\n"
+#~ " </subselect>\n"
+#~ " <synchronize table=\"item\"/>\n"
+#~ " <synchronize table=\"bid\"/>\n"
+#~ " <id name=\"name\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Summary\">\n"
+#~ " <subselect>\n"
+#~ " select item.name, max(bid.amount), count(*)\n"
+#~ " from item\n"
+#~ " join bid on bid.item_id = item.id\n"
+#~ " group by item.name\n"
+#~ " </subselect>\n"
+#~ " <synchronize table=\"item\"/>\n"
+#~ " <synchronize table=\"bid\"/>\n"
+#~ " <id name=\"name\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<id\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " column=\"column_name\"\n"
+#~ " unsaved-value=\"null|any|none|undefined|id_value\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "\n"
+#~ " <generator class=\"generatorClass\"/>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " column=\"column_name\"\n"
+#~ " unsaved-value=\"null|any|none|undefined|id_value\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "\n"
+#~ " <generator class=\"generatorClass\"/>\n"
+#~ "</id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
+#~ " <param name=\"table\">uid_table</param>\n"
+#~ " <param name=\"column\">next_hi_value_column</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
+#~ " <param name=\"table\">uid_table</param>\n"
+#~ " <param name=\"column\">next_hi_value_column</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgid "increment"
+#~ msgstr "increment"
+#~ msgid "identity"
+#~ msgstr "identity"
+#~ msgid "sequence"
+#~ msgstr "sequence"
+#~ msgid "hilo"
+#~ msgstr "hilo"
+#~ msgid "seqhilo"
+#~ msgstr "seqhilo"
+#~ msgid "guid"
+#~ msgstr "guid"
+#~ msgid "native"
+#~ msgstr "native"
+#~ msgid "assigned"
+#~ msgstr "assigned"
+#~ msgid "select"
+#~ msgstr "select"
+#~ msgid "foreign"
+#~ msgstr "foreign"
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"hilo\">\n"
+#~ " <param name=\"table\">hi_value</param>\n"
+#~ " <param name=\"column\">next_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"hilo\">\n"
+#~ " <param name=\"table\">hi_value</param>\n"
+#~ " <param name=\"column\">next_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"seqhilo\">\n"
+#~ " <param name=\"sequence\">hi_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"seqhilo\">\n"
+#~ " <param name=\"sequence\">hi_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">person_id_sequence</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">person_id_sequence</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value="
+#~ "\"0\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value="
+#~ "\"0\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"select\">\n"
+#~ " <param name=\"key\">socialSecurityNumber</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"select\">\n"
+#~ " <param name=\"key\">socialSecurityNumber</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<composite-id\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " mapped=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|.\"\n"
+#~ "\n"
+#~ " <key-property name=\"propertyName\" type=\"typename\" column="
+#~ "\"column_name\"/>\n"
+#~ " <key-many-to-one name=\"propertyName class=\"ClassName\" column="
+#~ "\"column_name\"/>\n"
+#~ " ......\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<composite-id\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " mapped=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|.\"\n"
+#~ "\n"
+#~ " <key-property name=\"propertyName\" type=\"typename\" column="
+#~ "\"column_name\"/>\n"
+#~ " <key-many-to-one name=\"propertyName class=\"ClassName\" column="
+#~ "\"column_name\"/>\n"
+#~ " ......\n"
+#~ "</composite-id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgid ""
+#~ "<![CDATA[<discriminator\n"
+#~ " column=\"discriminator_column\"\n"
+#~ " type=\"discriminator_type\"\n"
+#~ " force=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary sql expression\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<discriminator\n"
+#~ " column=\"discriminator_column\"\n"
+#~ " type=\"discriminator_type\"\n"
+#~ " force=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary sql expression\"\n"
+#~ "/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<version\n"
+#~ " column=\"version_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|negative|undefined\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<version\n"
+#~ " column=\"version_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|negative|undefined\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<timestamp\n"
+#~ " column=\"timestamp_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|undefined\"\n"
+#~ " source=\"vm|db\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<timestamp\n"
+#~ " column=\"timestamp_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|undefined\"\n"
+#~ " source=\"vm|db\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<property\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " type=\"typename\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " generated=\"never|insert|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<property\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " type=\"typename\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " generated=\"never|insert|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ "/>]]>"
+#, fuzzy
#~ msgid ""
-#~ "<literal>cascade</literal> (optional): Specifies which operations should "
-#~ "be cascaded from the parent object to the associated object."
+#~ "<![CDATA[\n"
+#~ "<property name=\"totalPrice\"\n"
+#~ " formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, "
+#~ "Product p\n"
+#~ " WHERE li.productId = p.productId\n"
+#~ " AND li.customerId = customerId\n"
+#~ " AND li.orderNumber = orderNumber )\"/>]]>"
#~ msgstr ""
-#~ "<literal>cascadeï¼çº§èï¼</literal> (å¯é): ææåªäºæä½ä¼ä»ç¶å¯¹è±¡çº§èå°å
³"
-#~ "èç对象ã"
+#~ "<property name=\"totalPrice\"\n"
+#~ " formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, "
+#~ "Product p\n"
+#~ " WHERE li.productId = p.productId\n"
+#~ " AND li.customerId = customerId\n"
+#~ " AND li.orderNumber = orderNumber )\"/>"
+#, fuzzy
#~ msgid ""
-#~ "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-#~ "literal>): Specifies that updates to this property do or do not require "
-#~ "acquisition of the optimistic lock. In other words, dertermines if a "
-#~ "version increment should occur when this property is dirty."
+#~ "<![CDATA[<many-to-one\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " lazy=\"proxy|no-proxy|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " foreign-key=\"foreign_key_name\"\n"
+#~ "/>]]>"
#~ msgstr ""
-#~ "<literal>optimistic-lock</literal> (å¯é - é»è®¤ä¸º <literal>true</"
-#~ "literal>): æå®è¿ä¸ªå±æ§å¨åæ´æ°æ¶æ¯å¦éè¦è·å¾ä¹è§éå®ï¼optimistic "
-#~ "lockï¼ã æ¢å¥è¯è¯´ï¼å®å³å®è¿ä¸ªå±æ§åçèæ°æ®æ¶çæ¬ï¼versionï¼ç弿¯å¦å¢é¿ã"
+#~ "<many-to-one\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " lazy=\"proxy|no-proxy|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " foreign-key=\"foreign_key_name\"\n"
+#~ "/>"
+#, fuzzy
#~ msgid ""
-#~ "To understand the behaviour of various Java language-level objects with "
-#~ "respect to the persistence service, we need to classify them into two "
-#~ "groups:"
+#~ "<![CDATA[<many-to-one name=\"product\" class=\"Product\" column="
+#~ "\"PRODUCT_ID\"/>]]>"
#~ msgstr ""
-#~ "为äºçè§£å¾å¤ä¸æä¹
åæå¡ç¸å
³çJavaè¯è¨çº§å¯¹è±¡çè¡ä¸ºï¼æä»¬éè¦æå®ä»¬å为两"
-#~ "ç±»ï¼"
+#~ "<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID\"/"
+#~ ">"
#, fuzzy
-#~ msgid "<literal>class</literal>"
-#~ msgstr "<literal>allï¼å
¨é¨ï¼</literal> æ£æ¥å
¨é¨å段"
+#~ msgid ""
+#~ "<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" "
+#~ "column=\"SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"serialNumber\" unique=\"true\" type=\"string\" column="
+#~ "\"SERIAL_NUMBER\"/>"
-#~ msgid "id"
-#~ msgstr "id"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" "
+#~ "column=\"PRODUCT_SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"product\" property-ref=\"serialNumber\" column="
+#~ "\"PRODUCT_SERIAL_NUMBER\"/>"
+#, fuzzy
#~ msgid ""
-#~ "<literal>optimizer</literal> (optional, defaults to <literal>none</"
-#~ "literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers"
-#~ "\"/>"
+#~ "<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>]]>"
#~ msgstr ""
-#~ "<literal>optimizer</literal> (optional, defaults to <literal>none</"
-#~ "literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers"
-#~ "\"/>"
+#~ "<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>"
+#, fuzzy
#~ msgid ""
-#~ "<literal>optimizer</literal> (optional, defaults to <literal/>): See "
-#~ "<xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
+#~ "<![CDATA[<one-to-one\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " constrained=\"true|false\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " lazy=\"proxy|no-proxy|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " foreign-key=\"foreign_key_name\"\n"
+#~ "/>]]>"
#~ msgstr ""
-#~ "<literal>optimizer</literal> (optional, defaults to <literal/>): See "
-#~ "<xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
+#~ "<one-to-one\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " constrained=\"true|false\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " lazy=\"proxy|no-proxy|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " foreign-key=\"foreign_key_name\"\n"
+#~ "/>"
-#~ msgid "key"
-#~ msgstr "é®(key)"
+#, fuzzy
+#~ msgid "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" class=\"Person\"/>"
-#~ msgid "any"
-#~ msgstr "any"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained="
+#~ "\"true\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID"
+#~ "\" unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" "
+#~ "unique=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref="
+#~ "\"person\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name\"employee\" class=\"Employee\" property-ref=\"person"
+#~ "\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>]]>"
+#~ msgstr ""
+#~ "<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<component\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>]]>"
+#~ msgstr ""
+#~ "<component \n"
+#~ " name=\"propertyName\" \n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<properties\n"
+#~ " name=\"logicalName\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>]]>"
+#~ msgstr ""
+#~ "<properties \n"
+#~ " name=\"logicalName\" \n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ "\n"
+#~ " ...\n"
+#~ " <properties name=\"name\"\n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ " ...\n"
+#~ " <properties name=\"name\" \n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\"\n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" \n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>]]>"
+#~ msgstr ""
+#~ "<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>]]>"
+#~ msgstr ""
+#~ "<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>]]>"
+#~ msgstr ""
+#~ "<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ "\n"
+#~ " <key ... />\n"
+#~ "\n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ " \n"
+#~ " <key ... />\n"
+#~ " \n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ...]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ..."
+
+#, fuzzy
+#~ msgid "<title>Key</title>"
+#~ msgstr "<title>é®ï¼keyï¼</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>]]>"
+#~ msgstr ""
+#~ "<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<formula>SQL expression</formula>]]>"
+#~ msgstr "<formula>SQL expression</formula>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
+#~ msgstr "<import class=\"java.lang.Object\" rename=\"Universe\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid "<title>Any</title>"
+#~ msgstr "<title>any</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>"
+#~ msgid "string"
+#~ msgstr "string"
+
+#, fuzzy
+#~ msgid "class"
+#~ msgstr "åç±»ï¼subclassï¼"
+#~ msgid "binary"
+#~ msgstr "binary"
+#~ msgid "text"
+#~ msgstr "text"
+#~ msgid "serializable"
+#~ msgstr "serializable"
+#~ msgid "clob, blob"
+#~ msgstr "clob, blob"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\" name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>]]>"
+#~ msgstr ""
+#~ "<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" "
+#~ "name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
+#~ msgstr "<property name=\"priority\" type=\"default_zero\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Contract\" table=\"Contracts\"\n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\"\n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\"\n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\"\n"
+#~ " column=\"currentContractId\"\n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Contract\" table=\"Contracts\" \n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\" \n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\" \n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\" \n"
+#~ " column=\"currentContractId\" \n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/"
+#~ "></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class="
+#~ "\"assigned\"/></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9iDialect\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle10gDialect\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9Dialect\"/"
+#~ ">\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.OracleDialect\"/"
+#~ ">\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/batch.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/batch.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/batch.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,615 +1,408 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"PO-Revision-Date: 2010-01-11 10:33+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: batch.xml:29
#, no-c-format
msgid "Batch processing"
msgstr "æ¹éå¤çï¼Batch processingï¼"
#. Tag: para
-#: batch.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"A naive approach to inserting 100,000 rows in the database using Hibernate "
-"might look like this:"
-msgstr ""
-"使ç¨Hibernateå° 100 000 æ¡è®°å½æå
¥å°æ°æ®åºçä¸ä¸ªå¾èªç¶çåæ³å¯è½æ¯è¿æ ·ç"
-
-#. Tag: programlisting
-#: batch.xml:36
#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessionFactory.openSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-"for ( int i=0; i<100000; i++ ) {\n"
-" Customer customer = new Customer(.....);\n"
-" session.save(customer);\n"
-"}\n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "A naive approach to inserting 100,000 rows in the database using Hibernate might look like this:"
+msgstr "ä½¿ç¨ Hibernate å° 100,000 æ¡è®°å½æå
¥å°æ°æ®åºçä¸ä¸ªå¾å¤©ççåæ³å¯è½æ¯è¿æ ·çï¼"
#. Tag: para
-#: batch.xml:38
-#, fuzzy, no-c-format
-msgid ""
-"This would fall over with an <literal>OutOfMemoryException</literal> "
-"somewhere around the 50,000th row. That is because Hibernate caches all the "
-"newly inserted <literal>Customer</literal> instances in the session-level "
-"cache. In this chapter we will show you how to avoid this problem."
-msgstr ""
-"è¿æ®µç¨åºå¤§æ¦è¿è¡å° 50 000 æ¡è®°å½å·¦å³ä¼å¤±è´¥å¹¶æåº <literal>å
åæº¢åºå¼å¸¸"
-"ï¼OutOfMemoryExceptionï¼</literal> ã è¿æ¯å 为 Hibernate ææææ°æå
¥ç "
-"<literal>客æ·ï¼Customerï¼</literal>å®ä¾å¨ session级å«çç¼ååºè¿è¡äºç¼åçç¼"
-"æ
ã"
+#, no-c-format
+msgid "This would fall over with an <literal>OutOfMemoryException</literal> somewhere around the 50,000th row. That is because Hibernate caches all the newly inserted <literal>Customer</literal> instances in the session-level cache. In this chapter we will show you how to avoid this problem."
+msgstr "è¿æ®µç¨åºå¤§æ¦è¿è¡å° 50ï¼000 æ¡è®°å½å·¦å³ä¼å¤±è´¥å¹¶æåº<literal>å
åæº¢åºå¼å¸¸ï¼OutOfMemoryExceptionï¼</literal> ãè¿æ¯å 为 Hibernate ææææ°æå
¥ç<literal>客æ·ï¼Customerï¼</literal>å®ä¾å¨ session 级å«çç¼ååºè¿è¡äºç¼åçç¼æ
ã "
#. Tag: para
-#: batch.xml:45
-#, fuzzy, no-c-format
-msgid ""
-"If you are undertaking batch processing you will need to enable the use of "
-"JDBC batching. This is absolutely essential if you want to achieve optimal "
-"performance. Set the JDBC batch size to a reasonable number (10-50, for "
-"example):"
-msgstr ""
-"æä»¬ä¼å¨æ¬ç« åè¯ä½ å¦ä½é¿å
æ¤ç±»é®é¢ãé¦å
ï¼å¦æä½ è¦æ§è¡æ¹éå¤ç并䏿³è¦è¾¾å°ä¸"
-"ä¸ªçæ³çæ§è½ï¼ é£ä¹ä½¿ç¨JDBCçæ¹éï¼batchingï¼åè½æ¯è³å
³éè¦ãå°JDBCçæ¹éæå"
-"æ°éï¼batch sizeï¼åæ°è®¾ç½®å°ä¸ä¸ªåéå¼ ï¼æ¯å¦ï¼10-50ä¹é´ï¼ï¼"
-
-#. Tag: programlisting
-#: batch.xml:52
#, no-c-format
-msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
-msgstr ""
+msgid "If you are undertaking batch processing you will need to enable the use of JDBC batching. This is absolutely essential if you want to achieve optimal performance. Set the JDBC batch size to a reasonable number (10-50, for example):"
+msgstr "æä»¬ä¼å¨æ¬ç« åè¯ä½ å¦ä½é¿å
æ¤ç±»é®é¢ãé¦å
ï¼å¦æä½ è¦æ§è¡æ¹éå¤ç并䏿³è¦è¾¾å°ä¸ä¸ªçæ³çæ§è½ï¼é£ä¹ä½¿ç¨ JDBC çæ¹éï¼batchingï¼åè½æ¯è³å
³éè¦ãå° JDBC çæ¹éæåæ°éï¼batch sizeï¼åæ°è®¾ç½®å°ä¸ä¸ªåéå¼ï¼æ¯å¦ï¼10 - 50 ä¹é´ï¼ï¼"
#. Tag: para
-#: batch.xml:54
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate disables insert batching at the JDBC level transparently if you "
-"use an <literal>identity</literal> identifier generator."
-msgstr ""
-"注æ,åè¥ä½ 使ç¨äº<literal>identiy</literal>æ è¯ç¬¦çæå¨,Hibernateå¨JDBC级å«é"
-"æçå
³éæå
¥è¯å¥çæ¹éæ§è¡ã"
+#, no-c-format
+msgid "Hibernate disables insert batching at the JDBC level transparently if you use an <literal>identity</literal> identifier generator."
+msgstr "注æï¼åè¥ä½ 使ç¨äº <literal>identiy</literal> æ è¯ç¬¦çæå¨ï¼Hibernate å¨ JDBC 级å«éæçå
³éæå
¥è¯å¥çæ¹éæ§è¡ã "
#. Tag: para
-#: batch.xml:59
-#, fuzzy, no-c-format
-msgid ""
-"You can also do this kind of work in a process where interaction with the "
-"second-level cache is completely disabled:"
-msgstr "ä½ ä¹å¯è½æ³å¨æ§è¡æ¹éå¤çæ¶å
³éäºçº§ç¼åï¼"
-
-#. Tag: programlisting
-#: batch.xml:64
#, no-c-format
-msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
-msgstr ""
+msgid "You can also do this kind of work in a process where interaction with the second-level cache is completely disabled:"
+msgstr "ä½ ä¹å¯è½æ³å¨æ§è¡æ¹éå¤çæ¶å®å
¨å
³éäºçº§ç¼åï¼"
#. Tag: para
-#: batch.xml:66
#, no-c-format
-msgid ""
-"However, this is not absolutely necessary, since we can explicitly set the "
-"<literal>CacheMode</literal> to disable interaction with the second-level "
-"cache."
-msgstr ""
-"使¯ï¼è¿ä¸æ¯ç»å¯¹å¿
é¡»çï¼å 为æä»¬å¯ä»¥æ¾å¼è®¾ç½®<literal>CacheMode</literal>æ¥å
³"
-"éä¸äºçº§ç¼åç交äºã"
+msgid "However, this is not absolutely necessary, since we can explicitly set the <literal>CacheMode</literal> to disable interaction with the second-level cache."
+msgstr "使¯ï¼è¿ä¸æ¯ç»å¯¹å¿
é¡»çï¼å 为æä»¬å¯ä»¥æ¾å¼è®¾ç½® <literal>CacheMode</literal> æ¥å
³éä¸äºçº§ç¼åç交äºã"
#. Tag: title
-#: batch.xml:72
#, no-c-format
msgid "Batch inserts"
msgstr "æ¹éæå
¥ï¼Batch insertsï¼"
#. Tag: para
-#: batch.xml:74
-#, fuzzy, no-c-format
-msgid ""
-"When making new objects persistent <literal>flush()</literal> and then "
-"<literal>clear()</literal> the session regularly in order to control the "
-"size of the first-level cache."
-msgstr ""
-"妿è¦å°å¾å¤å¯¹è±¡æä¹
åï¼ä½ å¿
é¡»éè¿ç»å¸¸çè°ç¨ <literal>flush()</literal> 以å"
-"ç¨åè°ç¨ <literal>clear()</literal> æ¥æ§å¶ç¬¬ä¸çº§ç¼åç大å°ã"
-
-#. Tag: programlisting
-#: batch.xml:80
#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessionFactory.openSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-" \n"
-"for ( int i=0; i<100000; i++ ) {\n"
-" Customer customer = new Customer(.....);\n"
-" session.save(customer);\n"
-" if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
-" //flush a batch of inserts and release memory:\n"
-" session.flush();\n"
-" session.clear();\n"
-" }\n"
-"}\n"
-" \n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "When making new objects persistent <literal>flush()</literal> and then <literal>clear()</literal> the session regularly in order to control the size of the first-level cache."
+msgstr "妿è¦å°å¾å¤å¯¹è±¡æä¹
åï¼ä½ å¿
é¡»éè¿ç»å¸¸çè°ç¨ <literal>flush()</literal> 以åç¨åè°ç¨ <literal>clear()</literal> æ¥æ§å¶ç¬¬ä¸çº§ç¼åç大å°ã "
#. Tag: title
-#: batch.xml:85
#, no-c-format
msgid "Batch updates"
msgstr "æ¹éæ´æ°ï¼Batch updatesï¼"
#. Tag: para
-#: batch.xml:87
-#, fuzzy, no-c-format
-msgid ""
-"For retrieving and updating data, the same ideas apply. In addition, you "
-"need to use <literal>scroll()</literal> to take advantage of server-side "
-"cursors for queries that return many rows of data."
-msgstr ""
-"æ¤æ¹æ³åæ ·éç¨äºæ£ç´¢åæ´æ°æ°æ®ãæ¤å¤ï¼å¨è¿è¡ä¼è¿åå¾å¤è¡æ°æ®çæ¥è¯¢æ¶ï¼ ä½ éè¦"
-"ä½¿ç¨ <literal>scroll()</literal> æ¹æ³ä»¥ä¾¿å
åå©ç¨æå¡å¨ç«¯æ¸¸æ æå¸¦æ¥ç好å¤ã"
-
-#. Tag: programlisting
-#: batch.xml:93
#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessionFactory.openSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-" \n"
-"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
-" .setCacheMode(CacheMode.IGNORE)\n"
-" .scroll(ScrollMode.FORWARD_ONLY);\n"
-"int count=0;\n"
-"while ( customers.next() ) {\n"
-" Customer customer = (Customer) customers.get(0);\n"
-" customer.updateStuff(...);\n"
-" if ( ++count % 20 == 0 ) {\n"
-" //flush a batch of updates and release memory:\n"
-" session.flush();\n"
-" session.clear();\n"
-" }\n"
-"}\n"
-" \n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "For retrieving and updating data, the same ideas apply. In addition, you need to use <literal>scroll()</literal> to take advantage of server-side cursors for queries that return many rows of data."
+msgstr "æ¤æ¹æ³åæ ·éç¨äºæ£ç´¢åæ´æ°æ°æ®ãæ¤å¤ï¼å¨è¿è¡ä¼è¿åå¾å¤è¡æ°æ®çæ¥è¯¢æ¶ï¼ä½ éè¦ä½¿ç¨ <literal>scroll()</literal> æ¹æ³ä»¥ä¾¿å
åå©ç¨æå¡å¨ç«¯æ¸¸æ æå¸¦æ¥ç好å¤ã "
#. Tag: title
-#: batch.xml:98
#, no-c-format
msgid "The StatelessSession interface"
-msgstr "StatelessSession (æ ç¶æsession)æ¥å£"
+msgstr "StatelessSessionï¼æ ç¶æ sessionï¼æ¥å£"
#. Tag: para
-#: batch.xml:99
-#, fuzzy, no-c-format
-msgid ""
-"Alternatively, Hibernate provides a command-oriented API that can be used "
-"for streaming data to and from the database in the form of detached objects. "
-"A <literal>StatelessSession</literal> has no persistence context associated "
-"with it and does not provide many of the higher-level life cycle semantics. "
-"In particular, a stateless session does not implement a first-level cache "
-"nor interact with any second-level or query cache. It does not implement "
-"transactional write-behind or automatic dirty checking. Operations performed "
-"using a stateless session never cascade to associated instances. Collections "
-"are ignored by a stateless session. Operations performed via a stateless "
-"session bypass Hibernate's event model and interceptors. Due to the lack of "
-"a first-level cache, Stateless sessions are vulnerable to data aliasing "
-"effects. A stateless session is a lower-level abstraction that is much "
-"closer to the underlying JDBC."
-msgstr ""
-"ä½ä¸ºéæ©ï¼Hibernateæä¾äºåºäºå½ä»¤çAPIï¼å¯ä»¥ç¨detached objectçå½¢å¼ææ°æ®ä»¥æµ"
-"çæ¹æ³å å
¥å°æ°æ®åºï¼æä»æ°æ®åºè¾åºã<literal>StatelessSession</literal>没ææ"
-"ä¹
åä¸ä¸æï¼ä¹ä¸æä¾å¤å°é«å±ççå½å¨æè¯ä¹ãç¹å«æ¯ï¼æ ç¶æsessionä¸å®ç°ç¬¬ä¸çº§"
-"cache,ä¹ä¸å第äºçº§ç¼åï¼æè
æ¥è¯¢ç¼å交äºãå®ä¸å®ç°äºå¡ååï¼ä¹ä¸å®ç°èæ°æ®æ£"
-"æ¥ãç¨stateless sessionè¿è¡çæä½çè³ä¸çº§èå°å
³èå®ä¾ãstateless session忽ç¥"
-"éåç±»(Collections)ãéè¿stateless sessionè¿è¡çæä½ä¸è§¦åHibernateçäºä»¶æ¨¡å"
-"忦æªå¨ãæ ç¶æsessionå¯¹æ°æ®çæ··æ·ç°è±¡å
ç«ï¼å ä¸ºå®æ²¡æç¬¬ä¸çº§ç¼åãæ ç¶æ"
-"sessionæ¯ä½å±çæ½è±¡ï¼åä½å±JDBCç¸å½æ¥è¿ã"
-
-#. Tag: programlisting
-#: batch.xml:114
#, no-c-format
-msgid ""
-"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-" \n"
-"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
-" .scroll(ScrollMode.FORWARD_ONLY);\n"
-"while ( customers.next() ) {\n"
-" Customer customer = (Customer) customers.get(0);\n"
-" customer.updateStuff(...);\n"
-" session.update(customer);\n"
-"}\n"
-" \n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "Alternatively, Hibernate provides a command-oriented API that can be used for streaming data to and from the database in the form of detached objects. A <literal>StatelessSession</literal> has no persistence context associated with it and does not provide many of the higher-level life cycle semantics. In particular, a stateless session does not implement a first-level cache nor interact with any second-level or query cache. It does not implement transactional write-behind or automatic dirty checking. Operations performed using a stateless session never cascade to associated instances. Collections are ignored by a stateless session. Operations performed via a stateless session bypass Hibernate's event model and interceptors. Due to the lack of a first-level cache, Stateless sessions are vulnerable to data aliasing effects. A stateless session is a lower-level abstraction that is much closer to the underlying JDBC."
+msgstr "ä½ä¸ºéæ©ï¼Hibernate æä¾äºåºäºå½ä»¤ç APIï¼å¯ä»¥ç¨ detached object çå½¢å¼ææ°æ®ä»¥æµçæ¹æ³å å
¥å°æ°æ®åºï¼æä»æ°æ®åºè¾åºã<literal>StatelessSession</literal> 没ææä¹
åä¸ä¸æï¼ä¹ä¸æä¾å¤å°é«å±ççå½å¨æè¯ä¹ãç¹å«æ¯ï¼æ ç¶æ session ä¸å®ç°ç¬¬ä¸çº§ cacheï¼ä¹ä¸å第äºçº§ç¼åï¼æè
æ¥è¯¢ç¼å交äºãå®ä¸å®ç°äºå¡ååï¼ä¹ä¸å®ç°èæ°æ®æ£æ¥ãç¨ stateless session è¿è¡çæä½çè³ä¸çº§èå°å
³èå®ä¾ãstateless session 忽ç¥éåç±»ï¼Collectionsï¼ãéè¿ stateless session è¿è¡çæä½ä¸è§¦å Hibernate çäºä»¶æ¨¡å忦æªå¨ãæ ç¶æ session å¯¹æ°æ®çæ··æ·ç°è±¡å
ç«ï¼å ä¸ºå®æ²¡æç¬¬ä¸çº§ç¼åãæ ç¶æ session æ¯ä½å±çæ½è±¡ï¼åä½å± JDBC ç¸å½æ¥è¿ã "
#. Tag: para
-#: batch.xml:116
-#, fuzzy, no-c-format
-msgid ""
-"In this code example, the <literal>Customer</literal> instances returned by "
-"the query are immediately detached. They are never associated with any "
-"persistence context."
-msgstr ""
-"注æå¨ä¸é¢çä¾åä¸ï¼æ¥è¯¢è¿åç<literal>Customer</literal>å®ä¾ç«å³è¢«è±ç®¡"
-"(detach)ãå®ä»¬ä¸ä»»ä½æä¹
åä¸ä¸æé½æ²¡æå
³ç³»ã"
+#, no-c-format
+msgid "In this code example, the <literal>Customer</literal> instances returned by the query are immediately detached. They are never associated with any persistence context."
+msgstr "注æå¨ä¸é¢çä¾åä¸ï¼æ¥è¯¢è¿åç <literal>Customer</literal> å®ä¾ç«å³è¢«è±ç®¡ï¼detachï¼ãå®ä»¬ä¸ä»»ä½æä¹
åä¸ä¸æé½æ²¡æå
³ç³»ã "
#. Tag: para
-#: batch.xml:122
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
-"operations defined by the <literal>StatelessSession</literal> interface are "
-"considered to be direct database row-level operations. They result in the "
-"immediate execution of a SQL <literal>INSERT, UPDATE</literal> or "
-"<literal>DELETE</literal> respectively. They have different semantics to the "
-"<literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> "
-"operations defined by the <literal>Session</literal> interface."
-msgstr ""
-"<literal>StatelessSession</literal> æ¥å£å®ä¹ç<literal>insert(), update()</"
-"literal> å <literal>delete()</literal>æä½æ¯ç´æ¥çæ°æ®åºè¡çº§å«æä½ï¼å
¶ç»ææ¯"
-"ç«å»æ§è¡ä¸æ¡<literal>INSERT, UPDATE</literal> æ <literal>DELETE</literal> è¯"
-"å¥ãå æ¤ï¼å®ä»¬çè¯ä¹å<literal>Session</literal> æ¥å£å®ä¹ç<literal>save(), "
-"saveOrUpdate()</literal> å<literal>delete()</literal> æä½æå¾å¤§çä¸åã"
+#, no-c-format
+msgid "The <literal>insert(), update()</literal> and <literal>delete()</literal> operations defined by the <literal>StatelessSession</literal> interface are considered to be direct database row-level operations. They result in the immediate execution of a SQL <literal>INSERT, UPDATE</literal> or <literal>DELETE</literal> respectively. They have different semantics to the <literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> operations defined by the <literal>Session</literal> interface."
+msgstr "<literal>StatelessSession</literal> æ¥å£å®ä¹ç <literal>insert(), update()</literal> å <literal>delete()</literal> æä½æ¯ç´æ¥çæ°æ®åºè¡çº§å«æä½ï¼å
¶ç»ææ¯ç«å»æ§è¡ä¸æ¡ <literal>INSERT, UPDATE</literal> æ <literal>DELETE</literal> è¯å¥ãå æ¤ï¼å®ä»¬çè¯ä¹å <literal>Session</literal> æ¥å£å®ä¹ç <literal>save(), saveOrUpdate()</literal> å<literal>delete()</literal> æä½æå¾å¤§çä¸åã "
#. Tag: title
-#: batch.xml:135
#, no-c-format
msgid "DML-style operations"
-msgstr "DML(æ°æ®æä½è¯è¨)飿 ¼çæä½(DML-style operations)"
+msgstr "DMLï¼æ°æ®æä½è¯è¨ï¼é£æ ¼çæä½ï¼DML-style operationsï¼"
#. Tag: para
-#: batch.xml:137
-#, fuzzy, no-c-format
-msgid ""
-"As already discussed, automatic and transparent object/relational mapping is "
-"concerned with the management of the object state. The object state is "
-"available in memory. This means that manipulating data directly in the "
-"database (using the SQL <literal>Data Manipulation Language</literal> (DML) "
-"the statements: <literal>INSERT</literal>, <literal>UPDATE</literal>, "
-"<literal>DELETE</literal>) will not affect in-memory state. However, "
-"Hibernate provides methods for bulk SQL-style DML statement execution that "
-"is performed through the Hibernate Query Language (<link linkend=\"queryhql"
-"\">HQL</link>)."
-msgstr ""
-"hence manipulating (using the SQL <literal>Data Manipulation Language</"
-"literal> (DML) statements: <literal>INSERT</literal>, <literal>UPDATE</"
-"literal>, <literal>DELETE</literal>) data directly in the database will not "
-"affect in-memory state. However, Hibernate provides methods for bulk SQL-"
-"style DML statement execution which are performed through the Hibernate "
-"Query Language (<xref linkend=\"queryhql\">HQL</xref>). å°±åå·²ç»è®¨è®ºç飿 ·ï¼"
-"èªå¨åéæç 对象/å
³ç³» æ å°ï¼object/relational mappingï¼å
³æ³¨äºç®¡ç对象çç¶"
-"æã è¿å°±æå³ç对象çç¶æåå¨äºå
åï¼å æ¤ç´æ¥æä½ (ä½¿ç¨ SQL <literal>Data "
-"Manipulation Language</literal>(DML,æ°æ®æä½è¯è¨ï¼è¯å¥ ï¼<literal>INSERT</"
-"literal> ,<literal>UPDATE</literal> å <literal>DELETE</literal>) æ°æ®åºä¸ç"
-"æ°æ®å°ä¸ä¼å½±åå
åä¸çå¯¹è±¡ç¶æåå¯¹è±¡æ°æ®ã ä¸è¿ï¼Hibernateæä¾éè¿Hibernateæ¥"
-"询è¯è¨ï¼<xref linkend=\"queryhql\">HQL</xref>ï¼æ¥æ§è¡å¤§æ¹ éSQL飿 ¼çDMLè¯å¥"
-"çæ¹æ³ã"
+#, no-c-format
+msgid "As already discussed, automatic and transparent object/relational mapping is concerned with the management of the object state. The object state is available in memory. This means that manipulating data directly in the database (using the SQL <literal>Data Manipulation Language</literal> (DML) the statements: <literal>INSERT</literal>, <literal>UPDATE</literal>, <literal>DELETE</literal>) will not affect in-memory state. However, Hibernate provides methods for bulk SQL-style DML statement execution that is performed through the Hibernate Query Language (<xref linkend=\"queryhql\" />)."
+msgstr "å°±åå·²ç»è®¨è®ºç飿 ·ï¼èªå¨åéæç对象/å
³ç³»æ å°ï¼object/relational mappingï¼å
³æ³¨äºç®¡ç对象çç¶æãè¿å°±æå³ç对象çç¶æåå¨äºå
åï¼å æ¤ç´æ¥æä½ï¼ä½¿ç¨ SQL <literal>Data Manipulation Language</literal>ï¼DML,æ°æ®æä½è¯è¨ï¼è¯å¥ ï¼<literal>INSERT</literal> ,<literal>UPDATE</literal> å <literal>DELETE</literal>ï¼ æ°æ®åºä¸çæ°æ®å°ä¸ä¼å½±åå
åä¸çå¯¹è±¡ç¶æåå¯¹è±¡æ°æ®ãä¸è¿ï¼Hibernate æä¾éè¿ Hibernate æ¥è¯¢è¯è¨ï¼<xref linkend=\"queryhql\"/>ï¼æ¥æ§è¡å¤§æ¹é SQL 飿 ¼ç DML è¯å¥çæ¹æ³ã "
#. Tag: para
-#: batch.xml:146
-#, fuzzy, no-c-format
-msgid ""
-"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
-"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
-"where_conditions)?</literal>."
-msgstr ""
-"<literal>UPDATE</literal> å <literal>DELETE</literal>è¯å¥çè¯æ³ä¸ºï¼ "
-"<literal>( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</"
-"literal> æå ç¹è¯´æï¼"
+#, no-c-format
+msgid "The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</literal>."
+msgstr "<literal>UPDATE</literal> å <literal>DELETE</literal> è¯å¥çä¼ªè¯æ³ä¸ºï¼<literal>( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</literal>ã"
#. Tag: para
-#: batch.xml:151
#, no-c-format
msgid "Some points to note:"
-msgstr ""
+msgstr "è¦æ³¨æçäºé¡¹ï¼"
#. Tag: para
-#: batch.xml:157
#, no-c-format
msgid "In the from-clause, the FROM keyword is optional"
-msgstr "å¨FROMåå¥ï¼from-clauseï¼ä¸ï¼FROMå
³é®åæ¯å¯éç"
+msgstr "å¨ FROM åå¥ï¼from-clauseï¼ä¸ï¼FROM å
³é®åæ¯å¯éç"
#. Tag: para
-#: batch.xml:162
-#, fuzzy, no-c-format
-msgid ""
-"There can only be a single entity named in the from-clause. It can, however, "
-"be aliased. If the entity name is aliased, then any property references must "
-"be qualified using that alias. If the entity name is not aliased, then it is "
-"illegal for any property references to be qualified."
-msgstr ""
-"å¨FROMåå¥ï¼from-clauseï¼ä¸åªè½æä¸ä¸ªå®ä½åï¼å®å¯ä»¥æ¯å«åã妿å®ä½åæ¯å«åï¼"
-"é£ä¹ä»»ä½è¢«å¼ç¨ç屿§é½å¿
é¡»å 䏿¤å«åçåç¼ï¼å¦æä¸æ¯å«åï¼é£ä¹ä»»ä½æåç¼çå±"
-"æ§å¼ç¨é½æ¯éæ³çã"
+#, no-c-format
+msgid "There can only be a single entity named in the from-clause. It can, however, be aliased. If the entity name is aliased, then any property references must be qualified using that alias. If the entity name is not aliased, then it is illegal for any property references to be qualified."
+msgstr "å¨ FROM åå¥ï¼from-clauseï¼ä¸åªè½æä¸ä¸ªå®ä½åï¼å®å¯ä»¥æ¯å«åã妿å®ä½åæ¯å«åï¼é£ä¹ä»»ä½è¢«å¼ç¨ç屿§é½å¿
é¡»å 䏿¤å«åçåç¼ï¼å¦æä¸æ¯å«åï¼é£ä¹ä»»ä½æåç¼ç屿§å¼ç¨é½æ¯éæ³çã "
#. Tag: para
-#: batch.xml:170
-#, fuzzy, no-c-format
-msgid ""
-"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
-"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
-"the where-clause, where the subqueries themselves may contain joins."
-msgstr ""
-"ä¸è½å¨å¤§æ¹éHQLè¯å¥ä¸ä½¿ç¨<xref linkend=\"queryhql-joins-forms\">è¿æ¥(join)</"
-"xref>ï¼æ¾å¼æè
éå¼çé½ä¸è¡ï¼ãä¸è¿å¨WHEREåå¥ä¸å¯ä»¥ä½¿ç¨åæ¥è¯¢ãå¯ä»¥å¨whereå"
-"å¥ä¸ä½¿ç¨åæ¥è¯¢ï¼åæ¥è¯¢æ¬èº«å¯ä»¥å
å«joinã"
+#, no-c-format
+msgid "No <xref linkend=\"queryhql-joins-forms\" />, either implicit or explicit, can be specified in a bulk HQL query. Sub-queries can be used in the where-clause, where the subqueries themselves may contain joins."
+msgstr "ä¸è½å¨å¤§æ¹é HQL è¯å¥ä¸ä½¿ç¨ <xref linkend=\"queryhql-joins-forms\"/> è¿æ¥ï¼æ¾å¼æè
éå¼çé½ä¸è¡ï¼ãä¸è¿å¨ WHERE åå¥ä¸å¯ä»¥ä½¿ç¨åæ¥è¯¢ãå¯ä»¥å¨ where åå¥ä¸ä½¿ç¨åæ¥è¯¢ï¼åæ¥è¯¢æ¬èº«å¯ä»¥å
å« joinã "
#. Tag: para
-#: batch.xml:177
#, no-c-format
msgid "The where-clause is also optional."
-msgstr "æ´ä¸ªWHEREå奿¯å¯éçã"
+msgstr "æ´ä¸ª WHERE å奿¯å¯éçã"
#. Tag: para
-#: batch.xml:183
-#, fuzzy, no-c-format
-msgid ""
-"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
-"<literal>Query.executeUpdate()</literal> method. The method is named for "
-"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
-"literal>:"
-msgstr ""
-"举个ä¾åï¼ä½¿ç¨<literal>Query.executeUpdate()</literal>æ¹æ³æ§è¡ä¸ä¸ªHQL "
-"<literal>UPDATE</literal>è¯å¥(ï¼ (æ¹æ³å½åæ¯æ¥æºäºJDBC's "
-"<literal>PreparedStatement.executeUpdate()</literal>):"
-
-#. Tag: programlisting
-#: batch.xml:189
#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessionFactory.openSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-"\n"
-"String hqlUpdate = \"update Customer c set c.name = :newName where c.name = :"
-"oldName\";\n"
-"// or String hqlUpdate = \"update Customer set name = :newName where name = :"
-"oldName\";\n"
-"int updatedEntities = s.createQuery( hqlUpdate )\n"
-" .setString( \"newName\", newName )\n"
-" .setString( \"oldName\", oldName )\n"
-" .executeUpdate();\n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "As an example, to execute an HQL <literal>UPDATE</literal>, use the <literal>Query.executeUpdate()</literal> method. The method is named for those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</literal>:"
+msgstr "举个ä¾åï¼ä½¿ç¨ <literal>Query.executeUpdate()</literal> æ¹æ³æ§è¡ä¸ä¸ª HQL <literal>UPDATE</literal>è¯å¥ï¼æ¹æ³å½åæ¯æ¥æºäº JDBC ç <literal>PreparedStatement.executeUpdate()</literal>ï¼ï¼ "
#. Tag: para
-#: batch.xml:191
-#, fuzzy, no-c-format
-msgid ""
-"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
-"statements, by default, do not effect the <link linkend=\"mapping-"
-"declaration-version\">version</link> or the <link linkend=\"mapping-"
-"declaration-timestamp\">timestamp</link> property values for the affected "
-"entities. However, you can force Hibernate to reset the <literal>version</"
-"literal> or <literal>timestamp</literal> property values through the use of "
-"a <literal>versioned update</literal>. This is achieved by adding the "
-"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
-"keyword."
-msgstr ""
-"HQL <literal>UPDATE</literal>è¯å¥ï¼é»è®¤ä¸ä¼å½±åæ´æ°å®ä½ç<xref linkend="
-"\"mapping-declaration-version\">version</xref>æè
<xref linkend=\"mapping-"
-"declaration-timestamp\">timestamp</xref>屿§å¼ãè¿åEJB3è§èæ¯ä¸è´çã使¯ï¼"
-"éè¿ä½¿ç¨<literal>versioned update</literal>ï¼ä½ å¯ä»¥å¼ºå¶Hibernateæ£ç¡®çéç½®"
-"<literal>version</literal>æè
<literal>timestamp</literal>屿§å¼ãè¿éè¿å¨"
-"<literal>UPDATE</literal>å
³é®ååé¢å¢å <literal>VERSIONED</literal>å
³é®åæ¥å®"
-"ç°çã"
-
-#. Tag: programlisting
-#: batch.xml:201
#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessionFactory.openSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-"String hqlVersionedUpdate = \"update versioned Customer set name = :newName "
-"where name = :oldName\";\n"
-"int updatedEntities = s.createQuery( hqlUpdate )\n"
-" .setString( \"newName\", newName )\n"
-" .setString( \"oldName\", oldName )\n"
-" .executeUpdate();\n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> statements, by default, do not effect the version (<xref linkend=\"mapping-declaration-version\" />) or the timestamp (<xref linkend=\"mapping-declaration-timestamp\" />) property values for the affected entities. However, you can force Hibernate to reset the <literal>version</literal> or <literal>timestamp</literal> property values through the use of a <literal>versioned update</literal>. This is achieved by adding the <literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> keyword."
+msgstr "HQL <literal>UPDATE</literal> è¯å¥ï¼é»è®¤ä¸ä¼å½±åæ´æ°å®ä½ç <xref linkend=\"mapping-declaration-version\"/> æè
<xref linkend=\"mapping-declaration-timestamp\"/> 屿§å¼ãè¿å EJB3 è§èæ¯ä¸è´çã使¯ï¼éè¿ä½¿ç¨ <literal>versioned update</literal>ï¼ä½ å¯ä»¥å¼ºå¶ Hibernate æ£ç¡®çéç½®<literal>version</literal> æè
<literal>timestamp</literal> 屿§å¼ãè¿éè¿å¨ <literal>UPDATE</literal> å
³é®ååé¢å¢å <literal>VERSIONED</literal> å
³é®åæ¥å®ç°çã "
#. Tag: para
-#: batch.xml:203
-#, fuzzy, no-c-format
-msgid ""
-"Custom version types, <literal>org.hibernate.usertype.UserVersionType</"
-"literal>, are not allowed in conjunction with a <literal>update versioned</"
-"literal> statement."
-msgstr ""
-"注æï¼èªå®ä¹ççæ¬ç±»å(<literal>org.hibernate.usertype.UserVersionType</"
-"literal>)ä¸å
许å<literal>update versioned</literal>è¯å¥èç¨ã"
+#, no-c-format
+msgid "Custom version types, <literal>org.hibernate.usertype.UserVersionType</literal>, are not allowed in conjunction with a <literal>update versioned</literal> statement."
+msgstr "注æï¼èªå®ä¹ççæ¬ç±»åï¼<literal>org.hibernate.usertype.UserVersionType</literal>ï¼ä¸å
许å <literal>update versioned</literal> è¯å¥èç¨ã "
#. Tag: para
-#: batch.xml:208
#, no-c-format
-msgid ""
-"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
-"executeUpdate()</literal> method:"
-msgstr ""
-"æ§è¡ä¸ä¸ªHQL <literal>DELETE</literal>ï¼åæ ·ä½¿ç¨ <literal>Query.executeUpdate"
-"()</literal> æ¹æ³:"
+msgid "To execute an HQL <literal>DELETE</literal>, use the same <literal>Query.executeUpdate()</literal> method:"
+msgstr "æ§è¡ä¸ä¸ª HQL <literal>DELETE</literal>ï¼åæ ·ä½¿ç¨ <literal>Query.executeUpdate()</literal> æ¹æ³ï¼"
-#. Tag: programlisting
-#: batch.xml:213
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessionFactory.openSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-"\n"
-"String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
-"// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
-"int deletedEntities = s.createQuery( hqlDelete )\n"
-" .setString( \"oldName\", oldName )\n"
-" .executeUpdate();\n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "The <literal>int</literal> value returned by the <literal>Query.executeUpdate()</literal> method indicates the number of entities effected by the operation. This may or may not correlate to the number of rows effected in the database. An HQL bulk operation might result in multiple actual SQL statements being executed (for joined-subclass, for example). The returned number indicates the number of actual entities affected by the statement. Going back to the example of joined-subclass, a delete against one of the subclasses may actually result in deletes against not just the table to which that subclass is mapped, but also the \"root\" table and potentially joined-subclass tables further down the inheritance hierarchy."
+msgstr "ç± <literal>Query.executeUpdate()</literal> æ¹æ³è¿åç<literal>æ´å</literal>å¼è¡¨æäºåæ¤æä½å½±åçè®°å½æ°éãæ³¨æè¿ä¸ªæ°å¼å¯è½ä¸æ°æ®åºä¸è¢«ï¼æå䏿¡ SQL è¯å¥ï¼å½±åäºçâè¡âæ°æå
³ï¼ä¹å¯è½æ²¡æãä¸ä¸ªå¤§æ¹é HQL æä½å¯è½å¯¼è´å¤æ¡å®é
çSQLè¯å¥è¢«æ§è¡ï¼ä¸¾ä¸ªä¾åï¼å¯¹ joined-subclass æ å°æ¹å¼çç±»è¿è¡çæ¤ç±»æä½ãè¿ä¸ªè¿åå¼ä»£è¡¨äºå®é
被è¯å¥å½±åäºçè®°å½æ°éãå¨é£ä¸ª joined-subclass çä¾åä¸ï¼ 对ä¸ä¸ªåç±»çå é¤å®é
ä¸å¯è½ä¸ä»
ä»
ä¼å é¤åç±»æ å°å°ç表èä¸ä¼å½±åâæ ¹â表ï¼è¿æå¯è½å½±åä¸ä¹æç»§æ¿å
³ç³»ç joined-subclass æ å°æ¹å¼çåç±»ç表ã "
#. Tag: para
-#: batch.xml:215
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
-"()</literal> method indicates the number of entities effected by the "
-"operation. This may or may not correlate to the number of rows effected in "
-"the database. An HQL bulk operation might result in multiple actual SQL "
-"statements being executed (for joined-subclass, for example). The returned "
-"number indicates the number of actual entities affected by the statement. "
-"Going back to the example of joined-subclass, a delete against one of the "
-"subclasses may actually result in deletes against not just the table to "
-"which that subclass is mapped, but also the \"root\" table and potentially "
-"joined-subclass tables further down the inheritance hierarchy."
-msgstr ""
-"ç±<literal>Query.executeUpdate()</literal>æ¹æ³è¿åç<literal>æ´å</literal>å¼"
-"表æäºåæ¤æä½å½±åçè®°å½æ°éã æ³¨æè¿ä¸ªæ°å¼å¯è½ä¸æ°æ®åºä¸è¢«ï¼æå䏿¡SQLè¯"
-"å¥ï¼å½±åäºçâè¡âæ°æå
³ï¼ä¹å¯è½æ²¡æãä¸ä¸ªå¤§æ¹éHQLæä½å¯è½å¯¼è´å¤æ¡å®é
çSQLè¯"
-"å¥è¢«æ§è¡ï¼ 举个ä¾åï¼å¯¹joined-subclassæ å°æ¹å¼çç±»è¿è¡çæ¤ç±»æä½ãè¿ä¸ªè¿åå¼"
-"代表äºå®é
被è¯å¥å½±åäºçè®°å½æ°éãå¨é£ä¸ªjoined-subclassçä¾åä¸ï¼ 对ä¸ä¸ªåç±»"
-"çå é¤å®é
ä¸å¯è½ä¸ä»
ä»
ä¼å é¤åç±»æ å°å°ç表èä¸ä¼å½±åâæ ¹â表ï¼è¿æå¯è½å½±åä¸ä¹"
-"æç»§æ¿å
³ç³»çjoined-subclassæ å°æ¹å¼çåç±»ç表ã"
+#, no-c-format
+msgid "The pseudo-syntax for <literal>INSERT</literal> statements is: <literal>INSERT INTO EntityName properties_list select_statement</literal>. Some points to note:"
+msgstr "<literal>INSERT</literal> è¯å¥çä¼ªç æ¯ï¼<literal>INSERT INTO EntityName properties_list select_statement</literal>ãè¦æ³¨æçæ¯ï¼"
#. Tag: para
-#: batch.xml:226
#, no-c-format
-msgid ""
-"The pseudo-syntax for <literal>INSERT</literal> statements is: "
-"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
-"Some points to note:"
-msgstr ""
-"<literal>INSERT</literal>è¯å¥çä¼ªç æ¯: <literal>INSERT INTO EntityName "
-"properties_list select_statement</literal>. è¦æ³¨æçæ¯:"
+msgid "Only the INSERT INTO ... SELECT ... form is supported; not the INSERT INTO ... VALUES ... form."
+msgstr "åªæ¯æ INSERT INTO ... SELECT ... å½¢å¼ï¼ä¸æ¯æ INSERT INTO ... VALUES ... å½¢å¼ã"
#. Tag: para
-#: batch.xml:234
#, no-c-format
-msgid ""
-"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
-"INTO ... VALUES ... form."
-msgstr ""
-"åªæ¯æINSERT INTO ... SELECT ...å½¢å¼,䏿¯æINSERT INTO ... VALUES ...å½¢å¼."
+msgid "The properties_list is analogous to the <literal>column specification</literal> in the SQL <literal>INSERT</literal> statement. For entities involved in mapped inheritance, only properties directly defined on that given class-level can be used in the properties_list. Superclass properties are not allowed and subclass properties do not make sense. In other words, <literal>INSERT</literal> statements are inherently non-polymorphic."
+msgstr "properties_list å SQL <literal>INSERT</literal> è¯å¥ä¸ç<literal>åæ®µå®ä¹ï¼column speficiationï¼</literal>类似ã对åä¸ç»§æ¿æ æ å°çå®ä½èè¨ï¼åªæç´æ¥å®ä¹å¨ç»å®ç类级å«ç屿§æè½ç´æ¥å¨ properties_list ä¸ä½¿ç¨ãè¶
ç±»ç屿§ä¸è¢«æ¯æï¼åç±»ç屿§æ æä¹ãæ¢å¥è¯è¯´ï¼<literal>INSERT</literal> 天ç䏿¯æå¤ææ§ã"
#. Tag: para
-#: batch.xml:237
-#, fuzzy, no-c-format
-msgid ""
-"The properties_list is analogous to the <literal>column specification</"
-"literal> in the SQL <literal>INSERT</literal> statement. For entities "
-"involved in mapped inheritance, only properties directly defined on that "
-"given class-level can be used in the properties_list. Superclass properties "
-"are not allowed and subclass properties do not make sense. In other words, "
-"<literal>INSERT</literal> statements are inherently non-polymorphic."
-msgstr ""
-"properties_liståSQL <literal>INSERT</literal>è¯å¥ä¸ç<literal>åæ®µå®ä¹"
-"(column speficiation)</literal>类似ã对åä¸ç»§æ¿æ æ å°çå®ä½èè¨ï¼åªæç´æ¥å®ä¹"
-"å¨ç»å®ç类级å«ç屿§æè½ç´æ¥å¨properties_listä¸ä½¿ç¨ãè¶
ç±»ç屿§ä¸è¢«æ¯æï¼åç±»"
-"ç屿§æ æä¹ãæ¢å¥è¯è¯´ï¼<literal>INSERT</literal>天ç䏿¯æå¤æã"
+#, no-c-format
+msgid "select_statement can be any valid HQL select query, with the caveat that the return types must match the types expected by the insert. Currently, this is checked during query compilation rather than allowing the check to relegate to the database. This might, however, cause problems between Hibernate <literal>Type</literal>s which are <emphasis>equivalent</emphasis> as opposed to <emphasis>equal</emphasis>. This might cause issues with mismatches between a property defined as a <literal>org.hibernate.type.DateType</literal> and a property defined as a <literal>org.hibernate.type.TimestampType</literal>, even though the database might not make a distinction or might be able to handle the conversion."
+msgstr "select_statement å¯ä»¥æ¯ä»»ä½åæ³ç HQL éæ©æ¥è¯¢ï¼ä¸è¿è¦ä¿è¯è¿åç±»åå¿
é¡»åè¦æå
¥çç±»åå®å
¨å¹é
ãç®åï¼è¿ä¸æ£æ¥æ¯å¨æ¥è¯¢ç¼è¯çæ¶åè¿è¡çï¼è䏿¯æå®äº¤ç»æ°æ®åºã注æï¼å¨Hibernate<literal>Type</literal> é´å¦æåªæ¯<emphasis>çä»·ï¼equivalentï¼</emphasis>èé<emphasis>ç¸çï¼equalï¼</emphasis>ï¼ä¼å¯¼è´é®é¢ãå®ä¹ä¸º <literal>org.hibernate.type.DateType</literal> å <literal>org.hibernate.type.TimestampType</literal> çä¸¤ä¸ªå±æ§å¯è½ä¼äº§çç±»åä¸å¹é
é误ï¼è½ç¶æ°æ®åºçº§å¯è½ä¸å åºåæè
å¯ä»¥å¤çè¿ç§è½¬æ¢ã "
#. Tag: para
-#: batch.xml:247
-#, fuzzy, no-c-format
-msgid ""
-"select_statement can be any valid HQL select query, with the caveat that the "
-"return types must match the types expected by the insert. Currently, this is "
-"checked during query compilation rather than allowing the check to relegate "
-"to the database. This might, however, cause problems between Hibernate "
-"<literal>Type</literal>s which are <emphasis>equivalent</emphasis> as "
-"opposed to <emphasis>equal</emphasis>. This might cause issues with "
-"mismatches between a property defined as a <literal>org.hibernate.type."
-"DateType</literal> and a property defined as a <literal>org.hibernate.type."
-"TimestampType</literal>, even though the database might not make a "
-"distinction or might be able to handle the conversion."
-msgstr ""
-"select_statementå¯ä»¥æ¯ä»»ä½åæ³çHQLéæ©æ¥è¯¢ï¼ä¸è¿è¦ä¿è¯è¿åç±»åå¿
é¡»åè¦æå
¥ç"
-"ç±»åå®å
¨å¹é
ãç®åï¼è¿ä¸æ£æ¥æ¯å¨æ¥è¯¢ç¼è¯çæ¶åè¿è¡çï¼è䏿¯æå®äº¤ç»æ°æ®åºã"
-"注æï¼å¨Hibernate<literal>Type</literal>é´å¦æåªæ¯<emphasis>çä»·"
-"ï¼equivalentï¼</emphasis>èé<emphasis>ç¸ç(equal)</emphasis>ï¼ä¼å¯¼è´é®é¢ãå®"
-"ä¹ä¸º<literal>org.hibernate.type.DateType</literal>å<literal>org.hibernate."
-"type.TimestampType</literal>çä¸¤ä¸ªå±æ§å¯è½ä¼äº§çç±»åä¸å¹é
é误ï¼è½ç¶æ°æ®åºçº§"
-"å¯è½ä¸å åºåæè
å¯ä»¥å¤çè¿ç§è½¬æ¢ã"
+#, no-c-format
+msgid "For the id property, the insert statement gives you two options. You can either explicitly specify the id property in the properties_list, in which case its value is taken from the corresponding select expression, or omit it from the properties_list, in which case a generated value is used. This latter option is only available when using id generators that operate in the database; attempting to use this option with any \"in memory\" type generators will cause an exception during parsing. For the purposes of this discussion, in-database generators are considered to be <literal>org.hibernate.id.SequenceGenerator</literal> (and its subclasses) and any implementers of <literal>org.hibernate.id.PostInsertIdentifierGenerator</literal>. The most notable exception here is <literal>org.hibernate.id.TableHiLoGenerator</literal>, which cannot be used because it does not expose a selectable way to get its values."
+msgstr "对 id 屿§æ¥è¯´ï¼insert è¯å¥ç»ä½ ä¸¤ä¸ªéæ©ãä½ å¯ä»¥æç¡®å°å¨ properties_list è¡¨ä¸æå® id 屿§ï¼è¿æ ·å®ç弿¯ä»å¯¹åºç select 表达å¼ä¸è·å¾ï¼ï¼æè
å¨ properties_list ä¸çç¥å®ï¼æ¤æ¶ä½¿ç¨çææï¼ãåä¸ç§éæ©åªæå½ä½¿ç¨å¨æ°æ®åºä¸çæå¼ç id 产ç卿¶æè½ä½¿ç¨ï¼å¦ææ¯âå
åâä¸è®¡ç®çç±»åçæå¨ï¼å¨è§£ææ¶ä¼æåºä¸ä¸ªå¼å¸¸ã注æï¼ä¸ºäºè¯´æè¿ä¸é®é¢ï¼æ°æ®åºäº§çå¼ççæå¨æ¯ <literal>org.hibernate.id.SequenceGenerator</literal>ï¼åå®çåç±»ï¼ï¼ä»¥åä»»ä½ <literal>org.hibernate.id.PostInsertIdentifierGenerator</literal> æ¥å£çå®ç°ãè¿å¿æå¼å¾æ³¨æçæå¤æ¯ <literal>org.hibernate.id.TableHiLoGenerator</literal>ï¼å®ä¸è½å¨æ¤ä½¿ç¨ï¼å ä¸ºå®æ²¡æå¾å°å
¶å¼çéå¾ã "
#. Tag: para
-#: batch.xml:259
-#, fuzzy, no-c-format
-msgid ""
-"For the id property, the insert statement gives you two options. You can "
-"either explicitly specify the id property in the properties_list, in which "
-"case its value is taken from the corresponding select expression, or omit it "
-"from the properties_list, in which case a generated value is used. This "
-"latter option is only available when using id generators that operate in the "
-"database; attempting to use this option with any \"in memory\" type "
-"generators will cause an exception during parsing. For the purposes of this "
-"discussion, in-database generators are considered to be <literal>org."
-"hibernate.id.SequenceGenerator</literal> (and its subclasses) and any "
-"implementers of <literal>org.hibernate.id.PostInsertIdentifierGenerator</"
-"literal>. The most notable exception here is <literal>org.hibernate.id."
-"TableHiLoGenerator</literal>, which cannot be used because it does not "
-"expose a selectable way to get its values."
-msgstr ""
-"对id屿§æ¥è¯´,insertè¯å¥ç»ä½ ä¸¤ä¸ªéæ©ãä½ å¯ä»¥æç¡®å°å¨properties_listè¡¨ä¸æå®id"
-"屿§ï¼è¿æ ·å®ç弿¯ä»å¯¹åºçselect表达å¼ä¸è·å¾ï¼ï¼æè
å¨properties_listä¸çç¥å®"
-"ï¼æ¤æ¶ä½¿ç¨çææï¼ãåä¸ç§éæ©åªæå½ä½¿ç¨å¨æ°æ®åºä¸çæå¼çid产ç卿¶æè½ä½¿"
-"ç¨ï¼å¦ææ¯âå
åâä¸è®¡ç®çç±»åçæå¨ï¼å¨è§£ææ¶ä¼æåºä¸ä¸ªå¼å¸¸ã注æï¼ä¸ºäºè¯´æè¿"
-"ä¸é®é¢ï¼æ°æ®åºäº§çå¼ççæå¨æ¯<literal>org.hibernate.id.SequenceGenerator</"
-"literal>ï¼åå®çåç±»ï¼ï¼ä»¥åä»»ä½<literal>org.hibernate.id."
-"PostInsertIdentifierGenerator</literal>æ¥å£çå®ç°ãè¿å¿æå¼å¾æ³¨æçæå¤æ¯"
-"<literal>org.hibernate.id.TableHiLoGenerator</literal>ï¼å®ä¸è½å¨æ¤ä½¿ç¨ï¼å 为"
-"宿²¡æå¾å°å
¶å¼çéå¾ã"
+#, no-c-format
+msgid "For properties mapped as either <literal>version</literal> or <literal>timestamp</literal>, the insert statement gives you two options. You can either specify the property in the properties_list, in which case its value is taken from the corresponding select expressions, or omit it from the properties_list, in which case the <literal>seed value</literal> defined by the <literal>org.hibernate.type.VersionType</literal> is used."
+msgstr "对æ å°ä¸º <literal>version</literal> æ <literal>timestamp</literal> ç屿§æ¥è¯´ï¼insert è¯å¥ä¹ç»ä½ ä¸¤ä¸ªéæ©ï¼ä½ å¯ä»¥å¨ properties_list è¡¨ä¸æå®ï¼æ¤æ¶å
¶å¼ä»å¯¹åºç select 表达å¼ä¸è·å¾ï¼ï¼æè
å¨ properties_list ä¸çç¥å®ï¼æ¤æ¶ï¼ä½¿ç¨å¨ <literal>org.hibernate.type.VersionType</literal> ä¸å®ä¹ç <literal>seed valueï¼ç§åå¼ï¼</literal>ï¼ã"
#. Tag: para
-#: batch.xml:274
-#, fuzzy, no-c-format
-msgid ""
-"For properties mapped as either <literal>version</literal> or "
-"<literal>timestamp</literal>, the insert statement gives you two options. "
-"You can either specify the property in the properties_list, in which case "
-"its value is taken from the corresponding select expressions, or omit it "
-"from the properties_list, in which case the <literal>seed value</literal> "
-"defined by the <literal>org.hibernate.type.VersionType</literal> is used."
-msgstr ""
-"对æ å°ä¸º<literal>version</literal> æ <literal>timestamp</literal>ç屿§æ¥"
-"说ï¼insertè¯å¥ä¹ç»ä½ ä¸¤ä¸ªéæ©ï¼ä½ å¯ä»¥å¨properties_listè¡¨ä¸æå®ï¼æ¤æ¶å
¶å¼ä»å¯¹åº"
-"çselect表达å¼ä¸è·å¾ï¼ï¼æè
å¨properties_listä¸çç¥å®ï¼æ¤æ¶ï¼ä½¿ç¨å¨"
-"<literal>org.hibernate.type.VersionType</literal> ä¸å®ä¹ç<literal>seed value"
-"(ç§åå¼)</literal>ï¼ã"
+#, no-c-format
+msgid "The following is an example of an HQL <literal>INSERT</literal> statement execution:"
+msgstr "ä¸é¢æ¯ä¸ä¸ªæ§è¡ HQL <literal>INSERT</literal> è¯å¥çä¾åï¼"
-#. Tag: para
-#: batch.xml:284
-#, fuzzy, no-c-format
-msgid ""
-"The following is an example of an HQL <literal>INSERT</literal> statement "
-"execution:"
-msgstr "æ§è¡HQL <literal>INSERT</literal>è¯å¥çä¾åå¦ä¸ï¼"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ "}\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ "}\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+#~ msgstr "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+#~ msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+#~ msgstr "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
+#~ " //flush a batch of inserts and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
+#~ " //flush a batch of inserts and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .setCacheMode(CacheMode.IGNORE)\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "int count=0;\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " if ( ++count % 20 == 0 ) {\n"
+#~ " //flush a batch of updates and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .setCacheMode(CacheMode.IGNORE)\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "int count=0;\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " if ( ++count % 20 == 0 ) {\n"
+#~ " //flush a batch of updates and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
+#~ "();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " session.update(customer);\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
+#~ "();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " session.update(customer);\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
+#~ "= :oldName\";\n"
+#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
+#~ "= :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
+#~ "= :oldName\";\n"
+#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
+#~ "= :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
+#~ "newName where name = :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
+#~ "newName where name = :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
+#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
+#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
+#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
+#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
+#~ "id, c.name from Customer c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
+#~ "id, c.name from Customer c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
-#. Tag: programlisting
-#: batch.xml:288
-#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessionFactory.openSession();\n"
-"Transaction tx = session.beginTransaction();\n"
-"\n"
-"String hqlInsert = \"insert into DelinquentAccount (id, name) select c.id, c."
-"name from Customer c where ...\";\n"
-"int createdEntities = s.createQuery( hqlInsert )\n"
-" .executeUpdate();\n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,32 +1,34 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-11-06 10:05+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: best_practices.xml:29
#, no-c-format
msgid "Best Practices"
-msgstr "æä½³å®è·µ(Best Practices)"
+msgstr "æä½³å®è·µï¼Best Practicesï¼"
#. Tag: term
-#: best_practices.xml:33
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Write fine-grained classes and map them using <literal><component></"
"literal>:"
msgstr ""
-"设计ç»é¢ç²åº¦çæä¹
类并ä¸ä½¿ç¨<literal><component></literal>æ¥å®ç°æ å°ã"
+"设计ç»é¢ç²åº¦çæä¹
类并ä¸ä½¿ç¨ <literal><component></literal> æ¥å®ç°æ "
+"å°ï¼"
#. Tag: para
-#: best_practices.xml:35
#, no-c-format
msgid ""
"Use an <literal>Address</literal> class to encapsulate <literal>street</"
@@ -34,35 +36,31 @@
"<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)çå·¥ä½ã"
+"使ç¨ä¸ä¸ª <literal>Address</literal> æä¹
ç±»æ¥å°è£
ã<literal>street</literal>ï¼"
+"<literal>suburb</literal>ï¼<literal>state</literal>ï¼<literal>postcode</"
+"literal>ã è¿å°æå©äºä»£ç éç¨åç®å代ç éæï¼refactoringï¼çå·¥ä½ã"
#. Tag: term
-#: best_practices.xml:43
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Declare identifier properties on persistent classes:"
-msgstr "对æä¹
ç±»å£°ææ è¯ç¬¦å±æ§( identifier properties)ã"
+msgstr "对æä¹
ç±»å£°ææ è¯ç¬¦å±æ§ï¼identifier propertiesï¼ï¼"
#. Tag: para
-#: best_practices.xml:45
-#, fuzzy, no-c-format
+#, 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䏿 è¯ç¬¦å±æ§æ¯å¯éçï¼ä¸è¿æå¾å¤åå æ¥è¯´æä½ åºè¯¥ä½¿ç¨æ è¯ç¬¦å±æ§ãæä»¬"
-"建议æ è¯ç¬¦åºè¯¥æ¯â人é âç(èªå¨çæï¼ä¸æ¶åä¸å¡å«ä¹)ã"
+"Hibernate 䏿 è¯ç¬¦å±æ§æ¯å¯éçï¼ä¸è¿æå¾å¤åå æ¥è¯´æä½ åºè¯¥ä½¿ç¨æ è¯ç¬¦å±æ§ãæ"
+"们建议æ è¯ç¬¦åºè¯¥æ¯â人é âçï¼èªå¨çæï¼ä¸æ¶åä¸å¡å«ä¹ï¼ã "
#. Tag: term
-#: best_practices.xml:53
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Identify natural keys:"
-msgstr "使ç¨èªç¶é®(natural keys)æ è¯"
+msgstr "使ç¨èªç¶é®ï¼natural keysï¼æ è¯ï¼"
#. Tag: para
-#: best_practices.xml:55
#, no-c-format
msgid ""
"Identify natural keys for all entities, and map them using <literal><"
@@ -70,102 +68,90 @@
"<literal>hashCode()</literal> to compare the properties that make up the "
"natural key."
msgstr ""
-"对ææçå®ä½é½æ è¯åºèªç¶é®ï¼ç¨<literal><natural-id></literal>è¿è¡æ å°ã"
-"å®ç°<literal>equals()</literal>å<literal>hashCode()</literal>ï¼å¨å
¶ä¸ç¨ç»æ"
-"èªç¶é®ç屿§è¿è¡æ¯è¾ã"
+"对ææçå®ä½é½æ è¯åºèªç¶é®ï¼ç¨ <literal><natural-id></literal> è¿è¡æ "
+"å°ãå®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ï¼å¨å
¶ä¸"
+"ç¨ç»æèªç¶é®ç屿§è¿è¡æ¯è¾ã"
#. Tag: term
-#: best_practices.xml:63
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Place each class mapping in its own file:"
-msgstr "为æ¯ä¸ªæä¹
ç±»åä¸ä¸ªæ å°æä»¶"
+msgstr "为æ¯ä¸ªæä¹
ç±»åä¸ä¸ªæ å°æä»¶ï¼"
#. Tag: para
-#: best_practices.xml:65
-#, fuzzy, no-c-format
+#, 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>ä¸ï¼ å¨å¢éå¼åç¯å¢ä¸ï¼è¿ä¸ç¹æ¾å¾ç¹"
-"嫿æä¹ã"
+"å°å° <literal>com/eg/Foo.hbm.xml</literal> ä¸ãå¨å¢éå¼åç¯å¢ä¸ï¼è¿ä¸ç¹å°¤å
¶é"
+"è¦ã"
#. Tag: term
-#: best_practices.xml:73
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Load mappings as resources:"
-msgstr "ææ å°æä»¶ä½ä¸ºèµæºå è½½"
+msgstr "ææ å°æä»¶ä½ä¸ºèµæºå è½½ï¼"
#. Tag: para
-#: best_practices.xml:75
#, no-c-format
msgid "Deploy the mappings along with the classes they map."
msgstr "ææ å°æä»¶åä»ä»¬çæ å°ç±»æ¾å¨ä¸èµ·è¿è¡é¨ç½²ã"
#. Tag: term
-#: best_practices.xml:81
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Consider externalizing query strings:"
-msgstr "èèææ¥è¯¢å符串æ¾å¨ç¨åºå¤é¢"
+msgstr "èèææ¥è¯¢å符串æ¾å¨ç¨åºå¤é¢ï¼"
#. Tag: para
-#: best_practices.xml:83
-#, fuzzy, no-c-format
+#, 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彿°ï¼é£ä¹è¿æ¡å®è·µç»éªå¯¹ä½ éç¨ãææ¥è¯¢å符"
-"串æ¾å¨æ å°æä»¶ä¸å¯ä»¥è®©ç¨åºå
·ææ´å¥½çå¯ç§»æ¤æ§ã"
+"å¦æä½ çæ¥è¯¢ä¸è°ç¨äºé ANSI æ åç SQL 彿°ï¼é£ä¹è¿æ¡å®è·µç»éªå¯¹ä½ éç¨ãææ¥è¯¢"
+"å符串æ¾å¨æ å°æä»¶ä¸å¯ä»¥è®©ç¨åºå
·ææ´å¥½çå¯ç§»æ¤æ§ã "
#. Tag: term
-#: best_practices.xml:91
#, no-c-format
msgid "Use bind variables."
msgstr "使ç¨ç»å®åé"
#. Tag: para
-#: best_practices.xml:93
-#, fuzzy, no-c-format
+#, 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ç¼ç¨ä¸ä¸æ ·ï¼åºè¯¥æ»æ¯ç¨å ä½ç¬¦\"?\"æ¥æ¿æ¢é常éå¼ï¼ä¸è¦å¨æ¥è¯¢ä¸ç¨å符"
-"䏲弿¥æé é常éå¼ï¼æ´å¥½çåæ³æ¯å¨æ¥è¯¢ä¸ä½¿ç¨å½ååæ°ã"
+"å°±åå¨ JDBC ç¼ç¨ä¸ä¸æ ·ï¼åºè¯¥æ»æ¯ç¨å ä½ç¬¦ \"?\" æ¥æ¿æ¢é常éå¼ï¼ä¸è¦å¨æ¥è¯¢ä¸ç¨"
+"åç¬¦ä¸²å¼æ¥æé é常éå¼ãä½ ä¹åºè¯¥èè卿¥è¯¢ä¸ä½¿ç¨å½ååæ°ã"
#. Tag: term
-#: best_practices.xml:101
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Do not manage your own JDBC connections:"
-msgstr "ä¸è¦èªå·±æ¥ç®¡çJDBC connections"
+msgstr "ä¸è¦èªå·±æ¥ç®¡ç JDBC è¿æ¥ï¼"
#. Tag: para
-#: best_practices.xml:103
-#, fuzzy, no-c-format
+#, 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 connectionsï¼ä½æ¯åºè¯¥ä½ä¸ºæå没æåæ³çå"
-"æ³ãå¦æä½ ä¸è½ä½¿ç¨Hibernateå
建çconnections providersï¼é£ä¹èèå®ç°èªå·±æ¥å®"
-"ç°<literal>org.hibernate.connection.ConnectionProvider</literal>"
+"Hibernate å
许åºç¨ç¨åºèªå·±æ¥ç®¡ç JDBC è¿æ¥ï¼ä½æ¯åºè¯¥ä½ä¸ºæå没æåæ³çåæ³ã"
+"å¦æä½ ä¸è½ä½¿ç¨ Hibernate å
建ç connections providersï¼é£ä¹èèå®ç°èªå·±æ¥å®"
+"ç° <literal>org.hibernate.connection.ConnectionProvider</literal>ã"
#. Tag: term
-#: best_practices.xml:111
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Consider using a custom type:"
-msgstr "èè使ç¨ç¨æ·èªå®ä¹ç±»å(custom type)"
+msgstr "èè使ç¨ç¨æ·èªå®ä¹ç±»åï¼custom typeï¼ï¼"
#. Tag: para
-#: best_practices.xml:113
-#, fuzzy, no-c-format
+#, 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 "
@@ -173,20 +159,18 @@
"approach frees the application code from implementing transformations to/"
"from a Hibernate type."
msgstr ""
-"åè®¾ä½ æä¸ä¸ªJavaç±»åï¼æ¥èªæäºç±»åºï¼éè¦è¢«æä¹
åï¼ä½æ¯è¯¥ç±»æ²¡ææä¾æ å°æä½é"
-"è¦çååæ¹æ³ãé£ä¹ä½ åºè¯¥èèå®ç°<literal>org.hibernate.UserType</literal>æ¥"
-"å£ãè¿ç§åæ³ä½¿ç¨åºä»£ç åèµ·æ¥æ´å èªå¦ï¼ä¸åéè¦èèç±»ä¸Hibernate typeä¹é´çç¸"
-"äºè½¬æ¢ã"
+"åè®¾ä½ æä¸ä¸ª Java ç±»åï¼æ¥èªæäºç±»åºï¼éè¦è¢«æä¹
åï¼ä½æ¯è¯¥ç±»æ²¡ææä¾æ å°æä½"
+"éè¦çååæ¹æ³ãé£ä¹ä½ åºè¯¥èèå®ç° <literal>org.hibernate.UserType</literal> "
+"æ¥å£ãè¿ç§åæ³ä½¿ç¨åºä»£ç åèµ·æ¥æ´å èªå¦ï¼ä¸åéè¦èèç±»ä¸ Hibernate type ä¹é´"
+"çç¸äºè½¬æ¢ã "
#. Tag: term
-#: best_practices.xml:122
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Use hand-coded JDBC in bottlenecks:"
-msgstr "卿§è½ç¶é¢çå°æ¹ä½¿ç¨ç¡¬ç¼ç çJDBC"
+msgstr "卿§è½ç¶é¢çå°æ¹ä½¿ç¨ç¡¬ç¼ç ç JDBCï¼"
#. Tag: para
-#: best_practices.xml:124
-#, fuzzy, no-c-format
+#, 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 "
@@ -196,28 +180,19 @@
"html that JDBC connection. This way you can still use the same transaction "
"strategy and underlying connection provider."
msgstr ""
-"In performance-critical areas of the system, some kinds of operations might "
-"benefit from direct JDBC. But please, wait until you <emphasis>know</"
-"emphasis> something is a bottleneck. And don't assume that direct JDBC is "
-"necessarily faster. If you need to use direct JDBC, it might be worth "
-"opening a Hibernate <literal>Session</literal> and using that JDBC "
-"connection. That way you can still use the same transaction strategy and "
-"underlying connection provider. å¨ç³»ç»ä¸å¯¹æ§è½è¦æ±å¾ä¸¥æ ¼çä¸äºé¨åï¼æäºæä½"
-"ä¹è®¸ç´æ¥ä½¿ç¨JDBC伿´å¥½ã使¯è¯·å
<emphasis>确认</emphasis>è¿çç¡®æ¯ä¸ä¸ªç¶é¢ï¼å¹¶"
-"ä¸ä¸è¦æ³å½ç¶è®¤ä¸ºJDBCä¸å®ä¼æ´å¿«ãå¦æç¡®å®éè¦ç´æ¥ä½¿ç¨JDBCï¼é£ä¹æå¥½æå¼ä¸ä¸ª "
-"Hibernate <literal>Session</literal> ç¶åä» <literal>Session</literal>è·å¾"
-"connectionï¼æç
§è¿ç§åæ³ä½ ä»ç¶å¯ä»¥ä½¿ç¨åæ ·çtransactionçç¥ååºå±ç"
-"connection providerã"
+"å¨ç³»ç»ä¸å¯¹æ§è½è¦æ±å¾ä¸¥æ ¼çä¸äºé¨åï¼æäºæä½ä¹è®¸ç´æ¥ä½¿ç¨ JDBC 伿´å¥½ã使¯è¯·"
+"å
<emphasis>确认</emphasis>è¿çç¡®æ¯ä¸ä¸ªç¶é¢ï¼å¹¶ä¸ä¸è¦æ³å½ç¶è®¤ä¸º JDBC ä¸å®ä¼æ´"
+"å¿«ãå¦æç¡®å®éè¦ç´æ¥ä½¿ç¨ JDBCï¼é£ä¹æå¥½æå¼ä¸ä¸ª Hibernate <literal>Session</"
+"literal> ç¶åä» <literal>Session</literal> è·å¾ connectionï¼æç
§è¿ç§åæ³ä½ ä»"
+"ç¶å¯ä»¥ä½¿ç¨åæ ·ç transaction çç¥ååºå±ç connection providerã "
#. Tag: term
-#: best_practices.xml:134
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Understand <literal>Session</literal> flushing:"
-msgstr "çè§£<literal>Session</literal>æ¸
æ´ï¼ flushingï¼"
+msgstr "çè§£ <literal>Session</literal> å²å·ï¼flushingï¼ï¼"
#. Tag: para
-#: best_practices.xml:136
-#, fuzzy, no-c-format
+#, 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 "
@@ -225,19 +200,17 @@
"even by changing the order of queries and other operations within a "
"particular transaction."
msgstr ""
-"Sessionä¼ä¸æ¶çåæ°æ®åºåæ¥æä¹
åç¶æï¼å¦æè¿ç§æä½è¿è¡çè¿äºé¢ç¹ï¼æ§è½ä¼åå°"
-"ä¸å®çå½±åãææ¶åä½ å¯ä»¥éè¿ç¦æ¢èªå¨flushingï¼å°½éæå°åéå¿
è¦çflushingæ"
-"ä½ï¼æè
æ´è¿ä¸æ¥ï¼å¨ä¸ä¸ªç¹å®çtransaction䏿¹åæ¥è¯¢åå
¶å®æä½ç顺åºã"
+"Session ä¼ä¸æ¶çåæ°æ®åºåæ¥æä¹
åç¶æï¼å¦æè¿ç§æä½è¿è¡çè¿äºé¢ç¹ï¼æ§è½ä¼å"
+"å°ä¸å®çå½±åãææ¶åä½ å¯ä»¥éè¿ç¦æ¢èªå¨ flushingï¼å°½éæå°åéå¿
è¦ç flushing "
+"æä½ï¼æè
æ´è¿ä¸æ¥ï¼å¨ä¸ä¸ªç¹å®ç transaction 䏿¹åæ¥è¯¢åå
¶å®æä½ç顺åºã "
#. Tag: term
-#: best_practices.xml:145
-#, fuzzy, no-c-format
+#, no-c-format
msgid "In a three tiered architecture, consider using detached objects:"
-msgstr "å¨ä¸å±ç»æä¸ï¼èèä½¿ç¨æç®¡å¯¹è±¡ï¼detached objectï¼"
+msgstr "å¨ä¸å±ç»æä¸ï¼èè使ç¨è±ç®¡å¯¹è±¡ï¼detached objectï¼ï¼"
#. Tag: para
-#: best_practices.xml:147
-#, fuzzy, no-c-format
+#, 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 "
@@ -245,20 +218,18 @@
"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>æ¥ä¸æ°æ®åºåæ¥ã"
+"å½ä½¿ç¨ä¸ä¸ª servlet / session bean ç±»åçæ¶æçæ¶å, ä½ å¯ä»¥æå·²å è½½çæä¹
对象"
+"å¨ session bean å±å servlet / JSP å±ä¹é´æ¥åä¼ éãä½¿ç¨æ°ç session æ¥ä¸ºæ¯ä¸ª"
+"è¯·æ±æå¡ï¼ä½¿ç¨ <literal>Session.merge()</literal> æè
<literal>Session."
+"saveOrUpdate()</literal> æ¥ä¸æ°æ®åºåæ¥ã "
#. Tag: term
-#: best_practices.xml:156
-#, fuzzy, no-c-format
+#, no-c-format
msgid "In a two tiered architecture, consider using long persistence contexts:"
-msgstr "å¨ä¸¤å±ç»æä¸ï¼èè使ç¨é¿æä¹
ä¸ä¸æ(long persistence contexts)."
+msgstr "å¨ä¸¤å±ç»æä¸ï¼èè使ç¨é¿æä¹
ä¸ä¸æï¼long persistence contextsï¼ï¼"
#. Tag: para
-#: best_practices.xml:158
-#, fuzzy, no-c-format
+#, 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 "
@@ -273,23 +244,21 @@
"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)ä¸ï¼å¦åä½ çæ°æ®å¯è½ä¼è¿æå¤±æã"
+"为äºå¾å°æä½³çå¯ä¼¸ç¼©æ§ï¼æ°æ®åºäºå¡ï¼Database Transactionï¼åºè¯¥å°½å¯è½ççãä½"
+"æ¯ï¼ç¨åºå¸¸å¸¸éè¦å®ç°é¿æ¶é´è¿è¡ç<emphasis>âåºç¨ç¨åºäºå¡ï¼Application "
+"Transactionï¼â</emphasis>ï¼å
å«ä¸ä¸ªä»ç¨æ·çè§ç¹æ¥ççååæä½ãè¿ä¸ªåºç¨ç¨åºäº"
+"å¡å¯è½è·¨è¶å¤æ¬¡ä»ç¨æ·è¯·æ±å°å¾å°åé¦ç循ç¯ãç¨è±ç®¡å¯¹è±¡ï¼ä¸ session è±ç¦»ç对象ï¼"
+"æ¥å®ç°åºç¨ç¨åºäºå¡æ¯å¸¸è§çãæè
ï¼å°¤å
¶å¨ä¸¤å±ç»æä¸ï¼æ Hibernate Session ä» "
+"JDBC è¿æ¥ä¸è±ç¦»å¼ï¼ä¸æ¬¡éè¦ç¨çæ¶ååè¿æ¥ä¸ãç»ä¸è¦æä¸ä¸ª Session ç¨å¨å¤ä¸ªåº"
+"ç¨ç¨åºäºå¡ï¼Application Transactionï¼ä¸ï¼å¦åä½ çæ°æ®å¯è½ä¼è¿æå¤±æã"
#. Tag: term
-#: best_practices.xml:172
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Do not treat exceptions as recoverable:"
-msgstr "ä¸è¦æå¼å¸¸çæå¯æ¢å¤ç"
+msgstr "ä¸è¦æå¼å¸¸çæå¯æ¢å¤çï¼"
#. Tag: para
-#: best_practices.xml:174
-#, fuzzy, no-c-format
+#, 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 "
@@ -300,20 +269,18 @@
"<literal>Session.get()</literal> or a query instead."
msgstr ""
"è¿ä¸ç¹çè³æ¯âæä½³å®è·µâè¿è¦éè¦ï¼è¿æ¯âå¿
å¤å¸¸è¯âãå½å¼å¸¸åççæ¶åï¼å¿
é¡»è¦åæ» "
-"<literal>Transaction</literal> ï¼å
³é<literal>Session</literal>ãå¦æä½ ä¸è¿æ ·"
-"åçè¯ï¼Hibernateæ æ³ä¿è¯å
åç¶æç²¾ç¡®çååºæä¹
ç¶æãå°¤å
¶ä¸è¦ä½¿ç¨"
-"<literal>Session.load()</literal>æ¥å¤æä¸ä¸ªç»å®æ è¯ç¬¦ç对象å®ä¾å¨æ°æ®åºä¸æ¯å¦"
-"åå¨ï¼åºè¯¥ä½¿ç¨<literal>Session.get()</literal>æè
è¿è¡ä¸æ¬¡æ¥è¯¢."
+"<literal>Transaction</literal> ï¼å
³é <literal>Session</literal>ãå¦æä½ ä¸è¿"
+"æ ·åçè¯ï¼Hibernate æ æ³ä¿è¯å
åç¶æç²¾ç¡®çååºæä¹
ç¶æãå°¤å
¶ä¸è¦ä½¿ç¨ "
+"<literal>Session.load()</literal> æ¥å¤æä¸ä¸ªç»å®æ è¯ç¬¦ç对象å®ä¾å¨æ°æ®åºä¸æ¯"
+"å¦åå¨ï¼åºè¯¥ä½¿ç¨ <literal>Session.get()</literal> æè
è¿è¡ä¸æ¬¡æ¥è¯¢ã"
#. Tag: term
-#: best_practices.xml:184
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Prefer lazy fetching for associations:"
-msgstr "对äºå
³èä¼å
èèlazy fetching"
+msgstr "对äºå
³èä¼å
èè lazy fetchingï¼"
#. Tag: para
-#: best_practices.xml:186
-#, fuzzy, no-c-format
+#, 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 "
@@ -323,26 +290,24 @@
"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>ã"
+"è°¨æ
ç使ç¨ä¸»å¨æåï¼eager fetchingï¼ã对äºå
³èæ¥è¯´ï¼è¥å
¶ç®æ æ¯æ æ³å¨ç¬¬äºçº§ç¼"
+"åä¸å®å
¨ç¼åææå®ä¾çç±»ï¼åºè¯¥ä½¿ç¨ä»£çï¼proxiesï¼ä¸/æå
·æå»¶è¿å è½½å±æ§çéå"
+"ï¼lazy collectionsï¼ãè¥ç®æ æ¯å¯ä»¥è¢«ç¼åçï¼å°¤å
¶æ¯ç¼åçå½ä¸çé常é«çæ
åµ"
+"ä¸ï¼åºè¯¥ä½¿ç¨ <literal>lazy=\"false\"</literal>ï¼æç¡®çç¦æ¢æ eager fetchingã"
+"妿é£äºç¹æ®çç¡®å®éåä½¿ç¨ join fetch çåºåï¼è¯·å¨æ¥è¯¢ä¸ä½¿ç¨ <literal>left "
+"join fetch</literal>ã "
#. Tag: term
-#: best_practices.xml:196
-#, fuzzy, no-c-format
+#, 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>çç¥æ¥é¿å
忬¡æåæ°æ®å¸¦æ¥çé®é¢"
+"ä½¿ç¨ <emphasis>open session in view</emphasis> 模å¼ï¼æè
æ§è¡ä¸¥æ ¼ç<emphasis>"
+"è£
é
æï¼assembly phaseï¼</emphasis>çç¥æ¥é¿å
忬¡æåæ°æ®å¸¦æ¥çé®é¢ï¼"
#. Tag: para
-#: best_practices.xml:201
-#, fuzzy, no-c-format
+#, 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 "
@@ -357,24 +322,22 @@
"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çéå¶ï¼è¿æ¯å®ç°å®å
¨çäºå¡"
-"åæ°æ®è®¿é®çåºæ¬éæ±ã"
+"Hibernate 让å¼åè
们æè±äºç¹çç <emphasis>Data Transfer Objects</emphasis>"
+"ï¼DTOï¼ãå¨ä¼ ç»ç EJB ç»æä¸ï¼DTO æåéä½ç¨ï¼é¦å
ï¼ä»ä»¬è§£å³äº entity bean æ "
+"æ³åºååçé®é¢ï¼å
¶æ¬¡ï¼ä»ä»¬éå«å°å®ä¹äºä¸ä¸ªè£
é
æï¼å¨æ¤æé´ï¼ææå¨ view å±é"
+"è¦ç¨å°çæ°æ®ï¼é½è¢«æåãéä¸å°äº DTO ä¸ï¼ç¶åæ§å¶æè¢«è£
å°è¡¨ç¤ºå±ãHibernate ç»"
+"ç»äºç¬¬ä¸ä¸ªä½ç¨ãç¶èï¼é¤éä½ å好äºå¨æ´ä¸ªæ¸²æè¿ç¨ä¸é½ç»´æ¤ä¸ä¸ªæå¼çæä¹
åä¸ä¸"
+"æï¼sessionï¼çåå¤ï¼ä½ ä»ç¶éè¦ä¸ä¸ªè£
é
æï¼æ³è±¡ä¸ä¸ï¼ä½ çä¸å¡æ¹æ³ä¸ä½ ç表示å±"
+"æä¸¥æ ¼çå¥çº¦ï¼æ°æ®æ»æ¯è¢«æ¾ç½®å°è±ç®¡å¯¹è±¡ä¸ï¼ãè¿å¹¶éæ¯ Hibernate çéå¶ï¼è¿æ¯å®"
+"ç°å®å
¨çäºå¡åæ°æ®è®¿é®çåºæ¬éæ±ã"
#. Tag: term
-#: best_practices.xml:215
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Consider abstracting your business logic from Hibernate:"
-msgstr "èèæHibernate代ç ä»ä¸å¡é»è¾ä»£ç 䏿½è±¡åºæ¥"
+msgstr "èèæ Hibernate 代ç ä»ä¸å¡é»è¾ä»£ç 䏿½è±¡åºæ¥ï¼"
#. Tag: para
-#: best_practices.xml:217
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Hide Hibernate data-access code behind an interface. Combine the "
"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
@@ -383,21 +346,19 @@
"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å¼ è¡¨"
-"çåºç¨ç¨åºå¹¶ä¸éåã)"
+"æ Hibernate çæ°æ®åå代ç éèå°æ¥å£ï¼interfaceï¼çåé¢ï¼ç»åä½¿ç¨ "
+"<emphasis>DAO</emphasis> å <emphasis>Thread Local Session</emphasis> 模å¼ã"
+"éè¿ Hibernate ç<literal>UserType</literal>ï¼ä½ çè³å¯ä»¥ç¨ç¡¬ç¼ç ç JDBC æ¥æ"
+"ä¹
åé£äºæ¬è¯¥è¢« Hibernate æä¹
åçç±»ãç¶èï¼è¯¥å»ºè®®æ´éç¨äºè§æ¨¡è¶³å¤å¤§åºç¨è½¯ä»¶"
+"ä¸ï¼å¯¹äºé£äºåªæ 5 å¼ è¡¨çåºç¨ç¨åºå¹¶ä¸éåã"
#. Tag: term
-#: best_practices.xml:227
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Do not use exotic association mappings:"
-msgstr "ä¸è¦ç¨æªå¼çè¿æ¥æ å°"
+msgstr "ä¸è¦ç¨æªå¼çè¿æ¥æ å°ï¼"
#. Tag: para
-#: best_practices.xml:229
-#, fuzzy, no-c-format
+#, 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 "
@@ -408,17 +369,14 @@
msgstr ""
"å¤å¯¹å¤è¿æ¥ç¨å¾å¥½çä¾åå®é
ä¸ç¸å½å°è§ã大夿°æ¶åä½ å¨âè¿æ¥è¡¨âä¸éè¦ä¿åé¢å¤ç"
"ä¿¡æ¯ãè¿ç§æ
åµä¸ï¼ç¨ä¸¤ä¸ªæåä¸ä»ç±»çä¸å¯¹å¤çè¿æ¥æ¯è¾å¥½ãå®é
ä¸ï¼æä»¬è®¤ä¸ºç»å¤§"
-"夿°çè¿æ¥æ¯ä¸å¯¹å¤åå¤å¯¹ä¸çï¼ä½ åºè¯¥è°¨æ
使ç¨å
¶å®è¿æ¥é£æ ¼ï¼ç¨ä¹åé®èªå·±ä¸å¥ï¼"
-"æ¯å¦ççå¿
é¡»è¿ä¹åã"
+"夿°çè¿æ¥æ¯ä¸å¯¹å¤åå¤å¯¹ä¸çãiå æ¤ï¼ä½ åºè¯¥è°¨æ
使ç¨å
¶å®è¿æ¥é£æ ¼ã"
#. Tag: term
-#: best_practices.xml:239
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Prefer bidirectional associations:"
-msgstr "åç±ååå
³è"
+msgstr "åç±ååå
³èï¼"
#. Tag: para
-#: best_practices.xml:241
#, no-c-format
msgid ""
"Unidirectional associations are more difficult to query. In a large "
Deleted: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/bibliography.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/bibliography.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/bibliography.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,68 +0,0 @@
-# Language zh-CN translations for Branch package.
-# Automatically generated, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Branch 3_3\n"
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: 2009-06-10 21:02+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Tag: title
-#: bibliography.xml:27
-#, no-c-format
-msgid "References"
-msgstr ""
-
-#. Tag: title
-#: bibliography.xml:31
-#, no-c-format
-msgid "Patterns of Enterprise Application Architecture"
-msgstr ""
-
-#. Tag: author
-#: bibliography.xml:34
-#, no-c-format
-msgid "<firstname>Martin</firstname> <surname>Fowler</surname>"
-msgstr ""
-
-#. Tag: holder
-#: bibliography.xml:41
-#, no-c-format
-msgid "Pearson Education, Inc."
-msgstr ""
-
-#. Tag: title
-#: bibliography.xml:50
-#, no-c-format
-msgid "Java Persistence with Hibernate"
-msgstr ""
-
-#. Tag: subtitle
-#: bibliography.xml:51
-#, no-c-format
-msgid "Second Edition of Hibernate in Action"
-msgstr ""
-
-#. Tag: author
-#: bibliography.xml:57
-#, no-c-format
-msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
-msgstr ""
-
-#. Tag: author
-#: bibliography.xml:61
-#, no-c-format
-msgid "<firstname>Gavin</firstname> <surname>King</surname>"
-msgstr ""
-
-#. Tag: holder
-#: bibliography.xml:68
-#, no-c-format
-msgid "Manning Publications Co."
-msgstr ""
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/collection_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/collection_mapping.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/collection_mapping.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,1860 +1,1599 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-12-09 12:11+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: collection_mapping.xml:29
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Collection mapping"
-msgstr "éåæ å°ï¼ Collection mappings ï¼"
+msgstr "éåæ å°ï¼Collection mappingsï¼"
#. Tag: title
-#: collection_mapping.xml:32
#, no-c-format
msgid "Persistent collections"
-msgstr "æä¹
åéåç±»(Persistent collections)"
+msgstr "æä¹
åéåç±»ï¼Persistent collectionsï¼"
#. Tag: para
-#: collection_mapping.xml:34
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate requires that persistent collection-valued fields be declared as "
-"an interface type. For example:"
-msgstr ""
-"Hibernateè¦æ±æä¹
åéåå¼å段å¿
须声æä¸ºæ¥å£ï¼æ¯å¦ï¼(è¯è
注ï¼å¨é
读æ¬ç« çæ¶"
-"åï¼ä»¥åæ´ä¸ªæåçé
读è¿ç¨ä¸ï¼æä»¬é½ä¼é¢ä¸´ä¸ä¸ªåè¯æ¹é¢çé®é¢ï¼é£å°±æ¯âéåâã"
-"\"Collections\"å\"Set\"å¨ä¸æé对åºé½è¢«ç¿»è¯ä¸ºâéåâï¼ä½æ¯ä»ä»¬çå«ä¹å¾ä¸ä¸"
-"æ ·ãCollectionsæ¯ä¸ä¸ªè¶
éï¼Setæ¯å
¶ä¸çä¸ç§ã大é¨åæ
åµä¸ï¼æ¬è¯ç¨¿ä¸æ³æçæªå "
-"è±ææ³¨æçâéåâï¼é½åºå½ç解为âCollectionsâã卿äºäºè
åæ¶åºç°ï¼å¯è½é ææ··æ·"
-"çå°æ¹ï¼æä»¬ç¨âéåç±»âæ¥ç¹æâCollecionsâ,âéå(Set)âæ¥æ\"Set\"ï¼ä¸è¬é½ä¼å¨å"
-"é¢çæ¬å·ä¸ç»åºè±æã叿大家å¨é
读æ¶èç³»ä¸ä¸æçè§£ï¼ä¸è¦é æè¯¯è§£ã 䏿¤å"
-"æ¶ï¼âå
ç´ âä¸è¯å¯¹åºçè±æâelementâï¼ä¹æä¸¤ä¸ªä¸åçå«ä¹ãå
¶ä¸ä¸ºéåçå
ç´ ï¼æ¯å
"
-"åä¸çä¸ä¸ªåéï¼å¦ä¸å«ä¹åæ¯XMLææ¡£ä¸çä¸ä¸ªæ ç¾æä»£è¡¨çå
ç´ ãä¹è¯·æ³¨æåºå«ã "
-"æ¬ç« ä¸,ç¹å«æ¯ååé¨åæ¯éè¦åå¤é
读æè½çè§£æ¸
æ¥çã妿éå°ä»»ä½çé®,请记ä½,è±"
-"æçæ¬çreferenceæ¯æä¸æ åçåèèµæã)"
-
-#. Tag: programlisting
-#: collection_mapping.xml:39
#, no-c-format
-msgid ""
-"<![CDATA[public class Product {\n"
-" private String serialNumber;\n"
-" private Set parts = new HashSet();\n"
-" \n"
-" public Set getParts() { return parts; }\n"
-" void setParts(Set parts) { this.parts = parts; }\n"
-" public String getSerialNumber() { return serialNumber; }\n"
-" void setSerialNumber(String sn) { serialNumber = sn; }\n"
-"}]]>"
-msgstr ""
+msgid "Hibernate requires that persistent collection-valued fields be declared as an interface type. For example:"
+msgstr "ï¼è¯è
注ï¼å¨é
读æ¬ç« çæ¶åï¼ä»¥åæ´ä¸ªæåçé
读è¿ç¨ä¸ï¼æä»¬é½ä¼é¢ä¸´ä¸ä¸ªåè¯æ¹é¢çé®é¢ï¼é£å°±æ¯âéåâã\"Collections\" å \"Set\" å¨ä¸æé对åºé½è¢«ç¿»è¯ä¸ºâéåâï¼ä½æ¯ä»ä»¬çå«ä¹å¾ä¸ä¸æ ·ãCollections æ¯ä¸ä¸ªè¶
éï¼Set æ¯å
¶ä¸çä¸ç§ã大é¨åæ
åµä¸ï¼æ¬è¯ç¨¿ä¸æ³æçæªå è±ææ³¨æçâéåâï¼é½åºå½ç解为âCollectionsâã卿äºäºè
åæ¶åºç°ï¼å¯è½é ææ··æ·çå°æ¹ï¼æä»¬ç¨âéåç±»âæ¥ç¹æâCollecionsâï¼âéåï¼Setï¼âæ¥æ \"Set\"ï¼ä¸è¬é½ä¼å¨åé¢çæ¬å·ä¸ç»åºè±æã叿大家å¨é
读æ¶èç³»ä¸ä¸æçè§£ï¼ä¸è¦é æè¯¯è§£ã 䏿¤åæ¶ï¼âå
ç´ âä¸è¯å¯¹åºçè±æâelementâï¼ä¹æä¸¤ä¸ªä¸åçå«ä¹ãå
¶ä¸ä¸ºéåçå
ç´ ï¼æ¯å
åä¸çä¸ä¸ªåéï¼å¦ä¸å«ä¹åæ¯ XML ææ¡£ä¸çä¸ä¸ªæ ç¾æä»£è¡¨çå
ç´ ãä¹è¯·æ³¨æåºå«ãæ¬ç« ä¸ï¼ç¹å«æ¯ååé¨åæ¯!
éè¦åå¤é
读æè½çè§£æ¸
æ¥çã妿éå°ä»»ä½çé®ï¼è¯·è®°ä½ï¼è±æçæ¬ç reference æ¯æä¸æ åçåèèµæãï¼ Hibernate è¦æ±æä¹
åéåå¼å段å¿
须声æä¸ºæ¥å£ï¼ä¾å¦ï¼"
#. Tag: para
-#: collection_mapping.xml:41
-#, fuzzy, no-c-format
-msgid ""
-"The actual interface might be <literal>java.util.Set</literal>, "
-"<literal>java.util.Collection</literal>, <literal>java.util.List</literal>, "
-"<literal>java.util.Map</literal>, <literal>java.util.SortedSet</literal>, "
-"<literal>java.util.SortedMap</literal> or anything you like (\"anything you "
-"like\" means you will have to write an implementation of <literal>org."
-"hibernate.usertype.UserCollectionType</literal>.)"
-msgstr ""
-"å®é
çæ¥å£å¯è½æ¯<literal>java.util.Set</literal>, <literal>java.util."
-"Collection</literal>, <literal>java.util.List</literal>, <literal>java.util."
-"Map</literal>, <literal>java.util.SortedSet</literal>, <literal>java.util."
-"SortedMap</literal> æè
...ä»»ä½ä½ 忬¢çç±»åï¼(\"ä»»ä½ä½ 忬¢çç±»å\" ä»£è¡¨ä½ éè¦"
-"ç¼å <literal>org.hibernate.usertype.UserCollectionType</literal>çå®ç°.)"
+#, no-c-format
+msgid "The actual interface might be <literal>java.util.Set</literal>, <literal>java.util.Collection</literal>, <literal>java.util.List</literal>, <literal>java.util.Map</literal>, <literal>java.util.SortedSet</literal>, <literal>java.util.SortedMap</literal> or anything you like (\"anything you like\" means you will have to write an implementation of <literal>org.hibernate.usertype.UserCollectionType</literal>.)"
+msgstr "å®é
çæ¥å£å¯è½æ¯ <literal>java.util.Set</literal>ã<literal>java.util.Collection</literal>ã<literal>java.util.List</literal>ã<literal>java.util.Map</literal>ã<literal>java.util.SortedSet</literal>ã<literal>java.util.SortedMap</literal> æè
ä»»ä½ä½ 忬¢çç±»åï¼\"ä»»ä½ä½ 忬¢çç±»å\" ä»£è¡¨ä½ éè¦ç¼å <literal>org.hibernate.usertype.UserCollectionType</literal> çå®ç°ï¼ã"
#. Tag: para
-#: collection_mapping.xml:50
-#, fuzzy, no-c-format
-msgid ""
-"Notice how the instance variable was initialized with an instance of "
-"<literal>HashSet</literal>. This is the best way to initialize collection "
-"valued properties of newly instantiated (non-persistent) instances. When you "
-"make the instance persistent, by calling <literal>persist()</literal> for "
-"example, Hibernate will actually replace the <literal>HashSet</literal> with "
-"an instance of Hibernate's own implementation of <literal>Set</literal>. Be "
-"aware of the following errors:"
-msgstr ""
-"注ææä»¬æ¯å¦ä½ç¨ä¸ä¸ª<literal>HashSet</literal>å®ä¾æ¥åå§åå®ä¾åéç.è¿æ¯ç¨äº"
-"åå§åæ°å建(å°æªæä¹
å)çç±»å®ä¾ä¸éåå¼å±æ§çæä½³æ¹æ³ãå½ä½ æä¹
åè¿ä¸ªå®ä¾æ¶"
-"ââæ¯å¦éè¿è°ç¨<literal>persist()</literal>ââHibernate ä¼èªå¨æ"
-"<literal>HashSet</literal>æ¿æ¢ä¸ºHibernateèªå·±ç<literal>Set</literal>å®ç°ãè§"
-"å¯ä¸é¢çé误ï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:60
#, no-c-format
-msgid ""
-"<![CDATA[Cat cat = new DomesticCat();\n"
-"Cat kitten = new DomesticCat();\n"
-"....\n"
-"Set kittens = new HashSet();\n"
-"kittens.add(kitten);\n"
-"cat.setKittens(kittens);\n"
-"session.persist(cat);\n"
-"kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
-"(HashSet) cat.getKittens(); // Error!]]>"
-msgstr ""
+msgid "Notice how the instance variable was initialized with an instance of <literal>HashSet</literal>. This is the best way to initialize collection valued properties of newly instantiated (non-persistent) instances. When you make the instance persistent, by calling <literal>persist()</literal> for example, Hibernate will actually replace the <literal>HashSet</literal> with an instance of Hibernate's own implementation of <literal>Set</literal>. Be aware of the following errors:"
+msgstr "注ææä»¬æ¯å¦ä½ç¨ä¸ä¸ª <literal>HashSet</literal> å®ä¾æ¥åå§åå®ä¾åéçãè¿æ¯ç¨äºåå§åæ°å建ï¼å°æªæä¹
åï¼çç±»å®ä¾ä¸éåå¼å±æ§çæä½³æ¹æ³ãå½ä½ æä¹
åè¿ä¸ªå®ä¾æ¶ â æ¯å¦éè¿è°ç¨ <literal>persist()</literal> â Hibernate ä¼èªå¨æ <literal>HashSet</literal> æ¿æ¢ä¸º Hibernate èªå·±ç <literal>Set</literal> å®ç°ã注æä¸é¢çé误ï¼"
#. Tag: para
-#: collection_mapping.xml:62
-#, fuzzy, no-c-format
-msgid ""
-"The persistent collections injected by Hibernate behave like "
-"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
-"literal>, <literal>TreeSet</literal> or <literal>ArrayList</literal>, "
-"depending on the interface type."
-msgstr ""
-"æ ¹æ®ä¸åçæ¥å£ç±»åï¼è¢«Hibernate注å°çæä¹
åéåç±»ç表ç°ç±»ä¼¼<literal>HashMap</"
-"literal>, <literal>HashSet</literal>, <literal>TreeMap</literal>, "
-"<literal>TreeSet</literal> or <literal>ArrayList</literal>ã"
+#, no-c-format
+msgid "The persistent collections injected by Hibernate behave like <literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</literal>, <literal>TreeSet</literal> or <literal>ArrayList</literal>, depending on the interface type."
+msgstr "æ ¹æ®ä¸åçæ¥å£ç±»åï¼è¢« Hibernate 注å°çæä¹
åéåç±»ç表ç°ç±»ä¼¼ <literal>HashMap</literal>ã<literal>HashSet</literal>ã<literal>TreeMap</literal>ã<literal>TreeSet</literal> æ <literal>ArrayList</literal>ã"
#. Tag: para
-#: collection_mapping.xml:69
-#, fuzzy, no-c-format
-msgid ""
-"Collections instances have the usual behavior of value types. They are "
-"automatically persisted when referenced by a persistent object and are "
-"automatically deleted when unreferenced. If a collection is passed from one "
-"persistent object to another, its elements might be moved from one table to "
-"another. Two entities cannot share a reference to the same collection "
-"instance. Due to the underlying relational model, collection-valued "
-"properties do not support null value semantics. Hibernate does not "
-"distinguish between a null collection reference and an empty collection."
-msgstr ""
-"éåç±»å®ä¾å
·æå¼ç±»åçé常è¡ä¸ºãå½è¢«æä¹
å对象å¼ç¨åï¼ä»ä»¬ä¼èªå¨è¢«æä¹
åï¼å½"
-"ä¸å被å¼ç¨åï¼èªå¨è¢«å é¤ãåè¥å®ä¾è¢«ä»ä¸ä¸ªæä¹
åå¯¹è±¡ä¼ éå°å¦ä¸ä¸ªï¼å®çå
ç´ å¯"
-"è½ä»ä¸ä¸ªè¡¨è½¬ç§»å°å¦ä¸ä¸ªè¡¨ã两个å®ä½ä¸è½å
±äº«åä¸ä¸ªéåç±»å®ä¾çå¼ç¨ãå 为åºå±å
³"
-"ç³»æ°æ®åºæ¨¡åçåå ï¼éåå¼å±æ§æ æ³æ¯æç©ºå¼è¯ä¹ï¼Hibernate对空çéåå¼ç¨å空é"
-"åä¸å åºå«ã"
+#, no-c-format
+msgid "Collections instances have the usual behavior of value types. They are automatically persisted when referenced by a persistent object and are automatically deleted when unreferenced. If a collection is passed from one persistent object to another, its elements might be moved from one table to another. Two entities cannot share a reference to the same collection instance. Due to the underlying relational model, collection-valued properties do not support null value semantics. Hibernate does not distinguish between a null collection reference and an empty collection."
+msgstr "éåç±»å®ä¾å
·æå¼ç±»åçé常è¡ä¸ºãå½è¢«æä¹
å对象å¼ç¨åï¼ä»ä»¬ä¼èªå¨è¢«æä¹
åï¼å½ä¸å被å¼ç¨åï¼èªå¨è¢«å é¤ãåè¥å®ä¾è¢«ä»ä¸ä¸ªæä¹
åå¯¹è±¡ä¼ éå°å¦ä¸ä¸ªï¼å®çå
ç´ å¯è½ä»ä¸ä¸ªè¡¨è½¬ç§»å°å¦ä¸ä¸ªè¡¨ã两个å®ä½ä¸è½å
±äº«åä¸ä¸ªéåç±»å®ä¾çå¼ç¨ãå 为åºå±å
³ç³»æ°æ®åºæ¨¡åçåå ï¼éåå¼å±æ§æ æ³æ¯æç©ºå¼è¯ä¹ï¼Hibernate 对空çéåå¼ç¨å空éåä¸å åºå«ã "
#. Tag: para
-#: collection_mapping.xml:80
-#, fuzzy, no-c-format
-msgid ""
-"Use persistent collections the same way you use ordinary Java collections. "
-"However, please ensure you understand the semantics of bidirectional "
-"associations (these are discussed later)."
-msgstr ""
-"ä½ ä¸éè¦è¿å¤çä¸ºæ¤æ
å¿ãå°±å¦åä½ å¹³æ¶ä½¿ç¨æ®éçJavaéåç±»ä¸æ ·æ¥ä½¿ç¨æä¹
åéå"
-"ç±»ãåªæ¯è¦ç¡®è®¤ä½ çè§£äºååå
³èçè¯ä¹ï¼åæè®¨è®ºï¼ã"
+#, no-c-format
+msgid "Use persistent collections the same way you use ordinary Java collections. However, please ensure you understand the semantics of bidirectional associations (these are discussed later)."
+msgstr "ä½ ä¸éè¦è¿å¤çä¸ºæ¤æ
å¿ãå°±å¦åä½ å¹³æ¶ä½¿ç¨æ®éç Java éåç±»ä¸æ ·æ¥ä½¿ç¨æä¹
åéåç±»ãåªæ¯è¦ç¡®è®¤ä½ çè§£äºååå
³èçè¯ä¹ï¼åæå°è¿è¡è®¨è®ºï¼ã"
#. Tag: title
-#: collection_mapping.xml:89
#, no-c-format
msgid "Collection mappings"
msgstr "éåæ å°ï¼ Collection mappings ï¼"
#. Tag: para
-#: collection_mapping.xml:92
-#, fuzzy, no-c-format
-msgid ""
-"There are quite a range of mappings that can be generated for collections "
-"that cover many common relational models. We suggest you experiment with the "
-"schema generation tool so that you understand how various mapping "
-"declarations translate to database tables."
-msgstr ""
-"ä»»ä½å¼éåæè
å¤å¯¹å¤å
³èéè¦ä¸ç¨çå
·æä¸ä¸ªæå¤ä¸ªå¤é®å段ç"
-"<emphasis>collection table</emphasis>ãä¸ä¸ªæå¤ä¸ª<emphasis>collection "
-"element column</emphasis>ï¼ä»¥åè¿å¯è½æä¸ä¸ªæå¤ä¸ªç´¢å¼å段ã"
+#, no-c-format
+msgid "There are quite a range of mappings that can be generated for collections that cover many common relational models. We suggest you experiment with the schema generation tool so that you understand how various mapping declarations translate to database tables."
+msgstr "ä»éåç±»å¯ä»¥äº§çå¾å¤§ä¸é¨åæ å°ï¼è¦çäºå¾å¤å¸¸è§çå
³ç³»æ¨¡åãæä»¬å»ºè®®ä½ è¯éª schema çæå·¥å
·ï¼æ¥ä½ä¼ä¸ä¸ä¸åçæ å°å£°ææ¯å¦ä½è¢«ç¿»è¯ä¸ºæ°æ®åºè¡¨çã "
#. Tag: para
-#: collection_mapping.xml:99
-#, fuzzy, no-c-format
-msgid ""
-"The Hibernate mapping element used for mapping a collection depends upon the "
-"type of interface. For example, a <literal><set></literal> element is "
-"used for mapping properties of type <literal>Set</literal>."
-msgstr ""
-"ç¨äºæ å°éåç±»çHibernateæ å°å
ç´ åå³äºæ¥å£çç±»åãæ¯å¦ï¼ <literal><"
-"set></literal> å
ç´ ç¨æ¥æ å°<literal>Set</literal>ç±»åç屿§ã"
-
-#. Tag: programlisting
-#: collection_mapping.xml:105
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Product\">\n"
-" <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
-" <set name=\"parts\">\n"
-" <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
-" <one-to-many class=\"Part\"/>\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
+msgid "The Hibernate mapping element used for mapping a collection depends upon the type of interface. For example, a <literal><set></literal> element is used for mapping properties of type <literal>Set</literal>."
+msgstr "ç¨äºæ å°éåç±»ç Hibernate æ å°å
ç´ åå³äºæ¥å£çç±»åãæ¯å¦ï¼<literal><set></literal> å
ç´ ç¨æ¥æ å° <literal>Set</literal> ç±»åç屿§ã "
#. Tag: para
-#: collection_mapping.xml:107
#, no-c-format
-msgid ""
-"Apart from <literal><set></literal>, there is also <literal><"
-"list></literal>, <literal><map></literal>, <literal><bag></"
-"literal>, <literal><array></literal> and <literal><primitive-"
-"array></literal> mapping elements. The <literal><map></literal> "
-"element is representative:"
-msgstr ""
-"é¤äº<literal><set></literal>,è¿æ<literal><list></literal>, "
-"<literal><map></literal>, <literal><bag></literal>, <literal><"
-"array></literal> å <literal><primitive-array></literal> æ å°å
ç´ ã"
-"<literal><map></literal>å
·æä»£è¡¨æ§ï¼"
+msgid "Apart from <literal><set></literal>, there is also <literal><list></literal>, <literal><map></literal>, <literal><bag></literal>, <literal><array></literal> and <literal><primitive-array></literal> mapping elements. The <literal><map></literal> element is representative:"
+msgstr "é¤äº <literal><set></literal>ï¼è¿æ<literal><list></literal>ï¼<literal><map></literal>ï¼<literal><bag></literal>ï¼<literal><array></literal> å <literal><primitive-array></literal> æ å°å
ç´ ã<literal><map></literal> å
·æä»£è¡¨æ§ï¼"
-#. Tag: programlisting
-#: collection_mapping.xml:132
-#, no-c-format
-msgid ""
-"<![CDATA[<map\n"
-" name=\"propertyName\"\n"
-" table=\"table_name\"\n"
-" schema=\"schema_name\"\n"
-" lazy=\"true|extra|false\"\n"
-" inverse=\"true|false\"\n"
-" cascade=\"all|none|save-update|delete|all-delete-orphan|delete-orphan\"\n"
-" sort=\"unsorted|natural|comparatorClass\"\n"
-" order-by=\"column_name asc|desc\"\n"
-" where=\"arbitrary sql where condition\"\n"
-" fetch=\"join|select|subselect\"\n"
-" batch-size=\"N\"\n"
-" access=\"field|property|ClassName\"\n"
-" optimistic-lock=\"true|false\"\n"
-" mutable=\"true|false\"\n"
-" node=\"element-name|.\"\n"
-" embed-xml=\"true|false\"\n"
-">\n"
-"\n"
-" <key .... />\n"
-" <map-key .... />\n"
-" <element .... />\n"
-"</map>]]>"
-msgstr ""
-
#. Tag: para
-#: collection_mapping.xml:135
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>name</literal>: the collection property name"
-msgstr "<literal>name</literal> éå屿§çåç§°"
+msgstr "<literal>name</literal>ï¼éå屿§çåç§°"
#. Tag: para
-#: collection_mapping.xml:140
-#, fuzzy, no-c-format
-msgid ""
-"<literal>table</literal> (optional - defaults to property name): the name of "
-"the collection table. It is not used for one-to-many associations."
-msgstr ""
-"<literal>table</literal> ï¼å¯éââé»è®¤ä¸ºå±æ§çåç§°ï¼è¿ä¸ªéå表çåç§°(ä¸è½å¨ä¸"
-"对å¤çå
³èå
³ç³»ä¸ä½¿ç¨)"
+#, no-c-format
+msgid "<literal>table</literal> (optional - defaults to property name): the name of the collection table. It is not used for one-to-many associations."
+msgstr "<literal>table</literal>ï¼å¯éââé»è®¤ä¸ºå±æ§çåç§°ï¼è¿ä¸ªéå表çåç§°ï¼ä¸è½å¨ä¸å¯¹å¤çå
³èå
³ç³»ä¸ä½¿ç¨ï¼ã"
#. Tag: para
-#: collection_mapping.xml:146
-#, fuzzy, no-c-format
-msgid ""
-"<literal>schema</literal> (optional): the name of a table schema to override "
-"the schema declared on the root element"
-msgstr ""
-"<literal>schema</literal> (å¯é) 表çschemaçåç§°, ä»å°è¦ç卿 ¹å
ç´ ä¸å®ä¹ç"
-"schema"
+#, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a table schema to override the schema declared on the root element"
+msgstr "<literal>schema</literal>ï¼å¯éï¼ï¼è¡¨ç schema çåç§°ï¼ä»å°è¦ç卿 ¹å
ç´ ä¸å®ä¹ç schema"
#. Tag: para
-#: collection_mapping.xml:152
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
-"disables lazy fetching and specifies that the association is always eagerly "
-"fetched. It can also be used to enable \"extra-lazy\" fetching where most "
-"operations do not initialize the collection. This is suitable for large "
-"collections."
-msgstr ""
-"<literal>lazy</literal> (å¯é--é»è®¤ä¸ºtrue) å¯ä»¥ç¨æ¥å
³éå»¶è¿å è½½(false)ï¼æå®"
-"ä¸ç´ä½¿ç¨é¢å
æå,æè
æå¼\"extra-lazy\" æåï¼æ¤æ¶å¤§å¤æ°æä½ä¸ä¼åå§åéåç±»"
-"(éç¨äºé常大çéå)"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>true</literal>): disables lazy fetching and specifies that the association is always eagerly fetched. It can also be used to enable \"extra-lazy\" fetching where most operations do not initialize the collection. This is suitable for large collections."
+msgstr "<literal>lazy</literal>ï¼å¯é--é»è®¤ä¸º trueï¼å¯ä»¥ç¨æ¥å
³éå»¶è¿å è½½ï¼falseï¼ï¼æå®ä¸ç´ä½¿ç¨é¢å
æåï¼æè
æå¼ \"extra-lazy\" æåï¼æ¤æ¶å¤§å¤æ°æä½ä¸ä¼åå§åéåç±»ï¼éç¨äºé常大çéåï¼ã"
#. Tag: para
-#: collection_mapping.xml:161
-#, fuzzy, no-c-format
-msgid ""
-"<literal>inverse</literal> (optional - defaults to <literal>false</"
-"literal>): marks this collection as the \"inverse\" end of a bidirectional "
-"association."
-msgstr ""
-"<literal>inverse</literal> (å¯éââé»è®¤ä¸º<literal>false</literal>) æ è®°è¿ä¸ªé"
-"åä½ä¸ºååå
³èå
³ç³»ä¸çæ¹åä¸ç«¯ã"
+#, no-c-format
+msgid "<literal>inverse</literal> (optional - defaults to <literal>false</literal>): marks this collection as the \"inverse\" end of a bidirectional association."
+msgstr "<literal>inverse</literal>ï¼å¯é â é»è®¤ä¸º <literal>false</literal>ï¼æ è®°è¿ä¸ªéåä½ä¸ºååå
³èå
³ç³»ä¸çæ¹åä¸ç«¯ã "
#. Tag: para
-#: collection_mapping.xml:167
-#, fuzzy, no-c-format
-msgid ""
-"<literal>cascade</literal> (optional - defaults to <literal>none</literal>): "
-"enables operations to cascade to child entities."
-msgstr ""
-"<literal>cascade</literal> (å¯éââé»è®¤ä¸º<literal>none</literal>) 让æä½çº§èå°"
-"åå®ä½"
+#, no-c-format
+msgid "<literal>cascade</literal> (optional - defaults to <literal>none</literal>): enables operations to cascade to child entities."
+msgstr "<literal>cascade</literal>ï¼å¯é â é»è®¤ä¸º <literal>none</literal>ï¼è®©æä½çº§èå°åå®ä½ã"
#. Tag: para
-#: collection_mapping.xml:173
-#, fuzzy, no-c-format
-msgid ""
-"<literal>sort</literal> (optional): specifies a sorted collection with "
-"<literal>natural</literal> sort order or a given comparator class."
-msgstr ""
-"<literal>sort</literal>(å¯é)æå®éåçæåºé¡ºåº, å
¶å¯ä»¥ä¸ºèªç¶ç"
-"(<literal>natural</literal>)æè
ç»å®ä¸ä¸ªç¨æ¥æ¯è¾çç±»ã"
+#, no-c-format
+msgid "<literal>sort</literal> (optional): specifies a sorted collection with <literal>natural</literal> sort order or a given comparator class."
+msgstr "<literal>sort</literal>ï¼å¯éï¼æå®éåçæåºé¡ºåºï¼å
¶å¯ä»¥ä¸ºèªç¶çï¼<literal>natural</literal>ï¼æè
ç»å®ä¸ä¸ªç¨æ¥æ¯è¾çç±»ã "
#. Tag: para
-#: collection_mapping.xml:179
-#, fuzzy, no-c-format
-msgid ""
-"<literal>order-by</literal> (optional, JDK1.4 only): specifies a table "
-"column or columns that define the iteration order of the <literal>Map</"
-"literal>, <literal>Set</literal> or bag, together with an optional "
-"<literal>asc</literal> or <literal>desc</literal>."
-msgstr ""
-"<literal>order-by</literal> (å¯é, ä»
ç¨äºjdk1.4) æå®è¡¨çåæ®µ(ä¸ä¸ªæå 个)åå "
-"ä¸ascæè
desc(å¯é), å®ä¹Map,SetåBagçè¿ä»£é¡ºåº"
+#, no-c-format
+msgid "<literal>order-by</literal> (optional, JDK1.4 only): specifies a table column or columns that define the iteration order of the <literal>Map</literal>, <literal>Set</literal> or bag, together with an optional <literal>asc</literal> or <literal>desc</literal>."
+msgstr "<literal>order-by</literal>ï¼å¯éï¼ä»
ç¨äº jdk1.4ï¼ï¼æå®è¡¨çåæ®µï¼ä¸ä¸ªæå 个ï¼åå ä¸ asc æè
descï¼å¯éï¼ï¼å®ä¹ MapãSet å Bag çè¿ä»£é¡ºåºã"
#. Tag: para
-#: collection_mapping.xml:186
-#, fuzzy, no-c-format
-msgid ""
-"<literal>where</literal> (optional): specifies an arbitrary SQL "
-"<literal>WHERE</literal> condition that is used when retrieving or removing "
-"the collection. This is useful if the collection needs to contain only a "
-"subset of the available data."
-msgstr ""
-"<literal>where</literal> (å¯é) æå®ä»»æçSQL whereæ¡ä»¶, 该æ¡ä»¶å°å¨éæ°è½½å
¥æ"
-"è
å é¤è¿ä¸ªéåæ¶ä½¿ç¨(å½éåä¸çæ°æ®ä»
ä»
æ¯ææå¯ç¨æ°æ®çä¸ä¸ªåéæ¶è¿ä¸ªæ¡ä»¶é常"
-"æç¨)"
+#, no-c-format
+msgid "<literal>where</literal> (optional): specifies an arbitrary SQL <literal>WHERE</literal> condition that is used when retrieving or removing the collection. This is useful if the collection needs to contain only a subset of the available data."
+msgstr "<literal>where</literal>ï¼å¯éï¼ï¼æå®ä»»æç SQL where æ¡ä»¶ï¼è¯¥æ¡ä»¶å°å¨éæ°è½½å
¥æè
å é¤è¿ä¸ªéåæ¶ä½¿ç¨ï¼å½éåä¸çæ°æ®ä»
ä»
æ¯ææå¯ç¨æ°æ®çä¸ä¸ªåéæ¶è¿ä¸ªæ¡ä»¶é常æç¨ï¼ã"
#. Tag: para
-#: collection_mapping.xml:193
-#, fuzzy, no-c-format
-msgid ""
-"<literal>fetch</literal> (optional, defaults to <literal>select</literal>): "
-"chooses between outer-join fetching, fetching by sequential select, and "
-"fetching by sequential subselect."
-msgstr ""
-"<literal>fetch</literal> (å¯é, é»è®¤ä¸º<literal>select</literal>) ç¨äºå¨å¤è¿æ¥"
-"æåãéè¿åç»selectæååéè¿åç»subselectæåä¹é´éæ©ã"
+#, no-c-format
+msgid "<literal>fetch</literal> (optional, defaults to <literal>select</literal>): chooses between outer-join fetching, fetching by sequential select, and fetching by sequential subselect."
+msgstr "<literal>fetch</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>select</literal>ï¼ï¼ç¨äºå¨å¤è¿æ¥æåãéè¿åç» select æååéè¿åç» subselect æåä¹é´éæ©ã"
#. Tag: para
-#: collection_mapping.xml:200
-#, fuzzy, no-c-format
-msgid ""
-"<literal>batch-size</literal> (optional, defaults to <literal>1</literal>): "
-"specifies a \"batch size\" for lazily fetching instances of this collection."
-msgstr ""
-"<literal>batch-size</literal> (å¯é, é»è®¤ä¸º<literal>1</literal>) æå®éè¿å»¶è¿"
-"å è½½åå¾éåå®ä¾çæ¹å¤çå大å°ï¼\"batch size\"ï¼ã"
+#, no-c-format
+msgid "<literal>batch-size</literal> (optional, defaults to <literal>1</literal>): specifies a \"batch size\" for lazily fetching instances of this collection."
+msgstr "<literal>batch-size</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>1</literal>ï¼ï¼æå®éè¿å»¶è¿å è½½åå¾éåå®ä¾çæ¹å¤çå大å°ï¼\"batch size\"ï¼ã"
#. Tag: para
-#: collection_mapping.xml:206
-#, fuzzy, no-c-format
-msgid ""
-"<literal>access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate uses for accessing the collection property "
-"value."
-msgstr ""
-"<literal>access</literal>(å¯é-é»è®¤ä¸ºå±æ§property):Hibernateåå¾éå屿§å¼æ¶"
-"使ç¨ççç¥"
+#, no-c-format
+msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses for accessing the collection property value."
+msgstr "<literal>access</literal>ï¼å¯é-é»è®¤ä¸ºå±æ§ propertyï¼ï¼Hibernate åå¾éå屿§å¼æ¶ä½¿ç¨ççç¥ã"
#. Tag: para
-#: collection_mapping.xml:212
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that changes to the state of the collection results in "
-"increments of the owning entity's version. For one-to-many associations you "
-"may want to disable this setting."
-msgstr ""
-"<literal>ä¹è§é</literal> (å¯é - é»è®¤ä¸º <literal>true</literal>): 对éåçç¶"
-"æçæ¹å伿¯å¦å¯¼è´å
¶æå±çå®ä½ççæ¬å¢é¿ã (对ä¸å¯¹å¤å
³èæ¥è¯´ï¼å
³éè¿ä¸ªå±æ§å¸¸"
-"å¸¸æ¯æçç)"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that changes to the state of the collection results in increments of the owning entity's version. For one-to-many associations you may want to disable this setting."
+msgstr "<literal>ä¹è§é</literal>ï¼å¯é - é»è®¤ä¸º <literal>true</literal>ï¼ï¼å¯¹éåçç¶æçæ¹å伿¯å¦å¯¼è´å
¶æå±çå®ä½ççæ¬å¢é¿ï¼å¯¹ä¸å¯¹å¤å
³èæ¥è¯´ï¼å
³éè¿ä¸ªå±æ§å¸¸å¸¸æ¯æççï¼ã"
#. Tag: para
-#: collection_mapping.xml:220
-#, fuzzy, no-c-format
-msgid ""
-"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
-"a value of <literal>false</literal> specifies that the elements of the "
-"collection never change. This allows for minor performance optimization in "
-"some cases."
-msgstr ""
-"<literal>mutable(å¯åï¼</literal> (å¯é - é»è®¤ä¸º<literal>true</literal>): è¥"
-"å¼ä¸º<literal>false</literal>,表æéåä¸çå
ç´ ä¸ä¼æ¹åï¼å¨æäºæ
åµä¸å¯ä»¥è¿è¡ä¸"
-"äºå°çæ§è½ä¼åï¼ã"
+#, no-c-format
+msgid "<literal>mutable</literal> (optional - defaults to <literal>true</literal>): a value of <literal>false</literal> specifies that the elements of the collection never change. This allows for minor performance optimization in some cases."
+msgstr "<literal>mutableï¼å¯åï¼</literal>ï¼å¯é â é»è®¤ä¸º <literal>true</literal>ï¼ï¼è¥å¼ä¸º <literal>false</literal>ï¼è¡¨æéåä¸çå
ç´ ä¸ä¼æ¹åï¼å¨æäºæ
åµä¸å¯ä»¥è¿è¡ä¸äºå°çæ§è½ä¼åï¼ã "
#. Tag: title
-#: collection_mapping.xml:230
#, no-c-format
msgid "Collection foreign keys"
-msgstr "éåå¤é®(Collection foreign keys)"
+msgstr "éåå¤é®ï¼Collection foreign keysï¼"
#. Tag: para
-#: collection_mapping.xml:232
-#, fuzzy, no-c-format
-msgid ""
-"Collection instances are distinguished in the database by the foreign key of "
-"the entity that owns the collection. This foreign key is referred to as the "
-"<emphasis>collection key column</emphasis>, or columns, of the collection "
-"table. The collection key column is mapped by the <literal><key></"
-"literal> element."
-msgstr ""
-"éåå®ä¾å¨æ°æ®åºä¸ä¾é ææéåçå®ä½çå¤é®å 以辨å«ãæ¤å¤é®ä½ä¸º<emphasis>éå"
-"å
³é®å段ï¼collection key columnï¼</emphasis>ï¼æå¤ä¸ªå段ï¼å 以å¼ç¨ãéåå
³é®"
-"åæ®µéè¿<literal><key></literal> å
ç´ æ å°ã"
+#, no-c-format
+msgid "Collection instances are distinguished in the database by the foreign key of the entity that owns the collection. This foreign key is referred to as the <emphasis>collection key column</emphasis>, or columns, of the collection table. The collection key column is mapped by the <literal><key></literal> element."
+msgstr "éåå®ä¾å¨æ°æ®åºä¸ä¾é ææéåçå®ä½çå¤é®å 以辨å«ãæ¤å¤é®ä½ä¸º<emphasis>éåå
³é®å段ï¼collection key columnï¼</emphasis>ï¼æå¤ä¸ªå段ï¼å 以å¼ç¨ãéåå
³é®å段éè¿ <literal><key></literal> å
ç´ æ å°ã "
#. Tag: para
-#: collection_mapping.xml:240
-#, fuzzy, no-c-format
-msgid ""
-"There can be a nullability constraint on the foreign key column. For most "
-"collections, this is implied. For unidirectional one-to-many associations, "
-"the foreign key column is nullable by default, so you may need to specify "
-"<literal>not-null=\"true\"</literal>."
-msgstr ""
-"å¨å¤é®å段ä¸å¯è½å
·æé空约æã对äºå¤§å¤æ°éåæ¥è¯´ï¼è¿æ¯éå«çã对ååä¸å¯¹å¤å
³"
-"èæ¥è¯´ï¼å¤é®å段é»è®¤æ¯å¯ä»¥ä¸ºç©ºçï¼å æ¤ä½ å¯è½éè¦ææ <literal>not-null=\"true"
-"\"</literal>ã"
-
-#. Tag: programlisting
-#: collection_mapping.xml:247
#, no-c-format
-msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
-msgstr ""
+msgid "There can be a nullability constraint on the foreign key column. For most collections, this is implied. For unidirectional one-to-many associations, the foreign key column is nullable by default, so you may need to specify <literal>not-null=\"true\"</literal>."
+msgstr "å¨å¤é®å段ä¸å¯è½å
·æé空约æã对äºå¤§å¤æ°éåæ¥è¯´ï¼è¿æ¯éå«çã对ååä¸å¯¹å¤å
³èæ¥è¯´ï¼å¤é®å段é»è®¤æ¯å¯ä»¥ä¸ºç©ºçï¼å æ¤ä½ å¯è½éè¦ææ <literal>not-null=\"true\"</literal>ã "
#. Tag: para
-#: collection_mapping.xml:249
-#, fuzzy, no-c-format
-msgid ""
-"The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
-msgstr "å¤é®çº¦æå¯ä»¥ä½¿ç¨<literal>ON DELETE CASCADE</literal>ã"
-
-#. Tag: programlisting
-#: collection_mapping.xml:253
#, no-c-format
-msgid "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
-msgstr ""
+msgid "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgstr "å¤é®çº¦æå¯ä»¥ä½¿ç¨ <literal>ON DELETE CASCADE</literal>ã "
#. Tag: para
-#: collection_mapping.xml:255
#, no-c-format
-msgid ""
-"See the previous chapter for a full definition of the <literal><key></"
-"literal> element."
-msgstr "对<literal><key></literal> å
ç´ ç宿´å®ä¹ï¼è¯·åé
åé¢çç« èã"
+msgid "See the previous chapter for a full definition of the <literal><key></literal> element."
+msgstr "对 <literal><key></literal> å
ç´ ç宿´å®ä¹ï¼è¯·åé
åé¢çç« èã"
#. Tag: title
-#: collection_mapping.xml:263
#, no-c-format
msgid "Collection elements"
msgstr "éåå
ç´ ï¼Collection elementsï¼"
#. Tag: para
-#: collection_mapping.xml:265
-#, fuzzy, no-c-format
-msgid ""
-"Collections can contain almost any other Hibernate type, including: basic "
-"types, custom types, components and references to other entities. This is an "
-"important distinction. An object in a collection might be handled with "
-"\"value\" semantics (its life cycle fully depends on the collection owner), "
-"or it might be a reference to another entity with its own life cycle. In the "
-"latter case, only the \"link\" between the two objects is considered to be a "
-"state held by the collection."
-msgstr ""
-"éåå ä¹å¯ä»¥å
å«ä»»ä½å
¶ä»çHibernateç±»åï¼å
æ¬ææçåºæ¬ç±»åãèªå®ä¹ç±»åãç»"
-"ä»¶ï¼å½ç¶è¿æå¯¹å
¶ä»å®ä½çå¼ç¨ãåå¨ä¸ä¸ªéè¦çåºå«ï¼ä½äºéåä¸ç对象å¯è½æ¯æ ¹"
-"æ®âå¼âè¯ä¹æ¥æä½ï¼å
¶å£°æå¨æå®å
¨ä¾èµäºéåææè
ï¼ï¼æè
å®å¯è½æ¯æåå¦ä¸ä¸ªå®"
-"ä½çå¼ç¨ï¼å
·æå
¶èªå·±ççå½å¨æãå¨åè
çæ
åµä¸ï¼è¢«ä½ä¸ºéåææçç¶æèèçï¼"
-"åªæä¸¤ä¸ªå¯¹è±¡ä¹é´çâè¿æ¥âã"
+#, no-c-format
+msgid "Collections can contain almost any other Hibernate type, including: basic types, custom types, components and references to other entities. This is an important distinction. An object in a collection might be handled with \"value\" semantics (its life cycle fully depends on the collection owner), or it might be a reference to another entity with its own life cycle. In the latter case, only the \"link\" between the two objects is considered to be a state held by the collection."
+msgstr "éåå ä¹å¯ä»¥å
å«ä»»ä½å
¶ä»ç Hibernate ç±»åï¼å
æ¬ææçåºæ¬ç±»åãèªå®ä¹ç±»åãç»ä»¶ï¼å½ç¶è¿æå¯¹å
¶ä»å®ä½çå¼ç¨ãåå¨ä¸ä¸ªéè¦çåºå«ï¼ä½äºéåä¸ç对象å¯è½æ¯æ ¹æ®âå¼âè¯ä¹æ¥æä½ï¼å
¶å£°æå¨æå®å
¨ä¾èµäºéåææè
ï¼ï¼æè
å®å¯è½æ¯æåå¦ä¸ä¸ªå®ä½çå¼ç¨ï¼å
·æå
¶èªå·±ççå½å¨æãå¨åè
çæ
åµä¸ï¼è¢«ä½ä¸ºéåææçç¶æèèçï¼åªæä¸¤ä¸ªå¯¹è±¡ä¹é´çâè¿æ¥âã "
#. Tag: para
-#: collection_mapping.xml:274
#, no-c-format
-msgid ""
-"The contained type is referred to as the <emphasis>collection element type</"
-"emphasis>. Collection elements are mapped by <literal><element></"
-"literal> or <literal><composite-element></literal>, or in the case of "
-"entity references, with <literal><one-to-many></literal> or "
-"<literal><many-to-many></literal>. The first two map elements with "
-"value semantics, the next two are used to map entity associations."
-msgstr ""
-"被å
容çç±»å被称为<emphasis>éåå
ç´ ç±»åï¼collection element typeï¼</"
-"emphasis>ãéåå
ç´ éè¿<literal><element></literal>æ<literal><"
-"composite-element></literal>æ å°ï¼æå¨å
¶æ¯å®ä½å¼ç¨çæ¶åï¼éè¿"
-"<literal><one-to-many></literal> æ<literal><many-to-many></"
-"literal>æ å°ãå两ç§ç¨äºä½¿ç¨å¼è¯ä¹æ å°å
ç´ ï¼å两ç§ç¨äºæ å°å®ä½å
³èã"
+msgid "The contained type is referred to as the <emphasis>collection element type</emphasis>. Collection elements are mapped by <literal><element></literal> or <literal><composite-element></literal>, or in the case of entity references, with <literal><one-to-many></literal> or <literal><many-to-many></literal>. The first two map elements with value semantics, the next two are used to map entity associations."
+msgstr "被å
容çç±»å被称为<emphasis>éåå
ç´ ç±»åï¼collection element typeï¼</emphasis>ãéåå
ç´ éè¿ <literal><element></literal> æ <literal><composite-element></literal> æ å°ï¼æå¨å
¶æ¯å®ä½å¼ç¨çæ¶åï¼éè¿ <literal><one-to-many></literal> æ <literal><many-to-many></literal> æ å°ãå两ç§ç¨äºä½¿ç¨å¼è¯ä¹æ å°å
ç´ ï¼å两ç§ç¨äºæ å°å®ä½å
³èã"
#. Tag: title
-#: collection_mapping.xml:286
#, no-c-format
msgid "Indexed collections"
-msgstr "ç´¢å¼éåç±»(Indexed collections)"
+msgstr "ç´¢å¼éåç±»ï¼Indexed collectionsï¼"
#. Tag: para
-#: collection_mapping.xml:288
-#, fuzzy, no-c-format
-msgid ""
-"All collection mappings, except those with set and bag semantics, need an "
-"<emphasis>index column</emphasis> in the collection table. An index column "
-"is a column that maps to an array index, or <literal>List</literal> index, "
-"or <literal>Map</literal> key. The index of a <literal>Map</literal> may be "
-"of any basic type, mapped with <literal><map-key></literal>. It can be "
-"an entity reference mapped with <literal><map-key-many-to-many></"
-"literal>, or it can be a composite type mapped with <literal><composite-"
-"map-key></literal>. The index of an array or list is always of type "
-"<literal>integer</literal> and is mapped using the <literal><list-"
-"index></literal> element. The mapped column contains sequential integers "
-"that are numbered from zero by default."
-msgstr ""
-"ææçéåæ å°ï¼é¤äºsetåbagè¯ä¹ç以å¤ï¼é½éè¦æå®ä¸ä¸ªéå表ç<emphasis>ç´¢å¼"
-"åæ®µ(index column)</emphasis>ââç¨äºå¯¹åºå°æ°ç»ç´¢å¼ï¼æè
<literal>List</"
-"literal>çç´¢å¼ï¼æè
<literal>Map</literal>çå
³é®åãéè¿<literal><map-"
-"key></literal>,<literal>Map</literal> çç´¢å¼å¯ä»¥æ¯ä»»ä½åºç¡ç±»åï¼è¥éè¿"
-"<literal><map-key-many-to-many></literal>ï¼å®ä¹å¯ä»¥æ¯ä¸ä¸ªå®ä½å¼ç¨ï¼è¥é"
-"è¿<literal><composite-map-key></literal>ï¼å®è¿å¯ä»¥æ¯ä¸ä¸ªç»åç±»åãæ°ç»"
-"æå表çç´¢å¼å¿
é¡»æ¯<literal>integer</literal>ç±»åï¼å¹¶ä¸ä½¿ç¨ <literal><list-"
-"index></literal>å
ç´ å®ä¹æ å°ã被æ å°çåæ®µå
å«æé¡ºåºæåçæ´æ°ï¼é»è®¤ä»0å¼"
-"å§ï¼ã"
+#, no-c-format
+msgid "All collection mappings, except those with set and bag semantics, need an <emphasis>index column</emphasis> in the collection table. An index column is a column that maps to an array index, or <literal>List</literal> index, or <literal>Map</literal> key. The index of a <literal>Map</literal> may be of any basic type, mapped with <literal><map-key></literal>. It can be an entity reference mapped with <literal><map-key-many-to-many></literal>, or it can be a composite type mapped with <literal><composite-map-key></literal>. The index of an array or list is always of type <literal>integer</literal> and is mapped using the <literal><list-index></literal> element. The mapped column contains sequential integers that are numbered from zero by default."
+msgstr "ææçéåæ å°ï¼é¤äº set å bag è¯ä¹ç以å¤ï¼é½éè¦æå®ä¸ä¸ªéå表ç<emphasis>ç´¢å¼å段ï¼index columnï¼</emphasis> â ç¨äºå¯¹åºå°æ°ç»ç´¢å¼ï¼æè
<literal>List</literal> çç´¢å¼ï¼æè
<literal>Map</literal> çå
³é®åãéè¿ <literal><map-key></literal>ï¼<literal>Map</literal> çç´¢å¼å¯ä»¥æ¯ä»»ä½åºç¡ç±»åï¼è¥éè¿ <literal><map-key-many-to-many></literal>ï¼å®ä¹å¯ä»¥æ¯ä¸ä¸ªå®ä½å¼ç¨ï¼è¥éè¿ <literal><composite-map-key></literal>ï¼å®è¿å¯ä»¥æ¯ä¸ä¸ªç»åç±»åãæ°ç»æå表çç´¢å¼å¿
é¡»æ¯ <literal>integer</literal> ç±»åï¼å¹¶ä¸ä½¿ç¨ <literal><list-index></literal> å
ç´ å®ä¹æ å°ã被æ å°çåæ®µå
å«æé¡ºåºæåçæ´æ°ï¼é»è®¤ä» 0 å¼å§ï¼ã "
-#. Tag: sect2
-#: collection_mapping.xml:299
+#. Tag: para
#, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area id="
-"\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<list-"
-"index \n"
-" column=\"column_name\"\n"
-" base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout "
-"arearefs=\"index1\"> <para> <literal>column_name</literal> (required): the "
-"name of the column holding the collection index values. </para> </callout> "
-"<callout arearefs=\"index1\"> <para> <literal>base</literal> (optional - "
-"defaults to <literal>0</literal>): the value of the index column that "
-"corresponds to the first element of the list or array. </para> </callout> </"
-"calloutlist> </programlistingco> <programlistingco> <areaspec> <area id="
-"\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" coords=\"3 45\"/> <area "
-"id=\"mapkey3\" coords=\"4 45\"/> </areaspec> <programlisting><![CDATA[<map-"
-"key \n"
-" column=\"column_name\"\n"
-" formula=\"any SQL expression\"\n"
-" type=\"type_name\"\n"
-" node=\"@attribute-name\"\n"
-" length=\"N\"/>]]></programlisting> <calloutlist> <callout arearefs="
-"\"mapkey1\"> <para> <literal>column</literal> (optional): the name of the "
-"column holding the collection index values. </para> </callout> <callout "
-"arearefs=\"mapkey2\"> <para> <literal>formula</literal> (optional): a SQL "
-"formula used to evaluate the key of the map. </para> </callout> <callout "
-"arearefs=\"mapkey3\"> <para> <literal>type</literal> (required): the type of "
-"the map keys. </para> </callout> </calloutlist> </programlistingco> "
-"<programlistingco> <areaspec> <area id=\"indexmanytomany1\" coords=\"2 45\"/"
-"> <area id=\"indexmanytomany2\" coords=\"3 45\"/> <area id=\"indexmanytomany3"
-"\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<map-key-many-to-"
-"many\n"
-" column=\"column_name\"\n"
-" formula=\"any SQL expression\"\n"
-" class=\"ClassName\"\n"
-"/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1\"> "
-"<para> <literal>column</literal> (optional): the name of the foreign key "
-"column for the collection index values. </para> </callout> <callout arearefs="
-"\"indexmanytomany2\"> <para> <literal>formula</literal> (optional): a SQ "
-"formula used to evaluate the foreign key of the map key. </para> </callout> "
-"<callout arearefs=\"indexmanytomany3\"> <para> <literal>class</literal> "
-"(required): the entity class used as the map key. </para> </callout> </"
-"calloutlist> </programlistingco>"
-msgstr ""
+msgid "<literal>column_name</literal> (required): the name of the column holding the collection index values."
+msgstr "<literal>column_name</literal>ï¼å¿
éï¼ï¼ææéåç´¢å¼å¼çåæ®µçåç§°ã "
#. Tag: para
-#: collection_mapping.xml:380
-#, fuzzy, no-c-format
-msgid ""
-"If your table does not have an index column, and you still wish to use "
-"<literal>List</literal> as the property type, you can map the property as a "
-"Hibernate <emphasis><bag></emphasis>. A bag does not retain its order "
-"when it is retrieved from the database, but it can be optionally sorted or "
-"ordered."
-msgstr ""
-"å¼éåäºå¤å¯¹å¤å
³è(Collections of values and many-to-many associations)"
+#, no-c-format
+msgid "<literal>base</literal> (optional - defaults to <literal>0</literal>): the value of the index column that corresponds to the first element of the list or array."
+msgstr "<literal>base</literal>ï¼å¯é â é»è®¤ä¸º <literal>0</literal>ï¼å¯¹åºå表æéåç第ä¸ä¸ªå
ç´ çç´¢å¼å段çå¼ã"
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the column holding the collection index values."
+msgstr "<literal>column</literal>ï¼å¯éï¼ï¼ææéåç´¢å¼å¼çåæ®µçåç§°ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>formula</literal> (optional): a SQL formula used to evaluate the key of the map."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹è¡¨é®æ±å¼ç SQL å
¬å¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (required): the type of the map keys."
+msgstr "<literal>type</literal>ï¼å¿
éï¼ï¼æ å°é®çç±»åã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the foreign key column for the collection index values."
+msgstr "<literal>column</literal>ï¼å¯éï¼ï¼ç¨äºéåç´¢å¼å¼çå¤é®å段çåç§°ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>formula</literal> (optional): a SQ formula used to evaluate the foreign key of the map key."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹æ å°é®çå¤é®æ±å¼ç SQL å
¬å¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal> (required): the entity class used as the map key."
+msgstr "<literal>class</literal>ï¼å¿
éï¼ï¼ç¨ä½æ å°é®çå®ä½ç±»çåç§°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If your table does not have an index column, and you still wish to use <literal>List</literal> as the property type, you can map the property as a Hibernate <emphasis><bag></emphasis>. A bag does not retain its order when it is retrieved from the database, but it can be optionally sorted or ordered."
+msgstr "åè¥ä½ ç表没æä¸ä¸ªç´¢å¼å段ï¼å½ä½ ä»ç¶å¸æä½¿ç¨ <literal>List</literal> ä½ä¸ºå±æ§ç±»åï¼ä½ åºè¯¥ææ¤å±æ§æ å°ä¸º Hibernate <emphasis><bag></emphasis>ã仿°æ®åºä¸è·åçæ¶åï¼bag ä¸ç»´æ¤å
¶é¡ºåºï¼ä½ä¹å¯éæ©æ§çè¿è¡æåºã "
+
#. Tag: title
-#: collection_mapping.xml:390
#, no-c-format
msgid "Collections of values and many-to-many associations"
-msgstr "对äºä¸ä¸ªå¼éå, æä»¬ä½¿ç¨<literal><element></literal>æ ç¾ã"
+msgstr "å¼éåäºå¤å¯¹å¤å
³èï¼Collections of values and many-to-many associationsï¼"
#. Tag: para
-#: collection_mapping.xml:392
-#, fuzzy, no-c-format
-msgid ""
-"Any collection of values or many-to-many associations requires a dedicated "
-"<emphasis>collection table</emphasis> with a foreign key column or columns, "
-"<emphasis>collection element column</emphasis> or columns, and possibly an "
-"index column or columns."
-msgstr "<literal>column</literal>(å¯é):ä¿åéåå
ç´ å¼çåæ®µåã"
+#, no-c-format
+msgid "Any collection of values or many-to-many associations requires a dedicated <emphasis>collection table</emphasis> with a foreign key column or columns, <emphasis>collection element column</emphasis> or columns, and possibly an index column or columns."
+msgstr "ä»»ä½å¼éåæè
å¤å¯¹å¤å
³èéè¦ä¸ç¨çå
·æä¸ä¸ªæå¤ä¸ªå¤é®å段ç <emphasis>collection table</emphasis>ãä¸ä¸ªæå¤ä¸ª <emphasis>collection element column</emphasis>ï¼ä»¥åè¿å¯è½æä¸ä¸ªæå¤ä¸ªç´¢å¼å段ã "
#. Tag: para
-#: collection_mapping.xml:399
-#, fuzzy, no-c-format
-msgid ""
-"For a collection of values use the <literal><element></literal> tag. "
-"For example:"
-msgstr "<literal>formula</literal> (å¯é): ç¨äºè®¡ç®å
ç´ çSQLå
¬å¼"
+#, no-c-format
+msgid "For a collection of values use the <literal><element></literal> tag. For example:"
+msgstr "对äºä¸ä¸ªå¼éåï¼æä»¬ä½¿ç¨ <literal><element></literal> æ ç¾ãä¾å¦ï¼"
-#. Tag: sect2
-#: collection_mapping.xml:401
+#. Tag: para
#, no-c-format
-msgid ""
-"<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> <area "
-"id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords=\"4 50\"/> "
-"</areaspec> <programlisting><![CDATA[<element\n"
-" column=\"column_name\"\n"
-" formula=\"any SQL expression\"\n"
-" type=\"typename\"\n"
-" length=\"L\"\n"
-" precision=\"P\"\n"
-" scale=\"S\"\n"
-" not-null=\"true|false\"\n"
-" unique=\"true|false\"\n"
-" node=\"element-name\"\n"
-"/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> <para> "
-"<literal>column</literal> (optional): the name of the column holding the "
-"collection element values. </para> </callout> <callout arearefs=\"element2b"
-"\"> <para> <literal>formula</literal> (optional): an SQL formula used to "
-"evaluate the element. </para> </callout> <callout arearefs=\"element3b\"> "
-"<para> <literal>type</literal> (required): the type of the collection "
-"element. </para> </callout> </calloutlist> </programlistingco> <para> A "
-"<emphasis>many-to-many association</emphasis> is specified using the "
-"<literal><many-to-many></literal> element. </para> <programlistingco> "
-"<areaspec> <area id=\"manytomany1\" coords=\"2 60\"/> <area id=\"manytomany2"
-"\" coords=\"3 60\"/> <area id=\"manytomany3\" coords=\"4 60\"/> <area id="
-"\"manytomany4\" coords=\"5 60\"/> <area id=\"manytomany5\" coords=\"6 60\"/> "
-"<area id=\"manytomany6\" coords=\"7 60\"/> <area id=\"manytomany7\" coords="
-"\"8 60\"/> <area id=\"manytomany8\" coords=\"9 60\"/> </areaspec> "
-"<programlisting><![CDATA[<many-to-many\n"
-" column=\"column_name\"\n"
-" formula=\"any SQL expression\"\n"
-" class=\"ClassName\"\n"
-" fetch=\"select|join\"\n"
-" unique=\"true|false\"\n"
-" not-found=\"ignore|exception\"\n"
-" entity-name=\"EntityName\"\n"
-" property-ref=\"propertyNameFromAssociatedClass\"\n"
-" node=\"element-name\"\n"
-" embed-xml=\"true|false\"\n"
-" />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1\"> "
-"<para> <literal>column</literal> (optional): the name of the element foreign "
-"key column. </para> </callout> <callout arearefs=\"manytomany2\"> <para> "
-"<literal>formula</literal> (optional): an SQL formula used to evaluate the "
-"element foreign key value. </para> </callout> <callout arearefs=\"manytomany3"
-"\"> <para> <literal>class</literal> (required): the name of the associated "
-"class. </para> </callout> <callout arearefs=\"manytomany4\"> <para> "
-"<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
-"enables outer-join or sequential select fetching for this association. This "
-"is a special case; for full eager fetching in a single <literal>SELECT</"
-"literal> of an entity and its many-to-many relationships to other entities, "
-"you would enable <literal>join</literal> fetching,not only of the collection "
-"itself, but also with this attribute on the <literal><many-to-many></"
-"literal> nested element. </para> </callout> <callout arearefs=\"manytomany5"
-"\"> <para> <literal>unique</literal> (optional): enables the DDL generation "
-"of a unique constraint for the foreign-key column. This makes the "
-"association multiplicity effectively one-to-many. </para> </callout> "
-"<callout arearefs=\"manytomany6\"> <para> <literal>not-found</literal> "
-"(optional - defaults to <literal>exception</literal>): specifies how foreign "
-"keys that reference missing rows will be handled: <literal>ignore</literal> "
-"will treat a missing row as a null association. </para> </callout> <callout "
-"arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> (optional): "
-"the entity name of the associated class, as an alternative to "
-"<literal>class</literal>. </para> </callout> <callout arearefs=\"manytomany8"
-"\"> <para> <literal>property-ref</literal> (optional): the name of a "
-"property of the associated class that is joined to this foreign key. If not "
-"specified, the primary key of the associated class is used. </para> </"
-"callout> </calloutlist> </programlistingco>"
-msgstr ""
+msgid "<literal>column</literal> (optional): the name of the column holding the collection element values."
+msgstr "<literal>column</literal>ï¼å¯éï¼ï¼ææéåå
ç´ å¼çåæ®µçåç§°ã"
#. Tag: para
-#: collection_mapping.xml:506
#, no-c-format
-msgid "Here are some examples."
-msgstr ""
+msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹å
ç´ æ±å¼ç SQL å
¬å¼ã"
#. Tag: para
-#: collection_mapping.xml:509
#, no-c-format
-msgid "A set of strings:"
-msgstr ""
+msgid "<literal>type</literal> (required): the type of the collection element."
+msgstr "<literal>type</literal>ï¼å¿
éï¼ï¼éåå
ç´ çç±»åã "
-#. Tag: programlisting
-#: collection_mapping.xml:513
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"names\" table=\"person_names\">\n"
-" <key column=\"person_id\"/>\n"
-" <element column=\"person_name\" type=\"string\"/>\n"
-"</set>]]>"
-msgstr ""
+msgid "A <emphasis>many-to-many association</emphasis> is specified using the <literal><many-to-many></literal> element."
+msgstr "ç¨ <literal><many-to-many></literal> å
ç´ æå® <emphasis>many-to-many association</emphasis>ã"
#. Tag: para
-#: collection_mapping.xml:515
-#, fuzzy, no-c-format
-msgid ""
-"A bag containing integers with an iteration order determined by the "
-"<literal>order-by</literal> attribute:"
-msgstr ""
-"ä¸ä¸ªå®ä½æ°ç»,å¨è¿ä¸ªæ¡ä¾ä¸æ¯ä¸ä¸ªå¤å¯¹å¤çå
³è(注æè¿éçå®ä½æ¯èªå¨ç®¡ççå½å¨æ"
-"ç对象ï¼life cycle objectsï¼,<literal>cascade=\"all\"</literal>):"
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the element foreign key column."
+msgstr "<literal>column</literal>ï¼å¿
éï¼ï¼å
ç´ å¤é®å段çåç§°ã "
-#. Tag: programlisting
-#: collection_mapping.xml:520
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<bag name=\"sizes\" \n"
-" table=\"item_sizes\" \n"
-" order-by=\"size asc\">\n"
-" <key column=\"item_id\"/>\n"
-" <element column=\"size\" type=\"integer\"/>\n"
-"</bag>]]>"
-msgstr ""
+msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element foreign key value."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹å
ç´ å¤é®å¼æ±å¼ç SQL å
¬å¼ã"
#. Tag: para
-#: collection_mapping.xml:522
-#, fuzzy, no-c-format
-msgid "An array of entities, in this case, a many-to-many association:"
-msgstr "ä¸ä¸ªmap,éè¿å符串çç´¢å¼æ¥æææ¥æï¼"
+#, no-c-format
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr "<literal>class</literal>ï¼å¿
éï¼ï¼è¢«å
³èç±»çåç§°ã "
-#. Tag: programlisting
-#: collection_mapping.xml:526
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<array name=\"addresses\" \n"
-" table=\"PersonAddress\" \n"
-" cascade=\"persist\">\n"
-" <key column=\"personId\"/>\n"
-" <list-index column=\"sortOrder\"/>\n"
-" <many-to-many column=\"addressId\" class=\"Address\"/>\n"
-"</array>]]>"
-msgstr ""
+msgid "<literal>fetch</literal> (optional - defaults to <literal>join</literal>): enables outer-join or sequential select fetching for this association. This is a special case; for full eager fetching in a single <literal>SELECT</literal> of an entity and its many-to-many relationships to other entities, you would enable <literal>join</literal> fetching,not only of the collection itself, but also with this attribute on the <literal><many-to-many></literal> nested element."
+msgstr "<literal>fetch</literal>ï¼å¯é - 缺ç为 <literal>join</literal>ï¼ï¼ 为è¿ä¸ªå
³èå¯ç¨å¤è¿æ¥æåºåæ§éæ©æåãè¿æ¯ä¸ä¸ªç¹ä¾ã对äºå¨å个 <literal>SELECT</literal> éè¿è¡å®å
¨ç eager fetching 以å使 <literal><many-to-many></literal> nç¨å¤å¯¹å¤å
³èï¼ä½ å¯ä»¥å¯ç¨ <literal>join</literal> fetchingï¼è¿ä¸ä»
æ¯å¯¹äºéåæ¬èº«ï¼ä¹å¯¹ <literal><many-to-many></literal> åµå¥å
ç´ ç屿§ã"
#. Tag: para
-#: collection_mapping.xml:528
#, no-c-format
-msgid "A map from string indices to dates:"
-msgstr "ä¸ä¸ªç»ä»¶çå表ï¼ï¼ä¸ä¸ç« 讨论ï¼"
+msgid "<literal>unique</literal> (optional): enables the DDL generation of a unique constraint for the foreign-key column. This makes the association multiplicity effectively one-to-many."
+msgstr "<literal>unique</literal>ï¼å¯éï¼ï¼æªå¤é®å段å¯ç¨å¯ä¸çº¦æç DDL çæãè¿ä½¿å¾å
³èä¸å¯¹å¤ç夿 ·æ§æ´ä¸ºææã"
-#. Tag: programlisting
-#: collection_mapping.xml:532
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<map name=\"holidays\" \n"
-" table=\"holidays\" \n"
-" schema=\"dbo\" \n"
-" order-by=\"hol_name asc\">\n"
-" <key column=\"id\"/>\n"
-" <map-key column=\"hol_name\" type=\"string\"/>\n"
-" <element column=\"hol_date\" type=\"date\"/>\n"
-"</map>]]>"
-msgstr ""
+msgid "<literal>not-found</literal> (optional - defaults to <literal>exception</literal>): specifies how foreign keys that reference missing rows will be handled: <literal>ignore</literal> will treat a missing row as a null association."
+msgstr "<literal>not-found</literal>ï¼å¯é - é»è®¤ä¸º <literal>exception</literal>ï¼ï¼ææè¥ç¼åçæ ç¤ºå¼å
³èçè¡ç¼ºå¤±ï¼è¯¥å¦ä½å¤çï¼<literal>ignore</literal> ä¼æç¼ºå¤±çè¡ä½ä¸ºä¸ä¸ªç©ºå
³èå¤çã "
#. Tag: para
-#: collection_mapping.xml:534
-#, fuzzy, no-c-format
-msgid "A list of components (this is discussed in the next chapter):"
-msgstr "ä¸å¯¹å¤å
³èï¼One-to-many Associationsï¼"
+#, no-c-format
+msgid "<literal>entity-name</literal> (optional): the entity name of the associated class, as an alternative to <literal>class</literal>."
+msgstr "<literal>entity-name</literal>ï¼å¯éï¼ï¼è¢«å
³èçç±»çå®ä½åï¼ä½ä¸º <literal>class</literal> çæ¿ä»£ã "
-#. Tag: programlisting
-#: collection_mapping.xml:538
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<list name=\"carComponents\" \n"
-" table=\"CarComponents\">\n"
-" <key column=\"carId\"/>\n"
-" <list-index column=\"sortOrder\"/>\n"
-" <composite-element class=\"CarComponent\">\n"
-" <property name=\"price\"/>\n"
-" <property name=\"type\"/>\n"
-" <property name=\"serialNumber\" column=\"serialNum\"/>\n"
-" </composite-element>\n"
-"</list>]]>"
-msgstr ""
+msgid "<literal>property-ref</literal> (optional): the name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used."
+msgstr "<literal>property-ref</literal>ï¼å¯éï¼ï¼è¿æ¥è³è¿ä¸ªå¤é®çå
³èç±»ç屿§åç§°ãå¦ææªæå®ï¼å
³èç±»ç主é®å°è¢«ä½¿ç¨ã"
-#. Tag: title
-#: collection_mapping.xml:543
+#. Tag: para
#, no-c-format
-msgid "One-to-many associations"
-msgstr ""
-"<emphasis>ä¸å¯¹å¤å
³è</emphasis><emphasis>éè¿å¤é®</emphasis>è¿æ¥ä¸¤ä¸ªç±»å¯¹åºç"
-"表,èæ²¡æä¸é´éå表ã è¿ä¸ªå
³ç³»æ¨¡å失å»äºä¸äºJavaéåçè¯ä¹:"
+msgid "Here are some examples."
+msgstr "ä¸é¢æ¯ä¸äºä¾åï¼"
#. Tag: para
-#: collection_mapping.xml:545
-#, fuzzy, no-c-format
-msgid ""
-"A <emphasis>one-to-many association</emphasis> links the tables of two "
-"classes via a foreign key with no intervening collection table. This mapping "
-"loses certain semantics of normal Java collections:"
-msgstr "ä¸ä¸ªè¢«å
å«çå®ä½çå®ä¾åªè½è¢«å
å«å¨ä¸ä¸ªéåçå®ä¾ä¸"
+#, no-c-format
+msgid "A set of strings:"
+msgstr "ä¸ç³»åå符串ï¼"
#. Tag: para
-#: collection_mapping.xml:553
-#, fuzzy, no-c-format
-msgid ""
-"An instance of the contained entity class cannot belong to more than one "
-"instance of the collection."
-msgstr "ä¸ä¸ªè¢«å
å«çå®ä½çå®ä¾åªè½å¯¹åºäºéåç´¢å¼çä¸ä¸ªå¼ä¸"
+#, no-c-format
+msgid "A bag containing integers with an iteration order determined by the <literal>order-by</literal> attribute:"
+msgstr "å
å«ä¸ç»æ´æ°ç bagï¼è¿è®¾ç½®äº <literal>order-by</literal> åæ°æå®äºè¿ä»£ç顺åºï¼ï¼ "
#. Tag: para
-#: collection_mapping.xml:559
-#, fuzzy, no-c-format
-msgid ""
-"An instance of the contained entity class cannot appear at more than one "
-"value of the collection index."
-msgstr ""
-"ä¸ä¸ªä»<literal>Product</literal>å°<literal>Part</literal>çå
³èéè¦å
³é®åå"
-"段,å¯è½è¿æä¸ä¸ªç´¢å¼å段æå<literal>Part</literal>æå¯¹åºç表ã <literal><"
-"one-to-many></literal>æ è®°ææäºä¸ä¸ªä¸å¯¹å¤çå
³èã"
+#, no-c-format
+msgid "An array of entities, in this case, a many-to-many association:"
+msgstr "ä¸ä¸ªå®ä½æ°ç»ï¼å¨è¿ä¸ªæ¡ä¾ä¸æ¯ä¸ä¸ªå¤å¯¹å¤çå
³èï¼æ³¨æè¿éçå®ä½æ¯èªå¨ç®¡ççå½å¨æç对象ï¼lifecycle objectsï¼ï¼<literal>cascade=\"all\"</literal>ï¼ï¼ "
#. Tag: para
-#: collection_mapping.xml:566
-#, fuzzy, no-c-format
-msgid ""
-"An association from <literal>Product</literal> to <literal>Part</literal> "
-"requires the existence of a foreign key column and possibly an index column "
-"to the <literal>Part</literal> table. A <literal><one-to-many></"
-"literal> tag indicates that this is a one-to-many association."
-msgstr "<literal>class</literal>(å¿
é¡»):被å
³èç±»çåç§°ã"
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr "ä¸ä¸ª mapï¼éè¿å符串çç´¢å¼æ¥æææ¥æï¼"
-#. Tag: programlisting
-#: collection_mapping.xml:579
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<one-to-many \n"
-" class=\"ClassName\"\n"
-" not-found=\"ignore|exception\"\n"
-" entity-name=\"EntityName\"\n"
-" node=\"element-name\"\n"
-" embed-xml=\"true|false\"\n"
-" />]]>"
-msgstr ""
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr "ä¸ä¸ªç»ä»¶çå表ï¼ï¼å°å¨ä¸ä¸ç« 讨论ï¼"
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr "ä¸å¯¹å¤å
³èï¼One-to-many Associationsï¼"
+
#. Tag: para
-#: collection_mapping.xml:582
-#, fuzzy, no-c-format
-msgid "<literal>class</literal> (required): the name of the associated class."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"为æ¤å
³èæå¼å¤è¿æ¥æåæè
åç»selectæåãè¿æ¯ç¹æ®æ
åµï¼å¯¹äºä¸ä¸ªå®ä½åå
¶æå"
-"å
¶ä»å®ä½çå¤å¯¹å¤å
³èè¿å
¨é¢å
æåï¼ä½¿ç¨ä¸æ¡åç¬ç<literal>SELECT</literal>)ï¼"
-"ä½ ä¸ä»
éè¦å¯¹éåèªèº«æå¼<literal>join</literal>ï¼ä¹éè¦å¯¹<literal><many-"
-"to-many></literal>è¿ä¸ªå
åµå
ç´ æå¼æ¤å±æ§ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>not-found</literal> (å¯é - é»è®¤ä¸º<literal>exception</literal>): æ"
-"æè¥ç¼åçæ ç¤ºå¼å
³èçè¡ç¼ºå¤±,该å¦ä½å¤ç: <literal>ignore</literal> ä¼æç¼ºå¤±ç"
-"è¡ä½ä¸ºä¸ä¸ªç©ºå
³èå¤çã"
+#, no-c-format
+msgid "A <emphasis>one-to-many association</emphasis> links the tables of two classes via a foreign key with no intervening collection table. This mapping loses certain semantics of normal Java collections:"
+msgstr "<emphasis>ä¸å¯¹å¤å
³è</emphasis><emphasis>éè¿å¤é®</emphasis>è¿æ¥ä¸¤ä¸ªç±»å¯¹åºç表ï¼è没æä¸é´éå表ã è¿ä¸ªå
³ç³»æ¨¡å失å»äºä¸äº Java éåçè¯ä¹ï¼"
#. Tag: para
-#: collection_mapping.xml:587
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-found</literal> (optional - defaults to <literal>exception</"
-"literal>): specifies how cached identifiers that reference missing rows will "
-"be handled. <literal>ignore</literal> will treat a missing row as a null "
-"association."
-msgstr ""
-"<literal>entity-name</literal> (å¯é): 被å
³èçç±»çå®ä½åï¼ä½ä¸º"
-"<literal>class</literal>çæ¿ä»£ã"
+#, no-c-format
+msgid "An instance of the contained entity class cannot belong to more than one instance of the collection."
+msgstr "ä¸ä¸ªè¢«å
å«çå®ä½çå®ä¾åªè½è¢«å
å«å¨ä¸ä¸ªéåçå®ä¾ä¸ã"
#. Tag: para
-#: collection_mapping.xml:594
-#, fuzzy, no-c-format
-msgid ""
-"<literal>entity-name</literal> (optional): the entity name of the associated "
-"class, as an alternative to <literal>class</literal>."
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<literal>property-ref</literal>: (å¯é) 被å
³èå°æ¤å¤é®(foreign key)çç±»ä¸ç对"
-"åºå±æ§çååãè¥æªæå®ï¼ä½¿ç¨è¢«å
³èç±»ç主é®ã\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"ä¾å"
+#, no-c-format
+msgid "An instance of the contained entity class cannot appear at more than one value of the collection index."
+msgstr "ä¸ä¸ªè¢«å
å«çå®ä½çå®ä¾åªè½å¯¹åºäºéåç´¢å¼çä¸ä¸ªå¼ä¸ã"
#. Tag: para
-#: collection_mapping.xml:602
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><one-to-many></literal> element does not need to declare "
-"any columns. Nor is it necessary to specify the <literal>table</literal> "
-"name anywhere."
-msgstr ""
-"注æ:<literal><one-to-many></literal>å
ç´ ä¸éè¦å®ä¹ä»»ä½å段ã ä¹ä¸éè¦"
-"æå®è¡¨åã"
+#, no-c-format
+msgid "An association from <literal>Product</literal> to <literal>Part</literal> requires the existence of a foreign key column and possibly an index column to the <literal>Part</literal> table. A <literal><one-to-many></literal> tag indicates that this is a one-to-many association."
+msgstr "ä¸ä¸ªä» <literal>Product</literal> å° <literal>Part</literal> çå
³èéè¦å
³é®ååæ®µï¼å¯è½è¿æä¸ä¸ªç´¢å¼å段æå <literal>Part</literal> æå¯¹åºç表ã<literal><one-to-many></literal> æ è®°ææäºä¸ä¸ªä¸å¯¹å¤çå
³èã "
#. Tag: para
-#: collection_mapping.xml:609
-#, fuzzy, no-c-format
-msgid ""
-"If the foreign key column of a <literal><one-to-many></literal> "
-"association is declared <literal>NOT NULL</literal>, you must declare the "
-"<literal><key></literal> mapping <literal>not-null=\"true\"</literal> "
-"or <emphasis>use a bidirectional association</emphasis> with the collection "
-"mapping marked <literal>inverse=\"true\"</literal>. See the discussion of "
-"bidirectional associations later in this chapter for more information."
-msgstr ""
-"<emphasis>éè¦æç¤º</emphasis>:妿<literal>ä¸å¯¹å¤</literal>å
³èä¸çå¤é®å段å®"
-"乿<literal>NOT NULL</literal>,ä½ å¿
é¡»æ<literal><key></literal>æ å°å£°"
-"æä¸º<literal>not-null=\"true\"</literal>,æè
使ç¨<emphasis>ååå
³è</"
-"emphasis>ï¼å¹¶ä¸æ æ<literal>inverse=\"true\"</literal>ãåé
æ¬ç« åé¢å
³äºåå"
-"å
³èç讨论ã"
+#, no-c-format
+msgid "<literal>not-found</literal> (optional - defaults to <literal>exception</literal>): specifies how cached identifiers that reference missing rows will be handled. <literal>ignore</literal> will treat a missing row as a null association."
+msgstr "<literal>not-found</literal>ï¼å¯é - é»è®¤ä¸º<literal>exception</literal>ï¼ï¼ææè¥ç¼åçæ ç¤ºå¼å
³èçè¡ç¼ºå¤±ï¼è¯¥å¦ä½å¤çï¼<literal>ignore</literal> ä¼æç¼ºå¤±çè¡ä½ä¸ºä¸ä¸ªç©ºå
³èå¤çã "
#. Tag: para
-#: collection_mapping.xml:619
-#, fuzzy, no-c-format
-msgid ""
-"The following example shows a map of <literal>Part</literal> entities by "
-"name, where <literal>partName</literal> is a persistent property of "
-"<literal>Part</literal>. Notice the use of a formula-based index:"
-msgstr ""
-"ä¸é¢çä¾åå±ç¤ºä¸ä¸ª<literal>Part</literal>å®ä½çmap,ænameä½ä¸ºå
³é®åã"
-"( <literal>partName</literal> æ¯<literal>Part</literal>çæä¹
å屿§)ãæ³¨æå
¶"
-"ä¸çåºäºå
¬å¼çç´¢å¼çç¨æ³ã"
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element does not need to declare any columns. Nor is it necessary to specify the <literal>table</literal> name anywhere."
+msgstr "注æï¼<literal><one-to-many></literal> å
ç´ ä¸éè¦å®ä¹ä»»ä½å段ãä¹ä¸éè¦æå®è¡¨åã "
-#. Tag: programlisting
-#: collection_mapping.xml:625
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<map name=\"parts\"\n"
-" cascade=\"all\">\n"
-" <key column=\"productId\" not-null=\"true\"/>\n"
-" <map-key formula=\"partName\"/>\n"
-" <one-to-many class=\"Part\"/>\n"
-"</map>]]>"
-msgstr ""
+msgid "If the foreign key column of a <literal><one-to-many></literal> association is declared <literal>NOT NULL</literal>, you must declare the <literal><key></literal> mapping <literal>not-null=\"true\"</literal> or <emphasis>use a bidirectional association</emphasis> with the collection mapping marked <literal>inverse=\"true\"</literal>. See the discussion of bidirectional associations later in this chapter for more information."
+msgstr "<emphasis>éè¦æç¤º</emphasis>ï¼å¦æ<literal>ä¸å¯¹å¤</literal>å
³èä¸çå¤é®å段å®ä¹æ <literal>NOT NULL</literal>ï¼ä½ å¿
é¡»æ <literal><key></literal> æ å°å£°æä¸º <literal>not-null=\"true\"</literal>ï¼æè
使ç¨<emphasis>ååå
³è</emphasis>ï¼å¹¶ä¸æ æ <literal>inverse=\"true\"</literal>ãåé
æ¬ç« åé¢å
³äºååå
³èç讨论ã "
+#. Tag: para
+#, no-c-format
+msgid "The following example shows a map of <literal>Part</literal> entities by name, where <literal>partName</literal> is a persistent property of <literal>Part</literal>. Notice the use of a formula-based index:"
+msgstr "ä¸é¢çä¾åå±ç¤ºä¸ä¸ª <literal>Part</literal> å®ä½ç mapï¼æ name ä½ä¸ºå
³é®åãï¼ <literal>partName</literal> æ¯ <literal>Part</literal> çæä¹
å屿§ï¼ã注æå
¶ä¸çåºäºå
¬å¼çç´¢å¼çç¨æ³ã "
+
#. Tag: title
-#: collection_mapping.xml:631
#, no-c-format
msgid "Advanced collection mappings"
msgstr "é«çº§éåæ å°ï¼Advanced collection mappingsï¼"
#. Tag: title
-#: collection_mapping.xml:634
#, no-c-format
msgid "Sorted collections"
msgstr "æåºéåï¼Sorted collectionsï¼"
#. Tag: para
-#: collection_mapping.xml:636
#, no-c-format
-msgid ""
-"Hibernate supports collections implementing <literal>java.util.SortedMap</"
-"literal> and <literal>java.util.SortedSet</literal>. You must specify a "
-"comparator in the mapping file:"
-msgstr ""
-"Hibernateæ¯æå®ç°<literal>java.util.SortedMap</literal>å<literal>java.util."
-"SortedSet</literal>çéåã ä½ å¿
须卿 尿件䏿å®ä¸ä¸ªæ¯è¾å¨ï¼"
+msgid "Hibernate supports collections implementing <literal>java.util.SortedMap</literal> and <literal>java.util.SortedSet</literal>. You must specify a comparator in the mapping file:"
+msgstr "Hibernate æ¯æå®ç° <literal>java.util.SortedMap</literal> å <literal>java.util.SortedSet</literal> çéåãä½ å¿
须卿 尿件䏿å®ä¸ä¸ªæ¯è¾å¨ï¼"
-#. Tag: programlisting
-#: collection_mapping.xml:641
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"aliases\" \n"
-" table=\"person_aliases\" \n"
-" sort=\"natural\">\n"
-" <key column=\"person\"/>\n"
-" <element column=\"name\" type=\"string\"/>\n"
-"</set>\n"
-"\n"
-"<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
-" <key column=\"year_id\"/>\n"
-" <map-key column=\"hol_name\" type=\"string\"/>\n"
-" <element column=\"hol_date\" type=\"date\"/>\n"
-"</map>]]>"
-msgstr ""
-
#. Tag: para
-#: collection_mapping.xml:643
#, no-c-format
-msgid ""
-"Allowed values of the <literal>sort</literal> attribute are "
-"<literal>unsorted</literal>, <literal>natural</literal> and the name of a "
-"class implementing <literal>java.util.Comparator</literal>."
-msgstr ""
-"<literal>sort</literal>屿§ä¸å
许çå¼å
æ¬<literal>unsorted</literal>,"
-"<literal>natural</literal>åæä¸ªå®ç°äº<literal>java.util.Comparator</literal>"
-"çç±»çåç§°ã"
+msgid "Allowed values of the <literal>sort</literal> attribute are <literal>unsorted</literal>, <literal>natural</literal> and the name of a class implementing <literal>java.util.Comparator</literal>."
+msgstr "<literal>sort</literal> 屿§ä¸å
许çå¼å
æ¬ <literal>unsorted</literal>ï¼<literal>natural</literal> åæä¸ªå®ç°äº <literal>java.util.Comparator</literal> çç±»çåç§°ã"
#. Tag: para
-#: collection_mapping.xml:649
#, no-c-format
-msgid ""
-"Sorted collections actually behave like <literal>java.util.TreeSet</literal> "
-"or <literal>java.util.TreeMap</literal>."
-msgstr ""
-"åç±»éåçè¡ä¸ºäºå®ä¸è±¡<literal>java.util.TreeSet</literal>æè
<literal>java."
-"util.TreeMap</literal>ã"
+msgid "Sorted collections actually behave like <literal>java.util.TreeSet</literal> or <literal>java.util.TreeMap</literal>."
+msgstr "åç±»éåçè¡ä¸ºäºå®ä¸è±¡ <literal>java.util.TreeSet</literal> æè
<literal>java.util.TreeMap</literal>ã"
#. Tag: para
-#: collection_mapping.xml:654
-#, fuzzy, no-c-format
-msgid ""
-"If you want the database itself to order the collection elements, use the "
-"<literal>order-by</literal> attribute of <literal>set</literal>, "
-"<literal>bag</literal> or <literal>map</literal> mappings. This solution is "
-"only available under JDK 1.4 or higher and is implemented using "
-"<literal>LinkedHashSet</literal> or <literal>LinkedHashMap</literal>. This "
-"performs the ordering in the SQL query and not in the memory."
-msgstr ""
-"å¦æä½ å¸ææ°æ®åºèªå·±å¯¹éåå
ç´ æåºï¼å¯ä»¥å©ç¨<literal>set</literal>,"
-"<literal>bag</literal>æè
<literal>map</literal>æ å°ä¸ç<literal>order-by</"
-"literal>屿§ãè¿ä¸ªè§£å³æ¹æ¡åªè½å¨jdk1.4æè
æ´é«çjdkçæ¬ä¸æå¯ä»¥å®ç°(éè¿"
-"LinkedHashSetæè
LinkedHashMapå®ç°)ã 宿¯å¨SQLæ¥è¯¢ä¸å®ææåºï¼è䏿¯å¨å
å"
-"ä¸ã"
-
-#. Tag: programlisting
-#: collection_mapping.xml:663
#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower"
-"(name) asc\">\n"
-" <key column=\"person\"/>\n"
-" <element column=\"name\" type=\"string\"/>\n"
-"</set>\n"
-"\n"
-"<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
-" <key column=\"year_id\"/>\n"
-" <map-key column=\"hol_name\" type=\"string\"/>\n"
-" <element column=\"hol_date type=\"date\"/>\n"
-"</map>]]>"
-msgstr ""
+msgid "If you want the database itself to order the collection elements, use the <literal>order-by</literal> attribute of <literal>set</literal>, <literal>bag</literal> or <literal>map</literal> mappings. This solution is only available under JDK 1.4 or higher and is implemented using <literal>LinkedHashSet</literal> or <literal>LinkedHashMap</literal>. This performs the ordering in the SQL query and not in the memory."
+msgstr "å¦æä½ å¸ææ°æ®åºèªå·±å¯¹éåå
ç´ æåºï¼å¯ä»¥å©ç¨ <literal>set</literal>ï¼<literal>bag</literal> æè
<literal>map</literal> æ å°ä¸ç <literal>order-by</literal> 屿§ãè¿ä¸ªè§£å³æ¹æ¡åªè½å¨ jdk1.4 æè
æ´é«ç jdk çæ¬ä¸æå¯ä»¥å®ç°ï¼éè¿ LinkedHashSet æè
LinkedHashMap å®ç°ï¼ã宿¯å¨ SQL æ¥è¯¢ä¸å®ææåºï¼è䏿¯å¨å
åä¸ã "
#. Tag: title
-#: collection_mapping.xml:666
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
#. Tag: para
-#: collection_mapping.xml:667
-#, fuzzy, no-c-format
-msgid ""
-"The value of the <literal>order-by</literal> attribute is an SQL ordering, "
-"not an HQL ordering."
-msgstr ""
-"注æ: è¿ä¸ª<literal>order-by</literal>屿§ç弿¯ä¸ä¸ªSQLæåºåå¥è䏿¯HQLçï¼"
+#, no-c-format
+msgid "The value of the <literal>order-by</literal> attribute is an SQL ordering, not an HQL ordering."
+msgstr "注æï¼è¿ä¸ª <literal>order-by</literal> 屿§ç弿¯ä¸ä¸ª SQL æåºåå¥è䏿¯ HQL çã"
#. Tag: para
-#: collection_mapping.xml:673
-#, fuzzy, no-c-format
-msgid ""
-"Associations can even be sorted by arbitrary criteria at runtime using a "
-"collection <literal>filter()</literal>:"
-msgstr ""
-"å
³èè¿å¯ä»¥å¨è¿è¡æ¶ä½¿ç¨éå<literal>filter()</literal>æ ¹æ®ä»»æçæ¡ä»¶æ¥æåºã"
-
-#. Tag: programlisting
-#: collection_mapping.xml:678
#, no-c-format
-msgid ""
-"<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this.name"
-"\" ).list();]]>"
-msgstr ""
+msgid "Associations can even be sorted by arbitrary criteria at runtime using a collection <literal>filter()</literal>:"
+msgstr "å
³èè¿å¯ä»¥å¨è¿è¡æ¶ä½¿ç¨éå <literal>filter()</literal> æ ¹æ®ä»»æçæ¡ä»¶æ¥æåºï¼"
#. Tag: title
-#: collection_mapping.xml:683
#, no-c-format
msgid "Bidirectional associations"
msgstr "ååå
³èï¼Bidirectional associationsï¼"
#. Tag: para
-#: collection_mapping.xml:685
-#, fuzzy, no-c-format
-msgid ""
-"A <emphasis>bidirectional association</emphasis> allows navigation from both "
-"\"ends\" of the association. Two kinds of bidirectional association are "
-"supported:"
-msgstr ""
-"<emphasis>ååå
³è</emphasis>å
许éè¿å
³èçä»»ä¸ç«¯è®¿é®å¦å¤ä¸ç«¯ãå¨Hibernate"
-"ä¸, æ¯æä¸¤ç§ç±»åçååå
³è: <placeholder-1/>"
+#, no-c-format
+msgid "A <emphasis>bidirectional association</emphasis> allows navigation from both \"ends\" of the association. Two kinds of bidirectional association are supported:"
+msgstr "<emphasis>ååå
³è</emphasis>å
许éè¿å
³èçä»»ä¸ç«¯è®¿é®å¦å¤ä¸ç«¯ãå¨ Hibernate ä¸ï¼æ¯æä¸¤ç§ç±»åçååå
³èï¼ "
#. Tag: term
-#: collection_mapping.xml:692
#, no-c-format
msgid "one-to-many"
msgstr "ä¸å¯¹å¤ï¼one-to-manyï¼"
#. Tag: para
-#: collection_mapping.xml:694
-#, fuzzy, no-c-format
+#, no-c-format
msgid "set or bag valued at one end and single-valued at the other"
-msgstr "Setæè
bagå¼å¨ä¸ç«¯, åç¬å¼(ééå)å¨å¦å¤ä¸ç«¯"
+msgstr "Set æè
bag å¼å¨ä¸ç«¯ï¼åç¬å¼ï¼ééåï¼å¨å¦å¤ä¸ç«¯ "
#. Tag: term
-#: collection_mapping.xml:700
#, no-c-format
msgid "many-to-many"
msgstr "å¤å¯¹å¤ï¼many-to-manyï¼"
#. Tag: para
-#: collection_mapping.xml:702
#, no-c-format
msgid "set or bag valued at both ends"
-msgstr "ä¸¤ç«¯é½æ¯setæbagå¼"
+msgstr "ä¸¤ç«¯é½æ¯ set æ bag å¼"
#. Tag: para
-#: collection_mapping.xml:711
-#, fuzzy, no-c-format
-msgid ""
-"You can specify a bidirectional many-to-many association by mapping two many-"
-"to-many associations to the same database table and declaring one end as "
-"<emphasis>inverse</emphasis>. You cannot select an indexed collection."
-msgstr ""
-"è¦å»ºç«ä¸ä¸ªååçå¤å¯¹å¤å
³èï¼åªéè¦æ å°ä¸¤ä¸ªmany-to-manyå
³èå°åä¸ä¸ªæ°æ®åºè¡¨"
-"ä¸ï¼å¹¶åå®ä¹å
¶ä¸çä¸ç«¯ä¸º<emphasis>inverse</emphasis>(使ç¨åªä¸ç«¯è¦æ ¹æ®ä½ çé"
-"æ©ï¼ä½å®ä¸è½æ¯ä¸ä¸ªç´¢å¼éå)ã"
+#, no-c-format
+msgid "You can specify a bidirectional many-to-many association by mapping two many-to-many associations to the same database table and declaring one end as <emphasis>inverse</emphasis>. You cannot select an indexed collection."
+msgstr "è¦å»ºç«ä¸ä¸ªååçå¤å¯¹å¤å
³èï¼åªéè¦æ å°ä¸¤ä¸ª many-to-many å
³èå°åä¸ä¸ªæ°æ®åºè¡¨ä¸ï¼å¹¶åå®ä¹å
¶ä¸çä¸ç«¯ä¸º <emphasis>inverse</emphasis>ï¼ä½¿ç¨åªä¸ç«¯è¦æ ¹æ®ä½ çéæ©ï¼ä½å®ä¸è½æ¯ä¸ä¸ªç´¢å¼éåï¼ã "
#. Tag: para
-#: collection_mapping.xml:718
-#, fuzzy, no-c-format
-msgid ""
-"Here is an example of a bidirectional many-to-many association that "
-"illustrates how each category can have many items and each item can be in "
-"many categories:"
-msgstr ""
-"è¿éæä¸ä¸ªmany-to-manyçååå
³èçä¾å;æ¯ä¸ä¸ªcategoryé½å¯ä»¥æå¾å¤items,æ¯ä¸ä¸ª"
-"itemså¯ä»¥å±äºå¾å¤categoriesï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:723
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Category\">\n"
-" <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
-" ...\n"
-" <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
-" <key column=\"CATEGORY_ID\"/>\n"
-" <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
-" </bag>\n"
-"</class>\n"
-"\n"
-"<class name=\"Item\">\n"
-" <id name=\"id\" column=\"ITEM_ID\"/>\n"
-" ...\n"
-"\n"
-" <!-- inverse end -->\n"
-" <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true\">\n"
-" <key column=\"ITEM_ID\"/>\n"
-" <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
-" </bag>\n"
-"</class>]]>"
-msgstr ""
+msgid "Here is an example of a bidirectional many-to-many association that illustrates how each category can have many items and each item can be in many categories:"
+msgstr "è¿éæä¸ä¸ª many-to-many çååå
³èçä¾å;æ¯ä¸ä¸ª category é½å¯ä»¥æå¾å¤ itemsï¼æ¯ä¸ä¸ª items å¯ä»¥å±äºå¾å¤ categoriesï¼ "
#. Tag: para
-#: collection_mapping.xml:725
-#, fuzzy, no-c-format
-msgid ""
-"Changes made only to the inverse end of the association are <emphasis>not</"
-"emphasis> persisted. This means that Hibernate has two representations in "
-"memory for every bidirectional association: one link from A to B and another "
-"link from B to A. This is easier to understand if you think about the Java "
-"object model and how a many-to-many relationship in Javais created:"
-msgstr ""
-"妿åªå¯¹å
³èçåå端è¿è¡äºæ¹åï¼è¿ä¸ªæ¹å<emphasis>ä¸ä¼</emphasis>被æä¹
åã "
-"è¿è¡¨ç¤ºHibernate为æ¯ä¸ªååå
³èå¨å
åä¸åå¨ä¸¤æ¬¡è¡¨ç°,ä¸ä¸ªä»Aè¿æ¥å°B,å¦ä¸ä¸ªä»Bè¿"
-"æ¥å°Aãå¦æä½ åæ³ä¸ä¸Java对象模åï¼æä»¬æ¯å¦ä½å¨Javaä¸å建å¤å¯¹å¤å
³ç³»çï¼è¿å¯ä»¥"
-"è®©ä½ æ´å®¹æçè§£ï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:733
#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"category.getItems().add(item); // The category now \"knows\" about "
-"the relationship\n"
-"item.getCategories().add(category); // The item now \"knows\" about the "
-"relationship\n"
-"\n"
-"session.persist(item); // The relationship won't be "
-"saved!\n"
-"session.persist(category); // The relationship will be saved]]>"
-msgstr ""
+msgid "Changes made only to the inverse end of the association are <emphasis>not</emphasis> persisted. This means that Hibernate has two representations in memory for every bidirectional association: one link from A to B and another link from B to A. This is easier to understand if you think about the Java object model and how a many-to-many relationship in Javais created:"
+msgstr "妿åªå¯¹å
³èçåå端è¿è¡äºæ¹åï¼è¿ä¸ªæ¹å<emphasis>ä¸ä¼</emphasis>被æä¹
åã è¿è¡¨ç¤º Hibernate 为æ¯ä¸ªååå
³èå¨å
åä¸åå¨ä¸¤æ¬¡è¡¨ç°ï¼ä¸ä¸ªä» A è¿æ¥å° Bï¼å¦ä¸ä¸ªä» B è¿æ¥å° Aãå¦æä½ åæ³ä¸ä¸ Java 对象模åï¼æä»¬æ¯å¦ä½å¨ Java ä¸å建å¤å¯¹å¤å
³ç³»çï¼è¿å¯ä»¥è®©ä½ æ´å®¹æçè§£ï¼ "
#. Tag: para
-#: collection_mapping.xml:735
#, no-c-format
-msgid ""
-"The non-inverse side is used to save the in-memory representation to the "
-"database."
+msgid "The non-inverse side is used to save the in-memory representation to the database."
msgstr "éåå端ç¨äºæå
åä¸ç表示ä¿åå°æ°æ®åºä¸ã"
#. Tag: para
-#: collection_mapping.xml:739
-#, fuzzy, no-c-format
-msgid ""
-"You can define a bidirectional one-to-many association by mapping a one-to-"
-"many association to the same table column(s) as a many-to-one association "
-"and declaring the many-valued end <literal>inverse=\"true\"</literal>."
-msgstr ""
-"è¦å»ºç«ä¸ä¸ªä¸å¯¹å¤çååå
³èï¼ä½ å¯ä»¥éè¿æä¸ä¸ªä¸å¯¹å¤å
³èï¼ä½ä¸ºä¸ä¸ªå¤å¯¹ä¸å
³èæ "
-"å°å°å°åä¸å¼ 表çåæ®µä¸ï¼å¹¶ä¸å¨\"å¤\"çé£ä¸ç«¯å®ä¹<literal>inverse=\"true\"</"
-"literal>ã"
-
-#. Tag: programlisting
-#: collection_mapping.xml:745
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Parent\">\n"
-" <id name=\"id\" column=\"parent_id\"/>\n"
-" ....\n"
-" <set name=\"children\" inverse=\"true\">\n"
-" <key column=\"parent_id\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-" </set>\n"
-"</class>\n"
-"\n"
-"<class name=\"Child\">\n"
-" <id name=\"id\" column=\"child_id\"/>\n"
-" ....\n"
-" <many-to-one name=\"parent\" \n"
-" class=\"Parent\" \n"
-" column=\"parent_id\"\n"
-" not-null=\"true\"/>\n"
-"</class>]]>"
-msgstr ""
+msgid "You can define a bidirectional one-to-many association by mapping a one-to-many association to the same table column(s) as a many-to-one association and declaring the many-valued end <literal>inverse=\"true\"</literal>."
+msgstr "è¦å»ºç«ä¸ä¸ªä¸å¯¹å¤çååå
³èï¼ä½ å¯ä»¥éè¿æä¸ä¸ªä¸å¯¹å¤å
³èï¼ä½ä¸ºä¸ä¸ªå¤å¯¹ä¸å
³èæ å°å°å°åä¸å¼ 表çåæ®µä¸ï¼å¹¶ä¸å¨\"å¤\"çé£ä¸ç«¯å®ä¹ <literal>inverse=\"true\"</literal>ã "
#. Tag: para
-#: collection_mapping.xml:747
-#, fuzzy, no-c-format
-msgid ""
-"Mapping one end of an association with <literal>inverse=\"true\"</literal> "
-"does not affect the operation of cascades as these are orthogonal concepts."
-msgstr ""
-"å¨âä¸âè¿ä¸ç«¯å®ä¹<literal>inverse=\"true\"</literal>ä¸ä¼å½±å级èæä½ï¼äºè
æ¯æ£"
-"äº¤çæ¦å¿µï¼"
+#, no-c-format
+msgid "Mapping one end of an association with <literal>inverse=\"true\"</literal> does not affect the operation of cascades as these are orthogonal concepts."
+msgstr "å¨âä¸âè¿ä¸ç«¯å®ä¹ <literal>inverse=\"true\"</literal> ä¸ä¼å½±å级èæä½ï¼äºè
æ¯æ£äº¤çæ¦å¿µã"
#. Tag: title
-#: collection_mapping.xml:755
#, no-c-format
msgid "Bidirectional associations with indexed collections"
msgstr "ååå
³èï¼æ¶åæåºéåç±»"
#. Tag: para
-#: collection_mapping.xml:756
-#, fuzzy, no-c-format
-msgid ""
-"A bidirectional association where one end is represented as a <literal><"
-"list></literal> or <literal><map></literal>, requires special "
-"consideration. If there is a property of the child class that maps to the "
-"index column you can use <literal>inverse=\"true\"</literal> on the "
-"collection mapping:"
-msgstr ""
-"å¯¹äºæä¸ç«¯æ¯<literal><list></literal>æè
<literal><map></literal>"
-"çååå
³èï¼éè¦å 以ç¹å«èèãåè¥åç±»ä¸çä¸ä¸ªå±æ§æ å°å°ç´¢å¼åæ®µï¼æ²¡é®é¢ï¼æ"
-"们ä»ç¶å¯ä»¥å¨éåç±»æ å°ä¸ä½¿ç¨<literal>inverse=\"true\"</literal>ï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:763
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Parent\">\n"
-" <id name=\"id\" column=\"parent_id\"/>\n"
-" ....\n"
-" <map name=\"children\" inverse=\"true\">\n"
-" <key column=\"parent_id\"/>\n"
-" <map-key column=\"name\" \n"
-" type=\"string\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-" </map>\n"
-"</class>\n"
-"\n"
-"<class name=\"Child\">\n"
-" <id name=\"id\" column=\"child_id\"/>\n"
-" ....\n"
-" <property name=\"name\" \n"
-" not-null=\"true\"/>\n"
-" <many-to-one name=\"parent\" \n"
-" class=\"Parent\" \n"
-" column=\"parent_id\"\n"
-" not-null=\"true\"/>\n"
-"</class>]]>"
-msgstr ""
+msgid "A bidirectional association where one end is represented as a <literal><list></literal> or <literal><map></literal>, requires special consideration. If there is a property of the child class that maps to the index column you can use <literal>inverse=\"true\"</literal> on the collection mapping:"
+msgstr "å¯¹äºæä¸ç«¯æ¯ <literal><list></literal> æè
<literal><map></literal> çååå
³èï¼éè¦å 以ç¹å«èèãåè¥åç±»ä¸çä¸ä¸ªå±æ§æ å°å°ç´¢å¼åæ®µï¼æ²¡é®é¢ï¼æä»¬ä»ç¶å¯ä»¥å¨éåç±»æ å°ä¸ä½¿ç¨ <literal>inverse=\"true\"</literal>ï¼ "
#. Tag: para
-#: collection_mapping.xml:765
-#, fuzzy, no-c-format
-msgid ""
-"If there is no such property on the child class, the association cannot be "
-"considered truly bidirectional. That is, there is information available at "
-"one end of the association that is not available at the other end. In this "
-"case, you cannot map the collection <literal>inverse=\"true\"</literal>. "
-"Instead, you could use the following mapping:"
-msgstr ""
-"使¯ï¼åè¥åç±»ä¸æ²¡æè¿æ ·ç屿§åå¨ï¼æä»¬ä¸è½è®¤ä¸ºè¿ä¸ªå
³èæ¯çæ£çååå
³èï¼ä¿¡"
-"æ¯ä¸å¯¹ç§°ï¼å¨å
³èçä¸ç«¯æä¸äºå¦å¤ä¸ç«¯æ²¡æçä¿¡æ¯ï¼ãå¨è¿ç§æ
åµä¸ï¼æä»¬ä¸è½ä½¿ç¨"
-"<literal>inverse=\"true\"</literal>ãæä»¬éè¦è¿æ ·ç¨ï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:772
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Parent\">\n"
-" <id name=\"id\" column=\"parent_id\"/>\n"
-" ....\n"
-" <map name=\"children\">\n"
-" <key column=\"parent_id\"\n"
-" not-null=\"true\"/>\n"
-" <map-key column=\"name\" \n"
-" type=\"string\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-" </map>\n"
-"</class>\n"
-"\n"
-"<class name=\"Child\">\n"
-" <id name=\"id\" column=\"child_id\"/>\n"
-" ....\n"
-" <many-to-one name=\"parent\" \n"
-" class=\"Parent\" \n"
-" column=\"parent_id\"\n"
-" insert=\"false\"\n"
-" update=\"false\"\n"
-" not-null=\"true\"/>\n"
-"</class>]]>"
-msgstr ""
+msgid "If there is no such property on the child class, the association cannot be considered truly bidirectional. That is, there is information available at one end of the association that is not available at the other end. In this case, you cannot map the collection <literal>inverse=\"true\"</literal>. Instead, you could use the following mapping:"
+msgstr "使¯ï¼åè¥åç±»ä¸æ²¡æè¿æ ·ç屿§åå¨ï¼æä»¬ä¸è½è®¤ä¸ºè¿ä¸ªå
³èæ¯çæ£çååå
³èï¼ä¿¡æ¯ä¸å¯¹ç§°ï¼å¨å
³èçä¸ç«¯æä¸äºå¦å¤ä¸ç«¯æ²¡æçä¿¡æ¯ï¼ãå¨è¿ç§æ
åµä¸ï¼æä»¬ä¸è½ä½¿ç¨ <literal>inverse=\"true\"</literal>ãæä»¬éè¦è¿æ ·ç¨ï¼ "
#. Tag: para
-#: collection_mapping.xml:774
-#, fuzzy, no-c-format
-msgid ""
-"Note that in this mapping, the collection-valued end of the association is "
-"responsible for updates to the foreign key."
-msgstr ""
-"注æå¨è¿ä¸ªæ å°ä¸ï¼å
³èä¸éåç±»\"å¼\"ä¸ç«¯è´è´£æ¥æ´æ°å¤é®.TODO: Does this "
-"really result in some unnecessary update statements?"
+#, no-c-format
+msgid "Note that in this mapping, the collection-valued end of the association is responsible for updates to the foreign key. <!-- TODO: Does this really result in some unnecessary update statements? -->"
+msgstr "注æå¨è¿ä¸ªæ å°ä¸ï¼å
³èä¸éåç±»\"å¼\"ä¸ç«¯è´è´£æ¥æ´æ°å¤é®ã "
#. Tag: title
-#: collection_mapping.xml:782
#, no-c-format
msgid "Ternary associations"
msgstr "ä¸éå
³èï¼Ternary associationsï¼"
#. Tag: para
-#: collection_mapping.xml:784
-#, fuzzy, no-c-format
-msgid ""
-"There are three possible approaches to mapping a ternary association. One "
-"approach is to use a <literal>Map</literal> with an association as its index:"
-msgstr ""
-"æä¸ç§å¯è½çé徿¥æ å°ä¸ä¸ªä¸éå
³èã第ä¸ç§æ¯ä½¿ç¨ä¸ä¸ª<literal>Map</literal>ï¼"
-"æä¸ä¸ªå
³èä½ä¸ºå
¶ç´¢å¼ï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:789
#, no-c-format
-msgid ""
-"<![CDATA[<map name=\"contracts\">\n"
-" <key column=\"employer_id\" not-null=\"true\"/>\n"
-" <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
-" <one-to-many class=\"Contract\"/>\n"
-"</map>]]>"
-msgstr ""
+msgid "There are three possible approaches to mapping a ternary association. One approach is to use a <literal>Map</literal> with an association as its index:"
+msgstr "æä¸ç§å¯è½çé徿¥æ å°ä¸ä¸ªä¸éå
³èã第ä¸ç§æ¯ä½¿ç¨ä¸ä¸ª <literal>Map</literal>ï¼æä¸ä¸ªå
³èä½ä¸ºå
¶ç´¢å¼ï¼ "
-#. Tag: programlisting
-#: collection_mapping.xml:791
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<map name=\"connections\">\n"
-" <key column=\"incoming_node_id\"/>\n"
-" <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
-" <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
-"</map>]]>"
-msgstr ""
+msgid "A second approach is to remodel the association as an entity class. This is the most common approach."
+msgstr "第äºç§æ¹æ³æ¯ç®åçæå
³èéæ°å»ºæ¨¡ä¸ºä¸ä¸ªå®ä½ç±»ãè¿ä½¿æä»¬æç»å¸¸ä½¿ç¨çæ¹æ³ã "
#. Tag: para
-#: collection_mapping.xml:793
-#, fuzzy, no-c-format
-msgid ""
-"A second approach is to remodel the association as an entity class. This is "
-"the most common approach."
-msgstr ""
-"第äºç§æ¹æ³æ¯ç®åçæå
³èéæ°å»ºæ¨¡ä¸ºä¸ä¸ªå®ä½ç±»ãè¿ä½¿æä»¬æç»å¸¸ä½¿ç¨çæ¹æ³ã"
+#, no-c-format
+msgid "A final alternative is to use composite elements, which will be discussed later."
+msgstr "æåä¸ç§éæ©æ¯ä½¿ç¨å¤åå
ç´ ï¼æä»¬ä¼å¨åé¢è®¨è®ºã"
-#. Tag: para
-#: collection_mapping.xml:798
-#, fuzzy, no-c-format
-msgid ""
-"A final alternative is to use composite elements, which will be discussed "
-"later."
-msgstr "æåä¸ç§éæ©æ¯ä½¿ç¨å¤åå
ç´ ï¼æä»¬ä¼å¨åé¢è®¨è®º"
-
-#. Tag: literal
-#: collection_mapping.xml:805
+#. Tag: title
#, no-c-format
-msgid "Using an <idbag>"
-msgstr "使ç¨<idbag>"
+msgid "<literal>Using an <idbag></literal>"
+msgstr "<literal>ä½¿ç¨ an <idbag></literal>"
#. Tag: para
-#: collection_mapping.xml:807
-#, fuzzy, no-c-format
-msgid ""
-"The majority of the many-to-many associations and collections of values "
-"shown previously all map to tables with composite keys, even though it has "
-"been have suggested that entities should have synthetic identifiers "
-"(surrogate keys). A pure association table does not seem to benefit much "
-"from a surrogate key, although a collection of composite values "
-"<emphasis>might</emphasis>. It is for this reason that Hibernate provides a "
-"feature that allows you to map many-to-many associations and collections of "
-"values to a table with a surrogate key."
-msgstr ""
-"å¦æä½ å®å
¨ä¿¡å¥æä»¬å¯¹äºâèå主é®ï¼composite keysï¼æ¯ä¸ªåä¸è¥¿âï¼åâå®ä½åºè¯¥ä½¿ç¨"
-"ï¼æ æºçï¼èªå·±çæçä»£ç¨æ è¯ç¬¦ï¼surrogate keysï¼âçè§ç¹ï¼ä¹è®¸ä½ 伿尿ä¸äºå¥"
-"æªï¼æä»¬ç®å为æ¢å±ç¤ºçå¤å¯¹å¤å
³èåå¼éå齿¯æ å°æä¸ºå¸¦æèå主é®ç表çï¼ç°"
-"å¨ï¼è¿ä¸ç¹é常å¼å¾äºè¾©ï¼çä¸å»ä¸ä¸ªå纯çå
³è表并ä¸è½ä»ä»£ç¨æ è¯ç¬¦ä¸è·å¾ä»ä¹å¥½"
-"å¤ï¼è½ç¶ä½¿ç¨ç»åå¼çéå<emphasis>å¯è½</emphasis>ä¼è·å¾ä¸ç¹å¥½å¤ï¼ãä¸è¿ï¼"
-"Hibernateæä¾äºä¸ä¸ªï¼ä¸ç¹ç¹è¯éªæ§è´¨çï¼åè½ï¼è®©ä½ æå¤å¯¹å¤å
³èåå¼éååºå¾å°ä¸"
-"个使ç¨ä»£ç¨æ è¯ç¬¦ç表å»ã"
+#, no-c-format
+msgid "The majority of the many-to-many associations and collections of values shown previously all map to tables with composite keys, even though it has been have suggested that entities should have synthetic identifiers (surrogate keys). A pure association table does not seem to benefit much from a surrogate key, although a collection of composite values <emphasis>might</emphasis>. It is for this reason that Hibernate provides a feature that allows you to map many-to-many associations and collections of values to a table with a surrogate key."
+msgstr "å¦æä½ å®å
¨ä¿¡å¥æä»¬å¯¹äºâèå主é®ï¼composite keysï¼æ¯ä¸ªåä¸è¥¿âï¼åâå®ä½åºè¯¥ä½¿ç¨ï¼æ æºçï¼èªå·±çæçä»£ç¨æ è¯ç¬¦ï¼surrogate keysï¼âçè§ç¹ï¼ä¹è®¸ä½ 伿尿ä¸äºå¥æªï¼æä»¬ç®å为æ¢å±ç¤ºçå¤å¯¹å¤å
³èåå¼éå齿¯æ å°æä¸ºå¸¦æèå主é®ç表çï¼ç°å¨ï¼è¿ä¸ç¹é常å¼å¾äºè¾©ï¼çä¸å»ä¸ä¸ªå纯çå
³è表并ä¸è½ä»ä»£ç¨æ è¯ç¬¦ä¸è·å¾ä»ä¹å¥½å¤ï¼è½ç¶ä½¿ç¨ç»åå¼çéå<emphasis>å¯è½</emphasis>ä¼è·å¾ä¸ç¹å¥½å¤ï¼ãä¸è¿ï¼Hibernate æä¾äºä¸ä¸ªï¼ä¸ç¹ç¹è¯éªæ§è´¨çï¼åè½ï¼è®©ä½ æå¤å¯¹å¤å
³èåå¼éååºå¾å°ä¸ä¸ªä½¿ç¨ä»£ç¨æ è¯ç¬¦ç表å»ã "
#. Tag: para
-#: collection_mapping.xml:817
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><idbag></literal> element lets you map a <literal>List</"
-"literal> (or <literal>Collection</literal>) with bag semantics. For example:"
-msgstr ""
-"<literal><idbag></literal> 屿§è®©ä½ 使ç¨bagè¯ä¹æ¥æ å°ä¸ä¸ª<literal>List</"
-"literal> (æ<literal>Collection</literal>)ã"
-
-#. Tag: programlisting
-#: collection_mapping.xml:822
#, no-c-format
-msgid ""
-"<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
-" <collection-id column=\"ID\" type=\"long\">\n"
-" <generator class=\"sequence\"/>\n"
-" </collection-id>\n"
-" <key column=\"PERSON1\"/>\n"
-" <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
-"</idbag>]]>"
-msgstr ""
+msgid "The <literal><idbag></literal> element lets you map a <literal>List</literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr "<literal><idbag></literal> 屿§è®©ä½ ä½¿ç¨ bag è¯ä¹æ¥æ å°ä¸ä¸ª <literal>List</literal> ï¼æ <literal>Collection</literal>ï¼ã "
#. Tag: para
-#: collection_mapping.xml:824
-#, fuzzy, no-c-format
-msgid ""
-"An <literal><idbag></literal> has a synthetic id generator, just like "
-"an entity class. A different surrogate key is assigned to each collection "
-"row. Hibernate does not, however, provide any mechanism for discovering the "
-"surrogate key value of a particular row."
-msgstr ""
-"ä½ å¯ä»¥çè§£ï¼<literal><idbag></literal>人工çidçæå¨ï¼å°±å¥½åæ¯å®ä½ç±»ä¸"
-"æ ·ï¼éåçæ¯ä¸è¡é½æä¸ä¸ªä¸åç人é å
³é®åã使¯ï¼Hibernate没ææä¾ä»»ä½æºå¶æ¥è®©"
-"ä½ åå¾æä¸ªç¹å®è¡ç人é å
³é®åã"
+#, no-c-format
+msgid "An <literal><idbag></literal> has a synthetic id generator, just like an entity class. A different surrogate key is assigned to each collection row. Hibernate does not, however, provide any mechanism for discovering the surrogate key value of a particular row."
+msgstr "ä½ å¯ä»¥çè§£ï¼<literal><idbag></literal> 人工ç id çæå¨ï¼å°±å¥½åæ¯å®ä½ç±»ä¸æ ·ï¼éåçæ¯ä¸è¡é½æä¸ä¸ªä¸åç人é å
³é®åã使¯ï¼Hibernate 没ææä¾ä»»ä½æºå¶æ¥è®©ä½ åå¾æä¸ªç¹å®è¡ç人é å
³é®åã "
#. Tag: para
-#: collection_mapping.xml:831
-#, fuzzy, no-c-format
-msgid ""
-"The update performance of an <literal><idbag></literal> supersedes a "
-"regular <literal><bag></literal>. Hibernate can locate individual rows "
-"efficiently and update or delete them individually, similar to a list, map "
-"or set."
-msgstr ""
-"注æ<literal><idbag></literal>çæ´æ°æ§è½è¦æ¯æ®éç<literal><bag>"
-"</literal>é«å¾å¤ï¼Hibernateå¯ä»¥ææçå®ä½å°ä¸åçè¡ï¼åå«è¿è¡æ´æ°æå é¤å·¥ä½ï¼"
-"å°±å¦åå¤çä¸ä¸ªlist, mapæè
set䏿 ·ã"
+#, no-c-format
+msgid "The update performance of an <literal><idbag></literal> supersedes a regular <literal><bag></literal>. Hibernate can locate individual rows efficiently and update or delete them individually, similar to a list, map or set."
+msgstr "注æ <literal><idbag></literal> çæ´æ°æ§è½è¦æ¯æ®éç <literal><bag></literal> é«å¾å¤ï¼Hibernate å¯ä»¥ææçå®ä½å°ä¸åçè¡ï¼åå«è¿è¡æ´æ°æå é¤å·¥ä½ï¼å°±å¦åå¤çä¸ä¸ª listï¼map æè
set 䏿 ·ã "
#. Tag: para
-#: collection_mapping.xml:837
#, no-c-format
-msgid ""
-"In the current implementation, the <literal>native</literal> identifier "
-"generation strategy is not supported for <literal><idbag></literal> "
-"collection identifiers."
-msgstr ""
-"å¨ç®åçå®ç°ä¸ï¼è¿ä¸æ¯æä½¿ç¨<literal>identity</literal>æ è¯ç¬¦çæå¨çç¥æ¥çæ"
-"<literal><idbag></literal>éåçæ è¯ç¬¦ã"
+msgid "In the current implementation, the <literal>native</literal> identifier generation strategy is not supported for <literal><idbag></literal> collection identifiers."
+msgstr "å¨ç®åçå®ç°ä¸ï¼è¿ä¸æ¯æä½¿ç¨ <literal>identity</literal> æ è¯ç¬¦çæå¨çç¥æ¥çæ <literal><idbag></literal> éåçæ è¯ç¬¦ã"
#. Tag: title
-#: collection_mapping.xml:861
#, no-c-format
msgid "Collection examples"
msgstr "éåä¾åï¼Collection exampleï¼"
#. Tag: para
-#: collection_mapping.xml:863
-#, fuzzy, no-c-format
+#, no-c-format
msgid "This section covers collection examples."
-msgstr "éåä¾åï¼Collection exampleï¼"
+msgstr "éåä¾åï¼Collection exampleï¼ã"
#. Tag: para
-#: collection_mapping.xml:867
#, no-c-format
-msgid ""
-"The following class has a collection of <literal>Child</literal> instances:"
-msgstr ""
+msgid "The following class has a collection of <literal>Child</literal> instances:"
+msgstr "ä¸é¢çä»£ç æ¯ç¨æ¥æ·»å ä¸ä¸ªæ°ç <literal>Child</literal>ï¼"
-#. Tag: programlisting
-#: collection_mapping.xml:871
-#, no-c-format
-msgid ""
-"<![CDATA[package eg;\n"
-"import java.util.Set;\n"
-"\n"
-"public class Parent {\n"
-" private long id;\n"
-" private Set children;\n"
-"\n"
-" public long getId() { return id; }\n"
-" private void setId(long id) { this.id=id; }\n"
-"\n"
-" private Set getChildren() { return children; }\n"
-" private void setChildren(Set children) { this.children=children; }\n"
-"\n"
-" ....\n"
-" ....\n"
-"}]]>"
-msgstr ""
-
#. Tag: para
-#: collection_mapping.xml:873
-#, fuzzy, no-c-format
-msgid ""
-"If each child has, at most, one parent, the most natural mapping is a one-to-"
-"many association:"
-msgstr ""
-"è¿ä¸ªç±»æä¸ä¸ª<literal>Child</literal>çå®ä¾éåã妿æ¯ä¸ä¸ªåå®ä¾è³å¤æä¸ä¸ªç¶"
-"å®ä¾, é£ä¹æèªç¶çæ å°æ¯ä¸ä¸ªone-to-manyçå
³èå
³ç³»ï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:879
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-"\n"
-" <class name=\"Parent\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <set name=\"children\">\n"
-" <key column=\"parent_id\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-" </set>\n"
-" </class>\n"
-"\n"
-" <class name=\"Child\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <property name=\"name\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "If each child has, at most, one parent, the most natural mapping is a one-to-many association:"
+msgstr "è¿ä¸ªç±»æä¸ä¸ª <literal>Child</literal> çå®ä¾éåã妿æ¯ä¸ä¸ªåå®ä¾è³å¤æä¸ä¸ªç¶å®ä¾ï¼é£ä¹æèªç¶çæ å°æ¯ä¸ä¸ª one-to-many çå
³èå
³ç³»ï¼ "
#. Tag: para
-#: collection_mapping.xml:881
#, no-c-format
msgid "This maps to the following table definitions:"
msgstr "å¨ä»¥ä¸ç表å®ä¹ä¸ååºäºè¿ä¸ªæ å°å
³ç³»ï¼"
-#. Tag: programlisting
-#: collection_mapping.xml:885
-#, no-c-format
-msgid ""
-"<![CDATA[create table parent ( id bigint not null primary key )\n"
-"create table child ( id bigint not null primary key, name varchar(255), "
-"parent_id bigint )\n"
-"alter table child add constraint childfk0 (parent_id) references parent]]>"
-msgstr ""
-
#. Tag: para
-#: collection_mapping.xml:887
#, no-c-format
-msgid ""
-"If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-"
-"many association:"
-msgstr ""
-"妿ç¶äº²æ¯<emphasis>å¿
é¡»</emphasis>ç, é£ä¹å°±å¯ä»¥ä½¿ç¨ååone-to-manyçå
³è"
-"äºï¼"
+msgid "If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-many association:"
+msgstr "妿ç¶äº²æ¯<emphasis>å¿
é¡»</emphasis>çï¼é£ä¹å°±å¯ä»¥ä½¿ç¨åå one-to-many çå
³èäºï¼"
-#. Tag: programlisting
-#: collection_mapping.xml:892
-#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-"\n"
-" <class name=\"Parent\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <set name=\"children\" inverse=\"true\">\n"
-" <key column=\"parent_id\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-" </set>\n"
-" </class>\n"
-"\n"
-" <class name=\"Child\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <property name=\"name\"/>\n"
-" <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id\" "
-"not-null=\"true\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
#. Tag: para
-#: collection_mapping.xml:894
#, no-c-format
msgid "Notice the <literal>NOT NULL</literal> constraint:"
-msgstr "请注æ<literal>NOT NULL</literal>ç约æ:"
+msgstr "请注æ <literal>NOT NULL</literal> ç约æ:"
-#. Tag: programlisting
-#: collection_mapping.xml:898
-#, no-c-format
-msgid ""
-"<![CDATA[create table parent ( id bigint not null primary key )\n"
-"create table child ( id bigint not null\n"
-" primary key,\n"
-" name varchar(255),\n"
-" parent_id bigint not null )\n"
-"alter table child add constraint childfk0 (parent_id) references parent]]>"
-msgstr ""
-
#. Tag: para
-#: collection_mapping.xml:900
-#, fuzzy, no-c-format
-msgid ""
-"Alternatively, if this association must be unidirectional you can declare "
-"the <literal>NOT NULL</literal> constraint on the <literal><key></"
-"literal> mapping:"
-msgstr ""
-"å¦å¤ï¼å¦æä½ ç»å¯¹åæè¿ä¸ªå
³èåºè¯¥æ¯ååçï¼ä½ å¯ä»¥å¯¹<literal><key></"
-"literal>æ å°å£°æ<literal>NOT NULL</literal>约æï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:906
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-"\n"
-" <class name=\"Parent\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <set name=\"children\">\n"
-" <key column=\"parent_id\" not-null=\"true\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-" </set>\n"
-" </class>\n"
-"\n"
-" <class name=\"Child\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <property name=\"name\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "Alternatively, if this association must be unidirectional you can declare the <literal>NOT NULL</literal> constraint on the <literal><key></literal> mapping:"
+msgstr "å¦å¤ï¼å¦æä½ ç»å¯¹åæè¿ä¸ªå
³èåºè¯¥æ¯ååçï¼ä½ å¯ä»¥å¯¹ <literal><key></literal> æ å°å£°æ <literal>NOT NULL</literal> 约æï¼ "
#. Tag: para
-#: collection_mapping.xml:908
-#, fuzzy, no-c-format
-msgid ""
-"On the other hand, if a child has multiple parents, a many-to-many "
-"association is appropriate:"
-msgstr ""
-"å¦å¤ä¸æ¹é¢,妿ä¸ä¸ªåå®ä¾å¯è½æå¤ä¸ªç¶å®ä¾, é£ä¹å°±åºè¯¥ä½¿ç¨many-to-manyå
³èï¼"
-
-#. Tag: programlisting
-#: collection_mapping.xml:913
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-"\n"
-" <class name=\"Parent\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <set name=\"children\" table=\"childset\">\n"
-" <key column=\"parent_id\"/>\n"
-" <many-to-many class=\"Child\" column=\"child_id\"/>\n"
-" </set>\n"
-" </class>\n"
-"\n"
-" <class name=\"Child\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <property name=\"name\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+msgid "On the other hand, if a child has multiple parents, a many-to-many association is appropriate:"
+msgstr "å¦å¤ä¸æ¹é¢ï¼å¦æä¸ä¸ªåå®ä¾å¯è½æå¤ä¸ªç¶å®ä¾ï¼é£ä¹å°±åºè¯¥ä½¿ç¨ many-to-many å
³èï¼ "
#. Tag: para
-#: collection_mapping.xml:915
#, no-c-format
msgid "Table definitions:"
msgstr "表å®ä¹ï¼"
-#. Tag: programlisting
-#: collection_mapping.xml:919
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[create table parent ( id bigint not null primary key )\n"
-"create table child ( id bigint not null primary key, name varchar(255) )\n"
-"create table childset ( parent_id bigint not null,\n"
-" child_id bigint not null,\n"
-" primary key ( parent_id, child_id ) )\n"
-"alter table childset add constraint childsetfk0 (parent_id) references "
-"parent\n"
-"alter table childset add constraint childsetfk1 (child_id) references child]]"
-">"
-msgstr ""
+msgid "For more examples and a complete explanation of a parent/child relationship mapping, see <xref linkend=\"example-parentchild\" /> for more information."
+msgstr "æ´å¤çä¾åï¼ä»¥åä¸ä¸ªå®æ´çç¶/åå
³ç³»æ å°çæç»ï¼è¯·åé
<xref linkend=\"example-parentchild\"/>ã "
#. Tag: para
-#: collection_mapping.xml:921
-#, fuzzy, no-c-format
-msgid ""
-"For more examples and a complete explanation of a parent/child relationship "
-"mapping, see <xref linkend=\"example-parentchild\"/> for more information."
-msgstr ""
-"æ´å¤çä¾å,以åä¸ä¸ªå®æ´çç¶/åå
³ç³»æ å°çæç»,请åé
<xref linkend=\"example-"
-"parentchild\"/>."
-
-#. Tag: para
-#: collection_mapping.xml:926
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Even more complex association mappings are covered in the next chapter."
-msgstr "çè³å¯è½åºç°æ´å 夿çå
³èæ å°,æä»¬ä¼å¨ä¸ä¸ç« ä¸ååºææå¯è½æ§ã"
+msgstr "çè³å¯è½åºç°æ´å 夿çå
³èæ å°ï¼æä»¬ä¼å¨ä¸ä¸ç« ä¸ååºææå¯è½æ§ã "
-#~ msgid "Collection Mapping"
-#~ msgstr "éåç±»(Collections)æ å°"
-
-#~ msgid "Some examples, first, a set of strings:"
+#~ msgid ""
+#~ "<![CDATA[public class Product {\n"
+#~ " private String serialNumber;\n"
+#~ " private Set parts = new HashSet();\n"
+#~ " \n"
+#~ " public Set getParts() { return parts; }\n"
+#~ " void setParts(Set parts) { this.parts = parts; }\n"
+#~ " public String getSerialNumber() { return serialNumber; }\n"
+#~ " void setSerialNumber(String sn) { serialNumber = sn; }\n"
+#~ "}]]>"
#~ msgstr ""
-#~ "å
å«ä¸ç»æ´æ°çbag(è¿è®¾ç½®äº<literal>order-by</literal>åæ°æå®äºè¿ä»£ç顺"
-#~ "åº)ï¼"
-
+#~ "<![CDATA[public class Product {\n"
+#~ " private String serialNumber;\n"
+#~ " private Set parts = new HashSet();\n"
+#~ " \n"
+#~ " public Set getParts() { return parts; }\n"
+#~ " void setParts(Set parts) { this.parts = parts; }\n"
+#~ " public String getSerialNumber() { return serialNumber; }\n"
+#~ " void setSerialNumber(String sn) { serialNumber = sn; }\n"
+#~ "}]]>"
#~ msgid ""
-#~ "The previous sections are pretty confusing. So lets look at an example. "
-#~ "This class:"
-#~ msgstr "å¨åé¢çå ä¸ªç« èçç¡®é常令人迷æã å æ¤è®©æä»¬æ¥çä¸ä¸ªä¾åãè¿ä¸ªç±»ï¼"
-
+#~ "<![CDATA[Cat cat = new DomesticCat();\n"
+#~ "Cat kitten = new DomesticCat();\n"
+#~ "....\n"
+#~ "Set kittens = new HashSet();\n"
+#~ "kittens.add(kitten);\n"
+#~ "cat.setKittens(kittens);\n"
+#~ "session.persist(cat);\n"
+#~ "kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
+#~ "(HashSet) cat.getKittens(); // Error!]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = new DomesticCat();\n"
+#~ "Cat kitten = new DomesticCat();\n"
+#~ "....\n"
+#~ "Set kittens = new HashSet();\n"
+#~ "kittens.add(kitten);\n"
+#~ "cat.setKittens(kittens);\n"
+#~ "session.persist(cat);\n"
+#~ "kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
+#~ "(HashSet) cat.getKittens(); // Error!]]>"
#~ msgid ""
-#~ "<literal>column_name</literal> (required): The name of the column holding "
-#~ "the collection index values."
-#~ msgstr "<literal>column</literal>(å¯é):ä¿åéåç´¢å¼å¼çåæ®µåã"
-
+#~ "<![CDATA[<class name=\"Product\">\n"
+#~ " <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
+#~ " <set name=\"parts\">\n"
+#~ " <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Product\">\n"
+#~ " <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
+#~ " <set name=\"parts\">\n"
+#~ " <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
#~ msgid ""
-#~ "<literal>base</literal> (optional, defaults to <literal>0</literal>): The "
-#~ "value of the index column that corresponds to the first element of the "
-#~ "list or array."
-#~ msgstr "<literal>formula</literal> (å¯é): ç¨äºè®¡ç®mapå
³é®åçSQLå
¬å¼"
-
+#~ "<![CDATA[<map\n"
+#~ " name=\"propertyName\"\n"
+#~ " table=\"table_name\"\n"
+#~ " schema=\"schema_name\"\n"
+#~ " lazy=\"true|extra|false\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " cascade=\"all|none|save-update|delete|all-delete-orphan|delete-orphan"
+#~ "\"\n"
+#~ " sort=\"unsorted|natural|comparatorClass\"\n"
+#~ " order-by=\"column_name asc|desc\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " fetch=\"join|select|subselect\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <key .... />\n"
+#~ " <map-key .... />\n"
+#~ " <element .... />\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map\n"
+#~ " name=\"propertyName\"\n"
+#~ " table=\"table_name\"\n"
+#~ " schema=\"schema_name\"\n"
+#~ " lazy=\"true|extra|false\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " cascade=\"all|none|save-update|delete|all-delete-orphan|delete-orphan"
+#~ "\"\n"
+#~ " sort=\"unsorted|natural|comparatorClass\"\n"
+#~ " order-by=\"column_name asc|desc\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " fetch=\"join|select|subselect\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <key .... />\n"
+#~ " <map-key .... />\n"
+#~ " <element .... />\n"
+#~ "</map>]]>"
+#~ msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+#~ msgstr "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the column holding the "
-#~ "collection index values."
-#~ msgstr "<literal>type</literal> (å¿
é¡»):æ å°é®(map key)çç±»åã"
-
+#~ "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
#~ msgid ""
-#~ "<literal>formula</literal> (optional): A SQL formula used to evaluate the "
-#~ "key of the map."
-#~ msgstr "<literal>column</literal>(å¯é):éåç´¢å¼å¼ä¸å¤é®å段çåç§°"
-
-#~ msgid "<literal>type</literal> (reguired): The type of the map keys."
-#~ msgstr "<literal>formula</literal> (å¯é): ç¨äºè®¡ç®mapå
³é®åçå¤é®çSQLå
¬å¼"
-
+#~ "<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area "
+#~ "id=\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<list-index \n"
+#~ " column=\"column_name\"\n"
+#~ " base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"index1\"> <para> <literal>column_name</literal> (required): "
+#~ "the name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"index1\"> <para> <literal>base</literal> "
+#~ "(optional - defaults to <literal>0</literal>): the value of the index "
+#~ "column that corresponds to the first element of the list or array. </"
+#~ "para> </callout> </calloutlist> </programlistingco> <programlistingco> "
+#~ "<areaspec> <area id=\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" "
+#~ "coords=\"3 45\"/> <area id=\"mapkey3\" coords=\"4 45\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<map-key \n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"type_name\"\n"
+#~ " node=\"@attribute-name\"\n"
+#~ " length=\"N\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"mapkey1\"> <para> <literal>column</literal> (optional): the "
+#~ "name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"mapkey2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQL formula used to evaluate the key of the map. </para> </"
+#~ "callout> <callout arearefs=\"mapkey3\"> <para> <literal>type</literal> "
+#~ "(required): the type of the map keys. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <programlistingco> <areaspec> <area id="
+#~ "\"indexmanytomany1\" coords=\"2 45\"/> <area id=\"indexmanytomany2\" "
+#~ "coords=\"3 45\"/> <area id=\"indexmanytomany3\" coords=\"3 45\"/> </"
+#~ "areaspec> <programlisting><![CDATA[<map-key-many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the foreign "
+#~ "key column for the collection index values. </para> </callout> <callout "
+#~ "arearefs=\"indexmanytomany2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQ formula used to evaluate the foreign key of the map key. "
+#~ "</para> </callout> <callout arearefs=\"indexmanytomany3\"> <para> "
+#~ "<literal>class</literal> (required): the entity class used as the map "
+#~ "key. </para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area "
+#~ "id=\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<list-index \n"
+#~ " column=\"column_name\"\n"
+#~ " base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"index1\"> <para> <literal>column_name</literal> (required): "
+#~ "the name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"index1\"> <para> <literal>base</literal> "
+#~ "(optional - defaults to <literal>0</literal>): the value of the index "
+#~ "column that corresponds to the first element of the list or array. </"
+#~ "para> </callout> </calloutlist> </programlistingco> <programlistingco> "
+#~ "<areaspec> <area id=\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" "
+#~ "coords=\"3 45\"/> <area id=\"mapkey3\" coords=\"4 45\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<map-key \n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"type_name\"\n"
+#~ " node=\"@attribute-name\"\n"
+#~ " length=\"N\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"mapkey1\"> <para> <literal>column</literal> (optional): the "
+#~ "name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"mapkey2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQL formula used to evaluate the key of the map. </para> </"
+#~ "callout> <callout arearefs=\"mapkey3\"> <para> <literal>type</literal> "
+#~ "(required): the type of the map keys. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <programlistingco> <areaspec> <area id="
+#~ "\"indexmanytomany1\" coords=\"2 45\"/> <area id=\"indexmanytomany2\" "
+#~ "coords=\"3 45\"/> <area id=\"indexmanytomany3\" coords=\"3 45\"/> </"
+#~ "areaspec> <programlisting><![CDATA[<map-key-many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the foreign "
+#~ "key column for the collection index values. </para> </callout> <callout "
+#~ "arearefs=\"indexmanytomany2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQ formula used to evaluate the foreign key of the map key. "
+#~ "</para> </callout> <callout arearefs=\"indexmanytomany3\"> <para> "
+#~ "<literal>class</literal> (required): the entity class used as the map "
+#~ "key. </para> </callout> </calloutlist> </programlistingco>"
#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the foreign key column "
-#~ "for the collection index values."
-#~ msgstr "<literal>class</literal> (å¿
é):æ å°çé®(map key)使ç¨çå®ä½ç±»ã"
-
+#~ "<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> "
+#~ "<area id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords="
+#~ "\"4 50\"/> </areaspec> <programlisting><![CDATA[<element\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"typename\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> "
+#~ "<para> <literal>column</literal> (optional): the name of the column "
+#~ "holding the collection element values. </para> </callout> <callout "
+#~ "arearefs=\"element2b\"> <para> <literal>formula</literal> (optional): an "
+#~ "SQL formula used to evaluate the element. </para> </callout> <callout "
+#~ "arearefs=\"element3b\"> <para> <literal>type</literal> (required): the "
+#~ "type of the collection element. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <para> A <emphasis>many-to-many association</emphasis> "
+#~ "is specified using the <literal><many-to-many></literal> element. </"
+#~ "para> <programlistingco> <areaspec> <area id=\"manytomany1\" coords=\"2 60"
+#~ "\"/> <area id=\"manytomany2\" coords=\"3 60\"/> <area id=\"manytomany3\" "
+#~ "coords=\"4 60\"/> <area id=\"manytomany4\" coords=\"5 60\"/> <area id="
+#~ "\"manytomany5\" coords=\"6 60\"/> <area id=\"manytomany6\" coords=\"7 60"
+#~ "\"/> <area id=\"manytomany7\" coords=\"8 60\"/> <area id=\"manytomany8\" "
+#~ "coords=\"9 60\"/> </areaspec> <programlisting><![CDATA[<many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " fetch=\"select|join\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the element "
+#~ "foreign key column. </para> </callout> <callout arearefs=\"manytomany2\"> "
+#~ "<para> <literal>formula</literal> (optional): an SQL formula used to "
+#~ "evaluate the element foreign key value. </para> </callout> <callout "
+#~ "arearefs=\"manytomany3\"> <para> <literal>class</literal> (required): the "
+#~ "name of the associated class. </para> </callout> <callout arearefs="
+#~ "\"manytomany4\"> <para> <literal>fetch</literal> (optional - defaults to "
+#~ "<literal>join</literal>): enables outer-join or sequential select "
+#~ "fetching for this association. This is a special case; for full eager "
+#~ "fetching in a single <literal>SELECT</literal> of an entity and its many-"
+#~ "to-many relationships to other entities, you would enable <literal>join</"
+#~ "literal> fetching,not only of the collection itself, but also with this "
+#~ "attribute on the <literal><many-to-many></literal> nested element. "
+#~ "</para> </callout> <callout arearefs=\"manytomany5\"> <para> "
+#~ "<literal>unique</literal> (optional): enables the DDL generation of a "
+#~ "unique constraint for the foreign-key column. This makes the association "
+#~ "multiplicity effectively one-to-many. </para> </callout> <callout "
+#~ "arearefs=\"manytomany6\"> <para> <literal>not-found</literal> (optional - "
+#~ "defaults to <literal>exception</literal>): specifies how foreign keys "
+#~ "that reference missing rows will be handled: <literal>ignore</literal> "
+#~ "will treat a missing row as a null association. </para> </callout> "
+#~ "<callout arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> "
+#~ "(optional): the entity name of the associated class, as an alternative to "
+#~ "<literal>class</literal>. </para> </callout> <callout arearefs="
+#~ "\"manytomany8\"> <para> <literal>property-ref</literal> (optional): the "
+#~ "name of a property of the associated class that is joined to this foreign "
+#~ "key. If not specified, the primary key of the associated class is used. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> "
+#~ "<area id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords="
+#~ "\"4 50\"/> </areaspec> <programlisting><![CDATA[<element\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"typename\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> "
+#~ "<para> <literal>column</literal> (optional): the name of the column "
+#~ "holding the collection element values. </para> </callout> <callout "
+#~ "arearefs=\"element2b\"> <para> <literal>formula</literal> (optional): an "
+#~ "SQL formula used to evaluate the element. </para> </callout> <callout "
+#~ "arearefs=\"element3b\"> <para> <literal>type</literal> (required): the "
+#~ "type of the collection element. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <para> A <emphasis>many-to-many association</emphasis> "
+#~ "is specified using the <literal><many-to-many></literal> element. </"
+#~ "para> <programlistingco> <areaspec> <area id=\"manytomany1\" coords=\"2 60"
+#~ "\"/> <area id=\"manytomany2\" coords=\"3 60\"/> <area id=\"manytomany3\" "
+#~ "coords=\"4 60\"/> <area id=\"manytomany4\" coords=\"5 60\"/> <area id="
+#~ "\"manytomany5\" coords=\"6 60\"/> <area id=\"manytomany6\" coords=\"7 60"
+#~ "\"/> <area id=\"manytomany7\" coords=\"8 60\"/> <area id=\"manytomany8\" "
+#~ "coords=\"9 60\"/> </areaspec> <programlisting><![CDATA[<many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " fetch=\"select|join\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the element "
+#~ "foreign key column. </para> </callout> <callout arearefs=\"manytomany2\"> "
+#~ "<para> <literal>formula</literal> (optional): an SQL formula used to "
+#~ "evaluate the element foreign key value. </para> </callout> <callout "
+#~ "arearefs=\"manytomany3\"> <para> <literal>class</literal> (required): the "
+#~ "name of the associated class. </para> </callout> <callout arearefs="
+#~ "\"manytomany4\"> <para> <literal>fetch</literal> (optional - defaults to "
+#~ "<literal>join</literal>): enables outer-join or sequential select "
+#~ "fetching for this association. This is a special case; for full eager "
+#~ "fetching in a single <literal>SELECT</literal> of an entity and its many-"
+#~ "to-many relationships to other entities, you would enable <literal>join</"
+#~ "literal> fetching,not only of the collection itself, but also with this "
+#~ "attribute on the <literal><many-to-many></literal> nested element. "
+#~ "</para> </callout> <callout arearefs=\"manytomany5\"> <para> "
+#~ "<literal>unique</literal> (optional): enables the DDL generation of a "
+#~ "unique constraint for the foreign-key column. This makes the association "
+#~ "multiplicity effectively one-to-many. </para> </callout> <callout "
+#~ "arearefs=\"manytomany6\"> <para> <literal>not-found</literal> (optional - "
+#~ "defaults to <literal>exception</literal>): specifies how foreign keys "
+#~ "that reference missing rows will be handled: <literal>ignore</literal> "
+#~ "will treat a missing row as a null association. </para> </callout> "
+#~ "<callout arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> "
+#~ "(optional): the entity name of the associated class, as an alternative to "
+#~ "<literal>class</literal>. </para> </callout> <callout arearefs="
+#~ "\"manytomany8\"> <para> <literal>property-ref</literal> (optional): the "
+#~ "name of a property of the associated class that is joined to this foreign "
+#~ "key. If not specified, the primary key of the associated class is used. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
#~ msgid ""
-#~ "<literal>formula</literal> (optional): A SQL formula used to evaluate the "
-#~ "foreign key of the map key."
+#~ "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>]]>"
#~ msgstr ""
-#~ "åè¥ä½ ç表没æä¸ä¸ªç´¢å¼å段,å½ä½ ä»ç¶å¸æä½¿ç¨<literal>List</literal>ä½ä¸ºå±æ§"
-#~ "ç±»å,ä½ åºè¯¥ææ¤å±æ§æ å°ä¸ºHibernate <emphasis><bag></emphasis>ã仿°"
-#~ "æ®åºä¸è·åçæ¶åï¼bagä¸ç»´æ¤å
¶é¡ºåºï¼ä½ä¹å¯éæ©æ§çè¿è¡æåºã"
-
+#~ "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>]]>"
#~ msgid ""
-#~ "<literal>class</literal> (required): The entity class used as the map key."
+#~ "<![CDATA[<bag name=\"sizes\" \n"
+#~ " table=\"item_sizes\" \n"
+#~ " order-by=\"size asc\">\n"
+#~ " <key column=\"item_id\"/>\n"
+#~ " <element column=\"size\" type=\"integer\"/>\n"
+#~ "</bag>]]>"
#~ msgstr ""
-#~ "ä»éåç±»å¯ä»¥äº§çå¾å¤§ä¸é¨åæ å°ï¼è¦çäºå¾å¤å¸¸è§çå
³ç³»æ¨¡åãæä»¬å»ºè®®ä½ è¯éª"
-#~ "schemaçæå·¥å
·ï¼æ¥ä½ä¼ä¸ä¸ä¸åçæ å°å£°ææ¯å¦ä½è¢«ç¿»è¯ä¸ºæ°æ®åºè¡¨çã"
-
+#~ "<![CDATA[<bag name=\"sizes\" \n"
+#~ " table=\"item_sizes\" \n"
+#~ " order-by=\"size asc\">\n"
+#~ " <key column=\"item_id\"/>\n"
+#~ " <element column=\"size\" type=\"integer\"/>\n"
+#~ "</bag>]]>"
#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the column holding the "
-#~ "collection element values."
-#~ msgstr "<literal>type</literal> (å¿
é):éåå
ç´ çç±»å"
-
+#~ "<![CDATA[<array name=\"addresses\" \n"
+#~ " table=\"PersonAddress\" \n"
+#~ " cascade=\"persist\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <many-to-many column=\"addressId\" class=\"Address\"/>\n"
+#~ "</array>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<array name=\"addresses\" \n"
+#~ " table=\"PersonAddress\" \n"
+#~ " cascade=\"persist\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <many-to-many column=\"addressId\" class=\"Address\"/>\n"
+#~ "</array>]]>"
#~ msgid ""
-#~ "<literal>formula</literal> (optional): An SQL formula used to evaluate "
-#~ "the element."
+#~ "<![CDATA[<map name=\"holidays\" \n"
+#~ " table=\"holidays\" \n"
+#~ " schema=\"dbo\" \n"
+#~ " order-by=\"hol_name asc\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date\" type=\"date\"/>\n"
+#~ "</map>]]>"
#~ msgstr ""
-#~ "<emphasis>å¤å¯¹å¤å
³è(many-to-many association)</emphasis> ä½¿ç¨ "
-#~ "<literal><many-to-many></literal>å
ç´ å®ä¹."
-
+#~ "<![CDATA[<map name=\"holidays\" \n"
+#~ " table=\"holidays\" \n"
+#~ " schema=\"dbo\" \n"
+#~ " order-by=\"hol_name asc\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date\" type=\"date\"/>\n"
+#~ "</map>]]>"
#~ msgid ""
-#~ "<literal>type</literal> (required): The type of the collection element."
-#~ msgstr "<literal>column</literal>(å¯é): è¿ä¸ªå
ç´ çå¤é®å
³é®å段å"
-
+#~ "<![CDATA[<list name=\"carComponents\" \n"
+#~ " table=\"CarComponents\">\n"
+#~ " <key column=\"carId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <composite-element class=\"CarComponent\">\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"type\"/>\n"
+#~ " <property name=\"serialNumber\" column=\"serialNum\"/>\n"
+#~ " </composite-element>\n"
+#~ "</list>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<list name=\"carComponents\" \n"
+#~ " table=\"CarComponents\">\n"
+#~ " <key column=\"carId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <composite-element class=\"CarComponent\">\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"type\"/>\n"
+#~ " <property name=\"serialNumber\" column=\"serialNum\"/>\n"
+#~ " </composite-element>\n"
+#~ "</list>]]>"
#~ msgid ""
-#~ "A <emphasis>many-to-many association</emphasis> is specified using the "
-#~ "<literal><many-to-many></literal> element."
-#~ msgstr "<literal>formula</literal> (å¯é): ç¨äºè®¡ç®å
ç´ å¤é®å¼çSQLå
¬å¼."
-
+#~ "<![CDATA[<one-to-many \n"
+#~ " class=\"ClassName\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]>"
+#~ msgstr ""
+#~ "<![CDATA[<one-to-many \n"
+#~ " class=\"ClassName\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]>"
#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the element foreign key "
-#~ "column."
-#~ msgstr "<literal>class</literal> (å¿
é): å
³èç±»çåç§°"
-
+#~ "<![CDATA[<map name=\"parts\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"productId\" not-null=\"true\"/>\n"
+#~ " <map-key formula=\"partName\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map name=\"parts\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"productId\" not-null=\"true\"/>\n"
+#~ " <map-key formula=\"partName\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ "</map>]]>"
#~ msgid ""
-#~ "<literal>formula</literal> (optional): An SQL formula used to evaluate "
-#~ "the element foreign key value."
+#~ "<![CDATA[<set name=\"aliases\" \n"
+#~ " table=\"person_aliases\" \n"
+#~ " sort=\"natural\">\n"
+#~ " <key column=\"person\"/>\n"
+#~ " <element column=\"name\" type=\"string\"/>\n"
+#~ "</set>\n"
+#~ "\n"
+#~ "<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
+#~ " <key column=\"year_id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date\" type=\"date\"/>\n"
+#~ "</map>]]>"
#~ msgstr ""
-#~ "<literal>outer-join</literal> (å¯é - é»è®¤ä¸º<literal>auto</literal>): å¨"
-#~ "Hibernateç³»ç»åæ°ä¸<literal>hibernate.use_outer_join</literal>被æå¼çæ
åµ"
-#~ "ä¸,è¯¥åæ°ç¨æ¥å
许使ç¨outer joinæ¥è½½å
¥æ¤éåçæ°æ®ã"
-
+#~ "<![CDATA[<set name=\"aliases\" \n"
+#~ " table=\"person_aliases\" \n"
+#~ " sort=\"natural\">\n"
+#~ " <key column=\"person\"/>\n"
+#~ " <element column=\"name\" type=\"string\"/>\n"
+#~ "</set>\n"
+#~ "\n"
+#~ "<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
+#~ " <key column=\"year_id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date\" type=\"date\"/>\n"
+#~ "</map>]]>"
#~ msgid ""
-#~ "<literal>fetch</literal> (optional - defaults to <literal>join</"
-#~ "literal>): enables outer-join or sequential select fetching for this "
-#~ "association. This is a special case; for full eager fetching (in a single "
-#~ "<literal>SELECT</literal>) of an entity and its many-to-many "
-#~ "relationships to other entities, you would enable <literal>join</literal> "
-#~ "fetching not only of the collection itself, but also with this attribute "
-#~ "on the <literal><many-to-many></literal> nested element."
+#~ "<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower"
+#~ "(name) asc\">\n"
+#~ " <key column=\"person\"/>\n"
+#~ " <element column=\"name\" type=\"string\"/>\n"
+#~ "</set>\n"
+#~ "\n"
+#~ "<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
+#~ " <key column=\"year_id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date type=\"date\"/>\n"
+#~ "</map>]]>"
#~ msgstr ""
-#~ "对å¤é®å段å
许DDLçæçæ¶åçæä¸ä¸ªæä¸çº¦æãè¿ä½¿å
³èåæäºä¸ä¸ªé«æçä¸å¯¹"
-#~ "å¤å
³èãï¼æ¤å¥åçï¼åæä¸ºThis makes the association multiplicity "
-#~ "effectively one to many.)"
-
+#~ "<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower"
+#~ "(name) asc\">\n"
+#~ " <key column=\"person\"/>\n"
+#~ " <element column=\"name\" type=\"string\"/>\n"
+#~ "</set>\n"
+#~ "\n"
+#~ "<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
+#~ " <key column=\"year_id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date type=\"date\"/>\n"
+#~ "</map>]]>"
#~ msgid ""
-#~ "<literal>unique</literal> (optional): Enable the DDL generation of a "
-#~ "unique constraint for the foreign-key column. This makes the association "
-#~ "multiplicity effectively one to many."
+#~ "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this."
+#~ "name\" ).list();]]>"
#~ msgstr ""
-#~ "<literal>not-found</literal> (å¯é - é»è®¤ä¸º <literal>exception</"
-#~ "literal>): ææå¼ç¨çå¤é®ä¸ç¼ºå°æäºè¡è¯¥å¦ä½å¤çï¼ <literal>ignore</"
-#~ "literal> ä¼æç¼ºå¤±çè¡ä½ä¸ºä¸ä¸ªç©ºå¼ç¨å¤çã"
-
+#~ "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this."
+#~ "name\" ).list();]]>"
#~ msgid ""
-#~ "<literal>not-found</literal> (optional - defaults to <literal>exception</"
-#~ "literal>): Specifies how foreign keys that reference missing rows will be "
-#~ "handled: <literal>ignore</literal> will treat a missing row as a null "
-#~ "association."
+#~ "<![CDATA[<class name=\"Category\">\n"
+#~ " <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
+#~ " ...\n"
+#~ " <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
+#~ " <key column=\"CATEGORY_ID\"/>\n"
+#~ " <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
+#~ " </bag>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Item\">\n"
+#~ " <id name=\"id\" column=\"ITEM_ID\"/>\n"
+#~ " ...\n"
+#~ "\n"
+#~ " <!-- inverse end -->\n"
+#~ " <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true\">\n"
+#~ " <key column=\"ITEM_ID\"/>\n"
+#~ " <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
+#~ " </bag>\n"
+#~ "</class>]]>"
#~ msgstr ""
-#~ "<literal>entity-name</literal> (å¯é): 被å
³èçç±»çå®ä½åï¼ä½ä¸º"
-#~ "<literal>class</literal>çæ¿ä»£ã"
-
+#~ "<![CDATA[<class name=\"Category\">\n"
+#~ " <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
+#~ " ...\n"
+#~ " <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
+#~ " <key column=\"CATEGORY_ID\"/>\n"
+#~ " <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
+#~ " </bag>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Item\">\n"
+#~ " <id name=\"id\" column=\"ITEM_ID\"/>\n"
+#~ " ...\n"
+#~ "\n"
+#~ " <!-- inverse end -->\n"
+#~ " <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true\">\n"
+#~ " <key column=\"ITEM_ID\"/>\n"
+#~ " <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
+#~ " </bag>\n"
+#~ "</class>]]>"
#~ msgid ""
-#~ "<literal>property-ref</literal>: (optional) The name of a property of the "
-#~ "associated class that is joined to this foreign key. If not specified, "
-#~ "the primary key of the associated class is used."
-#~ msgstr "ä¾åï¼é¦å
, ä¸ç»å符串ï¼"
+#~ "<![CDATA[\n"
+#~ "category.getItems().add(item); // The category now \"knows\" "
+#~ "about the relationship\n"
+#~ "item.getCategories().add(category); // The item now \"knows\" about "
+#~ "the relationship\n"
+#~ "\n"
+#~ "session.persist(item); // The relationship won't be "
+#~ "saved!\n"
+#~ "session.persist(category); // The relationship will be "
+#~ "saved]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "category.getItems().add(item); // The category now \"knows\" "
+#~ "about the relationship\n"
+#~ "item.getCategories().add(category); // The item now \"knows\" about "
+#~ "the relationship\n"
+#~ "\n"
+#~ "session.persist(item); // The relationship won't be "
+#~ "saved!\n"
+#~ "session.persist(category); // The relationship will be "
+#~ "saved]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\">\n"
+#~ " <key column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\">\n"
+#~ " <key column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<map name=\"contracts\">\n"
+#~ " <key column=\"employer_id\" not-null=\"true\"/>\n"
+#~ " <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
+#~ " <one-to-many class=\"Contract\"/>\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map name=\"contracts\">\n"
+#~ " <key column=\"employer_id\" not-null=\"true\"/>\n"
+#~ " <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
+#~ " <one-to-many class=\"Contract\"/>\n"
+#~ "</map>]]>"
+#~ msgid ""
+#~ "<![CDATA[<map name=\"connections\">\n"
+#~ " <key column=\"incoming_node_id\"/>\n"
+#~ " <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
+#~ " <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map name=\"connections\">\n"
+#~ " <key column=\"incoming_node_id\"/>\n"
+#~ " <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
+#~ " <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
+#~ "</map>]]>"
+#~ msgid ""
+#~ "<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
+#~ " <collection-id column=\"ID\" type=\"long\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </collection-id>\n"
+#~ " <key column=\"PERSON1\"/>\n"
+#~ " <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
+#~ "</idbag>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
+#~ " <collection-id column=\"ID\" type=\"long\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </collection-id>\n"
+#~ " <key column=\"PERSON1\"/>\n"
+#~ " <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
+#~ "</idbag>]]>"
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "\n"
+#~ "public class Parent {\n"
+#~ " private long id;\n"
+#~ " private Set children;\n"
+#~ "\n"
+#~ " public long getId() { return id; }\n"
+#~ " private void setId(long id) { this.id=id; }\n"
+#~ "\n"
+#~ " private Set getChildren() { return children; }\n"
+#~ " private void setChildren(Set children) { this.children=children; }\n"
+#~ "\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "\n"
+#~ "public class Parent {\n"
+#~ " private long id;\n"
+#~ " private Set children;\n"
+#~ "\n"
+#~ " public long getId() { return id; }\n"
+#~ " private void setId(long id) { this.id=id; }\n"
+#~ "\n"
+#~ " private Set getChildren() { return children; }\n"
+#~ " private void setChildren(Set children) { this.children=children; }\n"
+#~ "\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255), "
+#~ "parent_id bigint )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255), "
+#~ "parent_id bigint )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id"
+#~ "\" not-null=\"true\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id"
+#~ "\" not-null=\"true\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null\n"
+#~ " primary key,\n"
+#~ " name varchar(255),\n"
+#~ " parent_id bigint not null )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null\n"
+#~ " primary key,\n"
+#~ " name varchar(255),\n"
+#~ " parent_id bigint not null )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" table=\"childset\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <many-to-many class=\"Child\" column=\"child_id\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" table=\"childset\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <many-to-many class=\"Child\" column=\"child_id\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255) )\n"
+#~ "create table childset ( parent_id bigint not null,\n"
+#~ " child_id bigint not null,\n"
+#~ " primary key ( parent_id, child_id ) )\n"
+#~ "alter table childset add constraint childsetfk0 (parent_id) references "
+#~ "parent\n"
+#~ "alter table childset add constraint childsetfk1 (child_id) references "
+#~ "child]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255) )\n"
+#~ "create table childset ( parent_id bigint not null,\n"
+#~ " child_id bigint not null,\n"
+#~ " primary key ( parent_id, child_id ) )\n"
+#~ "alter table childset add constraint childsetfk0 (parent_id) references "
+#~ "parent\n"
+#~ "alter table childset add constraint childsetfk1 (child_id) references "
+#~ "child]]>"
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/component_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/component_mapping.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/component_mapping.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,662 +1,581 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"PO-Revision-Date: 2010-01-11 10:36+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: component_mapping.xml:29
#, no-c-format
msgid "Component Mapping"
msgstr "ç»ä»¶ï¼Componentï¼æ å°"
#. Tag: para
-#: component_mapping.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"The notion of a <emphasis>component</emphasis> is re-used in several "
-"different contexts and purposes throughout Hibernate."
-msgstr ""
-"<emphasis>ç»ä»¶</emphasis>(Component)è¿ä¸ªæ¦å¿µå¨Hibernateä¸å å¤ä¸åçå°æ¹ä¸ºäºä¸"
-"åçç®ç被éå¤ä½¿ç¨."
+#, no-c-format
+msgid "The notion of a <emphasis>component</emphasis> is re-used in several different contexts and purposes throughout Hibernate."
+msgstr "<emphasis>ç»ä»¶ï¼Componentï¼</emphasis>è¿ä¸ªæ¦å¿µå¨ Hibernate ä¸å å¤ä¸åçå°æ¹ä¸ºäºä¸åçç®ç被éå¤ä½¿ç¨ã"
#. Tag: title
-#: component_mapping.xml:37
#, no-c-format
msgid "Dependent objects"
msgstr "ä¾èµå¯¹è±¡ï¼Dependent objectsï¼"
#. Tag: para
-#: component_mapping.xml:39
-#, fuzzy, no-c-format
-msgid ""
-"A component is a contained object that is persisted as a value type and not "
-"an entity reference. The term \"component\" refers to the object-oriented "
-"notion of composition and not to architecture-level components. For example, "
-"you can model a person like this:"
-msgstr ""
-"ç»ä»¶(Component)æ¯ä¸ä¸ªè¢«å
å«ç对象ï¼å¨æä¹
åçè¿ç¨ä¸ï¼å®è¢«å½ä½å¼ç±»åï¼èå¹¶éä¸"
-"个å®ä½çå¼ç¨ãå¨è¿ç¯ææ¡£ä¸ï¼ç»ä»¶è¿ä¸æ¯è¯æçæ¯é¢å对象çåææ¦å¿µï¼è并䏿¯ç³»"
-"ç»ææ¶å±æ¬¡ä¸çç»ä»¶çæ¦å¿µï¼ã举个ä¾å, ä½ å¯¹äºº(Person)è¿ä¸ªæ¦å¿µå¯ä»¥åä¸é¢è¿æ ·æ¥"
-"建模ï¼"
-
-#. Tag: programlisting
-#: component_mapping.xml:45
#, no-c-format
-msgid ""
-"<![CDATA[public class Person {\n"
-" private java.util.Date birthday;\n"
-" private Name name;\n"
-" private String key;\n"
-" public String getKey() {\n"
-" return key;\n"
-" }\n"
-" private void setKey(String key) {\n"
-" this.key=key;\n"
-" }\n"
-" public java.util.Date getBirthday() {\n"
-" return birthday;\n"
-" }\n"
-" public void setBirthday(java.util.Date birthday) {\n"
-" this.birthday = birthday;\n"
-" }\n"
-" public Name getName() {\n"
-" return name;\n"
-" }\n"
-" public void setName(Name name) {\n"
-" this.name = name;\n"
-" }\n"
-" ......\n"
-" ......\n"
-"}]]>"
-msgstr ""
+msgid "A component is a contained object that is persisted as a value type and not an entity reference. The term \"component\" refers to the object-oriented notion of composition and not to architecture-level components. For example, you can model a person like this:"
+msgstr "ç»ä»¶ï¼Componentï¼æ¯ä¸ä¸ªè¢«å
å«ç对象ï¼å¨æä¹
åçè¿ç¨ä¸ï¼å®è¢«å½ä½å¼ç±»åï¼èå¹¶éä¸ä¸ªå®ä½çå¼ç¨ãå¨è¿ç¯ææ¡£ä¸ï¼ç»ä»¶è¿ä¸æ¯è¯æçæ¯é¢å对象çåææ¦å¿µï¼è并䏿¯ç³»ç»ææ¶å±æ¬¡ä¸çç»ä»¶çæ¦å¿µï¼ã举个ä¾åï¼ä½ 对人ï¼Personï¼è¿ä¸ªæ¦å¿µå¯ä»¥åä¸é¢è¿æ ·æ¥å»ºæ¨¡ï¼ "
-#. Tag: programlisting
-#: component_mapping.xml:47
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[public class Name {\n"
-" char initial;\n"
-" String first;\n"
-" String last;\n"
-" public String getFirst() {\n"
-" return first;\n"
-" }\n"
-" void setFirst(String first) {\n"
-" this.first = first;\n"
-" }\n"
-" public String getLast() {\n"
-" return last;\n"
-" }\n"
-" void setLast(String last) {\n"
-" this.last = last;\n"
-" }\n"
-" public char getInitial() {\n"
-" return initial;\n"
-" }\n"
-" void setInitial(char initial) {\n"
-" this.initial = initial;\n"
-" }\n"
-"}]]>"
-msgstr ""
+msgid "Now <literal>Name</literal> can be persisted as a component of <literal>Person</literal>. <literal>Name</literal> defines getter and setter methods for its persistent properties, but it does not need to declare any interfaces or identifier properties."
+msgstr "卿ä¹
åçè¿ç¨ä¸ï¼<literal>å§åï¼Nameï¼</literal>å¯ä»¥ä½ä¸º<literal>人ï¼Personï¼</literal>çä¸ä¸ªç»ä»¶ãéè¦æ³¨æçæ¯ï¼ä½ åºè¯¥ä¸º<literal>å§å</literal>çæä¹
å屿§å®ä¹ getter å setter æ¹æ³ï¼ä½æ¯ä½ ä¸éè¦å®ç°ä»»ä½çæ¥å£æç³ææ è¯ç¬¦å段ã "
#. Tag: para
-#: component_mapping.xml:49
-#, fuzzy, no-c-format
-msgid ""
-"Now <literal>Name</literal> can be persisted as a component of "
-"<literal>Person</literal>. <literal>Name</literal> defines getter and setter "
-"methods for its persistent properties, but it does not need to declare any "
-"interfaces or identifier properties."
-msgstr ""
-"卿ä¹
åçè¿ç¨ä¸,<literal>å§å(Name)</literal>å¯ä»¥ä½ä¸º<literal>人(Person)</"
-"literal>çä¸ä¸ªç»ä»¶ãéè¦æ³¨æçæ¯:ä½ åºè¯¥ä¸º<literal>å§å</literal>çæä¹
å屿§"
-"å®ä¹getteråsetteræ¹æ³,使¯ä½ ä¸éè¦å®ç°ä»»ä½çæ¥å£æç³ææ è¯ç¬¦å段ã"
-
-#. Tag: para
-#: component_mapping.xml:56
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Our Hibernate mapping would look like this:"
-msgstr "以䏿¯è¿ä¸ªä¾åçHibernateæ å°æä»¶:"
+msgstr "以䏿¯è¿ä¸ªä¾åç Hibernate æ å°æä»¶ï¼ "
-#. Tag: programlisting
-#: component_mapping.xml:60
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
-" <id name=\"Key\" column=\"pid\" type=\"string\">\n"
-" <generator class=\"uuid\"/>\n"
-" </id>\n"
-" <property name=\"birthday\" type=\"date\"/>\n"
-" <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute "
-"optional -->\n"
-" <property name=\"initial\"/>\n"
-" <property name=\"first\"/>\n"
-" <property name=\"last\"/>\n"
-" </component>\n"
-"</class>]]>"
-msgstr ""
+msgid "The person table would have the columns <literal>pid</literal>, <literal>birthday</literal>, <literal>initial</literal>, <literal>first</literal> and <literal>last</literal>."
+msgstr "人åï¼Personï¼è¡¨ä¸å°å
æ¬ <literal>pid</literal>ï¼<literal>birthday</literal>ï¼<literal>initial</literal>ï¼<literal>first</literal>å <literal>last</literal> çåæ®µã"
#. Tag: para
-#: component_mapping.xml:62
#, no-c-format
-msgid ""
-"The person table would have the columns <literal>pid</literal>, "
-"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
-"literal> and <literal>last</literal>."
-msgstr ""
-"人å(Person)表ä¸å°å
æ¬<literal>pid</literal>, <literal>birthday</literal>, "
-"<literal>initial</literal>, <literal>first</literal>å <literal>last</"
-"literal>çåæ®µã"
+msgid "Like value types, components do not support shared references. In other words, two persons could have the same name, but the two person objects would contain two independent name objects that were only \"the same\" by value. The null value semantics of a component are <emphasis>ad hoc</emphasis>. When reloading the containing object, Hibernate will assume that if all component columns are null, then the entire component is null. This is suitable for most purposes."
+msgstr "就忿çå¼ç±»å䏿 ·ï¼ç»ä»¶ä¸æ¯æå
±äº«å¼ç¨ãæ¢å¥è¯è¯´ï¼ä¸¤ä¸ªäººå¯è½éåï¼ä½æ¯ä¸¤ä¸ª Person 对象åºè¯¥å
å«ä¸¤ä¸ªç¬ç«ç Name 对象ï¼åªä¸è¿è¿ä¸¤ä¸ª Name 对象å
·æâåæ ·âçå¼ãç»ä»¶çå¼å¯ä»¥ä¸ºç©ºï¼å
¶å®ä¹å¦ä¸ã æ¯å½ Hibernate éæ°å è½½ä¸ä¸ªå
å«ç»ä»¶ç对象ï¼å¦æè¯¥ç»ä»¶çææå段为空ï¼Hibernate å°å宿´ä¸ªç»ä»¶ä¸ºç©ºãå¨å¤§å¤æ°æ
åµä¸ï¼è¿æ ·åå®åºè¯¥æ¯æ²¡æé®é¢çã"
#. Tag: para
-#: component_mapping.xml:70
-#, fuzzy, no-c-format
-msgid ""
-"Like value types, components do not support shared references. In other "
-"words, two persons could have the same name, but the two person objects "
-"would contain two independent name objects that were only \"the same\" by "
-"value. The null value semantics of a component are <emphasis>ad hoc</"
-"emphasis>. When reloading the containing object, Hibernate will assume that "
-"if all component columns are null, then the entire component is null. This "
-"is suitable for most purposes."
-msgstr ""
-"就忿çå¼ç±»å䏿 ·, ç»ä»¶ä¸æ¯æå
±äº«å¼ç¨ã æ¢å¥è¯è¯´ï¼ä¸¤ä¸ªäººå¯è½éåï¼ä½æ¯ä¸¤ä¸ª"
-"Person对象åºè¯¥å
å«ä¸¤ä¸ªç¬ç«çName对象ï¼åªä¸è¿è¿ä¸¤ä¸ªName对象å
·æâåæ ·âçå¼ã ç»"
-"ä»¶çå¼å¯ä»¥ä¸ºç©ºï¼å
¶å®ä¹å¦ä¸ã æ¯å½Hibernateéæ°å è½½ä¸ä¸ªå
å«ç»ä»¶ç对象,å¦æè¯¥ç»"
-"ä»¶çææåæ®µä¸ºç©ºï¼Hibernateå°å宿´ä¸ªç»ä»¶ä¸ºç©ºã å¨å¤§å¤æ°æ
åµä¸,è¿æ ·åå®åºè¯¥æ¯"
-"没æé®é¢çã"
+#, no-c-format
+msgid "The properties of a component can be of any Hibernate type (collections, many-to-one associations, other components, etc). Nested components should <emphasis>not</emphasis> be considered an exotic usage. Hibernate is intended to support a fine-grained object model."
+msgstr "ç»ä»¶ç屿§å¯ä»¥æ¯ä»»æä¸ç§ Hibernate ç±»åï¼å
æ¬éåï¼å¤å¯¹å¤å
³èï¼ä»¥åå
¶å®ç»ä»¶ççï¼ãåµå¥ç»ä»¶ä¸åºè¯¥è¢«å½ä½ä¸ç§ç¹æ®çåºç¨ï¼Nested components should not be considered an exotic usageï¼ãHibernate å¾åäºæ¯æç»é¢ç²åº¦çï¼fine-grainedï¼å¯¹è±¡æ¨¡åã"
#. Tag: para
-#: component_mapping.xml:78
-#, fuzzy, no-c-format
-msgid ""
-"The properties of a component can be of any Hibernate type (collections, "
-"many-to-one associations, other components, etc). Nested components should "
-"<emphasis>not</emphasis> be considered an exotic usage. Hibernate is "
-"intended to support a fine-grained object model."
-msgstr ""
-"ç»ä»¶ç屿§å¯ä»¥æ¯ä»»æä¸ç§Hibernateç±»åï¼å
æ¬éå, å¤å¯¹å¤å
³èï¼ ä»¥åå
¶å®ç»ä»¶ç"
-"çï¼ãåµå¥ç»ä»¶ä¸åºè¯¥è¢«å½ä½ä¸ç§ç¹æ®çåºç¨(Nested components should not be "
-"considered an exotic usage)ã Hibernateå¾åäºæ¯æç»è´ç(fine-grained)对象模"
-"åã"
-
-#. Tag: para
-#: component_mapping.xml:85
#, no-c-format
-msgid ""
-"The <literal><component></literal> element allows a <literal><"
-"parent></literal> subelement that maps a property of the component class "
-"as a reference back to the containing entity."
-msgstr ""
-"<literal><component></literal> å
ç´ è¿å
许æ <literal><parent></"
-"literal>åå
ç´ ï¼ç¨æ¥è¡¨æcomponentç±»ä¸çä¸ä¸ªå±æ§æ¯æåå
å«å®çå®ä½çå¼ç¨ã"
+msgid "The <literal><component></literal> element allows a <literal><parent></literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr "<literal><component></literal> å
ç´ å
许å å
¥ä¸ä¸ª <literal><parent></literal> åå
ç´ ï¼å¨ç»ä»¶ç±»å
é¨å°±å¯ä»¥æä¸ä¸ªæåå
¶å®¹å¨çå®ä½çååå¼ç¨ã"
-#. Tag: programlisting
-#: component_mapping.xml:91
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
-" <id name=\"Key\" column=\"pid\" type=\"string\">\n"
-" <generator class=\"uuid\"/>\n"
-" </id>\n"
-" <property name=\"birthday\" type=\"date\"/>\n"
-" <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
-" <parent name=\"namedPerson\"/> <!-- reference back to the Person --"
-">\n"
-" <property name=\"initial\"/>\n"
-" <property name=\"first\"/>\n"
-" <property name=\"last\"/>\n"
-" </component>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: title
-#: component_mapping.xml:96
#, no-c-format
msgid "Collections of dependent objects"
-msgstr "å¨éåä¸åºç°çä¾èµå¯¹è±¡ (Collections of dependent objects)"
+msgstr "å¨éåä¸åºç°çä¾èµå¯¹è±¡ï¼Collections of dependent objectsï¼"
#. Tag: para
-#: component_mapping.xml:98
#, fuzzy, no-c-format
-msgid ""
-"Collections of components are supported (e.g. an array of type "
-"<literal>Name</literal>). Declare your component collection by replacing the "
-"<literal><element></literal> tag with a <literal><composite-"
-"element></literal> tag:"
-msgstr ""
-"Hibernateæ¯æç»ä»¶çéå(ä¾å¦: ä¸ä¸ªå
ç´ æ¯å§å(Name)è¿ç§ç±»åçæ°ç»)ã ä½ å¯ä»¥ä½¿"
-"ç¨<literal><composite-element></literal>æ ç¾æ¿ä»£<literal><"
-"element></literal>æ ç¾æ¥å®ä¹ä½ çç»ä»¶éåã"
+msgid "Collections of components are supported (e.g. an array of type <literal>Name</literal>). Declare your component collection by replacing the <literal><element></literal> tag with a <literal><composite-element></literal> tag:"
+msgstr "Hibernate æ¯æç»ä»¶çéåï¼ä¾å¦ï¼ä¸ä¸ªå
ç´ æ¯å§åï¼Nameï¼è¿ç§ç±»åçæ°ç»ï¼ãä½ å¯ä»¥ä½¿ç¨ <literal><composite-element></literal> æ ç¾æ¿ä»£ <literal><element></literal> æ ç¾æ¥å®ä¹ä½ çç»ä»¶éåã"
-#. Tag: programlisting
-#: component_mapping.xml:105
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
-" <key column=\"id\"/>\n"
-" <composite-element class=\"eg.Name\"> <!-- class attribute required -->\n"
-" <property name=\"initial\"/>\n"
-" <property name=\"first\"/>\n"
-" <property name=\"last\"/>\n"
-" </composite-element>\n"
-"</set>]]>"
-msgstr ""
+msgid "If you define a <literal>Set</literal> of composite elements, it is important to implement <literal>equals()</literal> and <literal>hashCode()</literal> correctly."
+msgstr "注æï¼å¦æä½ å®ä¹ç Set å
å«ç»åå
ç´ ï¼composite-elementï¼ï¼æ£ç¡®å°å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¯é常éè¦çã "
#. Tag: para
-#: component_mapping.xml:108
-#, fuzzy, no-c-format
-msgid ""
-"If you define a <literal>Set</literal> of composite elements, it is "
-"important to implement <literal>equals()</literal> and <literal>hashCode()</"
-"literal> correctly."
-msgstr ""
-"注æï¼å¦æä½ å®ä¹çSetå
å«ç»åå
ç´ (composite-element)ï¼æ£ç¡®å°å®ç°"
-"<literal>equals()</literal>å<literal>hashCode()</literal>æ¯é常éè¦çã"
+#, no-c-format
+msgid "Composite elements can contain components but not collections. If your composite element contains components, use the <literal><nested-composite-element></literal> tag. This case is a collection of components which themselves have components. You may want to consider if a one-to-many association is more appropriate. Remodel the composite element as an entity, but be aware that even though the Java model is the same, the relational model and persistence semantics are still slightly different."
+msgstr "ç»åå
ç´ å¯ä»¥å
å«ç»ä»¶ï¼ä½æ¯ä¸è½å
å«éåãå¦æä½ çç»åå
ç´ èªèº«å
å«ç»ä»¶ï¼ä½ å¿
é¡»ä½¿ç¨ <literal><nested-composite-element></literal> æ ç¾ãè¿æ¯ä¸ä¸ªç¸å½ç¹æ®çæ¡ä¾ â å¨ä¸ä¸ªç»ä»¶çéåéï¼é£äºç»ä»¶æ¬èº«åå¯ä»¥å
å«å
¶ä»çç»ä»¶ãè¿ä¸ªæ¶åä½ å°±åºè¯¥èèä¸ä¸ä½¿ç¨ one-to-many å
³èæ¯å¦ä¼æ´æ°å½ãå°è¯å¯¹è¿ä¸ªç»åå
ç´ éæ°å»ºæ¨¡ä¸ºä¸ä¸ªå®ä½ â 使¯éè¦æ³¨æçæ¯ï¼è½ç¶ Java 模ååéæ°å»ºæ¨¡åæ¯ä¸æ ·çï¼å
³ç³»æ¨¡ååæä¹
æ§è¯ä¹ä¼æç»å¾®çååã "
#. Tag: para
-#: component_mapping.xml:115
-#, fuzzy, no-c-format
-msgid ""
-"Composite elements can contain components but not collections. If your "
-"composite element contains components, use the <literal><nested-composite-"
-"element></literal> tag. This case is a collection of components which "
-"themselves have components. You may want to consider if a one-to-many "
-"association is more appropriate. Remodel the composite element as an entity, "
-"but be aware that even though the Java model is the same, the relational "
-"model and persistence semantics are still slightly different."
-msgstr ""
-"ç»åå
ç´ å¯ä»¥å
å«ç»ä»¶ï¼ä½æ¯ä¸è½å
å«éåãå¦æä½ çç»åå
ç´ èªèº«å
å«ç»ä»¶, ä½ å¿
é¡»"
-"使ç¨<literal><nested-composite-element></literal>æ ç¾ãè¿æ¯ä¸ä¸ªç¸å½ç¹æ®"
-"çæ¡ä¾ - å¨ä¸ä¸ªç»ä»¶çéåéï¼é£äºç»ä»¶æ¬èº«åå¯ä»¥å
å«å
¶ä»çç»ä»¶ãè¿ä¸ªæ¶åä½ å°±åº"
-"该èèä¸ä¸ä½¿ç¨one-to-manyå
³èæ¯å¦ä¼æ´æ°å½ã å°è¯å¯¹è¿ä¸ªç»åå
ç´ éæ°å»ºæ¨¡ä¸ºä¸ä¸ª"
-"å®ä½ï¼ä½æ¯éè¦æ³¨æçæ¯ï¼è½ç¶Java模ååéæ°å»ºæ¨¡åæ¯ä¸æ ·çï¼å
³ç³»æ¨¡ååæä¹
æ§è¯"
-"ä¹ä¼æç»å¾®çååã"
+#, no-c-format
+msgid "A composite element mapping does not support null-able properties if you are using a <literal><set></literal>. There is no separate primary key column in the composite element table. Hibernate uses each column's value to identify a record when deleting objects, which is not possible with null values. You have to either use only not-null properties in a composite-element or choose a <literal><list></literal>, <literal><map></literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr "请注æå¦æä½ ä½¿ç¨ <literal><set></literal> æ ç¾ï¼ä¸ä¸ªç»åå
ç´ çæ å°ä¸æ¯æå¯è½ä¸ºç©ºç屿§. å½å é¤å¯¹è±¡æ¶ï¼Hibernate å¿
é¡»ä½¿ç¨æ¯ä¸ä¸ªå段ç弿¥ç¡®å®ä¸æ¡è®°å½ï¼å¨ç»åå
ç´ è¡¨ä¸ï¼æ²¡æåç¬çå
³é®å段ï¼ï¼å¦ææä¸º null çåæ®µï¼è¿æ ·åå°±ä¸å¯è½äºãä½ å¿
é¡»ä½åºä¸ä¸ªéæ©ï¼è¦ä¹å¨ç»åå
ç´ ä¸ä½¿ç¨ä¸è½ä¸ºç©ºç屿§ï¼è¦ä¹éæ©ä½¿ç¨ <literal><list></literal>ï¼<literal><map></literal>ï¼<literal><bag></literal> æè
<literal><idbag></literal> è䏿¯ <literal><set></literal>ã "
#. Tag: para
-#: component_mapping.xml:127
-#, fuzzy, no-c-format
-msgid ""
-"A composite element mapping does not support null-able properties if you are "
-"using a <literal><set></literal>. There is no separate primary key "
-"column in the composite element table. Hibernate uses each column's value to "
-"identify a record when deleting objects, which is not possible with null "
-"values. You have to either use only not-null properties in a composite-"
-"element or choose a <literal><list></literal>, <literal><map></"
-"literal>, <literal><bag></literal> or <literal><idbag></literal>."
-msgstr ""
-"请注æå¦æä½ 使ç¨<literal><set></literal>æ ç¾,ä¸ä¸ªç»åå
ç´ çæ å°ä¸æ¯æå¯"
-"è½ä¸ºç©ºç屿§. å½å é¤å¯¹è±¡æ¶ï¼ Hibernateå¿
é¡»ä½¿ç¨æ¯ä¸ä¸ªå段ç弿¥ç¡®å®ä¸æ¡è®°å½(å¨"
-"ç»åå
ç´ è¡¨ä¸ï¼æ²¡æåç¬çå
³é®å段)ï¼ å¦ææä¸ºnullçåæ®µï¼è¿æ ·åå°±ä¸å¯è½äºãä½ "
-"å¿
é¡»ä½åºä¸ä¸ªéæ©ï¼è¦ä¹å¨ç»åå
ç´ ä¸ä½¿ç¨ä¸è½ä¸ºç©ºç屿§ï¼è¦ä¹éæ©ä½¿ç¨"
-"<literal><list></literal>,<literal><map></literal>,<literal><"
-"bag></literal> æè
<literal><idbag></literal>è䏿¯ <literal><"
-"set></literal>ã"
+#, no-c-format
+msgid "A special case of a composite element is a composite element with a nested <literal><many-to-one></literal> element. This mapping allows you to map extra columns of a many-to-many association table to the composite element class. The following is a many-to-many association from <literal>Order</literal> to <literal>Item</literal>, where <literal>purchaseDate</literal>, <literal>price</literal> and <literal>quantity</literal> are properties of the association:"
+msgstr "ç»åå
ç´ æä¸ªç¹å«çç¨æ³æ¯å®å¯ä»¥å
å«ä¸ä¸ª<literal><many-to-one></literal>å
ç´ ãç±»ä¼¼è¿æ ·çæ å°å
è®¸ä½ å°ä¸ä¸ª many-to-many å
³è表çé¢å¤å段æ å°ä¸ºç»åå
ç´ ç±»ãæ¥ä¸æ¥ççä¾åæ¯ä» <literal>Order</literal> å° <literal>Item</literal> çä¸ä¸ªå¤å¯¹å¤çå
³èå
³ç³»ï¼å
³è屿§æ¯ <literal>purchaseDate</literal>ï¼<literal>price</literal> å <literal>quantity</literal> ã "
#. Tag: para
-#: component_mapping.xml:138
-#, fuzzy, no-c-format
-msgid ""
-"A special case of a composite element is a composite element with a nested "
-"<literal><many-to-one></literal> element. This mapping allows you to "
-"map extra columns of a many-to-many association table to the composite "
-"element class. The following is a many-to-many association from "
-"<literal>Order</literal> to <literal>Item</literal>, where "
-"<literal>purchaseDate</literal>, <literal>price</literal> and "
-"<literal>quantity</literal> are properties of the association:"
-msgstr ""
-"ç»åå
ç´ æä¸ªç¹å«çç¨æ³æ¯å®å¯ä»¥å
å«ä¸ä¸ª<literal><many-to-one></literal>"
-"å
ç´ ãç±»ä¼¼è¿æ ·çæ å°å
è®¸ä½ å°ä¸ä¸ªmany-to-manyå
³è表æ å°ä¸ºç»åå
ç´ çéåã(A "
-"mapping like this allows you to map extra columns of a many-to-many "
-"association table to the composite element class.) æ¥ä¸æ¥ççä¾åæ¯ä»"
-"<literal>Order</literal>å°<literal>Item</literal>çä¸ä¸ªå¤å¯¹å¤çå
³èå
³ç³», å
³è"
-"屿§æ¯ <literal>purchaseDate</literal>, <literal>price</literal> å "
-"<literal>quantity</literal> ã"
-
-#. Tag: programlisting
-#: component_mapping.xml:148
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"eg.Order\" .... >\n"
-" ....\n"
-" <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
-" <key column=\"order_id\">\n"
-" <composite-element class=\"eg.Purchase\">\n"
-" <property name=\"purchaseDate\"/>\n"
-" <property name=\"price\"/>\n"
-" <property name=\"quantity\"/>\n"
-" <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- class "
-"attribute is optional -->\n"
-" </composite-element>\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
+msgid "There cannot be a reference to the purchase on the other side for bidirectional association navigation. Components are value types and do not allow shared references. A single <literal>Purchase</literal> can be in the set of an <literal>Order</literal>, but it cannot be referenced by the <literal>Item</literal> at the same time."
+msgstr "å½ç¶ï¼å½ä½ å®ä¹ Item æ¶ï¼ä½ æ æ³å¼ç¨è¿äº purchaseï¼å æ¤ä½ æ æ³å®ç°ååå
³èæ¥è¯¢ãè®°ä½ç»ä»¶æ¯å¼ç±»åï¼å¹¶ä¸ä¸å
许å
±äº«å¼ç¨ãæä¸ä¸ªç¹å®ç <literal>Purchase</literal> å¯ä»¥æ¾å¨ <literal>Order</literal> çéåä¸ï¼ä½å®ä¸è½åæ¶è¢« <literal>Item</literal> æå¼ç¨ã "
#. Tag: para
-#: component_mapping.xml:150
-#, fuzzy, no-c-format
-msgid ""
-"There cannot be a reference to the purchase on the other side for "
-"bidirectional association navigation. Components are value types and do not "
-"allow shared references. A single <literal>Purchase</literal> can be in the "
-"set of an <literal>Order</literal>, but it cannot be referenced by the "
-"<literal>Item</literal> at the same time."
-msgstr ""
-"å½ç¶ï¼å½ä½ å®ä¹Itemæ¶ï¼ä½ æ æ³å¼ç¨è¿äºpurchaseï¼å æ¤ä½ æ æ³å®ç°ååå
³èæ¥è¯¢ãè®°"
-"ä½ç»ä»¶æ¯å¼ç±»åï¼å¹¶ä¸ä¸å
许å
±äº«å¼ç¨ãæä¸ä¸ªç¹å®ç<literal>Purchase</literal> "
-"å¯ä»¥æ¾å¨<literal>Order</literal>çéåä¸ï¼ä½å®ä¸è½åæ¶è¢«<literal>Item</"
-"literal>æå¼ç¨ã"
-
-#. Tag: para
-#: component_mapping.xml:158
#, no-c-format
msgid "Even ternary (or quaternary, etc) associations are possible:"
msgstr "å
¶å®ç»åå
ç´ çè¿ä¸ªç¨æ³å¯ä»¥æ©å±å°ä¸éæå¤éå
³è:"
-#. Tag: programlisting
-#: component_mapping.xml:160
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"eg.Order\" .... >\n"
-" ....\n"
-" <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
-" <key column=\"order_id\">\n"
-" <composite-element class=\"eg.OrderLine\">\n"
-" <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
-" <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
-" </composite-element>\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
+msgid "Composite elements can appear in queries using the same syntax as associations to other entities."
+msgstr "卿¥è¯¢ä¸ï¼è¡¨è¾¾ç»åå
ç´ çè¯æ³åå
³èå°å
¶ä»å®ä½çè¯æ³æ¯ä¸æ ·çã "
-#. Tag: para
-#: component_mapping.xml:162
-#, fuzzy, no-c-format
-msgid ""
-"Composite elements can appear in queries using the same syntax as "
-"associations to other entities."
-msgstr "卿¥è¯¢ä¸ï¼è¡¨è¾¾ç»åå
ç´ çè¯æ³åå
³èå°å
¶ä»å®ä½çè¯æ³æ¯ä¸æ ·çã"
-
#. Tag: title
-#: component_mapping.xml:170
#, no-c-format
msgid "Components as Map indices"
-msgstr "ç»ä»¶ä½ä¸ºMapçç´¢å¼ï¼Components as Map indices ï¼"
+msgstr "ç»ä»¶ä½ä¸º Map çç´¢å¼ï¼Components as Map indices ï¼"
#. Tag: para
-#: component_mapping.xml:172
-#, fuzzy, no-c-format
-msgid ""
-"The <literal><composite-map-key></literal> element allows you to map a "
-"component class as the key of a <literal>Map</literal>. Ensure that you "
-"override <literal>hashCode()</literal> and <literal>equals()</literal> "
-"correctly on the component class."
-msgstr ""
-"<literal><composite-map-key></literal>å
ç´ å
è®¸ä½ æ å°ä¸ä¸ªç»ä»¶ç±»ä½ä¸ºä¸ä¸ª"
-"<literal>Map</literal>çkeyï¼åææ¯ä½ å¿
é¡»æ£ç¡®çå¨è¿ä¸ªç±»ä¸éåäº"
-"<literal>hashCode()</literal> å <literal>equals()</literal>æ¹æ³ã"
+#, no-c-format
+msgid "The <literal><composite-map-key></literal> element allows you to map a component class as the key of a <literal>Map</literal>. Ensure that you override <literal>hashCode()</literal> and <literal>equals()</literal> correctly on the component class."
+msgstr "<literal><composite-map-key></literal> å
ç´ å
è®¸ä½ æ å°ä¸ä¸ªç»ä»¶ç±»ä½ä¸ºä¸ä¸ª <literal>Map</literal> ç keyï¼åææ¯ä½ å¿
é¡»æ£ç¡®çå¨è¿ä¸ªç±»ä¸éåäº <literal>hashCode()</literal> å <literal>equals()</literal> æ¹æ³ã "
#. Tag: title
-#: component_mapping.xml:181
#, no-c-format
msgid "Components as composite identifiers"
-msgstr "ç»ä»¶ä½ä¸ºèåæ è¯ç¬¦(Components as composite identifiers)"
+msgstr "ç»ä»¶ä½ä¸ºèåæ è¯ç¬¦ï¼Components as composite identifiersï¼"
#. Tag: para
-#: component_mapping.xml:183
-#, fuzzy, no-c-format
-msgid ""
-"You can use a component as an identifier of an entity class. Your component "
-"class must satisfy certain requirements:"
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨ä¸ä¸ªç»ä»¶ä½ä¸ºä¸ä¸ªå®ä½ç±»çæ è¯ç¬¦ã ä½ çç»ä»¶ç±»å¿
须满足以ä¸è¦æ±ï¼"
+#, no-c-format
+msgid "You can use a component as an identifier of an entity class. Your component class must satisfy certain requirements:"
+msgstr "ä½ å¯ä»¥ä½¿ç¨ä¸ä¸ªç»ä»¶ä½ä¸ºä¸ä¸ªå®ä½ç±»çæ è¯ç¬¦ãä½ çç»ä»¶ç±»å¿
须满足以ä¸è¦æ±ï¼ "
#. Tag: para
-#: component_mapping.xml:190
#, no-c-format
msgid "It must implement <literal>java.io.Serializable</literal>."
-msgstr "å®å¿
é¡»å®ç°<literal>java.io.Serializable</literal>æ¥å£"
+msgstr "å®å¿
é¡»å®ç° <literal>java.io.Serializable</literal> æ¥å£"
#. Tag: para
-#: component_mapping.xml:195
-#, fuzzy, no-c-format
-msgid ""
-"It must re-implement <literal>equals()</literal> and <literal>hashCode()</"
-"literal> consistently with the database's notion of composite key equality."
-msgstr ""
-"å®å¿
须鿰å®ç°<literal>equals()</literal>å<literal>hashCode()</literal>æ¹"
-"æ³, å§ç»åç»åå
³é®å卿°æ®åºä¸çæ¦å¿µä¿æä¸è´"
+#, no-c-format
+msgid "It must re-implement <literal>equals()</literal> and <literal>hashCode()</literal> consistently with the database's notion of composite key equality."
+msgstr "å®å¿
须鿰å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼å§ç»åç»åå
³é®å卿°æ®åºä¸çæ¦å¿µä¿æä¸è´ "
#. Tag: title
-#: component_mapping.xml:204
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
#. Tag: para
-#: component_mapping.xml:205
-#, fuzzy, no-c-format
-msgid ""
-"In Hibernate3, although the second requirement is not an absolutely hard "
-"requirement of Hibernate, it is recommended."
-msgstr ""
-"注æï¼å¨Hibernate3ä¸ï¼ç¬¬äºä¸ªè¦æ±å¹¶éæ¯Hibernate强å¶å¿
é¡»çãä½æå¥½è¿æ ·åã"
+#, no-c-format
+msgid "In Hibernate3, although the second requirement is not an absolutely hard requirement of Hibernate, it is recommended."
+msgstr "注æï¼å¨ Hibernate3 ä¸ï¼ç¬¬äºä¸ªè¦æ±å¹¶éæ¯ Hibernate 强å¶å¿
é¡»çãä½æå¥½è¿æ ·åã "
#. Tag: para
-#: component_mapping.xml:211
-#, fuzzy, no-c-format
-msgid ""
-"You cannot use an <literal>IdentifierGenerator</literal> to generate "
-"composite keys. Instead the application must assign its own identifiers."
-msgstr ""
-"ä½ ä¸è½ä½¿ç¨ä¸ä¸ª<literal>IdentifierGenerator</literal>产çç»åå
³é®åãä¸ä¸ªåºç¨"
-"ç¨åºå¿
é¡»åé
å®èªå·±çæ è¯ç¬¦ã"
+#, no-c-format
+msgid "You cannot use an <literal>IdentifierGenerator</literal> to generate composite keys. Instead the application must assign its own identifiers."
+msgstr "ä½ ä¸è½ä½¿ç¨ä¸ä¸ª <literal>IdentifierGenerator</literal> 产çç»åå
³é®åãä¸ä¸ªåºç¨ç¨åºå¿
é¡»åé
å®èªå·±çæ è¯ç¬¦ã "
#. Tag: para
-#: component_mapping.xml:216
-#, fuzzy, no-c-format
-msgid ""
-"Use the <literal><composite-id></literal> tag, with nested "
-"<literal><key-property></literal> elements, in place of the usual "
-"<literal><id></literal> declaration. For example, the "
-"<literal>OrderLine</literal> class has a primary key that depends upon the "
-"(composite) primary key of <literal>Order</literal>."
-msgstr ""
-"使ç¨<literal><composite-id></literal> æ ç¾(å¹¶ä¸å
åµ<literal><key-"
-"property></literal>å
ç´ )代æ¿é常ç<literal><id></literal>æ ç¾ãæ¯å¦,"
-"<literal>OrderLine</literal>ç±»å
·æä¸ä¸ªä¸»é®ï¼è¿ä¸ªä¸»é®ä¾èµäº<literal>Order</"
-"literal>ç(èå)主é®ã"
-
-#. Tag: programlisting
-#: component_mapping.xml:224
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"OrderLine\">\n"
-" \n"
-" <composite-id name=\"id\" class=\"OrderLineId\">\n"
-" <key-property name=\"lineId\"/>\n"
-" <key-property name=\"orderId\"/>\n"
-" <key-property name=\"customerId\"/>\n"
-" </composite-id>\n"
-" \n"
-" <property name=\"name\"/>\n"
-" \n"
-" <many-to-one name=\"order\" class=\"Order\"\n"
-" insert=\"false\" update=\"false\">\n"
-" <column name=\"orderId\"/>\n"
-" <column name=\"customerId\"/>\n"
-" </many-to-one>\n"
-" ....\n"
-" \n"
-"</class>]]>"
-msgstr ""
+msgid "Use the <literal><composite-id></literal> tag, with nested <literal><key-property></literal> elements, in place of the usual <literal><id></literal> declaration. For example, the <literal>OrderLine</literal> class has a primary key that depends upon the (composite) primary key of <literal>Order</literal>."
+msgstr "ä½¿ç¨ <literal><composite-id></literal> æ ç¾ï¼å¹¶ä¸å
åµ <literal><key-property></literal> å
ç´ ï¼ä»£æ¿é常ç <literal><id></literal> æ ç¾ãæ¯å¦ï¼<literal>OrderLine</literal> ç±»å
·æä¸ä¸ªä¸»é®ï¼è¿ä¸ªä¸»é®ä¾èµäº <literal>Order</literal> çï¼èåï¼ä¸»é®ã "
#. Tag: para
-#: component_mapping.xml:226
-#, fuzzy, no-c-format
-msgid ""
-"Any foreign keys referencing the <literal>OrderLine</literal> table are now "
-"composite. Declare this in your mappings for other classes. An association "
-"to <literal>OrderLine</literal> is mapped like this:"
-msgstr ""
-"ç°å¨ï¼ä»»ä½æå<literal>OrderLine</literal>çå¤é®é½æ¯å¤åçãå¨ä½ çæ å°æä»¶"
-"ä¸ï¼å¿
须为å
¶ä»ç±»ä¹è¿æ ·å£°æãä¾å¦ï¼ä¸ä¸ªæå<literal>OrderLine</literal>çå
³è"
-"å¯è½è¢«è¿æ ·æ å°ï¼"
-
-#. Tag: programlisting
-#: component_mapping.xml:232
#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
-"<!-- the \"class\" attribute is optional, as usual -->\n"
-" <column name=\"lineId\"/>\n"
-" <column name=\"orderId\"/>\n"
-" <column name=\"customerId\"/>\n"
-"</many-to-one>]]>"
-msgstr ""
+msgid "Any foreign keys referencing the <literal>OrderLine</literal> table are now composite. Declare this in your mappings for other classes. An association to <literal>OrderLine</literal> is mapped like this:"
+msgstr "ç°å¨ï¼ä»»ä½æå <literal>OrderLine</literal> çå¤é®é½æ¯å¤åçãå¨ä½ çæ å°æä»¶ä¸ï¼å¿
须为å
¶ä»ç±»ä¹è¿æ ·å£°æãä¾å¦ï¼ä¸ä¸ªæå <literal>OrderLine</literal> çå
³èå¯è½è¢«è¿æ ·æ å°ï¼ "
#. Tag: para
-#: component_mapping.xml:235
#, no-c-format
-msgid ""
-"The <literal>column</literal> element is an alternative to the "
-"<literal>column</literal> attribute everywhere. Using the <literal>column</"
-"literal> element just gives more declaration options, which are mostly "
-"useful when utilizing <literal>hbm2ddl</literal>"
-msgstr ""
+msgid "The <literal><column></literal> tag is an alternative to the <literal>column</literal> attribute everywhere. Using the <literal><column></literal> tag just gives more declaration options, which are mostly useful when utilizing <literal>hbm2ddl</literal>."
+msgstr "ï¼æ³¨æå¨åä¸ªå°æ¹ <literal><column></literal> æ ç¾é½æ¯ <literal>column</literal> 屿§çæ¿ä»£åæ³ãï¼ "
#. Tag: para
-#: component_mapping.xml:244
#, no-c-format
-msgid ""
-"A <literal>many-to-many</literal> association to <literal>OrderLine</"
-"literal> also uses the composite foreign key:"
-msgstr ""
-"æå<literal>OrderLine</literal>ç<literal>å¤å¯¹å¤</literal>å
³èä¹ä½¿ç¨èåå¤"
-"é®:"
+msgid "A <literal>many-to-many</literal> association to <literal>OrderLine</literal> also uses the composite foreign key:"
+msgstr "æå <literal>OrderLine</literal> ç<literal>å¤å¯¹å¤</literal>å
³èä¹ä½¿ç¨èåå¤é®ï¼"
-#. Tag: programlisting
-#: component_mapping.xml:249
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"undeliveredOrderLines\">\n"
-" <key column name=\"warehouseId\"/>\n"
-" <many-to-many class=\"OrderLine\">\n"
-" <column name=\"lineId\"/>\n"
-" <column name=\"orderId\"/>\n"
-" <column name=\"customerId\"/>\n"
-" </many-to-many>\n"
-"</set>]]>"
-msgstr ""
-
#. Tag: para
-#: component_mapping.xml:251
#, no-c-format
-msgid ""
-"The collection of <literal>OrderLine</literal>s in <literal>Order</literal> "
-"would use:"
-msgstr ""
-"å¨<literal>Order</literal>ä¸,<literal>OrderLine</literal>çéååæ¯è¿æ ·:"
+msgid "The collection of <literal>OrderLine</literal>s in <literal>Order</literal> would use:"
+msgstr "å¨ <literal>Order</literal> ä¸ï¼<literal>OrderLine</literal> çéååæ¯è¿æ ·ï¼ "
-#. Tag: programlisting
-#: component_mapping.xml:256
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
-" <key>\n"
-" <column name=\"orderId\"/>\n"
-" <column name=\"customerId\"/>\n"
-" </key>\n"
-" <one-to-many class=\"OrderLine\"/>\n"
-"</set>]]>"
-msgstr ""
-
#. Tag: para
-#: component_mapping.xml:258
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The <literal><one-to-many></literal> element declares no columns."
-msgstr "(ä¸é叏䏿 ·,<literal><one-to-many></literal>å
ç´ ä¸å£°æä»»ä½å.)"
+msgstr "ä¸é叏䏿 ·ï¼<literal><one-to-many></literal> å
ç´ ä¸å£°æä»»ä½åã"
#. Tag: para
-#: component_mapping.xml:262
#, no-c-format
-msgid ""
-"If <literal>OrderLine</literal> itself owns a collection, it also has a "
-"composite foreign key."
-msgstr "åè¥<literal>OrderLine</literal>æ¬èº«æ¥æä¸ä¸ªéå,å®ä¹å
·æç»åå¤é®ã"
+msgid "If <literal>OrderLine</literal> itself owns a collection, it also has a composite foreign key."
+msgstr "åè¥ <literal>OrderLine</literal> æ¬èº«æ¥æä¸ä¸ªéåï¼å®ä¹å
·æç»åå¤é®ã"
-#. Tag: programlisting
-#: component_mapping.xml:267
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"OrderLine\">\n"
-" ....\n"
-" ....\n"
-" <list name=\"deliveryAttempts\">\n"
-" <key> <!-- a collection inherits the composite key type -->\n"
-" <column name=\"lineId\"/>\n"
-" <column name=\"orderId\"/>\n"
-" <column name=\"customerId\"/>\n"
-" </key>\n"
-" <list-index column=\"attemptId\" base=\"1\"/>\n"
-" <composite-element class=\"DeliveryAttempt\">\n"
-" ...\n"
-" </composite-element>\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: title
-#: component_mapping.xml:272
#, no-c-format
msgid "Dynamic components"
-msgstr "卿ç»ä»¶ ï¼Dynamic componentsï¼"
+msgstr "卿ç»ä»¶ï¼Dynamic componentsï¼"
#. Tag: para
-#: component_mapping.xml:274
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can also map a property of type <literal>Map</literal>:"
-msgstr "ä½ çè³å¯ä»¥æ å°<literal>Map</literal>ç±»åç屿§ï¼"
+msgstr "ä½ çè³å¯ä»¥æ å° <literal>Map</literal> ç±»åç屿§ï¼ "
-#. Tag: programlisting
-#: component_mapping.xml:278
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<dynamic-component name=\"userAttributes\">\n"
-" <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
-" <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
-" <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
-"</dynamic-component>]]>"
-msgstr ""
+msgid "The semantics of a <literal><dynamic-component></literal> mapping are identical to <literal><component></literal>. The advantage of this kind of mapping is the ability to determine the actual properties of the bean at deployment time just by editing the mapping document. Runtime manipulation of the mapping document is also possible, using a DOM parser. You can also access, and change, Hibernate's configuration-time metamodel via the <literal>Configuration</literal> object."
+msgstr "ä» <literal><dynamic-component></literal> æ å°çè¯ä¹ä¸æ¥è®²ï¼å®å <literal><component></literal> æ¯ç¸åçãè¿ç§æ å°ç±»åçä¼ç¹å¨äºéè¿ä¿®æ¹æ å°æä»¶ï¼å°±å¯ä»¥å
·æå¨é¨ç½²æ¶æ£æµçå®å±æ§çè½åãå©ç¨ä¸ä¸ª DOM è§£æå¨ï¼ä¹å¯ä»¥å¨ç¨åºè¿è¡æ¶æä½æ å°æä»¶ãæ´å¥½çæ¯ï¼ä½ å¯ä»¥éè¿ <literal>Configuration</literal> 对象æ¥è®¿é®ï¼æè
ä¿®æ¹ï¼Hibernate çè¿è¡æ¶å
模åã "
-#. Tag: para
-#: component_mapping.xml:280
-#, fuzzy, no-c-format
-msgid ""
-"The semantics of a <literal><dynamic-component></literal> mapping are "
-"identical to <literal><component></literal>. The advantage of this "
-"kind of mapping is the ability to determine the actual properties of the "
-"bean at deployment time just by editing the mapping document. Runtime "
-"manipulation of the mapping document is also possible, using a DOM parser. "
-"You can also access, and change, Hibernate's configuration-time metamodel "
-"via the <literal>Configuration</literal> object."
-msgstr ""
-"ä»<literal><dynamic-component></literal>æ å°çè¯ä¹ä¸æ¥è®²ï¼å®å"
-"<literal><component></literal>æ¯ç¸åçã è¿ç§æ å°ç±»åçä¼ç¹å¨äºéè¿ä¿®æ¹"
-"æ å°æä»¶ï¼å°±å¯ä»¥å
·æå¨é¨ç½²æ¶æ£æµçå®å±æ§çè½åãå©ç¨ä¸ä¸ªDOMè§£æå¨ï¼ä¹å¯ä»¥å¨ç¨"
-"åºè¿è¡æ¶æä½æ å°æä»¶ã æ´å¥½çæ¯ï¼ä½ å¯ä»¥éè¿<literal>Configuration</literal>对"
-"象æ¥è®¿é®ï¼æè
ä¿®æ¹ï¼Hibernateçè¿è¡æ¶å
模åã"
+#~ msgid ""
+#~ "<![CDATA[public class Person {\n"
+#~ " private java.util.Date birthday;\n"
+#~ " private Name name;\n"
+#~ " private String key;\n"
+#~ " public String getKey() {\n"
+#~ " return key;\n"
+#~ " }\n"
+#~ " private void setKey(String key) {\n"
+#~ " this.key=key;\n"
+#~ " }\n"
+#~ " public java.util.Date getBirthday() {\n"
+#~ " return birthday;\n"
+#~ " }\n"
+#~ " public void setBirthday(java.util.Date birthday) {\n"
+#~ " this.birthday = birthday;\n"
+#~ " }\n"
+#~ " public Name getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " public void setName(Name name) {\n"
+#~ " this.name = name;\n"
+#~ " }\n"
+#~ " ......\n"
+#~ " ......\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class Person {\n"
+#~ " private java.util.Date birthday;\n"
+#~ " private Name name;\n"
+#~ " private String key;\n"
+#~ " public String getKey() {\n"
+#~ " return key;\n"
+#~ " }\n"
+#~ " private void setKey(String key) {\n"
+#~ " this.key=key;\n"
+#~ " }\n"
+#~ " public java.util.Date getBirthday() {\n"
+#~ " return birthday;\n"
+#~ " }\n"
+#~ " public void setBirthday(java.util.Date birthday) {\n"
+#~ " this.birthday = birthday;\n"
+#~ " }\n"
+#~ " public Name getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " public void setName(Name name) {\n"
+#~ " this.name = name;\n"
+#~ " }\n"
+#~ " ......\n"
+#~ " ......\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[public class Name {\n"
+#~ " char initial;\n"
+#~ " String first;\n"
+#~ " String last;\n"
+#~ " public String getFirst() {\n"
+#~ " return first;\n"
+#~ " }\n"
+#~ " void setFirst(String first) {\n"
+#~ " this.first = first;\n"
+#~ " }\n"
+#~ " public String getLast() {\n"
+#~ " return last;\n"
+#~ " }\n"
+#~ " void setLast(String last) {\n"
+#~ " this.last = last;\n"
+#~ " }\n"
+#~ " public char getInitial() {\n"
+#~ " return initial;\n"
+#~ " }\n"
+#~ " void setInitial(char initial) {\n"
+#~ " this.initial = initial;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class Name {\n"
+#~ " char initial;\n"
+#~ " String first;\n"
+#~ " String last;\n"
+#~ " public String getFirst() {\n"
+#~ " return first;\n"
+#~ " }\n"
+#~ " void setFirst(String first) {\n"
+#~ " this.first = first;\n"
+#~ " }\n"
+#~ " public String getLast() {\n"
+#~ " return last;\n"
+#~ " }\n"
+#~ " void setLast(String last) {\n"
+#~ " this.last = last;\n"
+#~ " }\n"
+#~ " public char getInitial() {\n"
+#~ " return initial;\n"
+#~ " }\n"
+#~ " void setInitial(char initial) {\n"
+#~ " this.initial = initial;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute "
+#~ "optional -->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute "
+#~ "optional -->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
+#~ " <parent name=\"namedPerson\"/> <!-- reference back to the Person "
+#~ "-->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
+#~ " <parent name=\"namedPerson\"/> <!-- reference back to the Person "
+#~ "-->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <composite-element class=\"eg.Name\"> <!-- class attribute required --"
+#~ ">\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </composite-element>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <composite-element class=\"eg.Name\"> <!-- class attribute required --"
+#~ ">\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </composite-element>\n"
+#~ "</set>]]>"
+#, fuzzy
#~ msgid ""
-#~ "(Note that the <literal><column></literal> tag is an alternative to "
-#~ "the <literal>column</literal> attribute everywhere.)"
+#~ "<![CDATA[<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.Purchase\">\n"
+#~ " <property name=\"purchaseDate\"/>\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- class "
+#~ "attribute is optional -->\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
#~ msgstr ""
-#~ "ï¼æ³¨æå¨åä¸ªå°æ¹<literal><column></literal>æ ç¾é½æ¯<literal>column</"
-#~ "literal>屿§çæ¿ä»£åæ³ãï¼"
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.Purchase\">\n"
+#~ " <property name=\"purchaseDate\"/>\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- "
+#~ "class attribute is optional -->\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/"
+#~ ">\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key "
+#~ "type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>]]>"
+#~ msgstr ""
+#~ "<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>"
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/configuration.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/configuration.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/configuration.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,3789 +1,1961 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-16 18:47+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"PO-Revision-Date: 2010-01-11 10:39+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: configuration.xml:29
#, no-c-format
msgid "Configuration"
msgstr "é
ç½®"
#. Tag: para
-#: configuration.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate is designed to operate in many different environments and, as "
-"such, there is a broad range of configuration parameters. Fortunately, most "
-"have sensible default values and Hibernate is distributed with an example "
-"<literal>hibernate.properties</literal> file in <literal>etc/</literal> that "
-"displays the various options. Simply put the example file in your classpath "
-"and customize it to suit your needs."
-msgstr ""
-"ç±äºHibernateæ¯ä¸ºäºè½å¨åç§ä¸åç¯å¢ä¸å·¥ä½è设计ç, å æ¤åå¨ç大éçé
ç½®åæ°. "
-"幸è¿çæ¯å¤æ°é
ç½®åæ°é½ ææ¯è¾ç´è§çé»è®¤å¼, å¹¶æéHibernateä¸åååçé
ç½®æ ·ä¾"
-"<literal>hibernate.properties</literal> (ä½äº<literal>etc/</literal>)æ¥å±ç¤ºå"
-"ç§é
ç½®é项. æéåçä»
ä»
æ¯å°è¿ä¸ªæ ·ä¾æä»¶å¤å¶å°ç±»è·¯å¾ (classpath)ä¸å¹¶åä¸äºèª"
-"å®ä¹çä¿®æ¹."
+#, no-c-format
+msgid "Hibernate is designed to operate in many different environments and, as such, there is a broad range of configuration parameters. Fortunately, most have sensible default values and Hibernate is distributed with an example <literal>hibernate.properties</literal> file in <literal>etc/</literal> that displays the various options. Simply put the example file in your classpath and customize it to suit your needs."
+msgstr "ç±äº Hibernate æ¯ä¸ºäºè½å¨åç§ä¸åç¯å¢ä¸å·¥ä½è设计çï¼å æ¤åå¨ç大éçé
ç½®åæ°ã幸è¿çæ¯å¤æ°é
ç½®åæ°é½ææ¯è¾ç´è§çé»è®¤å¼ï¼å¹¶æé Hibernate ä¸åååçé
ç½®æ ·ä¾ <literal>hibernate.properties</literal>ï¼ä½äº <literal>etc/</literal>ï¼æ¥å±ç¤ºåç§é
ç½®é项ãæéåçä»
ä»
æ¯å°è¿ä¸ªæ ·ä¾æä»¶å¤å¶å°ç±»è·¯å¾ï¼classpathï¼ä¸å¹¶è¿è¡å®å¶ã"
#. Tag: title
-#: configuration.xml:40
#, no-c-format
msgid "Programmatic configuration"
msgstr "å¯ç¼ç¨çé
ç½®æ¹å¼"
#. Tag: para
-#: configuration.xml:42
-#, fuzzy, no-c-format
-msgid ""
-"An instance of <classname>org.hibernate.cfg.Configuration</classname> "
-"represents an entire set of mappings of an application's Java types to an "
-"SQL database. The <classname>org.hibernate.cfg.Configuration</classname> is "
-"used to build an immutable <interfacename>org.hibernate.SessionFactory</"
-"interfacename>. The mappings are compiled from various XML mapping files."
-msgstr ""
-"ä¸ä¸ª<literal>org.hibernate.cfg.Configuration</literal>å®ä¾ä»£è¡¨äºä¸ä¸ªåºç¨ç¨åº"
-"ä¸Javaç±»å å°SQLæ°æ®åºæ å°ç宿´éå. <literal>Configuration</literal>è¢«ç¨æ¥"
-"æå»ºä¸ä¸ª(ä¸å¯åç (immutable))<literal>SessionFactory</literal>. æ å°å®ä¹åç±"
-"ä¸åçXMLæ å°å®ä¹æä»¶ç¼è¯èæ¥."
+#, no-c-format
+msgid "An instance of <classname>org.hibernate.cfg.Configuration</classname> represents an entire set of mappings of an application's Java types to an SQL database. The <classname>org.hibernate.cfg.Configuration</classname> is used to build an immutable <interfacename>org.hibernate.SessionFactory</interfacename>. The mappings are compiled from various XML mapping files."
+msgstr "<literal>org.hibernate.cfg.Configuration</literal> å®ä¾ä»£è¡¨äºä¸ä¸ªåºç¨ç¨åºä¸ Java ç±»åå°SQLæ°æ®åºæ å°ç宿´éåã<classname>org.hibernate.cfg.Configuration</classname> è¢«ç¨æ¥æå»ºä¸ä¸ªï¼ä¸å¯åçï¼immutableï¼ï¼<interfacename>org.hibernate.SessionFactory</interfacename>ãæ å°å®ä¹åç±ä¸åç XML æ å°å®ä¹æä»¶ç¼è¯èæ¥ã"
#. Tag: para
-#: configuration.xml:49
-#, fuzzy, no-c-format
-msgid ""
-"You can obtain a <classname>org.hibernate.cfg.Configuration</classname> "
-"instance by instantiating it directly and specifying XML mapping documents. "
-"If the mapping files are in the classpath, use <literal>addResource()</"
-"literal>. For example:"
-msgstr ""
-"ä½ å¯ä»¥ç´æ¥å®ä¾å<literal>Configuration</literal>æ¥è·åä¸ä¸ªå®ä¾ï¼å¹¶ä¸ºå®æå®XML"
-"æ å°å®ä¹ æä»¶. 妿æ å°å® 乿件å¨ç±»è·¯å¾(classpath)ä¸, 请使ç¨"
-"<literal>addResource()</literal>:"
-
-#. Tag: programlisting
-#: configuration.xml:55
#, no-c-format
-msgid ""
-"<![CDATA[Configuration cfg = new Configuration()\n"
-" .addResource(\"Item.hbm.xml\")\n"
-" .addResource(\"Bid.hbm.xml\");]]>"
-msgstr ""
+msgid "You can obtain a <classname>org.hibernate.cfg.Configuration</classname> instance by instantiating it directly and specifying XML mapping documents. If the mapping files are in the classpath, use <literal>addResource()</literal>. For example:"
+msgstr "ä½ å¯ä»¥ç´æ¥å®ä¾å <classname>org.hibernate.cfg.Configuration</classname> æ¥è·åä¸ä¸ªå®ä¾ï¼å¹¶ä¸ºå®æå® XML æ å°å®ä¹æä»¶ã妿æ å°å®ä¹æä»¶å¨ç±»è·¯å¾ï¼classpathï¼ä¸ï¼è¯·ä½¿ç¨ <literal>addResourceï¼)</literal>ãä¾å¦ï¼"
#. Tag: para
-#: configuration.xml:57
-#, fuzzy, no-c-format
-msgid ""
-"An alternative way is to specify the mapped class and allow Hibernate to "
-"find the mapping document for you:"
-msgstr ""
-"ä¸ä¸ªæ¿ä»£æ¹æ³ï¼ææ¶æ¯æ´å¥½çéæ©ï¼æ¯ï¼æå®è¢«æ å°çç±»ï¼è®©Hibernateå¸®ä½ å¯»æ¾æ å°å®"
-"乿件:"
-
-#. Tag: programlisting
-#: configuration.xml:62
#, no-c-format
-msgid ""
-"<![CDATA[Configuration cfg = new Configuration()\n"
-" .addClass(org.hibernate.auction.Item.class)\n"
-" .addClass(org.hibernate.auction.Bid.class);]]>"
-msgstr ""
+msgid "An alternative way is to specify the mapped class and allow Hibernate to find the mapping document for you:"
+msgstr "ä¸ä¸ªæ¿ä»£æ¹æ³ï¼ææ¶æ¯æ´å¥½çéæ©ï¼æ¯ï¼æå®è¢«æ å°çç±»ï¼è®© Hibernate å¸®ä½ å¯»æ¾æ å°å®ä¹æä»¶ï¼ "
#. Tag: para
-#: configuration.xml:64
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate will then search for mapping files named <filename>/org/hibernate/"
-"auction/Item.hbm.xml</filename> and <filename>/org/hibernate/auction/Bid.hbm."
-"xml</filename> in the classpath. This approach eliminates any hardcoded "
-"filenames."
-msgstr ""
-"Hibernateå°ä¼å¨ç±»è·¯å¾(classpath)ä¸å¯»æ¾åå为 <literal>/org/hibernate/auction/"
-"Item.hbm.xml</literal>å <literal>/org/hibernate/auction/Bid.hbm.xml</"
-"literal>æ å°å®ä¹æä»¶. è¿ç§æ¹å¼æ¶é¤äºä»»ä½å¯¹æä»¶åç硬ç¼ç (hardcoded)."
+#, no-c-format
+msgid "Hibernate will then search for mapping files named <filename>/org/hibernate/auction/Item.hbm.xml</filename> and <filename>/org/hibernate/auction/Bid.hbm.xml</filename> in the classpath. This approach eliminates any hardcoded filenames."
+msgstr "Hibernate å°ä¼å¨ç±»è·¯å¾ï¼classpathï¼ä¸å¯»æ¾åå为 <filename>/org/hibernate/auction/Item.hbm.xml</filename> å <filename>/org/hibernate/auction/Bid.hbm.xml</filename> æ å°å®ä¹æä»¶ãè¿ç§æ¹å¼æ¶é¤äºä»»ä½å¯¹æä»¶åç硬ç¼ç ï¼hardcodedï¼ã"
#. Tag: para
-#: configuration.xml:70
-#, fuzzy, no-c-format
-msgid ""
-"A <classname>org.hibernate.cfg.Configuration</classname> also allows you to "
-"specify configuration properties. For example:"
-msgstr "<literal>Configuration</literal>ä¹å
è®¸ä½ æå®é
ç½®å±æ§:"
-
-#. Tag: programlisting
-#: configuration.xml:75
#, no-c-format
-msgid ""
-"<![CDATA[Configuration cfg = new Configuration()\n"
-" .addClass(org.hibernate.auction.Item.class)\n"
-" .addClass(org.hibernate.auction.Bid.class)\n"
-" .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect."
-"MySQLInnoDBDialect\")\n"
-" .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/jdbc/"
-"test\")\n"
-" .setProperty(\"hibernate.order_updates\", \"true\");]]>"
-msgstr ""
+msgid "A <classname>org.hibernate.cfg.Configuration</classname> also allows you to specify configuration properties. For example:"
+msgstr "<classname>org.hibernate.cfg.Configuration</classname>> ä¹å
è®¸ä½ æå®é
ç½®å±æ§ãä¾å¦ï¼"
#. Tag: para
-#: configuration.xml:77
-#, fuzzy, no-c-format
-msgid ""
-"This is not the only way to pass configuration properties to Hibernate. Some "
-"alternative options include:"
-msgstr "å½ç¶è¿ä¸æ¯å¯ä¸çä¼ éHibernateé
ç½®å±æ§çæ¹å¼, å
¶ä»å¯éæ¹å¼è¿å
æ¬:"
+#, no-c-format
+msgid "This is not the only way to pass configuration properties to Hibernate. Some alternative options include:"
+msgstr "å½ç¶è¿ä¸æ¯å¯ä¸çä¼ é Hibernate é
ç½®å±æ§çæ¹å¼ï¼å
¶ä»å¯éæ¹å¼è¿å
æ¬ï¼ "
#. Tag: para
-#: configuration.xml:84
-#, fuzzy, no-c-format
-msgid ""
-"Pass an instance of <classname>java.util.Properties</classname> to "
-"<literal>Configuration.setProperties()</literal>."
-msgstr ""
-"ä¼ ä¸ä¸ª<literal>java.util.Properties</literal>å®ä¾ç» <literal>Configuration."
-"setProperties()</literal>."
+#, no-c-format
+msgid "Pass an instance of <classname>java.util.Properties</classname> to <literal>Configuration.setProperties()</literal>."
+msgstr "ä¼ ä¸ä¸ª <classname>java.util.Properties</classname> å®ä¾ç» <literal>Configuration.setProperties()</literal>ã"
#. Tag: para
-#: configuration.xml:90
-#, fuzzy, no-c-format
-msgid ""
-"Place a file named <filename>hibernate.properties</filename> in a root "
-"directory of the classpath."
-msgstr ""
-"å°<literal>hibernate.properties</literal>æ¾ç½®å¨ç±»è·¯å¾(classpath)çæ ¹ç®å½ä¸ "
-"(root directory)."
+#, no-c-format
+msgid "Place a file named <filename>hibernate.properties</filename> in a root directory of the classpath."
+msgstr "å° <filename>hibernate.properties</filename> æ¾ç½®å¨ç±»è·¯å¾ï¼classpathï¼çæ ¹ç®å½ä¸ï¼root directoryï¼ã"
#. Tag: para
-#: configuration.xml:95
#, no-c-format
-msgid ""
-"Set <literal>System</literal> properties using <literal>java -"
-"Dproperty=value</literal>."
-msgstr ""
-"éè¿<literal>java -Dproperty=value</literal>æ¥è®¾ç½®ç³»ç» (<literal>System</"
-"literal>)屿§."
+msgid "Set <literal>System</literal> properties using <literal>java -Dproperty=value</literal>."
+msgstr "éè¿ <literal>java -Dproperty=value</literal> æ¥è®¾ç½®ç³»ç»ï¼<literal>System</literal>ï¼å±æ§ã"
#. Tag: para
-#: configuration.xml:100
-#, fuzzy, no-c-format
-msgid ""
-"Include <literal><property></literal> elements in <literal>hibernate."
-"cfg.xml</literal> (this is discussed later)."
-msgstr ""
-"å¨<literal>hibernate.cfg.xml</literal>ä¸å å
¥å
ç´ <literal><property></"
-"literal> (ç¨å讨论)."
+#, no-c-format
+msgid "Include <literal><property></literal> elements in <literal>hibernate.cfg.xml</literal> (this is discussed later)."
+msgstr "å¨ <literal>hibernate.cfg.xml</literal> ä¸å å
¥å
ç´ <literal><property></literal>ï¼ç¨å讨论ï¼ã "
#. Tag: para
-#: configuration.xml:107
#, no-c-format
-msgid ""
-"If you want to get started quickly<filename>hibernate.properties</filename> "
-"is the easiest approach."
-msgstr ""
+msgid "If you want to get started quickly<filename>hibernate.properties</filename> is the easiest approach."
+msgstr "å¦æä½ æ³å¿«éä¸è·¯ï¼<filename>hibernate.properties</filename> å°±æ¯æå®¹æçéå¾ã"
#. Tag: para
-#: configuration.xml:111
-#, fuzzy, no-c-format
-msgid ""
-"The <classname>org.hibernate.cfg.Configuration</classname> is intended as a "
-"startup-time object that will be discarded once a <literal>SessionFactory</"
-"literal> is created."
-msgstr ""
-"<literal>Configuration</literal>å®ä¾è¢«è®¾è®¡æå¯å¨æé´ï¼startup-timeï¼å¯¹è±¡, ä¸"
-"æ¦<literal>SessionFactory</literal>åå»ºå®æå®å°±è¢«ä¸¢å¼äº."
+#, no-c-format
+msgid "The <classname>org.hibernate.cfg.Configuration</classname> is intended as a startup-time object that will be discarded once a <literal>SessionFactory</literal> is created."
+msgstr "<classname>org.hibernate.cfg.Configuration</classname> å®ä¾è¢«è®¾è®¡æå¯å¨æé´ï¼startup-timeï¼å¯¹è±¡ï¼ä¸æ¦ <literal>SessionFactory</literal> åå»ºå®æå®å°±è¢«ä¸¢å¼äºã"
#. Tag: title
-#: configuration.xml:119
#, no-c-format
msgid "Obtaining a SessionFactory"
-msgstr "è·å¾SessionFactory"
+msgstr "è·å¾ SessionFactory"
#. Tag: para
-#: configuration.xml:121
-#, fuzzy, no-c-format
-msgid ""
-"When all mappings have been parsed by the <classname>org.hibernate.cfg."
-"Configuration</classname>, the application must obtain a factory for "
-"<interfacename>org.hibernate.Session</interfacename> instances. This factory "
-"is intended to be shared by all application threads:"
-msgstr ""
-"å½æææ å°å®ä¹è¢«<literal>Configuration</literal>è§£æå, åºç¨ç¨åºå¿
é¡»è·å¾ä¸ä¸ª"
-"ç¨äºæé <literal>Session</literal>å®ä¾çå·¥å. è¿ä¸ªå·¥åå°è¢«åºç¨ç¨åºçææçº¿ç¨"
-"å
񄧮:"
-
-#. Tag: programlisting
-#: configuration.xml:127
#, no-c-format
-msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
-msgstr ""
+msgid "When all mappings have been parsed by the <classname>org.hibernate.cfg.Configuration</classname>, the application must obtain a factory for <classname>org.hibernate.Session</classname> instances. This factory is intended to be shared by all application threads:"
+msgstr "å½æææ å°å®ä¹è¢« <classname>org.hibernate.cfg.Configuration</classname> è§£æåï¼åºç¨ç¨åºå¿
é¡»è·å¾ä¸ä¸ªç¨äºæé <interfacename>org.hibernate.Session</interfacename> å®ä¾çå·¥åãè¿ä¸ªå·¥åå°è¢«åºç¨ç¨åºçææçº¿ç¨å
±äº«ï¼ "
#. Tag: para
-#: configuration.xml:129
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate does allow your application to instantiate more than one "
-"<interfacename>org.hibernate.SessionFactory</interfacename>. This is useful "
-"if you are using more than one database."
-msgstr ""
-"Hibernateå
è®¸ä½ çåºç¨ç¨åºå建å¤ä¸ª<literal>SessionFactory</literal>å®ä¾. è¿å¯¹ "
-"使ç¨å¤ä¸ªæ°æ®åºçåºç¨æ¥è¯´å¾æç¨."
+#, no-c-format
+msgid "Hibernate does allow your application to instantiate more than one <classname>org.hibernate.SessionFactory</classname>. This is useful if you are using more than one database."
+msgstr "Hibernate å
è®¸ä½ çåºç¨ç¨åºå建å¤ä¸ª <interfacename>org.hibernate.SessionFactory</interfacename> å®ä¾ãè¿å¯¹ 使ç¨å¤ä¸ªæ°æ®åºçåºç¨æ¥è¯´å¾æç¨ã "
#. Tag: title
-#: configuration.xml:138
#, no-c-format
msgid "JDBC connections"
-msgstr "JDBCè¿æ¥"
+msgstr "JDBC è¿æ¥"
#. Tag: para
-#: configuration.xml:140
-#, fuzzy, no-c-format
-msgid ""
-"It is advisable to have the <interfacename>org.hibernate.SessionFactory</"
-"interfacename> create and pool JDBC connections for you. If you take this "
-"approach, opening a <interfacename>org.hibernate.Session</interfacename> is "
-"as simple as:"
-msgstr ""
-"éå¸¸ä½ å¸æ<literal>SessionFactory</literal>æ¥ä¸ºä½ å建åç¼å(pool)JDBCè¿æ¥. å¦"
-"æä½ éç¨è¿ç§æ¹å¼, åªéè¦å¦ä¸ä¾æç¤ºé£æ ·ï¼æå¼ä¸ä¸ª<literal>Session</literal>:"
-
-#. Tag: programlisting
-#: configuration.xml:146
#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessions.openSession(); // open a new Session]]>"
-msgstr ""
+msgid "It is advisable to have the <interfacename>org.hibernate.SessionFactory</interfacename> create and pool JDBC connections for you. If you take this approach, opening a <interfacename>org.hibernate.Session</interfacename> is as simple as:"
+msgstr "éå¸¸ä½ å¸æ <interfacename>org.hibernate.SessionFactory</interfacename> æ¥ä¸ºä½ å建åç¼åï¼poolï¼JDBC è¿æ¥ãå¦æä½ éç¨è¿ç§æ¹å¼ï¼åªéè¦å¦ä¸ä¾æç¤ºé£æ ·ï¼æå¼ä¸ä¸ª <interfacename>org.hibernate.Session</interfacename>ï¼"
#. Tag: para
-#: configuration.xml:148
-#, fuzzy, no-c-format
-msgid ""
-"Once you start a task that requires access to the database, a JDBC "
-"connection will be obtained from the pool."
-msgstr ""
-"䏿¦ä½ éè¦è¿è¡æ°æ®è®¿é®æ¶, å°±ä¼ä»è¿æ¥æ± (connection pool)è·å¾ä¸ä¸ªJDBCè¿æ¥."
+#, no-c-format
+msgid "Once you start a task that requires access to the database, a JDBC connection will be obtained from the pool."
+msgstr "䏿¦ä½ éè¦è¿è¡æ°æ®è®¿é®æ¶ï¼å°±ä¼ä»è¿æ¥æ± ï¼connection poolï¼è·å¾ä¸ä¸ª JDBC è¿æ¥ã "
#. Tag: para
-#: configuration.xml:153
-#, fuzzy, no-c-format
-msgid ""
-"Before you can do this, you first need to pass some JDBC connection "
-"properties to Hibernate. All Hibernate property names and semantics are "
-"defined on the class <classname>org.hibernate.cfg.Environment</classname>. "
-"The most important settings for JDBC connection configuration are outlined "
-"below."
-msgstr ""
-"为äºä½¿è¿ç§æ¹å¼å·¥ä½èµ·æ¥, æä»¬éè¦åHibernateä¼ éä¸äºJDBCè¿æ¥ç屿§. ææ"
-"Hibernate屿§çåååè¯ä¹é½å¨<literal>org.hibernate.cfg.Environment</literal>"
-"ä¸å®ä¹. æä»¬ç°å¨å°æè¿°JDBCè¿æ¥é
ç½®ä¸æéè¦ç设置."
+#, no-c-format
+msgid "Before you can do this, you first need to pass some JDBC connection properties to Hibernate. All Hibernate property names and semantics are defined on the class <classname>org.hibernate.cfg.Environment</classname>. The most important settings for JDBC connection configuration are outlined below."
+msgstr "为äºä½¿è¿ç§æ¹å¼å·¥ä½èµ·æ¥ï¼æä»¬éè¦å Hibernate ä¼ éä¸äº JDBC è¿æ¥ç屿§ãææ Hibernate 屿§çåååè¯ä¹é½å¨ <classname>org.hibernate.cfg.Environment</classname> ä¸å®ä¹ãæä»¬ç°å¨å°æè¿° JDBC è¿æ¥é
ç½®ä¸æéè¦ç设置ã"
#. Tag: para
-#: configuration.xml:159
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate will obtain and pool connections using <classname>java.sql."
-"DriverManager</classname> if you set the following properties:"
-msgstr ""
-"å¦æä½ è®¾ç½®å¦ä¸å±æ§ï¼Hibernateå°ä½¿ç¨<literal>java.sql.DriverManager</literal>"
-"æ¥è·å¾(åç¼å)JDBCè¿æ¥ :"
+#, no-c-format
+msgid "Hibernate will obtain and pool connections using <classname>java.sql.DriverManager</classname> if you set the following properties:"
+msgstr "å¦æä½ è®¾ç½®å¦ä¸å±æ§ï¼Hibernate å°ä½¿ç¨ <classname>java.sql.DriverManager</classname> æ¥è·å¾ï¼åç¼åï¼JDBC è¿æ¥ï¼"
#. Tag: title
-#: configuration.xml:165
#, no-c-format
msgid "Hibernate JDBC Properties"
-msgstr "Hibernate JDBC屿§"
+msgstr "Hibernate JDBC 屿§"
-#. Tag: entry
-#: configuration.xml:171 configuration.xml:257 configuration.xml:353
-#: configuration.xml:546 configuration.xml:741 configuration.xml:848
-#: configuration.xml:936
+#. Tag: para
#, no-c-format
msgid "Property name"
msgstr "屿§å"
-#. Tag: entry
-#: configuration.xml:172 configuration.xml:258 configuration.xml:354
-#: configuration.xml:547 configuration.xml:742 configuration.xml:849
-#: configuration.xml:937
+#. Tag: para
#, no-c-format
msgid "Purpose"
msgstr "ç¨é"
-#. Tag: property
-#: configuration.xml:178
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.driver_class"
-msgstr "hibernate.connection.driver_class"
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr "<property>hibernate.connection.driver_class</property>"
-#. Tag: emphasis
-#: configuration.xml:181
+#. Tag: para
#, no-c-format
-msgid "JDBC driver class"
-msgstr "jdbc驱å¨ç±»"
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr "<emphasis>JDBC 驱å¨ç±»</emphasis>"
-#. Tag: property
-#: configuration.xml:186
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.url"
-msgstr "hibernate.connection.url"
+msgid "<property>hibernate.connection.url</property>"
+msgstr "<property>hibernate.connection.url</property>"
-#. Tag: emphasis
-#: configuration.xml:189
+#. Tag: para
#, no-c-format
-msgid "JDBC URL"
-msgstr "jdbc URL"
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr "<emphasis>JDBC URL</emphasis>"
-#. Tag: property
-#: configuration.xml:194 configuration.xml:288
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.username"
-msgstr "hibernate.connection.username"
+msgid "<property>hibernate.connection.username</property>"
+msgstr "<property>hibernate.connection.username</property>"
-#. Tag: emphasis
-#: configuration.xml:197
+#. Tag: para
#, no-c-format
-msgid "database user"
-msgstr "æ°æ®åºç¨æ·"
+msgid "<emphasis>database user</emphasis>"
+msgstr "<emphasis>æ°æ®åºç¨æ·</emphasis>ï¼å¯éï¼ "
-#. Tag: property
-#: configuration.xml:202 configuration.xml:296
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.password"
-msgstr "hibernate.connection.password"
+msgid "<property>hibernate.connection.password</property>"
+msgstr "<property>hibernate.connection.password</property>"
-#. Tag: emphasis
-#: configuration.xml:205
+#. Tag: para
#, no-c-format
-msgid "database user password"
-msgstr "æ°æ®åºç¨æ·å¯ç "
+msgid "<emphasis>database user password</emphasis>"
+msgstr "<emphasis>æ°æ®åºå¯ç </emphasis>ï¼å¯éï¼ "
-#. Tag: property
-#: configuration.xml:210
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.pool_size"
-msgstr "hibernate.connection.pool_size"
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr "<property>hibernate.connection.pool_size</property>"
-#. Tag: emphasis
-#: configuration.xml:213
+#. Tag: para
#, no-c-format
-msgid "maximum number of pooled connections"
-msgstr "è¿æ¥æ± 容éä¸éæ°ç®"
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr "<emphasis>è¿æ¥æ± 容éä¸éæ°ç®</emphasis>"
#. Tag: para
-#: configuration.xml:220
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate's own connection pooling algorithm is, however, quite rudimentary. "
-"It is intended to help you get started and is <emphasis>not intended for use "
-"in a production system</emphasis>, or even for performance testing. You "
-"should use a third party pool for best performance and stability. Just "
-"replace the <property>hibernate.connection.pool_size</property> property "
-"with connection pool specific settings. This will turn off Hibernate's "
-"internal pool. For example, you might like to use c3p0."
-msgstr ""
-"ä½Hibernateèªå¸¦çè¿æ¥æ± ç®æ³ç¸å½ä¸æç. å®åªæ¯ä¸ºäºè®©ä½ å¿«äºä¸æ<emphasis>ï¼å¹¶ä¸"
-"éåç¨äºäº§åç³»ç»</emphasis>ææ§è½æµè¯ä¸ã åºäºæä½³æ§è½åç¨³å®æ§èèä½ åºè¯¥ä½¿ç¨"
-"ç¬¬ä¸æ¹çè¿æ¥æ± ãåªéè¦ç¨ç¹å®è¿æ¥æ± çè®¾ç½®æ¿æ¢ <literal>hibernate.connection."
-"pool_size</literal>å³å¯ãè¿å°å
³éHibernateèªå¸¦çè¿æ¥æ± . ä¾å¦, ä½ å¯è½ä¼æ³ç¨"
-"C3P0."
+#, no-c-format
+msgid "Hibernate's own connection pooling algorithm is, however, quite rudimentary. It is intended to help you get started and is <emphasis>not intended for use in a production system</emphasis>, or even for performance testing. You should use a third party pool for best performance and stability. Just replace the <property>hibernate.connection.pool_size</property> property with connection pool specific settings. This will turn off Hibernate's internal pool. For example, you might like to use c3p0."
+msgstr "ä½ Hibernate èªå¸¦çè¿æ¥æ± ç®æ³ç¸å½ä¸æçãå®åªæ¯ä¸ºäºè®©ä½ å¿«äºä¸æ<emphasis>ï¼å¹¶ä¸éåç¨äºäº§åç³»ç»</emphasis>ææ§è½æµè¯ä¸ã åºäºæä½³æ§è½åç¨³å®æ§èèä½ åºè¯¥ä½¿ç¨ç¬¬ä¸æ¹çè¿æ¥æ± ãåªéè¦ç¨ç¹å®è¿æ¥æ± çè®¾ç½®æ¿æ¢ <literal>hibernate.connection.pool_size</literal> å³å¯ãè¿å°å
³é Hibernate èªå¸¦çè¿æ¥æ± ãä¾å¦ï¼ä½ å¯è½ä¼æ³ç¨ C3P0ã "
#. Tag: para
-#: configuration.xml:230
-#, fuzzy, no-c-format
-msgid ""
-"C3P0 is an open source JDBC connection pool distributed along with Hibernate "
-"in the <filename>lib</filename> directory. Hibernate will use its "
-"<classname>org.hibernate.connection.C3P0ConnectionProvider</classname> for "
-"connection pooling if you set <property>hibernate.c3p0.*</property> "
-"properties. If you would like to use Proxool, refer to the packaged "
-"<filename>hibernate.properties</filename> and the Hibernate web site for "
-"more information."
-msgstr ""
-"C3P0æ¯ä¸ä¸ªéHibernateä¸åååç弿ºçJDBCè¿æ¥æ± , å®ä½äº<literal>lib</literal>"
-"ç®å½ä¸ã å¦æä½ è®¾ç½®äº<literal>hibernate.c3p0.*</literal>ç¸å
³ç屿§, Hibernate"
-"å°ä½¿ç¨ <literal>C3P0ConnectionProvider</literal>æ¥ç¼åJDBCè¿æ¥. å¦æä½ æ´åæ"
-"使ç¨Proxool, 请åèå è¡å
ä¸ç<literal>hibernate.properties</literal>å¹¶å°"
-"Hibernateç½ç«è·åæ´å¤çä¿¡æ¯."
+#, no-c-format
+msgid "C3P0 is an open source JDBC connection pool distributed along with Hibernate in the <filename>lib</filename> directory. Hibernate will use its <classname>org.hibernate.connection.C3P0ConnectionProvider</classname> for connection pooling if you set <property>hibernate.c3p0.*</property> properties. If you would like to use Proxool, refer to the packaged <filename>hibernate.properties</filename> and the Hibernate web site for more information."
+msgstr "C3P0 æ¯ä¸ä¸ªé Hibernate ä¸åååç弿ºç JDBC è¿æ¥æ± ï¼å®ä½äº <literal>lib</literal>ç®å½ä¸ã å¦æä½ è®¾ç½®äº <literal>hibernate.c3p0.*</literal> ç¸å
³ç屿§ï¼Hibernateå°ä½¿ç¨ <literal>C3P0ConnectionProvider</literal> æ¥ç¼å JDBC è¿æ¥ãå¦æä½ æ´åæä½¿ç¨ Proxoolï¼è¯·åèåè¡å
ä¸ç <literal>hibernate.properties</literal> å¹¶å° Hibernate ç½ç«è·åæ´å¤çä¿¡æ¯ã "
#. Tag: para
-#: configuration.xml:238
-#, fuzzy, no-c-format
-msgid ""
-"The following is an example <filename>hibernate.properties</filename> file "
-"for c3p0:"
-msgstr "è¿æ¯ä¸ä¸ªä½¿ç¨C3P0ç<literal>hibernate.properties</literal>æ ·ä¾æä»¶:"
-
-#. Tag: programlisting
-#: configuration.xml:242
#, no-c-format
-msgid ""
-"<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
-"hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
-"hibernate.connection.username = myuser\n"
-"hibernate.connection.password = secret\n"
-"hibernate.c3p0.min_size=5\n"
-"hibernate.c3p0.max_size=20\n"
-"hibernate.c3p0.timeout=1800\n"
-"hibernate.c3p0.max_statements=50\n"
-"hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
-msgstr ""
+msgid "The following is an example <filename>hibernate.properties</filename> file for c3p0:"
+msgstr "è¿æ¯ä¸ä¸ªä½¿ç¨ C3P0 ç <literal>hibernate.properties</literal> æ ·ä¾æä»¶ï¼ "
#. Tag: para
-#: configuration.xml:244
-#, fuzzy, no-c-format
-msgid ""
-"For use inside an application server, you should almost always configure "
-"Hibernate to obtain connections from an application server "
-"<interfacename>javax.sql.Datasource</interfacename> registered in JNDI. You "
-"will need to set at least one of the following properties:"
-msgstr ""
-"为äºè½å¨åºç¨ç¨åºæå¡å¨(application server)ä¸ä½¿ç¨Hibernate, åºå½æ»æ¯å°"
-"Hibernate é
ç½®æä»æ³¨åå¨JNDIä¸ç<literal>Datasource</literal>å¤è·å¾è¿æ¥ï¼ä½ è³"
-"å°éè¦è®¾ç½®ä¸å屿§ä¸çä¸ä¸ª:"
+#, no-c-format
+msgid "For use inside an application server, you should almost always configure Hibernate to obtain connections from an application server <interfacename>javax.sql.Datasource</interfacename> registered in JNDI. You will need to set at least one of the following properties:"
+msgstr "为äºè½å¨åºç¨ç¨åºæå¡å¨ï¼application serverï¼ä¸ä½¿ç¨ Hibernateï¼åºå½æ»æ¯å° Hibernate é
ç½®æä»æ³¨åå¨ JNDI ä¸ç <literal>Datasource</literal> å¤è·å¾è¿æ¥ï¼ä½ è³å°éè¦è®¾ç½®ä¸å屿§ä¸çä¸ä¸ªï¼ "
#. Tag: title
-#: configuration.xml:251
#, no-c-format
msgid "Hibernate Datasource Properties"
-msgstr "Hibernateæ°æ®æºå±æ§"
+msgstr "Hibernate æ°æ®æºå±æ§"
-#. Tag: property
-#: configuration.xml:264
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.datasource"
-msgstr "hibernate.connection.datasource"
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr "<property>hibernate.connection.datasource</property>"
-#. Tag: emphasis
-#: configuration.xml:267
+#. Tag: para
#, no-c-format
-msgid "datasource JNDI name"
-msgstr "æ°æ®æºJNDIåå"
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr "<emphasis>æ°æ®åºç¨æ·</emphasis>ï¼å¯éï¼ "
-#. Tag: property
-#: configuration.xml:272
+#. Tag: para
#, no-c-format
-msgid "hibernate.jndi.url"
-msgstr "hibernate.jndi.url"
+msgid "<property>hibernate.jndi.url</property>"
+msgstr "<property>hibernate.jndi.url</property>"
-#. Tag: entry
-#: configuration.xml:274
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
-msgstr "JNDIæä¾è
çURL"
+msgstr "<emphasis>JNDI æä¾è
ç URL</emphasis>ï¼å¯éï¼"
-#. Tag: property
-#: configuration.xml:280
+#. Tag: para
#, no-c-format
-msgid "hibernate.jndi.class"
-msgstr "hibernate.jndi.class"
+msgid "<property>hibernate.jndi.class</property>"
+msgstr "<property>hibernate.jndi.class</property>"
-#. Tag: entry
-#: configuration.xml:282
+#. Tag: para
#, no-c-format
-msgid ""
-"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
-"emphasis> (optional)"
-msgstr ""
+msgid "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></emphasis> (optional)"
+msgstr "<emphasis>JNDI <literal>InitialContextFactory</literal> ç±»</emphasis>ï¼å¯éï¼"
-#. Tag: entry
-#: configuration.xml:290
+#. Tag: para
#, no-c-format
msgid "<emphasis>database user</emphasis> (optional)"
-msgstr ""
+msgstr "<emphasis>æ°æ®åºç¨æ·</emphasis>ï¼å¯éï¼"
-#. Tag: entry
-#: configuration.xml:298
+#. Tag: para
#, no-c-format
msgid "<emphasis>database user password</emphasis> (optional)"
-msgstr ""
+msgstr "<emphasis>æ°æ®åºå¯ç </emphasis>ï¼å¯éï¼"
#. Tag: para
-#: configuration.xml:306
-#, fuzzy, no-c-format
-msgid ""
-"Here is an example <filename>hibernate.properties</filename> file for an "
-"application server provided JNDI datasource:"
-msgstr ""
-"è¿æ¯ä¸ä¸ªä½¿ç¨åºç¨ç¨åºæå¡å¨æä¾çJNDIæ°æ®æºç<literal>hibernate.properties</"
-"literal>æ ·ä¾æä»¶:"
-
-#. Tag: programlisting
-#: configuration.xml:311
#, no-c-format
-msgid ""
-"<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
-"hibernate.transaction.factory_class = \\\n"
-" org.hibernate.transaction.JTATransactionFactory\n"
-"hibernate.transaction.manager_lookup_class = \\\n"
-" org.hibernate.transaction.JBossTransactionManagerLookup\n"
-"hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
-msgstr ""
+msgid "Here is an example <filename>hibernate.properties</filename> file for an application server provided JNDI datasource:"
+msgstr "è¿æ¯ä¸ä¸ªä½¿ç¨åºç¨ç¨åºæå¡å¨æä¾ç JNDI æ°æ®æºç <literal>hibernate.properties</literal> æ ·ä¾æä»¶ï¼ "
#. Tag: para
-#: configuration.xml:313
#, no-c-format
-msgid ""
-"JDBC connections obtained from a JNDI datasource will automatically "
-"participate in the container-managed transactions of the application server."
-msgstr ""
-"ä»JNDIæ°æ®æºè·å¾çJDBCè¿æ¥å°èªå¨åä¸å°åºç¨ç¨åºæå¡å¨ä¸å®¹å¨ç®¡ççäºå¡"
-"(container-managed transactions)ä¸å»."
+msgid "JDBC connections obtained from a JNDI datasource will automatically participate in the container-managed transactions of the application server."
+msgstr "ä» JNDI æ°æ®æºè·å¾ç JDBC è¿æ¥å°èªå¨åä¸å°åºç¨ç¨åºæå¡å¨ä¸å®¹å¨ç®¡ççäºå¡ï¼container-managed transactionsï¼ä¸å»ã"
#. Tag: para
-#: configuration.xml:318
-#, fuzzy, no-c-format
-msgid ""
-"Arbitrary connection properties can be given by prepending "
-"\"<literal>hibernate.connection</literal>\" to the connection property name. "
-"For example, you can specify a <property>charSet</property> connection "
-"property using <property>hibernate.connection.charSet</property>."
-msgstr ""
-"ä»»ä½è¿æ¥(connection)屿§ç屿§åé½è¦ä»¥\"<literal>hibernate.connnection</"
-"literal>\"å¼å¤´. ä¾å¦, ä½ å¯è½ä¼ä½¿ç¨<literal>hibernate.connection.charSet</"
-"literal>æ¥æå®å符é<literal>charSet</literal>."
+#, no-c-format
+msgid "Arbitrary connection properties can be given by prepending \"<literal>hibernate.connection</literal>\" to the connection property name. For example, you can specify a <property>charSet</property> connection property using <property>hibernate.connection.charSet</property>."
+msgstr "ä»»ä½è¿æ¥ï¼connectionï¼å±æ§ç屿§åé½è¦ä»¥ \"<literal>hibernate.connnection</literal>\" å¼å¤´ãä¾å¦ï¼ä½ å¯è½ä¼ä½¿ç¨ <literal>hibernate.connection.charSet</literal> æ¥æå® <property>charSet</property> è¿æ¥å±æ§ã "
#. Tag: para
-#: configuration.xml:324
-#, fuzzy, no-c-format
-msgid ""
-"You can define your own plugin strategy for obtaining JDBC connections by "
-"implementing the interface <interfacename>org.hibernate.connection."
-"ConnectionProvider</interfacename>, and specifying your custom "
-"implementation via the <property>hibernate.connection.provider_class</"
-"property> property."
-msgstr ""
-"éè¿å®ç°<literal>org.hibernate.connection.ConnectionProvider</literal>æ¥å£ï¼"
-"ä½ å¯ä»¥å®ä¹å±äº ä½ èªå·±çè·å¾JDBCè¿æ¥çæä»¶çç¥ãéè¿è®¾ç½®<literal>hibernate."
-"connection.provider_class</literal>ï¼ ä½ å¯ä»¥éæ©ä¸ä¸ªèªå®ä¹çå®ç°."
+#, no-c-format
+msgid "You can define your own plugin strategy for obtaining JDBC connections by implementing the interface <interfacename>org.hibernate.connection.ConnectionProvider</interfacename>, and specifying your custom implementation via the <property>hibernate.connection.provider_class</property> property."
+msgstr "éè¿å®ç° <literal>org.hibernate.connection.ConnectionProvider</literal> æ¥å£ï¼ä½ å¯ä»¥å®ä¹å±äºä½ èªå·±çè·å¾JDBCè¿æ¥çæä»¶çç¥ãéè¿è®¾ç½®<literal>hibernate.connection.provider_class</literal>ï¼ä½ å¯ä»¥éæ©ä¸ä¸ªèªå®ä¹çå®ç°ã "
#. Tag: title
-#: configuration.xml:333
#, no-c-format
msgid "Optional configuration properties"
msgstr "å¯éçé
ç½®å±æ§"
#. Tag: para
-#: configuration.xml:335
-#, fuzzy, no-c-format
-msgid ""
-"There are a number of other properties that control the behavior of "
-"Hibernate at runtime. All are optional and have reasonable default values."
-msgstr ""
-"æå¤§é屿§è½ç¨æ¥æ§å¶Hibernateå¨è¿è¡æçè¡ä¸º. å®ä»¬é½æ¯å¯éç, å¹¶æ¥æéå½çé»è®¤"
-"å¼."
+#, no-c-format
+msgid "There are a number of other properties that control the behavior of Hibernate at runtime. All are optional and have reasonable default values."
+msgstr "æå¤§é屿§è½ç¨æ¥æ§å¶ Hibernate å¨è¿è¡æçè¡ä¸ºãå®ä»¬é½æ¯å¯éçï¼å¹¶æ¥æéå½çé»è®¤å¼ã "
-#. Tag: warning
-#: configuration.xml:341
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Some of these properties are \"system-level\" only.</emphasis> "
-"System-level properties can be set only via <literal>java -Dproperty=value</"
-"literal> or <filename>hibernate.properties</filename>. They "
-"<emphasis>cannot</emphasis> be set by the other techniques described above."
-msgstr ""
-"<emphasis>è¦å: å
¶ä¸ä¸äºå±æ§æ¯\"ç³»ç»çº§(system-level)ç\".</emphasis> ç³»ç»çº§å±"
-"æ§åªè½éè¿<literal>java -Dproperty=value</literal>æ <literal>hibernate."
-"properties</literal>æ¥è®¾ç½®, è<emphasis>ä¸è½</emphasis>ç¨ä¸é¢æè¿°çå
¶ä»æ¹æ³æ¥"
-"设置."
+#. Tag: para
+#, no-c-format
+msgid "Some of these properties are system-level only. System-level properties can be set only via <code>java -Dproperty=value</code> or <filename>hibernate.properties</filename>. They <emphasis>cannot</emphasis> be set by the other techniques described above."
+msgstr "è¦åï¼ å
¶ä¸ä¸äºå±æ§æ¯\"ç³»ç»çº§ï¼system-levelï¼ç\"ãç³»ç»çº§å±æ§åªè½éè¿<literal>java -Dproperty=value</literal> æ <literal>hibernate.properties</literal> æ¥è®¾ç½®ï¼è<emphasis>ä¸è½</emphasis>ç¨ä¸é¢æè¿°çå
¶ä»æ¹æ³æ¥è®¾ç½®ã "
#. Tag: title
-#: configuration.xml:347
#, no-c-format
msgid "Hibernate Configuration Properties"
-msgstr "Hibernateé
ç½®å±æ§"
+msgstr "Hibernate é
ç½®å±æ§"
-#. Tag: property
-#: configuration.xml:360
+#. Tag: para
#, no-c-format
-msgid "hibernate.dialect"
-msgstr "hibernate.dialect"
+msgid "<property>hibernate.dialect</property>"
+msgstr "<property>hibernate.dialect</property>"
-#. Tag: entry
-#: configuration.xml:362
-#, fuzzy, no-c-format
-msgid ""
-"The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</"
-"classname> which allows Hibernate to generate SQL optimized for a particular "
-"relational database."
-msgstr ""
-"ä¸ä¸ªHibernate <placeholder-1/>ç±»åå
许Hibernateé对ç¹å®çå
³ç³»æ°æ®åºçæä¼åç"
-"SQL. <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</classname> which allows Hibernate to generate SQL optimized for a particular relational database."
+msgstr "å
许 Hibernate é对ç¹å®çå
³ç³»æ°æ®åºçæä¼åç SQL ç <classname>org.hibernate.dialect.Dialect</classname> çç±»åã"
#. Tag: para
-#: configuration.xml:365
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of."
-"Dialect</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of.Dialect</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>full.classname.of.Dialect</literal> "
#. Tag: para
-#: configuration.xml:369
#, no-c-format
-msgid ""
-"In most cases Hibernate will actually be able to choose the correct "
-"<classname>org.hibernate.dialect.Dialect</classname> implementation based on "
-"the <literal>JDBC metadata</literal> returned by the JDBC driver."
-msgstr ""
+msgid "In most cases Hibernate will actually be able to choose the correct <classname>org.hibernate.dialect.Dialect</classname> implementation based on the <literal>JDBC metadata</literal> returned by the JDBC driver."
+msgstr "å¨å¤§å¤æ°æ
åµä¸ï¼Hibernate å¯ä»¥æ ¹æ® JDBC 驱å¨è¿åç <literal>JDBC metadata</literal> éæ©æ£ç¡®ç <classname>org.hibernate.dialect.Dialect</classname> å®ç°ã"
-#. Tag: property
-#: configuration.xml:378
+#. Tag: para
#, no-c-format
-msgid "hibernate.show_sql"
-msgstr "hibernate.show_sql"
+msgid "<property>hibernate.show_sql</property>"
+msgstr "<property>hibernate.show_sql</property>"
-#. Tag: entry
-#: configuration.xml:380
-#, fuzzy, no-c-format
-msgid ""
-"Write all SQL statements to console. This is an alternative to setting the "
-"log category <literal>org.hibernate.SQL</literal> to <literal>debug</"
-"literal>."
-msgstr ""
-"è¾åºææSQLè¯å¥å°æ§å¶å°. æä¸ä¸ªå¦å¤çéæ©æ¯æ<placeholder-1/>è¿ä¸ªlog category"
-"设为<placeholder-2/>ã <placeholder-3/>"
+#. Tag: para
+#, no-c-format
+msgid "Write all SQL statements to console. This is an alternative to setting the log category <literal>org.hibernate.SQL</literal> to <literal>debug</literal>."
+msgstr "è¾åºææ SQL è¯å¥å°æ§å¶å°ãæä¸ä¸ªå¦å¤çéæ©æ¯æ <literal>org.hibernate.SQL</literal> è¿ä¸ª log category设为 <literal>debug</literal>ã"
#. Tag: para
-#: configuration.xml:384 configuration.xml:396 configuration.xml:490
-#: configuration.xml:503 configuration.xml:516 configuration.xml:529
-#: configuration.xml:581 configuration.xml:608 configuration.xml:621
-#: configuration.xml:676 configuration.xml:904 configuration.xml:919
-#: configuration.xml:1009
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | "
-"<literal>false</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | <literal>false</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>true</literal> | <literal>false</literal> "
-#. Tag: property
-#: configuration.xml:392
+#. Tag: para
#, no-c-format
-msgid "hibernate.format_sql"
-msgstr "hibernate.format_sql"
+msgid "<property>hibernate.format_sql</property>"
+msgstr "<property>hibernate.format_sql</property>"
-#. Tag: entry
-#: configuration.xml:394
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Pretty print the SQL in the log and console."
-msgstr "å¨logåconsole䏿å°åºæ´æ¼äº®çSQLã <placeholder-1/>"
+msgstr "å¨ log å console 䏿å°åºæ´æ¼äº®ç SQLã"
-#. Tag: property
-#: configuration.xml:404
+#. Tag: para
#, no-c-format
-msgid "hibernate.default_schema"
-msgstr "hibernate.default_schema"
+msgid "<property>hibernate.default_schema</property>"
+msgstr "<property>hibernate.default_schema</property>"
-#. Tag: entry
-#: configuration.xml:406
-#, fuzzy, no-c-format
-msgid ""
-"Qualify unqualified table names with the given schema/tablespace in "
-"generated SQL."
-msgstr ""
-"å¨çæçSQLä¸, å°ç»å®çschema/tablespaceéå äºéå
¨éå®åç表åä¸. "
-"<placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Qualify unqualified table names with the given schema/tablespace in generated SQL."
+msgstr "å¨çæç SQL ä¸ï¼å°ç»å®ç schema/tablespace éå äºéå
¨éå®åç表åä¸ã "
#. Tag: para
-#: configuration.xml:409
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>SCHEMA_NAME</literal> "
-#. Tag: property
-#: configuration.xml:417
+#. Tag: para
#, no-c-format
-msgid "hibernate.default_catalog"
-msgstr "hibernate.default_catalog"
+msgid "<property>hibernate.default_catalog</property>"
+msgstr "<property>hibernate.default_catalog</property>"
-#. Tag: entry
-#: configuration.xml:419
-#, fuzzy, no-c-format
-msgid ""
-"Qualifies unqualified table names with the given catalog in generated SQL."
-msgstr ""
-"å¨çæçSQLä¸, å°ç»å®çcatalogéå äºéå
¨éå®åç表åä¸. <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Qualifies unqualified table names with the given catalog in generated SQL."
+msgstr "å¨çæç SQL ä¸ï¼å°ç»å®ç catalog éå äºéå
¨éå®åç表åä¸ã "
#. Tag: para
-#: configuration.xml:422
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>CATALOG_NAME</literal> "
-#. Tag: property
-#: configuration.xml:430
+#. Tag: para
#, no-c-format
-msgid "hibernate.session_factory_name"
-msgstr "hibernate.session_factory_name"
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr "<property>hibernate.session_factory_name</property>"
-#. Tag: entry
-#: configuration.xml:432
-#, fuzzy, no-c-format
-msgid ""
-"The <interfacename>org.hibernate.SessionFactory</interfacename> will be "
-"automatically bound to this name in JNDI after it has been created."
-msgstr ""
-"<placeholder-1/>å建åï¼å°èªå¨ä½¿ç¨è¿ä¸ªååç»å®å°JNDIä¸. <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "The <interfacename>org.hibernate.SessionFactory</interfacename> will be automatically bound to this name in JNDI after it has been created."
+msgstr "<interfacename>org.hibernate.SessionFactory</interfacename> å建åï¼å°èªå¨ä½¿ç¨è¿ä¸ªååç»å®å° JNDI ä¸ã"
#. Tag: para
-#: configuration.xml:435 configuration.xml:875
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
-"literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>jndi/composite/name</literal> "
-#. Tag: property
-#: configuration.xml:443
+#. Tag: para
#, no-c-format
-msgid "hibernate.max_fetch_depth"
-msgstr "hibernate.max_fetch_depth"
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr "<property>hibernate.max_fetch_depth</property>"
-#. Tag: entry
-#: configuration.xml:445
-#, fuzzy, no-c-format
-msgid ""
-"Sets a maximum \"depth\" for the outer join fetch tree for single-ended "
-"associations (one-to-one, many-to-one). A <literal>0</literal> disables "
-"default outer join fetching."
-msgstr ""
-"为ååå
³è(ä¸å¯¹ä¸, å¤å¯¹ä¸)çå¤è¿æ¥æåï¼outer join fetchï¼æ 设置æå¤§æ·±åº¦. å¼"
-"为<placeholder-1/>æå³çå°å
³éé»è®¤çå¤è¿æ¥æå. <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Sets a maximum \"depth\" for the outer join fetch tree for single-ended associations (one-to-one, many-to-one). A <literal>0</literal> disables default outer join fetching."
+msgstr "为ååå
³èï¼ä¸å¯¹ä¸ï¼å¤å¯¹ä¸ï¼çå¤è¿æ¥æåï¼outer join fetchï¼æ 设置æå¤§æ·±åº¦ãå¼ä¸º <literal>0</literal> æå³çå°å
³éé»è®¤çå¤è¿æ¥æåã "
#. Tag: para
-#: configuration.xml:449
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
-"<literal>0</literal> and <literal>3</literal>"
-msgstr ""
-"<emphasis role=\"strong\">åå¼</emphasis> 建议å¨<literal>0</literal>å°"
-"<literal>3</literal>ä¹é´åå¼"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>0</literal> and <literal>3</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis> å»ºè®®å¨ <literal>0</literal> å° <literal>3</literal> ä¹é´åå¼ "
-#. Tag: property
-#: configuration.xml:458
+#. Tag: para
#, no-c-format
-msgid "hibernate.default_batch_fetch_size"
-msgstr "hibernate.default_batch_fetch_size"
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr "<property>hibernate.default_batch_fetch_size</property>"
-#. Tag: entry
-#: configuration.xml:460
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Sets a default size for Hibernate batch fetching of associations."
-msgstr "为Hibernateå
³èçæ¹éæå设置é»è®¤æ°é. <placeholder-1/>"
+msgstr "为 Hibernate å
³èçæ¹éæå设置é»è®¤æ°éã "
#. Tag: para
-#: configuration.xml:462
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</"
-"literal>, <literal>8</literal>, <literal>16</literal>"
-msgstr ""
-"<emphasis role=\"strong\">åå¼</emphasis> 建议çåå¼ä¸º<literal>4</literal>, "
-"<literal>8</literal>, å<literal>16</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</literal>, <literal>8</literal>, <literal>16</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis>建议çåå¼ä¸º <literal>4</literal>ï¼<literal>8</literal>ï¼å <literal>16</literal> "
-#. Tag: property
-#: configuration.xml:471
+#. Tag: para
#, no-c-format
-msgid "hibernate.default_entity_mode"
-msgstr "hibernate.default_entity_mode"
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr "<property>hibernate.default_entity_mode</property>"
-#. Tag: entry
-#: configuration.xml:473
-#, fuzzy, no-c-format
-msgid ""
-"Sets a default mode for entity representation for all sessions opened from "
-"this <literal>SessionFactory</literal>"
-msgstr ""
-"为ç±è¿ä¸ª<placeholder-1/>æå¼çææSessionæå®é»è®¤çå®ä½è¡¨ç°æ¨¡å¼. "
-"<placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Sets a default mode for entity representation for all sessions opened from this <literal>SessionFactory</literal>."
+msgstr "为ç±è¿ä¸ª <literal>SessionFactory</literal> æå¼çææ Session æå®é»è®¤çå®ä½è¡¨ç°æ¨¡å¼ã "
#. Tag: para
-#: configuration.xml:476
#, no-c-format
-msgid ""
-"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
-"literal>"
-msgstr ""
-"<emphasis role=\"strong\">åå¼</emphasis><literal>dynamic-map</literal>, "
-"<literal>dom4j</literal>, <literal>pojo</literal>"
+msgid "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</literal>"
+msgstr "<emphasis role=\"strong\">åå¼</emphasis><literal>dynamic-map</literal>ï¼<literal>dom4j</literal>ï¼<literal>pojo</literal>"
-#. Tag: property
-#: configuration.xml:484
+#. Tag: para
#, no-c-format
-msgid "hibernate.order_updates"
-msgstr "hibernate.order_updates"
+msgid "<property>hibernate.order_updates</property>"
+msgstr "<property>hibernate.order_updates</property>"
-#. Tag: entry
-#: configuration.xml:486
-#, fuzzy, no-c-format
-msgid ""
-"Forces Hibernate to order SQL updates by the primary key value of the items "
-"being updated. This will result in fewer transaction deadlocks in highly "
-"concurrent systems."
-msgstr ""
-"强å¶Hibernateæç
§è¢«æ´æ°æ°æ®ç主é®ï¼ä¸ºSQLæ´æ°æåºãè¿ä¹åå°åå°å¨é«å¹¶åç³»ç»ä¸"
-"äºå¡çæ»éã <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Forces Hibernate to order SQL updates by the primary key value of the items being updated. This will result in fewer transaction deadlocks in highly concurrent systems."
+msgstr "å¼ºå¶ Hibernate æç
§è¢«æ´æ°æ°æ®ç主é®ï¼ä¸º SQL æ´æ°æåºãè¿ä¹åå°åå°å¨é«å¹¶åç³»ç»ä¸äºå¡çæ»éã"
-#. Tag: property
-#: configuration.xml:498
+#. Tag: para
#, no-c-format
-msgid "hibernate.generate_statistics"
-msgstr "hibernate.generate_statistics"
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr "<property>hibernate.generate_statistics</property>"
-#. Tag: entry
-#: configuration.xml:500
-#, fuzzy, no-c-format
-msgid ""
-"If enabled, Hibernate will collect statistics useful for performance tuning."
-msgstr "妿å¼å¯, Hibernateå°æ¶éæå©äºæ§è½è°èçç»è®¡æ°æ®. <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr "妿å¼å¯ï¼Hibernate å°æ¶éæå©äºæ§è½è°èçç»è®¡æ°æ®ã"
-#. Tag: property
-#: configuration.xml:511
+#. Tag: para
#, no-c-format
-msgid "hibernate.use_identifier_rollback"
-msgstr "hibernate.use_identifer_rollback"
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr "<property>hibernate.use_identifier_rollback</property>"
-#. Tag: entry
-#: configuration.xml:513
-#, fuzzy, no-c-format
-msgid ""
-"If enabled, generated identifier properties will be reset to default values "
-"when objects are deleted."
-msgstr ""
-"妿å¼å¯, å¨å¯¹è±¡è¢«å 餿¶çæçæ è¯å±æ§å°è¢«é设为é»è®¤å¼. <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted."
+msgstr "妿å¼å¯ï¼å¨å¯¹è±¡è¢«å 餿¶çæçæ è¯å±æ§å°è¢«é设为é»è®¤å¼ã"
-#. Tag: property
-#: configuration.xml:524
+#. Tag: para
#, no-c-format
-msgid "hibernate.use_sql_comments"
-msgstr "hibernate.use_sql_comments"
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr "<property>hibernate.use_sql_comments</property>"
-#. Tag: entry
-#: configuration.xml:526
-#, fuzzy, no-c-format
-msgid ""
-"If turned on, Hibernate will generate comments inside the SQL, for easier "
-"debugging, defaults to <literal>false</literal>."
-msgstr ""
-"妿å¼å¯, Hibernateå°å¨SQLä¸çææå©äºè°è¯ç注éä¿¡æ¯, é»è®¤å¼ä¸º<placeholder-1/"
-">. <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "If turned on, Hibernate will generate comments inside the SQL, for easier debugging, defaults to <literal>false</literal>."
+msgstr "妿å¼å¯ï¼Hibernate å°å¨ SQL ä¸çææå©äºè°è¯ç注éä¿¡æ¯ï¼é»è®¤å¼ä¸º <literal>false</literal>ã"
#. Tag: title
-#: configuration.xml:540
#, no-c-format
msgid "Hibernate JDBC and Connection Properties"
-msgstr "Hibernate JDBCåè¿æ¥(connection)屿§"
+msgstr "Hibernate JDBC åè¿æ¥ï¼connectionï¼å±æ§"
-#. Tag: property
-#: configuration.xml:553
+#. Tag: para
#, no-c-format
-msgid "hibernate.jdbc.fetch_size"
-msgstr "hibernate.jdbc.fetch_size"
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr "<property>hibernate.jdbc.fetch_size</property>"
-#. Tag: entry
-#: configuration.xml:555
-#, fuzzy, no-c-format
-msgid ""
-"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
-"setFetchSize()</literal>)."
-msgstr "éé¶å¼ï¼æå®JDBCæåæ°éçå¤§å° (è°ç¨<placeholder-1/>)."
+#. Tag: para
+#, no-c-format
+msgid "A non-zero value determines the JDBC fetch size (calls <literal>Statement.setFetchSize()</literal>)."
+msgstr "éé¶å¼ï¼æå® JDBC æåæ°éç大å°ï¼è°ç¨ <literal>Statement.setFetchSize()</literal>ï¼ã"
-#. Tag: property
-#: configuration.xml:562
+#. Tag: para
#, no-c-format
-msgid "hibernate.jdbc.batch_size"
-msgstr "hibernate.jdbc.batch_size"
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr "<property>hibernate.jdbc.batch_size</property>"
-#. Tag: entry
-#: configuration.xml:564
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
-msgstr "éé¶å¼ï¼å
许Hibernate使ç¨JDBC2çæ¹éæ´æ°. <placeholder-1/>"
+msgstr "éé¶å¼ï¼å
许 Hibernate ä½¿ç¨ JDBC2 çæ¹éæ´æ°ã"
#. Tag: para
-#: configuration.xml:566
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
-"<literal>5</literal> and <literal>30</literal>"
-msgstr ""
-"<emphasis role=\"strong\">åå¼</emphasis> 建议å<literal>5</literal>å°"
-"<literal>30</literal>ä¹é´çå¼"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>5</literal> and <literal>30</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis>建议å <literal>5</literal> å° <literal>30</literal> ä¹é´çå¼ "
-#. Tag: property
-#: configuration.xml:574
+#. Tag: para
#, no-c-format
-msgid "hibernate.jdbc.batch_versioned_data"
-msgstr "hibernate.jdbc.batch_versioned_data"
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr "<property>hibernate.jdbc.batch_versioned_data</property>"
-#. Tag: entry
-#: configuration.xml:576
-#, fuzzy, no-c-format
-msgid ""
-"Set this property to <literal>true</literal> if your JDBC driver returns "
-"correct row counts from <literal>executeBatch()</literal>. Iit is usually "
-"safe to turn this option on. Hibernate will then use batched DML for "
-"automatically versioned data. Defaults to <literal>false</literal>."
-msgstr ""
-"å¦æä½ æ³è®©ä½ çJDBC驱å¨ä»<placeholder-1/>è¿åæ£ç¡®çè¡è®¡æ° , é£ä¹å°æ¤å±æ§è®¾ä¸º"
-"<placeholder-2/>(å¼å¯è¿ä¸ªé项é常æ¯å®å
¨ç). åæ¶ï¼Hibernateå°ä¸ºèªå¨çæ¬åçæ°"
-"æ®ä½¿ç¨æ¹éDML. é»è®¤å¼ä¸º<placeholder-3/>. <placeholder-4/>"
+#. Tag: para
+#, no-c-format
+msgid "Set this property to <literal>true</literal> if your JDBC driver returns correct row counts from <literal>executeBatch()</literal>. Iit is usually safe to turn this option on. Hibernate will then use batched DML for automatically versioned data. Defaults to <literal>false</literal>."
+msgstr "å¦æä½ æ³è®©ä½ ç JDBC 驱å¨ä» <literal>true</literal> è¿åæ£ç¡®çè¡è®¡æ° ï¼é£ä¹å°æ¤å±æ§è®¾ä¸º <literal>executeBatch()</literal>ï¼å¼å¯è¿ä¸ªé项é常æ¯å®å
¨çï¼ãåæ¶ï¼Hibernate å°ä¸ºèªå¨çæ¬åçæ°æ®ä½¿ç¨æ¹é DMLãé»è®¤å¼ä¸º <literal>false</literal>ã "
-#. Tag: property
-#: configuration.xml:589
+#. Tag: para
#, no-c-format
-msgid "hibernate.jdbc.factory_class"
-msgstr "hibernate.jdbc.factory_class"
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr "<property>hibernate.jdbc.factory_class</property>"
-#. Tag: entry
-#: configuration.xml:591
-#, fuzzy, no-c-format
-msgid ""
-"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
-"Most applications will not need this configuration property."
-msgstr ""
-"éæ©ä¸ä¸ªèªå®ä¹ç<placeholder-1/>. 夿°åºç¨ç¨åºä¸éè¦è¿ä¸ªé
ç½®å±æ§. "
-"<placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. Most applications will not need this configuration property."
+msgstr "éæ©ä¸ä¸ªèªå®ä¹ç <literal>Batcher</literal>ã夿°åºç¨ç¨åºä¸éè¦è¿ä¸ªé
ç½®å±æ§ã "
#. Tag: para
-#: configuration.xml:594
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"BatcherFactory</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.BatcherFactory</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.Batcher</literal> "
-#. Tag: property
-#: configuration.xml:602
+#. Tag: para
#, no-c-format
-msgid "hibernate.jdbc.use_scrollable_resultset"
-msgstr "hibernate.jdbc.use_scrollable_resultset"
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr "<property>hibernate.jdbc.use_scrollable_resultset</property>"
-#. Tag: entry
-#: configuration.xml:604
-#, fuzzy, no-c-format
-msgid ""
-"Enables use of JDBC2 scrollable resultsets by Hibernate. This property is "
-"only necessary when using user-supplied JDBC connections. Hibernate uses "
-"connection metadata otherwise."
-msgstr ""
-"å
许Hibernate使ç¨JDBC2ç坿»å¨ç»æé. åªæå¨ä½¿ç¨ç¨æ·æä¾çJDBCè¿æ¥æ¶ï¼è¿ä¸ªé"
-"é¡¹ææ¯å¿
è¦ç, å¦åHibernateä¼ä½¿ç¨è¿æ¥çå
æ°æ®. <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Enables use of JDBC2 scrollable resultsets by Hibernate. This property is only necessary when using user-supplied JDBC connections. Hibernate uses connection metadata otherwise."
+msgstr "å
许 Hibernate ä½¿ç¨ JDBC2 ç坿»å¨ç»æéãåªæå¨ä½¿ç¨ç¨æ·æä¾ç JDBC è¿æ¥æ¶ï¼è¿ä¸ªéé¡¹ææ¯å¿
è¦çï¼å¦å Hibernate ä¼ä½¿ç¨è¿æ¥çå
æ°æ®ã "
-#. Tag: property
-#: configuration.xml:616
+#. Tag: para
#, no-c-format
-msgid "hibernate.jdbc.use_streams_for_binary"
-msgstr "hibernate.jdbc.use_streams_for_binary"
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr "<property>hibernate.jdbc.use_streams_for_binary</property>"
-#. Tag: entry
-#: configuration.xml:618
-#, fuzzy, no-c-format
-msgid ""
-"Use streams when writing/reading <literal>binary</literal> or "
-"<literal>serializable</literal> types to/from JDBC. <emphasis>*system-level "
-"property*</emphasis>"
-msgstr ""
-"å¨JDBC读å<placeholder-1/>æ<placeholder-2/> çç±»åæ¶ä½¿ç¨æµ(stream)(ç³»ç»çº§å±"
-"æ§). <placeholder-3/>"
+#. Tag: para
+#, no-c-format
+msgid "Use streams when writing/reading <literal>binary</literal> or <literal>serializable</literal> types to/from JDBC. <emphasis>*system-level property*</emphasis>"
+msgstr "å¨ JDBC 读å <literal>binary</literal> æ <literal>serializable</literal> çç±»åæ¶ä½¿ç¨æµï¼streamï¼ï¼ç³»ç»çº§å±æ§ï¼ã "
-#. Tag: property
-#: configuration.xml:629
+#. Tag: para
#, no-c-format
-msgid "hibernate.jdbc.use_get_generated_keys"
-msgstr "hibernate.jdbc.use_get_generated_keys"
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr "<property>hibernate.jdbc.use_get_generated_keys</property>"
-#. Tag: entry
-#: configuration.xml:631
-#, fuzzy, no-c-format
-msgid ""
-"Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> "
-"to retrieve natively generated keys after insert. Requires JDBC3+ driver and "
-"JRE1.4+, set to false if your driver has problems with the Hibernate "
-"identifier generators. By default, it tries to determine the driver "
-"capabilities using connection metadata."
-msgstr ""
-"卿°æ®æå
¥æ°æ®åºä¹åï¼å
许使ç¨JDBC3 <placeholder-1/> æ¥è·åæ°æ®åºçæçkey"
-"(é®)ãéè¦JDBC3+驱å¨åJRE1.4+, å¦æä½ çæ°æ®åºé©±å¨å¨ä½¿ç¨Hibernateçæ è¯çæå¨"
-"æ¶éå°é®é¢ï¼è¯·å°æ¤å¼è®¾ä¸ºfalse. é»è®¤æ
åµä¸å°ä½¿ç¨è¿æ¥çå
æ°æ®æ¥å¤å®é©±å¨çè½å. "
-"<placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> to retrieve natively generated keys after insert. Requires JDBC3+ driver and JRE1.4+, set to false if your driver has problems with the Hibernate identifier generators. By default, it tries to determine the driver capabilities using connection metadata."
+msgstr "卿°æ®æå
¥æ°æ®åºä¹åï¼å
è®¸ä½¿ç¨ JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> æ¥è·åæ°æ®åºçæç keyï¼é®ï¼ãéè¦ JDBC3+ 驱å¨å JRE1.4+ï¼å¦æä½ çæ°æ®åºé©±å¨å¨ä½¿ç¨ Hibernate çæ è¯çæå¨æ¶éå°é®é¢ï¼è¯·å°æ¤å¼è®¾ä¸º falseãé»è®¤æ
åµä¸å°ä½¿ç¨è¿æ¥çå
æ°æ®æ¥å¤å®é©±å¨çè½åã "
#. Tag: para
-#: configuration.xml:637 configuration.xml:767 configuration.xml:779
-#: configuration.xml:793 configuration.xml:831
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>true | false</literal> "
-#. Tag: property
-#: configuration.xml:645
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.provider_class"
-msgstr "hibernate.connection.provider_class"
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr "<property>hibernate.connection.provider_class</property>"
-#. Tag: entry
-#: configuration.xml:647
-#, fuzzy, no-c-format
-msgid ""
-"The classname of a custom <interfacename>org.hibernate.connection."
-"ConnectionProvider</interfacename> which provides JDBC connections to "
-"Hibernate."
-msgstr ""
-"èªå®ä¹<placeholder-1/>çç±»å, æ¤ç±»ç¨æ¥åHibernateæä¾JDBCè¿æ¥. <placeholder-"
-"2/>"
+#. Tag: para
+#, no-c-format
+msgid "The classname of a custom <interfacename>org.hibernate.connection.ConnectionProvider</interfacename> which provides JDBC connections to Hibernate."
+msgstr "èªå®ä¹ <literal>ConnectionProvider</literal> çç±»åï¼æ¤ç±»ç¨æ¥å Hibernate æä¾ JDBC è¿æ¥ã "
#. Tag: para
-#: configuration.xml:650
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"ConnectionProvider</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.ConnectionProvider</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.ConnectionProvider</literal> "
-#. Tag: property
-#: configuration.xml:658
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.isolation"
-msgstr "hibernate.connection.isolation"
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr "<property>hibernate.connection.isolation</property>"
-#. Tag: entry
-#: configuration.xml:660
-#, fuzzy, no-c-format
-msgid ""
-"Sets the JDBC transaction isolation level. Check <interfacename>java.sql."
-"Connection</interfacename> for meaningful values, but note that most "
-"databases do not support all isolation levels and some define additional, "
-"non-standard isolations."
-msgstr ""
-"设置JDBCäºå¡é离级å«. æ¥ç<placeholder-1/>æ¥äºè§£å个å¼çå
·ä½æä¹, ä½è¯·æ³¨æå¤"
-"æ°æ°æ®åºé½ä¸æ¯æææçé离级å«. <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Sets the JDBC transaction isolation level. Check <interfacename>java.sql.Connection</interfacename> for meaningful values, but note that most databases do not support all isolation levels and some define additional, non-standard isolations."
+msgstr "设置 JDBC äºå¡é离级å«ãæ¥ç <literal>java.sql.Connection</literal> æ¥äºè§£å个å¼çå
·ä½æä¹ï¼ä½è¯·æ³¨æå¤æ°æ°æ®åºé½ä¸æ¯æææçé离级å«ã "
#. Tag: para
-#: configuration.xml:664
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>1, 2, 4, 8</literal> "
-#. Tag: property
-#: configuration.xml:672
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.autocommit"
-msgstr "hibernate.connection.autocommit"
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr "<property>hibernate.connection.autocommit</property>"
-#. Tag: entry
-#: configuration.xml:674
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
-msgstr ""
-"å
许被ç¼åçJDBCè¿æ¥å¼å¯èªå¨æäº¤(autocommit) (ä¸å»ºè®®). <placeholder-1/>"
+msgstr "å
许被ç¼åç JDBC è¿æ¥å¼å¯èªå¨æäº¤ï¼autocommitï¼ï¼ä¸æ¨èï¼ã"
-#. Tag: property
-#: configuration.xml:684
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.release_mode"
-msgstr "hibernate.connection.release_mode"
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr "<property>hibernate.connection.release_mode</property>"
-#. Tag: entry
-#: configuration.xml:686
-#, fuzzy, no-c-format
-msgid ""
-"Specifies when Hibernate should release JDBC connections. By default, a JDBC "
-"connection is held until the session is explicitly closed or disconnected. "
-"For an application server JTA datasource, use <literal>after_statement</"
-"literal> to aggressively release connections after every JDBC call. For a "
-"non-JTA connection, it often makes sense to release the connection at the "
-"end of each transaction, by using <literal>after_transaction</literal>. "
-"<literal>auto</literal> will choose <literal>after_statement</literal> for "
-"the JTA and CMT transaction strategies and <literal>after_transaction</"
-"literal> for the JDBC transaction strategy."
-msgstr ""
-"æå®Hibernateå¨ä½æ¶éæ¾JDBCè¿æ¥. é»è®¤æ
åµä¸,ç´å°Session被æ¾å¼å
³éæè¢«æå¼è¿æ¥"
-"æ¶,æä¼éæ¾JDBCè¿æ¥. 对äºåºç¨ç¨åºæå¡å¨çJTAæ°æ®æº, ä½ åºå½ä½¿ç¨<placeholder-1/"
-">, è¿æ ·å¨æ¯æ¬¡JDBCè°ç¨åï¼é½ä¼ä¸»å¨çéæ¾è¿æ¥. 对äºéJTAçè¿æ¥, 使ç¨"
-"<placeholder-2/>卿¯ä¸ªäºå¡ç»ææ¶éæ¾è¿æ¥æ¯åçç. <placeholder-3/>å°ä¸ºJTAå"
-"CMTäºå¡çç¥éæ©<placeholder-4/>, 为JDBCäºå¡çç¥éæ©<placeholder-5/>. "
-"<placeholder-6/><placeholder-7/>"
+#. Tag: para
+#, no-c-format
+msgid "Specifies when Hibernate should release JDBC connections. By default, a JDBC connection is held until the session is explicitly closed or disconnected. For an application server JTA datasource, use <literal>after_statement</literal> to aggressively release connections after every JDBC call. For a non-JTA connection, it often makes sense to release the connection at the end of each transaction, by using <literal>after_transaction</literal>. <literal>auto</literal> will choose <literal>after_statement</literal> for the JTA and CMT transaction strategies and <literal>after_transaction</literal> for the JDBC transaction strategy."
+msgstr "æå® Hibernate å¨ä½æ¶éæ¾ JDBC è¿æ¥ãé»è®¤æ
åµä¸,ç´å° Session 被æ¾å¼å
³éæè¢«æå¼è¿æ¥æ¶,æä¼éæ¾ JDBC è¿æ¥ã对äºåºç¨ç¨åºæå¡å¨ç JTA æ°æ®æºï¼ä½ åºå½ä½¿ç¨ <literal>after_statement</literal>ï¼è¿æ ·å¨æ¯æ¬¡ JDBC è°ç¨åï¼é½ä¼ä¸»å¨çéæ¾è¿æ¥ã对äºé JTA çè¿æ¥ï¼ä½¿ç¨ <literal>after_transaction</literal> 卿¯ä¸ªäºå¡ç»ææ¶éæ¾è¿æ¥æ¯åççã<literal>auto</literal> å°ä¸º JTA å CMT äºå¡çç¥éæ© <literal>after_statement</literal>ï¼ä¸ºJDBCäºå¡çç¥éæ© <literal>after_transaction</literal>ã"
#. Tag: para
-#: configuration.xml:697
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) "
-"| <literal>on_close</literal> | <literal>after_transaction</literal> | "
-"<literal>after_statement</literal>"
-msgstr ""
-"<emphasis role=\"strong\">åå¼</emphasis><literal>auto</literal> (é»è®¤) | "
-"<literal>on_close</literal> | <literal>after_transaction</literal> | "
-"<literal>after_statement</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) | <literal>on_close</literal> | <literal>after_transaction</literal> | <literal>after_statement</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>auto</literal> (é»è®¤) | <literal>on_close</literal> | <literal>after_transaction</literal> | <literal>after_statement</literal> "
#. Tag: para
-#: configuration.xml:702
-#, fuzzy, no-c-format
-msgid ""
-"This setting only affects <literal>Session</literal>s returned from "
-"<literal>SessionFactory.openSession</literal>. For <literal>Session</"
-"literal>s obtained through <literal>SessionFactory.getCurrentSession</"
-"literal>, the <literal>CurrentSessionContext</literal> implementation "
-"configured for use controls the connection release mode for those "
-"<literal>Session</literal>s. See"
-msgstr ""
-"注æ,è¿äºè®¾ç½®ä»
对éè¿<literal>SessionFactory.openSession</literal>å¾å°ç"
-"<literal>Session</literal>èµ·ä½ç¨ã对äºéè¿<literal>SessionFactory."
-"getCurrentSession</literal>å¾å°ç<literal>Session</literal>ï¼æé
ç½®ç"
-"<literal>CurrentSessionContext</literal>å®ç°æ§å¶è¿äº<literal>Session</"
-"literal>çè¿æ¥éæ¾æ¨¡å¼ã请åé
<xref linkend=\"architecture-current-session\"/"
-">ã"
+#, no-c-format
+msgid "This setting only affects <literal>Session</literal>s returned from <literal>SessionFactory.openSession</literal>. For <literal>Session</literal>s obtained through <literal>SessionFactory.getCurrentSession</literal>, the <literal>CurrentSessionContext</literal> implementation configured for use controls the connection release mode for those <literal>Session</literal>s. See <xref linkend=\"architecture-current-session\" />"
+msgstr "注æï¼è¿äºè®¾ç½®ä»
对éè¿ <literal>SessionFactory.openSession</literal> å¾å°ç <literal>Session</literal> èµ·ä½ç¨ã对äºéè¿ <literal>SessionFactory.getCurrentSession</literal> å¾å°ç <literal>Session</literal>ï¼æé
ç½®ç <literal>CurrentSessionContext</literal> å®ç°æ§å¶è¿äº <literal>Session</literal> çè¿æ¥éæ¾æ¨¡å¼ã请åé
<xref linkend=\"architecture-current-session\" />ã"
-#. Tag: entry
-#: configuration.xml:713
+#. Tag: para
#, no-c-format
-msgid ""
-"<property>hibernate.connection.</property><emphasis><propertyName></"
-"emphasis>"
-msgstr ""
+msgid "<property>hibernate.connection.</property><emphasis><propertyName></emphasis>"
+msgstr "<property>hibernate.connection.</property><emphasis><propertyName></emphasis>"
-#. Tag: entry
-#: configuration.xml:716
-#, fuzzy, no-c-format
-msgid ""
-"Pass the JDBC property <emphasis><propertyName></emphasis> to "
-"<literal>DriverManager.getConnection()</literal>."
-msgstr ""
-"ä¼ ä¸ä¸ª<literal>java.util.Properties</literal>å®ä¾ç» <literal>Configuration."
-"setProperties()</literal>."
+#. Tag: para
+#, no-c-format
+msgid "Pass the JDBC property <emphasis><propertyName></emphasis> to <literal>DriverManager.getConnection()</literal>."
+msgstr "æ JDBC 屿§ <emphasis><propertyName></emphasis> ä¼ éç» <literal>DriverManager.getConnection()</literal>ã"
-#. Tag: entry
-#: configuration.xml:722
+#. Tag: para
#, no-c-format
-msgid ""
-"<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
-msgstr ""
+msgid "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
-#. Tag: entry
-#: configuration.xml:725
-#, fuzzy, no-c-format
-msgid ""
-"Pass the property <emphasis><propertyName></emphasis> to the JNDI "
-"<literal>InitialContextFactory</literal>."
-msgstr ""
-"ä¼ ä¸ä¸ª<literal>java.util.Properties</literal>å®ä¾ç» <literal>Configuration."
-"setProperties()</literal>."
+#. Tag: para
+#, no-c-format
+msgid "Pass the property <emphasis><propertyName></emphasis> to the JNDI <literal>InitialContextFactory</literal>."
+msgstr "æ <emphasis><propertyName></emphasis> 屿§ä¼ éç» JNDI <literal>InitialContextFactory</literal>ã"
#. Tag: title
-#: configuration.xml:735
#, no-c-format
msgid "Hibernate Cache Properties"
-msgstr "Hibernateç¼å屿§"
+msgstr "Hibernate ç¼å屿§"
-#. Tag: literal
-#: configuration.xml:748
+#. Tag: para
#, no-c-format
-msgid "hibernate.cache.provider_class"
-msgstr "hibernate.cache.provider_class"
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr "<literal>hibernate.cache.provider_class</literal>"
-#. Tag: entry
-#: configuration.xml:750
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "The classname of a custom <literal>CacheProvider</literal>."
-msgstr "èªå®ä¹ç<placeholder-1/>çç±»å. <placeholder-2/>"
+msgstr "èªå®ä¹ç <literal>CacheProvider</literal> çç±»åã"
#. Tag: para
-#: configuration.xml:752
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"CacheProvider</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.CacheProvider</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.CacheProvider</literal> "
-#. Tag: literal
-#: configuration.xml:760
+#. Tag: para
#, no-c-format
-msgid "hibernate.cache.use_minimal_puts"
-msgstr "hibernate.cache.use_minimal_puts"
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr "<literal>hibernate.cache.use_minimal_puts</literal>"
-#. Tag: entry
-#: configuration.xml:762
-#, fuzzy, no-c-format
-msgid ""
-"Optimizes second-level cache operation to minimize writes, at the cost of "
-"more frequent reads. This setting is most useful for clustered caches and, "
-"in Hibernate3, is enabled by default for clustered cache implementations."
-msgstr ""
-"以é¢ç¹ç读æä½ä¸ºä»£ä»·, ä¼åäºçº§ç¼åæ¥æå°ååæä½. å¨Hibernate3ä¸ï¼è¿ä¸ªè®¾ç½®å¯¹"
-"çé群ç¼åé常æç¨, 对é群ç¼åçå®ç°èè¨ï¼é»è®¤æ¯å¼å¯ç. <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Optimizes second-level cache operation to minimize writes, at the cost of more frequent reads. This setting is most useful for clustered caches and, in Hibernate3, is enabled by default for clustered cache implementations."
+msgstr "以é¢ç¹ç读æä½ä¸ºä»£ä»·ï¼ä¼åäºçº§ç¼åæ¥æå°ååæä½ãå¨ Hibernate3 ä¸ï¼è¿ä¸ªè®¾ç½®å¯¹çé群ç¼åé常æç¨ï¼å¯¹é群ç¼åçå®ç°èè¨ï¼é»è®¤æ¯å¼å¯çã "
-#. Tag: literal
-#: configuration.xml:775
+#. Tag: para
#, no-c-format
-msgid "hibernate.cache.use_query_cache"
-msgstr "hibernate.cache.use_query_cache"
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr "<literal>hibernate.cache.use_query_cache</literal>"
-#. Tag: entry
-#: configuration.xml:777
-#, fuzzy, no-c-format
-msgid ""
-"Enables the query cache. Individual queries still have to be set cachable."
-msgstr "å
许æ¥è¯¢ç¼å, ä¸ªå«æ¥è¯¢ä»ç¶éè¦è¢«è®¾ç½®ä¸ºå¯ç¼åç. <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Enables the query cache. Individual queries still have to be set cachable."
+msgstr "å
许æ¥è¯¢ç¼åï¼ä¸ªå«æ¥è¯¢ä»ç¶éè¦è¢«è®¾ç½®ä¸ºå¯ç¼åçã "
-#. Tag: literal
-#: configuration.xml:787
+#. Tag: para
#, no-c-format
-msgid "hibernate.cache.use_second_level_cache"
-msgstr "hibernate.cache.use_second_level_cache"
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr "<literal>hibernate.cache.use_second_level_cache</literal>"
-#. Tag: entry
-#: configuration.xml:789
-#, fuzzy, no-c-format
-msgid ""
-"Can be used to completely disable the second level cache, which is enabled "
-"by default for classes which specify a <literal><cache></literal> "
-"mapping."
-msgstr ""
-"è½ç¨æ¥å®å
¨ç¦æ¢ä½¿ç¨äºçº§ç¼å. 对é£äºå¨ç±»çæ å°å®ä¹ä¸æå®<placeholder-1/>çç±»ï¼"
-"ä¼é»è®¤å¼å¯äºçº§ç¼å. <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Can be used to completely disable the second level cache, which is enabled by default for classes which specify a <literal><cache></literal> mapping."
+msgstr "è½ç¨æ¥å®å
¨ç¦æ¢ä½¿ç¨äºçº§ç¼åã对é£äºå¨ç±»çæ å°å®ä¹ä¸æå® <literal><cache></literal> çç±»ï¼ä¼é»è®¤å¼å¯äºçº§ç¼åã "
-#. Tag: literal
-#: configuration.xml:801
+#. Tag: para
#, no-c-format
-msgid "hibernate.cache.query_cache_factory"
-msgstr "hibernate.cache.query_cache_factory"
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr "<literal>hibernate.cache.query_cache_factory</literal>"
-#. Tag: entry
-#: configuration.xml:803
-#, fuzzy, no-c-format
-msgid ""
-"The classname of a custom <literal>QueryCache</literal> interface, defaults "
-"to the built-in <literal>StandardQueryCache</literal>."
-msgstr ""
-"èªå®ä¹å®ç°<placeholder-1/>æ¥å£çç±»å, é»è®¤ä¸ºå
建ç<placeholder-2/>. "
-"<placeholder-3/>"
+#. Tag: para
+#, no-c-format
+msgid "The classname of a custom <literal>QueryCache</literal> interface, defaults to the built-in <literal>StandardQueryCache</literal>."
+msgstr "èªå®ä¹å®ç° <literal>QueryCache</literal> æ¥å£çç±»åï¼é»è®¤ä¸ºå
建ç <literal>StandardQueryCache</literal>ã"
#. Tag: para
-#: configuration.xml:806
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
-"literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.QueryCache</literal> "
-#. Tag: literal
-#: configuration.xml:814
+#. Tag: para
#, no-c-format
-msgid "hibernate.cache.region_prefix"
-msgstr "hibernate.cache.region_prefix"
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr "<literal>hibernate.cache.region_prefix</literal>"
-#. Tag: entry
-#: configuration.xml:816
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "A prefix to use for second-level cache region names."
-msgstr "äºçº§ç¼ååºååçåç¼. <placeholder-1/>"
+msgstr "äºçº§ç¼ååºååçåç¼ã"
#. Tag: para
-#: configuration.xml:818
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>prefix</literal> "
-#. Tag: literal
-#: configuration.xml:826
+#. Tag: para
#, no-c-format
-msgid "hibernate.cache.use_structured_entries"
-msgstr "hibernate.cache.use_structured_entries"
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr "<literal>hibernate.cache.use_structured_entries</literal>"
-#. Tag: entry
-#: configuration.xml:828
-#, fuzzy, no-c-format
-msgid ""
-"Forces Hibernate to store data in the second-level cache in a more human-"
-"friendly format."
-msgstr "强å¶Hibernate以æ´äººæ§åçæ ¼å¼å°æ°æ®åå
¥äºçº§ç¼å. <placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format."
+msgstr "å¼ºå¶ Hibernate 以æ´äººæ§åçæ ¼å¼å°æ°æ®åå
¥äºçº§ç¼åã"
#. Tag: title
-#: configuration.xml:842
#, no-c-format
msgid "Hibernate Transaction Properties"
-msgstr "Hibernateäºå¡å±æ§"
+msgstr "Hibernate äºå¡å±æ§"
-#. Tag: literal
-#: configuration.xml:855
+#. Tag: para
#, no-c-format
-msgid "hibernate.transaction.factory_class"
-msgstr "hibernate.transaction.factory_class"
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr "<literal>hibernate.transaction.factory_class</literal>"
-#. Tag: entry
-#: configuration.xml:857
-#, fuzzy, no-c-format
-msgid ""
-"The classname of a <literal>TransactionFactory</literal> to use with "
-"Hibernate <literal>Transaction</literal> API (defaults to "
-"<literal>JDBCTransactionFactory</literal>)."
-msgstr ""
-"ä¸ä¸ª<placeholder-1/>çç±»å, ç¨äºHibernate <placeholder-2/> API (é»è®¤ä¸º"
-"<placeholder-3/>). <placeholder-4/>"
+#. Tag: para
+#, no-c-format
+msgid "The classname of a <literal>TransactionFactory</literal> to use with Hibernate <literal>Transaction</literal> API (defaults to <literal>JDBCTransactionFactory</literal>)."
+msgstr "ä¸ä¸ª <literal>TransactionFactory</literal> çç±»åï¼ç¨äº Hibernate <literal>Transaction</literal> APIï¼é»è®¤ä¸º <literal>JDBCTransactionFactory</literal>ï¼ã"
#. Tag: para
-#: configuration.xml:861
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"TransactionFactory</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionFactory</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.TransactionFactory</literal> "
-#. Tag: literal
-#: configuration.xml:869
+#. Tag: para
#, no-c-format
-msgid "jta.UserTransaction"
-msgstr "jta.UserTransaction"
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr "<literal>jta.UserTransaction</literal>"
-#. Tag: entry
-#: configuration.xml:871
-#, fuzzy, no-c-format
-msgid ""
-"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
-"JTA <literal>UserTransaction</literal> from the application server."
-msgstr ""
-"ä¸ä¸ªJNDIååï¼è¢«<placeholder-1/>ç¨æ¥ä»åºç¨æå¡å¨è·åJTA <placeholder-2/>. "
-"<placeholder-3/>"
+#. Tag: para
+#, no-c-format
+msgid "A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the JTA <literal>UserTransaction</literal> from the application server."
+msgstr "ä¸ä¸ª JNDI ååï¼è¢« <literal>JTATransactionFactory</literal> ç¨æ¥ä»åºç¨æå¡å¨è·å JTA <literal>UserTransaction</literal>ã"
-#. Tag: literal
-#: configuration.xml:883
+#. Tag: para
#, no-c-format
-msgid "hibernate.transaction.manager_lookup_class"
-msgstr "hibernate.transaction.manager_lookup_class"
+msgid "<literal>hibernate.transaction. manager_lookup_class</literal>"
+msgstr "<literal>hibernate.transaction. manager_lookup_class</literal>"
-#. Tag: entry
-#: configuration.xml:885
-#, fuzzy, no-c-format
-msgid ""
-"The classname of a <literal>TransactionManagerLookup</literal>. It is "
-"required when JVM-level caching is enabled or when using hilo generator in a "
-"JTA environment."
-msgstr ""
-"ä¸ä¸ª<placeholder-1/>çç±»å - å½ä½¿ç¨JVM级ç¼åï¼æå¨JTAç¯å¢ä¸ä½¿ç¨hiloçæå¨çæ¶"
-"åéè¦è¯¥ç±». <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "The classname of a <literal>TransactionManagerLookup</literal>. It is required when JVM-level caching is enabled or when using hilo generator in a JTA environment."
+msgstr "ä¸ä¸ª <literal>TransactionManagerLookup</literal> çç±»å â å½ä½¿ç¨ JVM 级ç¼åï¼æå¨ JTA ç¯å¢ä¸ä½¿ç¨ hilo çæå¨çæ¶åéè¦è¯¥ç±»ã "
#. Tag: para
-#: configuration.xml:889
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"TransactionManagerLookup</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionManagerLookup</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.TransactionManagerLookup</literal> "
-#. Tag: literal
-#: configuration.xml:897
+#. Tag: para
#, no-c-format
-msgid "hibernate.transaction.flush_before_completion"
-msgstr "hibernate.transaction.flush_before_completion"
+msgid "<literal>hibernate.transaction. flush_before_completion</literal>"
+msgstr "<literal>hibernate.transaction. flush_before_completion</literal>"
-#. Tag: entry
-#: configuration.xml:899
-#, fuzzy, no-c-format
-msgid ""
-"If enabled, the session will be automatically flushed during the before "
-"completion phase of the transaction. Built-in and automatic session context "
-"management is preferred, see <xref linkend=\"architecture-current-session\"/"
-">."
-msgstr ""
-"妿å¼å¯, sessionå¨äºå¡å®æåå°è¢«èªå¨æ¸
æ´(flush)ã ç°å¨æ´å¥½çæ¹æ³æ¯ä½¿ç¨èªå¨"
-"sessionä¸ä¸æç®¡çã请åè§<xref linkend=\"architecture-current-session\"/>ã "
-"<placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "If enabled, the session will be automatically flushed during the before completion phase of the transaction. Built-in and automatic session context management is preferred, see <xref linkend=\"architecture-current-session\" />."
+msgstr "妿å¼å¯ï¼session å¨äºå¡å®æåå°è¢«èªå¨æ¸
æ´ï¼flushï¼ãç°å¨æ´å¥½çæ¹æ³æ¯ä½¿ç¨èªå¨ session ä¸ä¸æç®¡çã请åè§ <xref linkend=\"architecture-current-session\"/>ã "
-#. Tag: literal
-#: configuration.xml:912
+#. Tag: para
#, no-c-format
-msgid "hibernate.transaction.auto_close_session"
-msgstr "hibernate.transaction.auto_close_session"
+msgid "<literal>hibernate.transaction. auto_close_session</literal>"
+msgstr "<literal>hibernate.transaction. auto_close_session</literal>"
-#. Tag: entry
-#: configuration.xml:914
-#, fuzzy, no-c-format
-msgid ""
-"If enabled, the session will be automatically closed during the after "
-"completion phase of the transaction. Built-in and automatic session context "
-"management is preferred, see <xref linkend=\"architecture-current-session\"/"
-">."
-msgstr ""
-"妿å¼å¯, sessionå¨äºå¡å®æåå°è¢«èªå¨å
³éã ç°å¨æ´å¥½çæ¹æ³æ¯ä½¿ç¨èªå¨sessionä¸"
-"ä¸æç®¡çã请åè§<xref linkend=\"architecture-current-session\"/>ã "
-"<placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "If enabled, the session will be automatically closed during the after completion phase of the transaction. Built-in and automatic session context management is preferred, see <xref linkend=\"architecture-current-session\" />."
+msgstr "妿å¼å¯ï¼session å¨äºå¡å®æåå°è¢«èªå¨å
³éã ç°å¨æ´å¥½çæ¹æ³æ¯ä½¿ç¨èªå¨ session ä¸ä¸æç®¡çã请åè§ <xref linkend=\"architecture-current-session\"/>ã "
#. Tag: title
-#: configuration.xml:930
#, no-c-format
msgid "Miscellaneous Properties"
msgstr "å
¶ä»å±æ§"
-#. Tag: literal
-#: configuration.xml:943
+#. Tag: para
#, no-c-format
-msgid "hibernate.current_session_context_class"
-msgstr "hibernate.current_session_context_class"
+msgid "<literal>hibernate. current_session_context_class</literal>"
+msgstr "<literal>hibernate. current_session_context_class</literal>"
-#. Tag: entry
-#: configuration.xml:945
-#, fuzzy, no-c-format
-msgid ""
-"Supply a custom strategy for the scoping of the \"current\" "
-"<literal>Session</literal>. See <xref linkend=\"architecture-current-session"
-"\"/> for more information about the built-in strategies."
-msgstr ""
-"为\"å½å\" <placeholder-1/>æå®ä¸ä¸ª(èªå®ä¹ç)çç¥ãå
³äºå
ç½®çç¥ç详æ
ï¼è¯·åè§"
-"<xref linkend=\"architecture-current-session\"/> ã <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Supply a custom strategy for the scoping of the \"current\" <literal>Session</literal>. See <xref linkend=\"architecture-current-session\" /> for more information about the built-in strategies."
+msgstr "为\"å½å\" <literal>Session</literal> æå®ä¸ä¸ªï¼èªå®ä¹çï¼çç¥ãå
³äºå
ç½®çç¥ç详æ
ï¼è¯·åè§ <xref linkend=\"architecture-current-session\"/>ã "
#. Tag: para
-#: configuration.xml:950
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | "
-"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
-"Class</literal>"
-msgstr ""
-"<emphasis role=\"strong\">eg.</emphasis><literal>jta</literal> | "
-"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
-"Class</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal> "
-#. Tag: literal
-#: configuration.xml:959
+#. Tag: para
#, no-c-format
-msgid "hibernate.query.factory_class"
-msgstr "hibernate.query.factory_class"
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr "<literal>hibernate.query.factory_class</literal>"
-#. Tag: entry
-#: configuration.xml:961
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Chooses the HQL parser implementation."
-msgstr "éæ©HQLè§£æå¨çå®ç°. <placeholder-1/>"
+msgstr "éæ© HQL è§£æå¨çå®ç°ã"
#. Tag: para
-#: configuration.xml:963
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>org.hibernate.hql.ast."
-"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
-"ClassicQueryTranslatorFactory</literal>"
-msgstr ""
-"<emphasis role=\"strong\">åå¼</emphasis><literal>org.hibernate.hql.ast."
-"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
-"ClassicQueryTranslatorFactory</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>org.hibernate.hql.ast.ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>org.hibernate.hql.ast.ASTQueryTranslatorFactory</literal> æ <literal>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</literal> "
-#. Tag: literal
-#: configuration.xml:972
+#. Tag: para
#, no-c-format
-msgid "hibernate.query.substitutions"
-msgstr "hibernate.query.substitutions"
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr "<literal>hibernate.query.substitutions</literal>"
-#. Tag: entry
-#: configuration.xml:974
-#, fuzzy, no-c-format
-msgid ""
-"Is used to map from tokens in Hibernate queries to SQL tokens (tokens might "
-"be function or literal names, for example)."
-msgstr ""
-"å°Hibernateæ¥è¯¢ä¸çç¬¦å·æ å°å°SQLæ¥è¯¢ä¸çç¬¦å· (符å·å¯è½æ¯å½æ°åæå¸¸éåå). "
-"<placeholder-1/>"
+#. Tag: para
+#, no-c-format
+msgid "Is used to map from tokens in Hibernate queries to SQL tokens (tokens might be function or literal names, for example)."
+msgstr "å° Hibernate æ¥è¯¢ä¸çç¬¦å·æ å°å° SQL æ¥è¯¢ä¸ç符å·ï¼ç¬¦å·å¯è½æ¯å½æ°åæå¸¸éååï¼ã "
#. Tag: para
-#: configuration.xml:977
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
-"hqlFunction=SQLFUNC</literal>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"<emphasis role=\"strong\">åå¼</emphasis><literal>true</literal> | "
-"<literal>false</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal> "
-#. Tag: literal
-#: configuration.xml:985
+#. Tag: para
#, no-c-format
-msgid "hibernate.hbm2ddl.auto"
-msgstr "hibernate.hbm2ddl.auto"
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr "<literal>hibernate.hbm2ddl.auto</literal>"
-#. Tag: entry
-#: configuration.xml:987
-#, fuzzy, no-c-format
-msgid ""
-"Automatically validates or exports schema DDL to the database when the "
-"<literal>SessionFactory</literal> is created. With <literal>create-drop</"
-"literal>, the database schema will be dropped when the "
-"<literal>SessionFactory</literal> is closed explicitly."
-msgstr ""
-"å¨<placeholder-1/>å建æ¶ï¼èªå¨æ£æ¥æ°æ®åºç»æï¼æè
å°æ°æ®åºschemaçDDL导åºå°æ°"
-"æ®åº. ä½¿ç¨ <placeholder-2/>æ¶,卿¾å¼å
³é<placeholder-3/>æ¶ï¼å°dropææ°æ®åº"
-"schema. <placeholder-4/>"
+#. Tag: para
+#, no-c-format
+msgid "Automatically validates or exports schema DDL to the database when the <literal>SessionFactory</literal> is created. With <literal>create-drop</literal>, the database schema will be dropped when the <literal>SessionFactory</literal> is closed explicitly."
+msgstr "å¨ <literal>SessionFactory</literal> å建æ¶ï¼èªå¨æ£æ¥æ°æ®åºç»æï¼æè
å°æ°æ®åº schema ç DDL 导åºå°æ°æ®åºãä½¿ç¨ <literal>create-drop</literal> æ¶ï¼å¨æ¾å¼å
³é <literal>SessionFactory</literal> æ¶ï¼å°å é¤ææ°æ®åº schemaã "
#. Tag: para
-#: configuration.xml:993
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | "
-"<literal>update</literal> | <literal>create</literal> | <literal>create-"
-"drop</literal>"
-msgstr ""
-"<emphasis role=\"strong\">åå¼</emphasis><literal>validate</literal> | "
-"<literal>update</literal> | <literal>create</literal> | <literal>create-"
-"drop</literal>"
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal> "
-#. Tag: literal
-#: configuration.xml:1002
+#. Tag: para
#, no-c-format
-msgid "hibernate.cglib.use_reflection_optimizer"
-msgstr "hibernate.cglib.use_reflection_optimizer"
+msgid "<literal>hibernate.cglib. use_reflection_optimizer</literal>"
+msgstr "<literal>hibernate.cglib. use_reflection_optimizer</literal>"
-#. Tag: entry
-#: configuration.xml:1004
-#, fuzzy, no-c-format
-msgid ""
-"Enables the use of CGLIB instead of runtime reflection (System-level "
-"property). Reflection can sometimes be useful when troubleshooting. "
-"Hibernate always requires CGLIB even if you turn off the optimizer. You "
-"cannot set this property in <literal>hibernate.cfg.xml</literal>."
-msgstr ""
-"å¼å¯CGLIBæ¥æ¿ä»£è¿è¡æ¶åå°æºå¶(ç³»ç»çº§å±æ§). åå°æºå¶ææ¶å¨é¤éæ¶æ¯è¾æç¨. 注æ"
-"å³ä½¿å
³éè¿ä¸ªä¼å, Hibernateè¿æ¯éè¦CGLIB. ä½ ä¸è½å¨<placeholder-1/>ä¸è®¾ç½®æ¤å±"
-"æ§. <placeholder-2/>"
+#. Tag: para
+#, no-c-format
+msgid "Enables the use of CGLIB instead of runtime reflection (System-level property). Reflection can sometimes be useful when troubleshooting. Hibernate always requires CGLIB even if you turn off the optimizer. You cannot set this property in <literal>hibernate.cfg.xml</literal>."
+msgstr "å¼å¯ CGLIB æ¥æ¿ä»£è¿è¡æ¶åå°æºå¶ï¼ç³»ç»çº§å±æ§ï¼ãåå°æºå¶ææ¶å¨é¤éæ¶æ¯è¾æç¨ã注æå³ä½¿å
³éè¿ä¸ªä¼åï¼Hibernate è¿æ¯éè¦ CGLIBãä½ ä¸è½å¨ <literal>hibernate.cfg.xml</literal> ä¸è®¾ç½®æ¤å±æ§ã "
#. Tag: title
-#: configuration.xml:1020
#, no-c-format
msgid "SQL Dialects"
-msgstr "SQLæ¹è¨"
+msgstr "SQL æ¹è¨"
#. Tag: para
-#: configuration.xml:1022
-#, fuzzy, no-c-format
-msgid ""
-"Always set the <literal>hibernate.dialect</literal> property to the correct "
-"<literal>org.hibernate.dialect.Dialect</literal> subclass for your database. "
-"If you specify a dialect, Hibernate will use sensible defaults for some of "
-"the other properties listed above. This means that you will not have to "
-"specify them manually."
-msgstr ""
-"ä½ åºå½æ»æ¯ä¸ºä½ çæ°æ®åºå°<literal>hibernate.dialect</literal>屿§è®¾ç½®ææ£ç¡®ç "
-"<literal>org.hibernate.dialect.Dialect</literal>åç±». å¦æä½ æå®ä¸ç§æ¹è¨, "
-"Hibernateå°ä¸ºä¸é¢ååºçä¸äºå±æ§ä½¿ç¨åççé»è®¤å¼, ä¸ºä½ çå»äºæå·¥æå®å®ä»¬çå"
-"夫."
+#, no-c-format
+msgid "Always set the <literal>hibernate.dialect</literal> property to the correct <literal>org.hibernate.dialect.Dialect</literal> subclass for your database. If you specify a dialect, Hibernate will use sensible defaults for some of the other properties listed above. This means that you will not have to specify them manually."
+msgstr "ä½ åºå½æ»æ¯ä¸ºä½ çæ°æ®åºå° <literal>hibernate.dialect</literal> 屿§è®¾ç½®ææ£ç¡®ç <literal>org.hibernate.dialect.Dialect</literal> åç±»ãå¦æä½ æå®ä¸ç§æ¹è¨ï¼Hibernate å°ä¸ºä¸é¢ååºçä¸äºå±æ§ä½¿ç¨åççé»è®¤å¼ï¼è¿æ ·ä½ å°±ä¸ç¨æå·¥æå®å®ä»¬ã"
#. Tag: title
-#: configuration.xml:1030
#, no-c-format
msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
-msgstr "Hibernate SQLæ¹è¨ (<literal>hibernate.dialect</literal>)"
+msgstr "Hibernate SQL æ¹è¨ï¼<literal>hibernate.dialect</literal>ï¼"
-#. Tag: entry
-#: configuration.xml:1036
+#. Tag: para
#, no-c-format
msgid "RDBMS"
msgstr "RDBMS"
-#. Tag: entry
-#: configuration.xml:1037
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Dialect"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"Dialect\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ¹è¨"
+msgstr "Dialect"
-#. Tag: entry
-#: configuration.xml:1042
+#. Tag: para
#, no-c-format
-msgid "<entry>DB2</entry>"
-msgstr ""
+msgid "DB2"
+msgstr "DB2"
-#. Tag: literal
-#: configuration.xml:1042
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.DB2Dialect"
-msgstr "org.hibernate.dialect.DB2Dialect"
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2Dialect</literal>"
-#. Tag: entry
-#: configuration.xml:1045
+#. Tag: para
#, no-c-format
msgid "DB2 AS/400"
msgstr "DB2 AS/400"
-#. Tag: literal
-#: configuration.xml:1045
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.DB2400Dialect"
-msgstr "org.hibernate.dialect.DB2400Dialect"
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
-#. Tag: entry
-#: configuration.xml:1048
+#. Tag: para
#, no-c-format
msgid "DB2 OS390"
msgstr "DB2 OS390"
-#. Tag: literal
-#: configuration.xml:1048
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.DB2390Dialect"
-msgstr "org.hibernate.dialect.DB2390Dialect"
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
-#. Tag: entry
-#: configuration.xml:1051
+#. Tag: para
#, no-c-format
msgid "PostgreSQL"
msgstr "PostgreSQL"
-#. Tag: literal
-#: configuration.xml:1051
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.PostgreSQLDialect"
-msgstr "org.hibernate.dialect.PostgreSQLDialect"
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1054
+#. Tag: para
#, no-c-format
msgid "MySQL"
msgstr "MySQL"
-#. Tag: literal
-#: configuration.xml:1054
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.MySQLDialect"
-msgstr "org.hibernate.dialect.MySQLDialect"
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1057
+#. Tag: para
#, no-c-format
msgid "MySQL with InnoDB"
msgstr "MySQL with InnoDB"
-#. Tag: literal
-#: configuration.xml:1057
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.MySQLInnoDBDialect"
-msgstr "org.hibernate.dialect.MySQLInnoDBDialect"
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1060
+#. Tag: para
#, no-c-format
msgid "MySQL with MyISAM"
msgstr "MySQL with MyISAM"
-#. Tag: literal
-#: configuration.xml:1060
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.MySQLMyISAMDialect"
-msgstr "org.hibernate.dialect.MySQLMyISAMDialect"
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1063
+#. Tag: para
#, no-c-format
msgid "Oracle (any version)"
-msgstr "Oracle (any version)"
+msgstr "Oracleï¼any versionï¼"
-#. Tag: literal
-#: configuration.xml:1063
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.OracleDialect"
-msgstr "org.hibernate.dialect.OracleDialect"
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.OracleDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1066
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Oracle 9i"
-msgstr "Oracle 9i/10g"
+msgstr "Oracle 9i"
-#. Tag: literal
-#: configuration.xml:1066
-#, fuzzy, no-c-format
-msgid "org.hibernate.dialect.Oracle9iDialect"
-msgstr "org.hibernate.dialect.Oracle9Dialect"
+#. Tag: para
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1069
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Oracle 10g"
-msgstr "Oracle 9i/10g"
+msgstr "Oracle 10g"
-#. Tag: literal
-#: configuration.xml:1069
-#, fuzzy, no-c-format
-msgid "org.hibernate.dialect.Oracle10gDialect"
-msgstr "org.hibernate.dialect.OracleDialect"
+#. Tag: para
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1072
+#. Tag: para
#, no-c-format
msgid "Sybase"
msgstr "Sybase"
-#. Tag: literal
-#: configuration.xml:1072
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.SybaseDialect"
-msgstr "org.hibernate.dialect.SybaseDialect"
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1075
+#. Tag: para
#, no-c-format
msgid "Sybase Anywhere"
msgstr "Sybase Anywhere"
-#. Tag: literal
-#: configuration.xml:1075
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.SybaseAnywhereDialect"
-msgstr "org.hibernate.dialect.SybaseAnywhereDialect"
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1078
+#. Tag: para
#, no-c-format
msgid "Microsoft SQL Server"
msgstr "Microsoft SQL Server"
-#. Tag: literal
-#: configuration.xml:1078
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.SQLServerDialect"
-msgstr "org.hibernate.dialect.SQLServerDialect"
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1081
+#. Tag: para
#, no-c-format
msgid "SAP DB"
msgstr "SAP DB"
-#. Tag: literal
-#: configuration.xml:1081
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.SAPDBDialect"
-msgstr "org.hibernate.dialect.SAPDBDialect"
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1084
+#. Tag: para
#, no-c-format
msgid "Informix"
msgstr "Informix"
-#. Tag: literal
-#: configuration.xml:1084
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.InformixDialect"
-msgstr "org.hibernate.dialect.InformixDialect"
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InformixDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1087
+#. Tag: para
#, no-c-format
msgid "HypersonicSQL"
msgstr "HypersonicSQL"
-#. Tag: literal
-#: configuration.xml:1087
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.HSQLDialect"
-msgstr "org.hibernate.dialect.HSQLDialect"
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.HSQLDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1090
+#. Tag: para
#, no-c-format
msgid "Ingres"
msgstr "Ingres"
-#. Tag: literal
-#: configuration.xml:1090
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.IngresDialect"
-msgstr "org.hibernate.dialect.IngresDialect"
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.IngresDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1093
+#. Tag: para
#, no-c-format
msgid "Progress"
msgstr "Progress"
-#. Tag: literal
-#: configuration.xml:1093
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.ProgressDialect"
-msgstr "org.hibernate.dialect.ProgressDialect"
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.ProgressDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1096
+#. Tag: para
#, no-c-format
msgid "Mckoi SQL"
msgstr "Mckoi SQL"
-#. Tag: literal
-#: configuration.xml:1096
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.MckoiDialect"
-msgstr "org.hibernate.dialect.MckoiDialect"
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MckoiDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1099
+#. Tag: para
#, no-c-format
msgid "Interbase"
msgstr "Interbase"
-#. Tag: literal
-#: configuration.xml:1099
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.InterbaseDialect"
-msgstr "org.hibernate.dialect.InterbaseDialect"
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1102
+#. Tag: para
#, no-c-format
msgid "Pointbase"
msgstr "Pointbase"
-#. Tag: literal
-#: configuration.xml:1102
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.PointbaseDialect"
-msgstr "org.hibernate.dialect.PointbaseDialect"
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1105
+#. Tag: para
#, no-c-format
msgid "FrontBase"
msgstr "FrontBase"
-#. Tag: literal
-#: configuration.xml:1105
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.FrontbaseDialect"
-msgstr "org.hibernate.dialect.FrontbaseDialect"
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
-#. Tag: entry
-#: configuration.xml:1108
+#. Tag: para
#, no-c-format
msgid "Firebird"
msgstr "Firebird"
-#. Tag: literal
-#: configuration.xml:1108
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.dialect.FirebirdDialect"
-msgstr "org.hibernate.dialect.FirebirdDialect"
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
#. Tag: title
-#: configuration.xml:1117
#, no-c-format
msgid "Outer Join Fetching"
-msgstr "å¤è¿æ¥æå(Outer Join Fetching)"
+msgstr "å¤è¿æ¥æåï¼Outer Join Fetchingï¼"
#. Tag: para
-#: configuration.xml:1119
-#, fuzzy, no-c-format
-msgid ""
-"If your database supports ANSI, Oracle or Sybase style outer joins, "
-"<emphasis>outer join fetching</emphasis> will often increase performance by "
-"limiting the number of round trips to and from the database. This is, "
-"however, at the cost of possibly more work performed by the database itself. "
-"Outer join fetching allows a whole graph of objects connected by many-to-"
-"one, one-to-many, many-to-many and one-to-one associations to be retrieved "
-"in a single SQL <literal>SELECT</literal>."
-msgstr ""
-"å¦æä½ çæ°æ®åºæ¯æANSI, OracleæSybase飿 ¼çå¤è¿æ¥, <emphasis>å¤è¿æ¥æå</"
-"emphasis>é常è½éè¿éå¶å¾è¿æ°æ®åºæ¬¡æ° (æ´å¤çå·¥ä½äº¤ç±æ°æ®åºèªå·±æ¥å®æ)æ¥æé«"
-"æç. å¤è¿æ¥æåå
许å¨å个<literal>SELECT</literal>SQLè¯å¥ä¸ï¼ éè¿many-to-"
-"one, one-to-many, many-to-manyåone-to-oneå
³èè·åè¿æ¥å¯¹è±¡çæ´ä¸ªå¯¹è±¡å¾."
+#, no-c-format
+msgid "If your database supports ANSI, Oracle or Sybase style outer joins, <emphasis>outer join fetching</emphasis> will often increase performance by limiting the number of round trips to and from the database. This is, however, at the cost of possibly more work performed by the database itself. Outer join fetching allows a whole graph of objects connected by many-to-one, one-to-many, many-to-many and one-to-one associations to be retrieved in a single SQL <literal>SELECT</literal>."
+msgstr "å¦æä½ çæ°æ®åºæ¯æ ANSIãOracle æ Sybase 飿 ¼çå¤è¿æ¥ï¼<emphasis>å¤è¿æ¥æå</emphasis>é常è½éè¿éå¶å¾è¿æ°æ®åºæ¬¡æ°ï¼æ´å¤çå·¥ä½äº¤ç±æ°æ®åºèªå·±æ¥å®æï¼æ¥æé«æçãå¤è¿æ¥æåå
许å¨å个 <literal>SELECT</literal> SQL è¯å¥ä¸ï¼ éè¿ many-to-oneãone-to-manyãmany-to-many å one-to-one å
³èè·åè¿æ¥å¯¹è±¡çæ´ä¸ªå¯¹è±¡å¾ã"
#. Tag: para
-#: configuration.xml:1128
-#, fuzzy, no-c-format
-msgid ""
-"Outer join fetching can be disabled <emphasis>globally</emphasis> by setting "
-"the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</"
-"literal>. A setting of <literal>1</literal> or higher enables outer join "
-"fetching for one-to-one and many-to-one associations that have been mapped "
-"with <literal>fetch=\"join\"</literal>."
-msgstr ""
-"å°<literal>hibernate.max_fetch_depth</literal>设为<literal>0</literal>è½å¨"
-"<emphasis>å
¨å±</emphasis> èå´å
ç¦æ¢å¤è¿æ¥æå. 设为<literal>1</literal>ææ´"
-"é«å¼è½å¯ç¨one-to-oneåmany-to-oneouterå
³èçå¤è¿æ¥æå, å®ä»¬éè¿ "
-"<literal>fetch=\"join\"</literal>æ¥æ å°."
+#, no-c-format
+msgid "Outer join fetching can be disabled <emphasis>globally</emphasis> by setting the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</literal>. A setting of <literal>1</literal> or higher enables outer join fetching for one-to-one and many-to-one associations that have been mapped with <literal>fetch=\"join\"</literal>."
+msgstr "å° <literal>hibernate.max_fetch_depth</literal> 设为 <literal>0</literal> è½å¨<emphasis>å
¨å±</emphasis> èå´å
ç¦æ¢å¤è¿æ¥æåã设为 <literal>1</literal> ææ´é«å¼è½å¯ç¨ one-to-one å many-to-oneouter å
³èçå¤è¿æ¥æåï¼å®ä»¬éè¿ <literal>fetch=\"join\"</literal> æ¥æ å°ã "
#. Tag: para
-#: configuration.xml:1136
#, no-c-format
-msgid "See <xref linkend=\"performance-fetching\"/> for more information."
-msgstr "åè§<xref linkend=\"performance-fetching\"/>è·å¾æ´å¤ä¿¡æ¯."
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr "åè§ <xref linkend=\"performance-fetching\"/> è·å¾æ´å¤ä¿¡æ¯ã "
#. Tag: title
-#: configuration.xml:1143
#, no-c-format
msgid "Binary Streams"
-msgstr "äºè¿å¶æµ (Binary Streams)"
+msgstr "äºè¿å¶æµï¼Binary Streamsï¼"
#. Tag: para
-#: configuration.xml:1145
-#, fuzzy, no-c-format
-msgid ""
-"Oracle limits the size of <literal>byte</literal> arrays that can be passed "
-"to and/or from its JDBC driver. If you wish to use large instances of "
-"<literal>binary</literal> or <literal>serializable</literal> type, you "
-"should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. "
-"<emphasis>This is a system-level setting only.</emphasis>"
-msgstr ""
-"Oracleéå¶é£äºéè¿JDBC驱å¨ä¼ è¾ç<literal>åè</literal>æ°ç»çæ°ç®. å¦æä½ å¸æ"
-"使ç¨<literal>äºè¿å¼ (binary)</literal>æ <literal>å¯åºååç (serializable)</"
-"literal>ç±»åç大对象, ä½ åºè¯¥å¼å¯ <literal>hibernate.jdbc."
-"use_streams_for_binary</literal>屿§. <emphasis>è¿æ¯ç³»ç»çº§å±æ§.</emphasis>"
+#, no-c-format
+msgid "Oracle limits the size of <literal>byte</literal> arrays that can be passed to and/or from its JDBC driver. If you wish to use large instances of <literal>binary</literal> or <literal>serializable</literal> type, you should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. <emphasis>This is a system-level setting only.</emphasis>"
+msgstr "Oracle éå¶é£äºéè¿ JDBC 驱å¨ä¼ è¾ç<literal>åè</literal>æ°ç»çæ°ç®ãå¦æä½ å¸æä½¿ç¨<literal>äºè¿å¼ï¼binaryï¼</literal>æ <literal>å¯åºååçï¼serializableï¼</literal>ç±»åç大对象ï¼ä½ åºè¯¥å¼å¯ <literal>hibernate.jdbc.use_streams_for_binary</literal> 屿§ã<emphasis>è¿æ¯ç³»ç»çº§å±æ§ã</emphasis> "
#. Tag: title
-#: configuration.xml:1156
#, no-c-format
msgid "Second-level and query cache"
msgstr "äºçº§ç¼å䏿¥è¯¢ç¼å"
#. Tag: para
-#: configuration.xml:1158
-#, fuzzy, no-c-format
-msgid ""
-"The properties prefixed by <literal>hibernate.cache</literal> allow you to "
-"use a process or cluster scoped second-level cache system with Hibernate. "
-"See the <xref linkend=\"performance-cache\"/> for more information."
-msgstr ""
-"以<literal>hibernate.cache</literal>为åç¼ç屿§å
è®¸ä½ å¨Hibernateä¸ï¼ä½¿ç¨è¿ç¨"
-"æç¾¤éèå´å
çäºçº§ç¼åç³»ç». åè§<xref linkend=\"performance-cache\"/>è·åæ´å¤"
-"ç详æ
."
+#, no-c-format
+msgid "The properties prefixed by <literal>hibernate.cache</literal> allow you to use a process or cluster scoped second-level cache system with Hibernate. See the <xref linkend=\"performance-cache\" /> for more information."
+msgstr "以 <literal>hibernate.cache</literal> 为åç¼ç屿§å
è®¸ä½ å¨ Hibernate ä¸ï¼ä½¿ç¨è¿ç¨æç¾¤éèå´å
çäºçº§ç¼åç³»ç»ãåè§ <xref linkend=\"performance-cache\"/> è·åæ´å¤ç详æ
ã"
#. Tag: title
-#: configuration.xml:1168
#, no-c-format
msgid "Query Language Substitution"
msgstr "æ¥è¯¢è¯è¨ä¸çæ¿æ¢"
#. Tag: para
-#: configuration.xml:1170
-#, fuzzy, no-c-format
-msgid ""
-"You can define new Hibernate query tokens using <literal>hibernate.query."
-"substitutions</literal>. For example:"
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨<literal>hibernate.query.substitutions</literal>å¨Hibernateä¸å®ä¹æ°"
-"çæ¥è¯¢ç¬¦å·. ä¾å¦:"
-
-#. Tag: programlisting
-#: configuration.xml:1175
#, no-c-format
-msgid "hibernate.query.substitutions true=1, false=0"
-msgstr "hibernate.query.substitutions true=1, false=0"
+msgid "You can define new Hibernate query tokens using <literal>hibernate.query.substitutions</literal>. For example:"
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>hibernate.query.substitutions</literal> å¨ Hibernate ä¸å®ä¹æ°çæ¥è¯¢ç¬¦å·ãä¾å¦ï¼ "
#. Tag: para
-#: configuration.xml:1177
-#, fuzzy, no-c-format
-msgid ""
-"This would cause the tokens <literal>true</literal> and <literal>false</"
-"literal> to be translated to integer literals in the generated SQL."
-msgstr ""
-"å°å¯¼è´ç¬¦å·<literal>true</literal>å<literal>false</literal>å¨çæçSQLä¸è¢«ç¿»"
-"è¯ææ´æ°å¸¸é."
-
-#. Tag: programlisting
-#: configuration.xml:1182
#, no-c-format
-msgid "hibernate.query.substitutions toLowercase=LOWER"
-msgstr "hibernate.query.substitutions toLowercase=LOWER"
+msgid "This would cause the tokens <literal>true</literal> and <literal>false</literal> to be translated to integer literals in the generated SQL."
+msgstr "å°å¯¼è´ç¬¦å· <literal>true</literal> å <literal>false</literal> å¨çæç SQL ä¸è¢«ç¿»è¯ææ´æ°å¸¸éã"
#. Tag: para
-#: configuration.xml:1184
-#, fuzzy, no-c-format
-msgid ""
-"This would allow you to rename the SQL <literal>LOWER</literal> function."
-msgstr "å°å
è®¸ä½ éå½åSQLä¸ç<literal>LOWER</literal>彿°."
+#, no-c-format
+msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr "å°å
è®¸ä½ éå½å SQL ä¸ç <literal>LOWER</literal> 彿°ã"
#. Tag: title
-#: configuration.xml:1191
#, no-c-format
msgid "Hibernate statistics"
-msgstr "Hibernateçç»è®¡(statistics)æºå¶"
+msgstr "Hibernate çç»è®¡ï¼statisticsï¼æºå¶"
#. Tag: para
-#: configuration.xml:1193
-#, fuzzy, no-c-format
-msgid ""
-"If you enable <literal>hibernate.generate_statistics</literal>, Hibernate "
-"exposes a number of metrics that are useful when tuning a running system via "
-"<literal>SessionFactory.getStatistics()</literal>. Hibernate can even be "
-"configured to expose these statistics via JMX. Read the Javadoc of the "
-"interfaces in <literal>org.hibernate.stats</literal> for more information."
-msgstr ""
-"å¦æä½ å¼å¯<literal>hibernate.generate_statistics</literal>, é£ä¹å½ä½ éè¿ "
-"<literal>SessionFactory.getStatistics()</literal>è°æ´æ£å¨è¿è¡çç³»ç»æ¶ï¼"
-"Hibernateå°å¯¼åºå¤§éæç¨çæ°æ®. Hibernateçè³è½è¢«é
ç½®æéè¿JMX导åºè¿äºç»è®¡ä¿¡"
-"æ¯. åè<literal>org.hibernate.stats</literal>䏿¥å£çJavadocï¼ä»¥è·å¾æ´å¤ä¿¡"
-"æ¯."
+#, no-c-format
+msgid "If you enable <literal>hibernate.generate_statistics</literal>, Hibernate exposes a number of metrics that are useful when tuning a running system via <literal>SessionFactory.getStatistics()</literal>. Hibernate can even be configured to expose these statistics via JMX. Read the Javadoc of the interfaces in <literal>org.hibernate.stats</literal> for more information."
+msgstr "å¦æä½ å¼å¯ <literal>hibernate.generate_statistics</literal>ï¼é£ä¹å½ä½ éè¿ <literal>SessionFactory.getStatistics()</literal> è°æ´æ£å¨è¿è¡çç³»ç»æ¶ï¼Hibernate å°å¯¼åºå¤§éæç¨çæ°æ®ãHibernate çè³è½è¢«é
ç½®æéè¿ JMX 导åºè¿äºç»è®¡ä¿¡æ¯ãåè <literal>org.hibernate.stats</literal> 䏿¥å£ç Javadocï¼ä»¥è·å¾æ´å¤ä¿¡æ¯ã "
#. Tag: title
-#: configuration.xml:1205
#, no-c-format
msgid "Logging"
msgstr "æ¥å¿"
#. Tag: para
-#: configuration.xml:1207
#, no-c-format
-msgid ""
-"Hibernate utilizes <ulink url=\"http://www.slf4j.org/\">Simple Logging "
-"Facade for Java</ulink> (SLF4J) in order to log various system events. SLF4J "
-"can direct your logging output to several logging frameworks (NOP, Simple, "
-"log4j version 1.2, JDK 1.4 logging, JCL or logback) depending on your chosen "
-"binding. In order to setup logging you will need <filename>slf4j-api.jar</"
-"filename> in your classpath together with the jar file for your preferred "
-"binding - <filename>slf4j-log4j12.jar</filename> in the case of Log4J. See "
-"the SLF4J <ulink url=\"http://www.slf4j.org/manual.html\">documentation</"
-"ulink> for more detail. To use Log4j you will also need to place a "
-"<filename>log4j.properties</filename> file in your classpath. An example "
-"properties file is distributed with Hibernate in the <literal>src/</literal> "
-"directory."
-msgstr ""
+msgid "Hibernate utilizes <ulink url=\"http://www.slf4j.org/\">Simple Logging Facade for Java</ulink> (SLF4J) in order to log various system events. SLF4J can direct your logging output to several logging frameworks (NOP, Simple, log4j version 1.2, JDK 1.4 logging, JCL or logback) depending on your chosen binding. In order to setup logging you will need <filename>slf4j-api.jar</filename> in your classpath together with the jar file for your preferred binding - <filename>slf4j-log4j12.jar</filename> in the case of Log4J. See the SLF4J <ulink url=\"http://www.slf4j.org/manual.html\">documentation</ulink> for more detail. To use Log4j you will also need to place a <filename>log4j.properties</filename> file in your classpath. An example properties file is distributed with Hibernate in the <literal>src/</literal> directory."
+msgstr "Hibernate å©ç¨ <ulink url=\"http://www.slf4j.org/\">Simple Logging Facade for Java</ulink> (SLF4J) æ¥è®°å½ä¸åç³»ç»äºä»¶çæ¥å¿ãSLF4J å¯ä»¥æ ¹æ®ä½ éæ©çç»å®ææ¥å¿è¾åºå°å 个æ¥å¿æ¡æ¶ï¼NOPãSimpleãlog4j version 1.2ãJDK 1.4 loggingãJCL æ logbackï¼ä¸ã为äºè®¾ç½®æ¥å¿ï¼ä½ éè¦å¨ classpath éå å
¥ <filename>slf4j-api.jar</filename> åä½ éæ©çç»å®ç JAR æä»¶ï¼ä½¿ç¨ Log4J æ¶å å
¥ <filename>slf4j-log4j12.jar</filename>ï¼ãæ´å¤çç»è请åè SLF4J <ulink url=\"http://www.slf4j.org/manual.html\">ææ¡£</ulink>ãè¦ä½¿ç¨ Log4jï¼ä½ ä¹éè¦å¨ classpath éå å
¥ <filename>log4j.properties</filename> æä»¶ãHibernate éç <literal>src/</literal> ç®å½é带æä¸ä¸ªå±æ§æä»¶çä¾åã"
#. Tag: para
-#: configuration.xml:1218
-#, fuzzy, no-c-format
-msgid ""
-"It is recommended that you familiarize yourself with Hibernate's log "
-"messages. A lot of work has been put into making the Hibernate log as "
-"detailed as possible, without making it unreadable. It is an essential "
-"troubleshooting device. The most interesting log categories are the "
-"following:"
-msgstr ""
-"æä»¬å¼ºçå»ºè®®ä½ çæä¸ä¸Hibernateçæ¥å¿æ¶æ¯. å¨ä¸å¤±å¯è¯»æ§çåæä¸ï¼ æä»¬åäºå¾"
-"å¤å·¥ä½ï¼ä½¿Hibernateçæ¥å¿å¯è½å°è¯¦ç». è¿æ¯å¿
è¦çæ¥éå©å¨. æä»¤äººæå
´è¶£çæ¥å¿å"
-"ç±»æå¦ä¸è¿äº:"
+#, no-c-format
+msgid "It is recommended that you familiarize yourself with Hibernate's log messages. A lot of work has been put into making the Hibernate log as detailed as possible, without making it unreadable. It is an essential troubleshooting device. The most interesting log categories are the following:"
+msgstr "æä»¬å¼ºçå»ºè®®ä½ çæä¸ä¸ Hibernate çæ¥å¿æ¶æ¯ãå¨ä¸å¤±å¯è¯»æ§çåæä¸ï¼æä»¬åäºå¾å¤å·¥ä½ï¼ä½¿ Hibernate çæ¥å¿å¯è½å°è¯¦ç»ãè¿æ¯å¿
è¦çæ¥éå©å¨ãæä»¤äººæå
´è¶£çæ¥å¿åç±»æå¦ä¸è¿äºï¼"
#. Tag: title
-#: configuration.xml:1227
#, no-c-format
msgid "Hibernate Log Categories"
-msgstr "Hibernateæ¥å¿ç±»å«"
+msgstr "Hibernate æ¥å¿ç±»å«"
-#. Tag: entry
-#: configuration.xml:1233
+#. Tag: para
#, no-c-format
msgid "Category"
msgstr "ç±»å«"
-#. Tag: entry
-#: configuration.xml:1234
+#. Tag: para
#, no-c-format
msgid "Function"
msgstr "åè½"
-#. Tag: literal
-#: configuration.xml:1239
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.SQL"
-msgstr "org.hibernate.SQL"
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr "<literal>org.hibernate.SQL</literal>"
-#. Tag: entry
-#: configuration.xml:1240
+#. Tag: para
#, no-c-format
msgid "Log all SQL DML statements as they are executed"
-msgstr "卿æSQL DMLè¯å¥è¢«æ§è¡æ¶ä¸ºå®ä»¬è®°å½æ¥å¿"
+msgstr "卿æ SQL DML è¯å¥è¢«æ§è¡æ¶ä¸ºå®ä»¬è®°å½æ¥å¿"
-#. Tag: literal
-#: configuration.xml:1243
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.type"
-msgstr "org.hibernate.type"
+msgid "<literal>org.hibernate.type</literal>"
+msgstr "<literal>org.hibernate.type</literal>"
-#. Tag: entry
-#: configuration.xml:1244
+#. Tag: para
#, no-c-format
msgid "Log all JDBC parameters"
-msgstr "为ææJDBCåæ°è®°å½æ¥å¿"
+msgstr "ä¸ºææ JDBC åæ°è®°å½æ¥å¿"
-#. Tag: literal
-#: configuration.xml:1247
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.tool.hbm2ddl"
-msgstr "org.hibernate.tool.hbm2ddl"
+msgid "<literal>org.hibernate.tool. hbm2ddl</literal>"
+msgstr "<literal>org.hibernate.tool. hbm2ddl</literal>"
-#. Tag: entry
-#: configuration.xml:1248
+#. Tag: para
#, no-c-format
msgid "Log all SQL DDL statements as they are executed"
-msgstr "卿æSQL DDLè¯å¥æ§è¡æ¶ä¸ºå®ä»¬è®°å½æ¥å¿"
+msgstr "卿æ SQL DDL è¯å¥æ§è¡æ¶ä¸ºå®ä»¬è®°å½æ¥å¿"
-#. Tag: literal
-#: configuration.xml:1251
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.pretty"
-msgstr "org.hibernate.pretty"
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr "<literal>org.hibernate.pretty</literal>"
-#. Tag: entry
-#: configuration.xml:1252
+#. Tag: para
#, no-c-format
-msgid ""
-"Log the state of all entities (max 20 entities) associated with the session "
-"at flush time"
-msgstr "å¨sessionæ¸
æ´(flush)æ¶ï¼ä¸ºææä¸å
¶å
³èçå®ä½(æå¤20个)çç¶æè®°å½æ¥å¿"
+msgid "Log the state of all entities (max 20 entities) associated with the session at flush time"
+msgstr "å¨ session æ¸
æ´ï¼flushï¼æ¶ï¼ä¸ºææä¸å
¶å
³èçå®ä½ï¼æå¤ 20 个ï¼çç¶æè®°å½æ¥å¿"
-#. Tag: literal
-#: configuration.xml:1258
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.cache"
-msgstr "org.hibernate.cache"
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr "<literal>org.hibernate.cache</literal>"
-#. Tag: entry
-#: configuration.xml:1259
+#. Tag: para
#, no-c-format
msgid "Log all second-level cache activity"
msgstr "为ææäºçº§ç¼åçæ´»å¨è®°å½æ¥å¿"
-#. Tag: literal
-#: configuration.xml:1262
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction"
-msgstr "org.hibernate.transaction"
+msgid "<literal>org.hibernate. transaction</literal>"
+msgstr "<literal>org.hibernate. transaction</literal>"
-#. Tag: entry
-#: configuration.xml:1263
+#. Tag: para
#, no-c-format
msgid "Log transaction related activity"
msgstr "为äºå¡ç¸å
³çæ´»å¨è®°å½æ¥å¿"
-#. Tag: literal
-#: configuration.xml:1266
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.jdbc"
-msgstr "org.hibernate.jdbc"
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr "<literal>org.hibernate.jdbc</literal>"
-#. Tag: entry
-#: configuration.xml:1267
+#. Tag: para
#, no-c-format
msgid "Log all JDBC resource acquisition"
-msgstr "为ææJDBCèµæºçè·åè®°å½æ¥å¿"
+msgstr "ä¸ºææ JDBC èµæºçè·åè®°å½æ¥å¿"
-#. Tag: literal
-#: configuration.xml:1270
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.hql.ast.AST"
-msgstr "org.hibernate.hql.AST"
+msgid "<literal>org.hibernate.hql. ast.AST</literal>"
+msgstr "<literal>org.hibernate.hql. ast.AST</literal>"
-#. Tag: entry
-#: configuration.xml:1271
+#. Tag: para
#, no-c-format
msgid "Log HQL and SQL ASTs during query parsing"
-msgstr "å¨è§£ææ¥è¯¢çæ¶å,è®°å½HQLåSQLçASTåææ¥å¿"
+msgstr "å¨è§£ææ¥è¯¢çæ¶å,è®°å½ HQL å SQL ç AST åææ¥å¿"
-#. Tag: literal
-#: configuration.xml:1276
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.secure"
-msgstr "org.hibernate.secure"
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr "<literal>org.hibernate.secure</literal>"
-#. Tag: entry
-#: configuration.xml:1277
+#. Tag: para
#, no-c-format
msgid "Log all JAAS authorization requests"
-msgstr "为JAAS认è¯è¯·æ±åæ¥å¿"
+msgstr "为 JAAS 认è¯è¯·æ±åæ¥å¿"
-#. Tag: literal
-#: configuration.xml:1280
+#. Tag: para
#, no-c-format
-msgid "org.hibernate"
-msgstr "org.hibernate"
+msgid "<literal>org.hibernate</literal>"
+msgstr "<literal>org.hibernate</literal>"
-#. Tag: entry
-#: configuration.xml:1281
-#, fuzzy, no-c-format
-msgid ""
-"Log everything. This is a lot of information but it is useful for "
-"troubleshooting"
-msgstr "为任ä½Hibernateç¸å
³ä¿¡æ¯åæ¥å¿ (ä¿¡æ¯éè¾å¤§, ä½å¯¹æ¥éé常æå¸®å©)"
+#. Tag: para
+#, no-c-format
+msgid "Log everything. This is a lot of information but it is useful for troubleshooting"
+msgstr "ä¸ºä»»ä½ Hibernate ç¸å
³ä¿¡æ¯è®°å½æ¥å¿ï¼ä¿¡æ¯éè¾å¤§ï¼ä½å¯¹æ¥éé常æå¸®å©ï¼"
#. Tag: para
-#: configuration.xml:1290
#, no-c-format
-msgid ""
-"When developing applications with Hibernate, you should almost always work "
-"with <literal>debug</literal> enabled for the category <literal>org."
-"hibernate.SQL</literal>, or, alternatively, the property <literal>hibernate."
-"show_sql</literal> enabled."
-msgstr ""
-"å¨ä½¿ç¨Hibernateå¼ååºç¨ç¨åºæ¶, ä½ åºå½æ»æ¯ä¸º<literal>org.hibernate.SQL</"
-"literal> å¼å¯<literal>debug</literal>级å«çæ¥å¿è®°å½,æè
å¼å¯"
-"<literal>hibernate.show_sql</literal>屿§ã"
+msgid "When developing applications with Hibernate, you should almost always work with <literal>debug</literal> enabled for the category <literal>org.hibernate.SQL</literal>, or, alternatively, the property <literal>hibernate.show_sql</literal> enabled."
+msgstr "å¨ä½¿ç¨ Hibernate å¼ååºç¨ç¨åºæ¶ï¼ä½ åºå½æ»æ¯ä¸º <literal>org.hibernate.SQL</literal> å¼å¯ <literal>debug</literal> 级å«çæ¥å¿è®°å½,æè
å¼å¯ <literal>hibernate.show_sql</literal> 屿§ã"
#. Tag: title
-#: configuration.xml:1300
#, no-c-format
msgid "Implementing a <literal>NamingStrategy</literal>"
-msgstr "å®ç°<literal>NamingStrategy</literal>"
+msgstr "å®ç° <literal>NamingStrategy</literal>"
#. Tag: para
-#: configuration.xml:1302
#, no-c-format
-msgid ""
-"The interface <literal>org.hibernate.cfg.NamingStrategy</literal> allows you "
-"to specify a \"naming standard\" for database objects and schema elements."
-msgstr ""
-"<literal>org.hibernate.cfg.NamingStrategy</literal>æ¥å£å
è®¸ä½ ä¸ºæ°æ®åºä¸ç对象"
-"åschema å
ç´ æå®ä¸ä¸ªâå½åæ åâ."
+msgid "The interface <literal>org.hibernate.cfg.NamingStrategy</literal> allows you to specify a \"naming standard\" for database objects and schema elements."
+msgstr "<literal>org.hibernate.cfg.NamingStrategy</literal> æ¥å£å
è®¸ä½ ä¸ºæ°æ®åºä¸ç对象å schema å
ç´ æå®ä¸ä¸ªâå½åæ åâã"
#. Tag: para
-#: configuration.xml:1307
-#, fuzzy, no-c-format
-msgid ""
-"You can provide rules for automatically generating database identifiers from "
-"Java identifiers or for processing \"logical\" column and table names given "
-"in the mapping file into \"physical\" table and column names. This feature "
-"helps reduce the verbosity of the mapping document, eliminating repetitive "
-"noise (<literal>TBL_</literal> prefixes, for example). The default strategy "
-"used by Hibernate is quite minimal."
-msgstr ""
-"ä½ å¯è½ä¼æä¾ä¸äºéè¿Javaæ è¯çææ°æ®åºæ è¯æå°æ å°å®ä¹æä»¶ä¸\"é»è¾\"表/ååå¤"
-"çæ\"ç©ç\"表/ååçè§å. è¿ä¸ªç¹æ§æå©äºåå°åé¿çæ å°å®ä¹æä»¶."
+#, no-c-format
+msgid "You can provide rules for automatically generating database identifiers from Java identifiers or for processing \"logical\" column and table names given in the mapping file into \"physical\" table and column names. This feature helps reduce the verbosity of the mapping document, eliminating repetitive noise (<literal>TBL_</literal> prefixes, for example). The default strategy used by Hibernate is quite minimal."
+msgstr "ä½ å¯è½ä¼æä¾ä¸äºéè¿ Java æ è¯çææ°æ®åºæ è¯æå°æ å°å®ä¹æä»¶ä¸\"é»è¾\"表/ååå¤çæ\"ç©ç\"表/ååçè§åãè¿ä¸ªç¹æ§æå©äºåå°åé¿çæ å°å®ä¹æä»¶ï¼æ¶é¤éå¤å
容ï¼å¦ <literal>TBL_</literal> åç¼ï¼ãHibernate 使ç¨ç缺ççç¥æ¯ç¸å½ç²¾ç®çã"
#. Tag: para
-#: configuration.xml:1316
-#, fuzzy, no-c-format
-msgid ""
-"You can specify a different strategy by calling <literal>Configuration."
-"setNamingStrategy()</literal> before adding mappings:"
-msgstr ""
-"å¨å å
¥æ å°å®ä¹åï¼ä½ å¯ä»¥è°ç¨ <literal>Configuration.setNamingStrategy()</"
-"literal>æå®ä¸ä¸ªä¸åçå½åçç¥:"
-
-#. Tag: programlisting
-#: configuration.xml:1321
#, no-c-format
-msgid ""
-"<![CDATA[SessionFactory sf = new Configuration()\n"
-" .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
-" .addFile(\"Item.hbm.xml\")\n"
-" .addFile(\"Bid.hbm.xml\")\n"
-" .buildSessionFactory();]]>"
-msgstr ""
+msgid "You can specify a different strategy by calling <literal>Configuration.setNamingStrategy()</literal> before adding mappings:"
+msgstr "å¨å å
¥æ å°å®ä¹åï¼ä½ å¯ä»¥è°ç¨ <literal>Configuration.setNamingStrategy()</literal> æå®ä¸ä¸ªä¸åçå½åçç¥ï¼ "
#. Tag: para
-#: configuration.xml:1323
#, no-c-format
-msgid ""
-"<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> is a built-in "
-"strategy that might be a useful starting point for some applications."
-msgstr ""
-"<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal>æ¯ä¸ä¸ªå
建çå½åç"
-"ç¥, 对 ä¸äºåºç¨ç¨åºèè¨ï¼å¯è½æ¯é常æç¨çèµ·ç¹."
+msgid "<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> is a built-in strategy that might be a useful starting point for some applications."
+msgstr "<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> æ¯ä¸ä¸ªå
建çå½åçç¥ï¼å¯¹ä¸äºåºç¨ç¨åºèè¨ï¼å¯è½æ¯é常æç¨çèµ·ç¹ã"
#. Tag: title
-#: configuration.xml:1331
#, no-c-format
msgid "XML configuration file"
-msgstr "XMLé
ç½®æä»¶"
+msgstr "XML é
ç½®æä»¶"
#. Tag: para
-#: configuration.xml:1333
#, no-c-format
-msgid ""
-"An alternative approach to configuration is to specify a full configuration "
-"in a file named <literal>hibernate.cfg.xml</literal>. This file can be used "
-"as a replacement for the <literal>hibernate.properties</literal> file or, if "
-"both are present, to override properties."
-msgstr ""
-"å¦ä¸ä¸ªé
ç½®æ¹æ³æ¯å¨<literal>hibernate.cfg.xml</literal>æä»¶ä¸æå®ä¸å¥å®æ´çé
"
-"ç½®. è¿ä¸ªæä»¶å¯ä»¥å½æ<literal>hibernate.properties</literal>çæ¿ä»£ã è¥ä¸¤ä¸ªæ"
-"ä»¶åæ¶åå¨ï¼å®å°è¦çåè
ç屿§."
+msgid "An alternative approach to configuration is to specify a full configuration in a file named <literal>hibernate.cfg.xml</literal>. This file can be used as a replacement for the <literal>hibernate.properties</literal> file or, if both are present, to override properties."
+msgstr "å¦ä¸ä¸ªé
ç½®æ¹æ³æ¯å¨ <literal>hibernate.cfg.xml</literal> æä»¶ä¸æå®ä¸å¥å®æ´çé
ç½®ãè¿ä¸ªæä»¶å¯ä»¥å½æ <literal>hibernate.properties</literal> çæ¿ä»£ãè¥ä¸¤ä¸ªæä»¶åæ¶åå¨ï¼å®å°è¦çåè
ç屿§ã"
#. Tag: para
-#: configuration.xml:1340
-#, fuzzy, no-c-format
-msgid ""
-"The XML configuration file is by default expected to be in the root of your "
-"<literal>CLASSPATH</literal>. Here is an example:"
-msgstr ""
-"XMLé
ç½®æä»¶è¢«é»è®¤æ¯æ¾å¨<literal>CLASSPATH</literal>çæ ¹ç®å½ä¸. è¿æ¯ä¸ä¸ªä¾å:"
-
-#. Tag: programlisting
-#: configuration.xml:1345
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
-"<!DOCTYPE hibernate-configuration PUBLIC\n"
-" \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
-"\n"
-"<hibernate-configuration>\n"
-"\n"
-" <!-- a SessionFactory instance listed as /jndi/name -->\n"
-" <session-factory\n"
-" name=\"java:hibernate/SessionFactory\">\n"
-"\n"
-" <!-- properties -->\n"
-" <property name=\"connection.datasource\">java:/comp/env/jdbc/MyDB</"
-"property>\n"
-" <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</"
-"property>\n"
-" <property name=\"show_sql\">false</property>\n"
-" <property name=\"transaction.factory_class\">\n"
-" org.hibernate.transaction.JTATransactionFactory\n"
-" </property>\n"
-" <property name=\"jta.UserTransaction\">java:comp/UserTransaction</"
-"property>\n"
-"\n"
-" <!-- mapping files -->\n"
-" <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
-" <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
-"\n"
-" <!-- cache settings -->\n"
-" <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-write"
-"\"/>\n"
-" <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only\"/"
-">\n"
-" <collection-cache collection=\"org.hibernate.auction.Item.bids\" "
-"usage=\"read-write\"/>\n"
-"\n"
-" </session-factory>\n"
-"\n"
-"</hibernate-configuration>]]>"
-msgstr ""
+msgid "The XML configuration file is by default expected to be in the root of your <literal>CLASSPATH</literal>. Here is an example:"
+msgstr "XML é
ç½®æä»¶è¢«é»è®¤æ¯æ¾å¨ <literal>CLASSPATH</literal> çæ ¹ç®å½ä¸ãä¸é¢æ¯ä¸ä¸ªä¾åï¼ "
#. Tag: para
-#: configuration.xml:1347
-#, fuzzy, no-c-format
-msgid ""
-"The advantage of this approach is the externalization of the mapping file "
-"names to configuration. The <literal>hibernate.cfg.xml</literal> is also "
-"more convenient once you have to tune the Hibernate cache. It is your choice "
-"to use either <literal>hibernate.properties</literal> or <literal>hibernate."
-"cfg.xml</literal>. Both are equivalent, except for the above mentioned "
-"benefits of using the XML syntax."
-msgstr ""
-"å¦ä½ æè§, è¿ä¸ªæ¹æ³ä¼å¿å¨äºï¼å¨é
ç½®æä»¶ä¸æåºäºæ å°å®ä¹æä»¶çåå. 䏿¦ä½ éè¦"
-"è°æ´Hibernateçç¼åï¼ <literal>hibernate.cfg.xml</literal>乿¯æ´æ¹ä¾¿. 注æï¼"
-"使ç¨<literal>hibernate.properties</literal>è¿æ¯ <literal>hibernate.cfg.xml</"
-"literal>å®å
¨æ¯ç±ä½ æ¥å³å®, é¤äºä¸é¢æå°çXMLè¯æ³çä¼å¿ä¹å¤, 两è
æ¯çä»·ç."
+#, no-c-format
+msgid "The advantage of this approach is the externalization of the mapping file names to configuration. The <literal>hibernate.cfg.xml</literal> is also more convenient once you have to tune the Hibernate cache. It is your choice to use either <literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</literal>. Both are equivalent, except for the above mentioned benefits of using the XML syntax."
+msgstr "å¦ä½ æè§ï¼è¿ä¸ªæ¹æ³ä¼å¿å¨äºï¼å¨é
ç½®æä»¶ä¸æåºäºæ å°å®ä¹æä»¶çååã䏿¦ä½ éè¦è°æ´ Hibernate çç¼åï¼<literal>hibernate.cfg.xml</literal> 乿¯æ´æ¹ä¾¿ã注æï¼ä½¿ç¨ <literal>hibernate.properties</literal> è¿æ¯ <literal>hibernate.cfg.xml</literal> å®å
¨æ¯ç±ä½ æ¥å³å®ï¼é¤äºä¸é¢æå°ç XML è¯æ³çä¼å¿ä¹å¤ï¼ä¸¤è
æ¯çä»·çã "
#. Tag: para
-#: configuration.xml:1356
-#, fuzzy, no-c-format
+#, no-c-format
msgid "With the XML configuration, starting Hibernate is then as simple as:"
-msgstr ""
-"使ç¨XMLé
ç½®ï¼ä½¿å¾å¯å¨Hibernateåçå¼å¸¸ç®å, å¦ä¸æç¤ºï¼ä¸è¡ä»£ç å°±å¯ä»¥æå®ï¼"
+msgstr "ä½¿ç¨ XML é
ç½®ï¼ä½¿å¾å¯å¨ Hibernate åçå¼å¸¸ç®åï¼"
-#. Tag: programlisting
-#: configuration.xml:1360
-#, no-c-format
-msgid ""
-"<![CDATA[SessionFactory sf = new Configuration().configure()."
-"buildSessionFactory();]]>"
-msgstr ""
-
#. Tag: para
-#: configuration.xml:1362
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can select a different XML configuration file using:"
-msgstr "ä½ å¯ä»¥ä½¿ç¨å¦ä¸ä»£ç æ¥æ·»å ä¸ä¸ªä¸åçXMLé
ç½®æä»¶"
+msgstr "ä½ å¯ä»¥ä½¿ç¨å¦ä¸ä»£ç æ¥æ·»å ä¸ä¸ªä¸åç XML é
ç½®æä»¶ï¼"
-#. Tag: programlisting
-#: configuration.xml:1366
-#, no-c-format
-msgid ""
-"<![CDATA[SessionFactory sf = new Configuration()\n"
-" .configure(\"catdb.cfg.xml\")\n"
-" .buildSessionFactory();]]>"
-msgstr ""
-
#. Tag: title
-#: configuration.xml:1371
#, no-c-format
msgid "J2EE Application Server integration"
-msgstr "J2EEåºç¨ç¨åºæå¡å¨çéæ"
+msgstr "J2EE åºç¨ç¨åºæå¡å¨çéæ"
#. Tag: para
-#: configuration.xml:1373
#, no-c-format
msgid "Hibernate has the following integration points for J2EE infrastructure:"
-msgstr "é对J2EEä½ç³»,Hibernateæå¦ä¸å 个éæçæ¹é¢:"
+msgstr "é对 J2EE ä½ç³»ï¼Hibernate æå¦ä¸å 个éæçæ¹é¢ï¼"
#. Tag: para
-#: configuration.xml:1379
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC "
-"connections managed by the container and provided through JNDI. Usually, a "
-"JTA compatible <literal>TransactionManager</literal> and a "
-"<literal>ResourceManager</literal> take care of transaction management "
-"(CMT), especially distributed transaction handling across several "
-"datasources. You can also demarcate transaction boundaries programmatically "
-"(BMT), or you might want to use the optional Hibernate <literal>Transaction</"
-"literal> API for this to keep your code portable."
-msgstr ""
-"<emphasis>容å¨ç®¡ççæ°æ®æº(Container-managed datasources)</emphasis>: "
-"Hibernateè½ä½¿ç¨éè¿å®¹å¨ç®¡çï¼å¹¶ç±JNDIæä¾çJDBCè¿æ¥. é常, ç¹å«æ¯å½å¤çå¤ä¸ªæ°"
-"æ®æºçåå¸å¼äºå¡çæ¶å, ç±ä¸ä¸ªJTAå
¼å®¹ç<literal>TransactionManager</literal>"
-"åä¸ä¸ª <literal>ResourceManager</literal>æ¥å¤çäºå¡ç®¡ç(CMT, 容å¨ç®¡ççäº"
-"å¡). å½ç¶ä½ å¯ä»¥éè¿ ç¼ç¨æ¹å¼æ¥ååäºå¡è¾¹ç(BMT, Bean管ççäºå¡). æè
为äºä»£ç "
-"çå¯ç§»æ¤æ§ï¼ä½ ä¹ä¹è®¸ä¼æ³ä½¿ç¨å¯éç Hibernate <literal>Transaction</literal> "
-"API."
+#, no-c-format
+msgid "<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC connections managed by the container and provided through JNDI. Usually, a JTA compatible <literal>TransactionManager</literal> and a <literal>ResourceManager</literal> take care of transaction management (CMT), especially distributed transaction handling across several datasources. You can also demarcate transaction boundaries programmatically (BMT), or you might want to use the optional Hibernate <literal>Transaction</literal> API for this to keep your code portable."
+msgstr "<emphasis>容å¨ç®¡ççæ°æ®æºï¼Container-managed datasourcesï¼</emphasis>ï¼ Hibernate è½ä½¿ç¨éè¿å®¹å¨ç®¡çï¼å¹¶ç± JNDI æä¾ç JDBC è¿æ¥ãé常ï¼ç¹å«æ¯å½å¤çå¤ä¸ªæ°æ®æºçåå¸å¼äºå¡çæ¶åï¼ç±ä¸ä¸ª JTA å
¼å®¹ç <literal>TransactionManager</literal> åä¸ä¸ª <literal>ResourceManager</literal> æ¥å¤çäºå¡ç®¡çï¼CMTï¼å®¹å¨ç®¡ççäºå¡ï¼ãå½ç¶ä½ å¯ä»¥éè¿ ç¼ç¨æ¹å¼æ¥ååäºå¡è¾¹çï¼BMTï¼Bean 管ççäºå¡ï¼ãæè
为äºä»£ç çå¯ç§»æ¤æ§ï¼ä½ ä¹ä¹è®¸ä¼æ³ä½¿ç¨å¯éç Hibernate <literal>Transaction</literal> APIã "
#. Tag: para
-#: configuration.xml:1394
#, no-c-format
-msgid ""
-"<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its "
-"<literal>SessionFactory</literal> to JNDI after startup."
-msgstr ""
-"<emphasis>èªå¨JNDIç»å®</emphasis>: Hibernateå¯ä»¥å¨å¯å¨åå° "
-"<literal>SessionFactory</literal>ç»å®å°JNDI."
+msgid "<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its <literal>SessionFactory</literal> to JNDI after startup."
+msgstr "<emphasis>èªå¨ JNDI ç»å®</emphasis>ï¼Hibernate å¯ä»¥å¨å¯å¨åå° <literal>SessionFactory</literal> ç»å®å° JNDIã"
#. Tag: para
-#: configuration.xml:1403
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>JTA Session binding:</emphasis> the Hibernate <literal>Session</"
-"literal> can be automatically bound to the scope of JTA transactions. Simply "
-"lookup the <literal>SessionFactory</literal> from JNDI and get the current "
-"<literal>Session</literal>. Let Hibernate manage flushing and closing the "
-"<literal>Session</literal> when your JTA transaction completes. Transaction "
-"demarcation is either declarative (CMT) or programmatic (BMT/"
-"UserTransaction)."
-msgstr ""
-"<emphasis>JTA Sessionç»å®:</emphasis> Hibernate <literal>Session</literal> å¯"
-"以èªå¨ç»å®å°JTAäºå¡ä½ç¨çèå´. åªéç®åå°ä»JNDIæ¥æ¾<literal>SessionFactory</"
-"literal>å¹¶è·å¾å½åç <literal>Session</literal>. å½JTAäºå¡å®ææ¶, 让Hibernate"
-"æ¥å¤ç <literal>Session</literal>çæ¸
æ´(flush)ä¸å
³é. äºå¡çååå¯ä»¥æ¯å£°æå¼"
-"ç(CMT),ä¹å¯ä»¥æ¯ç¼ç¨å¼ç(BMT/UserTransaction)."
+#, no-c-format
+msgid "<emphasis>JTA Session binding:</emphasis> the Hibernate <literal>Session</literal> can be automatically bound to the scope of JTA transactions. Simply lookup the <literal>SessionFactory</literal> from JNDI and get the current <literal>Session</literal>. Let Hibernate manage flushing and closing the <literal>Session</literal> when your JTA transaction completes. Transaction demarcation is either declarative (CMT) or programmatic (BMT/UserTransaction)."
+msgstr "<emphasis>JTA Session ç»å®ï¼</emphasis> Hibernate <literal>Session</literal> å¯ä»¥èªå¨ç»å®å° JTA äºå¡ä½ç¨çèå´ãåªéç®åå°ä» JNDI æ¥æ¾ <literal>SessionFactory</literal> å¹¶è·å¾å½åç <literal>Session</literal>ãå½ JTA äºå¡å®ææ¶ï¼è®© Hibernateæ¥å¤ç <literal>Session</literal> çæ¸
æ´ï¼flushï¼ä¸å
³éãäºå¡çååå¯ä»¥æ¯å£°æå¼çï¼CMTï¼,ä¹å¯ä»¥æ¯ç¼ç¨å¼çï¼BMT/UserTransactionï¼ã "
#. Tag: para
-#: configuration.xml:1416
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>JMX deployment:</emphasis> if you have a JMX capable application "
-"server (e.g. JBoss AS), you can choose to deploy Hibernate as a managed "
-"MBean. This saves you the one line startup code to build your "
-"<literal>SessionFactory</literal> from a <literal>Configuration</literal>. "
-"The container will startup your <literal>HibernateService</literal> and also "
-"take care of service dependencies (datasource has to be available before "
-"Hibernate starts, etc)."
-msgstr ""
-"<emphasis>JMXé¨ç½²:</emphasis> å¦æä½ ä½¿ç¨æ¯æJMXåºç¨ç¨åºæå¡å¨(å¦, JBoss AS), "
-"é£ä¹ä½ å¯ä»¥éæ©å°Hibernateé¨ç½²ææç®¡MBean. è¿å°ä¸ºä½ çå»ä¸è¡ä»"
-"<literal>Configuration</literal>æå»º<literal>SessionFactory</literal>çå¯å¨ä»£"
-"ç . 容å¨å°å¯å¨ä½ ç<literal>HibernateService</literal>, å¹¶å®ç¾å°å¤ç好æå¡é´ç"
-"ä¾èµå
³ç³» (å¨Hibernateå¯å¨åï¼æ°æ®æºå¿
é¡»æ¯å¯ç¨çï¼çç)."
+#, no-c-format
+msgid "<emphasis>JMX deployment:</emphasis> if you have a JMX capable application server (e.g. JBoss AS), you can choose to deploy Hibernate as a managed MBean. This saves you the one line startup code to build your <literal>SessionFactory</literal> from a <literal>Configuration</literal>. The container will startup your <literal>HibernateService</literal> and also take care of service dependencies (datasource has to be available before Hibernate starts, etc)."
+msgstr "<emphasis>JMX é¨ç½²ï¼</emphasis> å¦æä½ ä½¿ç¨æ¯æ JMX åºç¨ç¨åºæå¡å¨ï¼å¦ï¼JBoss ASï¼ï¼é£ä¹ä½ å¯ä»¥éæ©å° Hibernate é¨ç½²ææç®¡ MBeanãè¿å°ä¸ºä½ çå»ä¸è¡ä»<literal>Configuration</literal> æå»º <literal>SessionFactory</literal> çå¯å¨ä»£ç ã容å¨å°å¯å¨ä½ ç <literal>HibernateService</literal>ï¼å¹¶å®ç¾å°å¤ç好æå¡é´çä¾èµå
³ç³»ï¼å¨ Hibernate å¯å¨åï¼æ°æ®æºå¿
é¡»æ¯å¯ç¨çï¼ççï¼ã "
#. Tag: para
-#: configuration.xml:1427
#, no-c-format
-msgid ""
-"Depending on your environment, you might have to set the configuration "
-"option <literal>hibernate.connection.aggressive_release</literal> to true if "
-"your application server shows \"connection containment\" exceptions."
-msgstr ""
-"妿åºç¨ç¨åºæå¡å¨æåº\"connection containment\"å¼å¸¸, æ ¹æ®ä½ çç¯å¢ï¼ä¹è®¸è¯¥å°"
-"é
ç½®å±æ§ <literal>hibernate.connection.release_mode</literal>设为"
-"<literal>after_statement</literal>."
+msgid "Depending on your environment, you might have to set the configuration option <literal>hibernate.connection.aggressive_release</literal> to true if your application server shows \"connection containment\" exceptions."
+msgstr "妿åºç¨ç¨åºæå¡å¨æåº \"connection containment\" å¼å¸¸ï¼æ ¹æ®ä½ çç¯å¢ï¼ä¹è®¸è¯¥å°é
ç½®å±æ§ <literal>hibernate.connection.release_mode</literal> 设为 <literal>after_statement</literal>ã"
#. Tag: title
-#: configuration.xml:1434
#, no-c-format
msgid "Transaction strategy configuration"
msgstr "äºå¡çç¥é
ç½®"
#. Tag: para
-#: configuration.xml:1436
-#, fuzzy, no-c-format
-msgid ""
-"The Hibernate <literal>Session</literal> API is independent of any "
-"transaction demarcation system in your architecture. If you let Hibernate "
-"use JDBC directly through a connection pool, you can begin and end your "
-"transactions by calling the JDBC API. If you run in a J2EE application "
-"server, you might want to use bean-managed transactions and call the JTA API "
-"and <literal>UserTransaction</literal> when needed."
-msgstr ""
-"å¨ä½ çæ¶æä¸ï¼Hibernateç<literal>Session</literal> APIæ¯ç¬ç«äºä»»ä½äºå¡åçç³»"
-"ç»ç. å¦æä½ è®©Hibernateéè¿è¿æ¥æ± ç´æ¥ä½¿ç¨JDBC, ä½ éè¦è°ç¨JDBC APIæ¥æå¼åå
³é"
-"ä½ çäºå¡. å¦æä½ è¿è¡å¨J2EEåºç¨ç¨åºæå¡å¨ä¸, ä½ ä¹è®¸æ³ç¨Bean管ççäºå¡å¹¶å¨éè¦"
-"çæ¶åè°ç¨JTA APIå<literal>UserTransaction</literal>."
+#, no-c-format
+msgid "The Hibernate <literal>Session</literal> API is independent of any transaction demarcation system in your architecture. If you let Hibernate use JDBC directly through a connection pool, you can begin and end your transactions by calling the JDBC API. If you run in a J2EE application server, you might want to use bean-managed transactions and call the JTA API and <literal>UserTransaction</literal> when needed."
+msgstr "å¨ä½ çæ¶æä¸ï¼Hibernate ç <literal>Session</literal> API æ¯ç¬ç«äºä»»ä½äºå¡åçç³»ç»çãå¦æä½ è®© Hibernate éè¿è¿æ¥æ± ç´æ¥ä½¿ç¨ JDBCï¼ä½ éè¦è°ç¨ JDBC API æ¥æå¼åå
³éä½ çäºå¡ãå¦æä½ è¿è¡å¨ J2EE åºç¨ç¨åºæå¡å¨ä¸ï¼ä½ ä¹è®¸æ³ç¨ Bean 管ççäºå¡å¹¶å¨éè¦çæ¶åè°ç¨ JTA API å <literal>UserTransaction</literal>ã "
#. Tag: para
-#: configuration.xml:1444
#, no-c-format
-msgid ""
-"To keep your code portable between these two (and other) environments we "
-"recommend the optional Hibernate <literal>Transaction</literal> API, which "
-"wraps and hides the underlying system. You have to specify a factory class "
-"for <literal>Transaction</literal> instances by setting the Hibernate "
-"configuration property <literal>hibernate.transaction.factory_class</"
-"literal>."
-msgstr ""
-"为äºè®©ä½ ç代ç å¨ä¸¤ç§(æå
¶ä»)ç¯å¢ä¸å¯ä»¥ç§»æ¤ï¼æä»¬å»ºè®®ä½¿ç¨å¯éçHibernate "
-"<literal>Transaction</literal> API, å®å
è£
å¹¶éèäºåºå±ç³»ç». ä½ å¿
é¡»éè¿è®¾ç½®"
-"Hibernateé
ç½®å±æ§<literal>hibernate.transaction.factory_class</literal>æ¥æ"
-"å® ä¸ä¸ª<literal>Transaction</literal>å®ä¾çå·¥åç±»."
+msgid "To keep your code portable between these two (and other) environments we recommend the optional Hibernate <literal>Transaction</literal> API, which wraps and hides the underlying system. You have to specify a factory class for <literal>Transaction</literal> instances by setting the Hibernate configuration property <literal>hibernate.transaction.factory_class</literal>."
+msgstr "为äºè®©ä½ ç代ç å¨ä¸¤ç§ï¼æå
¶ä»ï¼ç¯å¢ä¸å¯ä»¥ç§»æ¤ï¼æä»¬å»ºè®®ä½¿ç¨å¯éç Hibernate <literal>Transaction</literal> APIï¼å®å
è£
å¹¶éèäºåºå±ç³»ç»ãä½ å¿
é¡»éè¿è®¾ç½® Hibernate é
ç½®å±æ§ <literal>hibernate.transaction.factory_class</literal> æ¥æå®ä¸ä¸ª <literal>Transaction</literal> å®ä¾çå·¥åç±»ã"
#. Tag: para
-#: configuration.xml:1451
-#, fuzzy, no-c-format
+#, no-c-format
msgid "There are three standard, or built-in, choices:"
-msgstr "æä¸ä¸ªæ å(å
建)çéæ©:"
+msgstr "æä¸ä¸ªæ åï¼å
建ï¼çéæ©ï¼ "
-#. Tag: literal
-#: configuration.xml:1457
+#. Tag: term
#, no-c-format
-msgid "org.hibernate.transaction.JDBCTransactionFactory"
-msgstr "org.hibernate.transaction.JDBCTransactionFactory"
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
#. Tag: para
-#: configuration.xml:1459
#, no-c-format
msgid "delegates to database (JDBC) transactions (default)"
-msgstr "å§æç»æ°æ®åº(JDBC)äºå¡ï¼é»è®¤ï¼"
+msgstr "å§æç»æ°æ®åºï¼JDBCï¼äºå¡ï¼é»è®¤ï¼"
-#. Tag: literal
-#: configuration.xml:1463
+#. Tag: term
#, no-c-format
-msgid "org.hibernate.transaction.JTATransactionFactory"
-msgstr "org.hibernate.transaction.JTATransactionFactory"
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
#. Tag: para
-#: configuration.xml:1465
-#, fuzzy, no-c-format
-msgid ""
-"delegates to container-managed transactions if an existing transaction is "
-"underway in this context (for example, EJB session bean method). Otherwise, "
-"a new transaction is started and bean-managed transactions are used."
-msgstr ""
-"妿å¨ä¸ä¸æç¯å¢ä¸åå¨è¿è¡ççäºå¡(å¦, EJBä¼è¯Beançæ¹æ³), åå§æç»å®¹å¨ç®¡ ç"
-"çäºå¡, å¦åï¼å°å¯å¨ä¸ä¸ªæ°çäºå¡ï¼å¹¶ä½¿ç¨Bean管ççäºå¡."
+#, no-c-format
+msgid "delegates to container-managed transactions if an existing transaction is underway in this context (for example, EJB session bean method). Otherwise, a new transaction is started and bean-managed transactions are used."
+msgstr "妿å¨ä¸ä¸æç¯å¢ä¸åå¨è¿è¡ççäºå¡ï¼å¦ï¼EJB ä¼è¯ Bean çæ¹æ³ï¼ï¼åå§æç»å®¹å¨ç®¡ççäºå¡ãå¦åï¼å°å¯å¨ä¸ä¸ªæ°çäºå¡ï¼å¹¶ä½¿ç¨ Bean 管ççäºå¡ã"
-#. Tag: literal
-#: configuration.xml:1473
+#. Tag: term
#, no-c-format
-msgid "org.hibernate.transaction.CMTTransactionFactory"
-msgstr "org.hibernate.transaction.CMTTransactionFactory"
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
#. Tag: para
-#: configuration.xml:1475
#, no-c-format
msgid "delegates to container-managed JTA transactions"
-msgstr "å§æç»å®¹å¨ç®¡ççJTAäºå¡"
+msgstr "å§æç»å®¹å¨ç®¡çç JTA äºå¡"
#. Tag: para
-#: configuration.xml:1480
-#, fuzzy, no-c-format
-msgid ""
-"You can also define your own transaction strategies (for a CORBA transaction "
-"service, for example)."
-msgstr "ä½ ä¹å¯ä»¥å®ä¹å±äºä½ èªå·±çäºå¡çç¥ (å¦, é对CORBAçäºå¡æå¡)"
+#, no-c-format
+msgid "You can also define your own transaction strategies (for a CORBA transaction service, for example)."
+msgstr "ä½ ä¹å¯ä»¥å®ä¹å±äºä½ èªå·±çäºå¡çç¥ï¼å¦ï¼é对 CORBA çäºå¡æå¡ï¼ã"
#. Tag: para
-#: configuration.xml:1485
-#, fuzzy, no-c-format
-msgid ""
-"Some features in Hibernate (i.e., the second level cache, Contextual "
-"Sessions with JTA, etc.) require access to the JTA "
-"<literal>TransactionManager</literal> in a managed environment. In an "
-"application server, since J2EE does not standardize a single mechanism, you "
-"have to specify how Hibernate should obtain a reference to the "
-"<literal>TransactionManager</literal>:"
-msgstr ""
-"Hibernateçä¸äºç¹æ§ (æ¯å¦äºçº§ç¼å, Contextual Sessions with JTAçç)éè¦è®¿é®"
-"å¨æç®¡ç¯å¢ä¸çJTA <literal>TransactionManager</literal>. ç±äºJ2EEæ²¡ææ ååä¸"
-"个åä¸çæºå¶,Hibernateå¨åºç¨ç¨åºæå¡å¨ä¸ï¼ä½ å¿
é¡»æå®Hibernateå¦ä½è·å¾"
-"<literal>TransactionManager</literal>çå¼ç¨:"
+#, no-c-format
+msgid "Some features in Hibernate (i.e., the second level cache, Contextual Sessions with JTA, etc.) require access to the JTA <literal>TransactionManager</literal> in a managed environment. In an application server, since J2EE does not standardize a single mechanism, you have to specify how Hibernate should obtain a reference to the <literal>TransactionManager</literal>:"
+msgstr "Hibernate çä¸äºç¹æ§ï¼æ¯å¦äºçº§ç¼åï¼Contextual Sessions with JTA ççï¼éè¦è®¿é®å¨æç®¡ç¯å¢ä¸ç JTA <literal>TransactionManager</literal>ãç±äº J2EE æ²¡ææ ååä¸ä¸ªåä¸çæºå¶ï¼Hibernate å¨åºç¨ç¨åºæå¡å¨ä¸ï¼ä½ å¿
é¡»æå® Hibernate å¦ä½è·å¾ <literal>TransactionManager</literal> çå¼ç¨ï¼ "
#. Tag: title
-#: configuration.xml:1493
#, no-c-format
msgid "JTA TransactionManagers"
msgstr "JTA TransactionManagers"
-#. Tag: entry
-#: configuration.xml:1499
+#. Tag: para
#, no-c-format
msgid "Transaction Factory"
-msgstr "Transactionå·¥åç±»"
+msgstr "Transaction å·¥åç±»"
-#. Tag: entry
-#: configuration.xml:1500
+#. Tag: para
#, no-c-format
msgid "Application Server"
msgstr "åºç¨ç¨åºæå¡å¨"
-#. Tag: literal
-#: configuration.xml:1505
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.JBossTransactionManagerLookup"
-msgstr "org.hibernate.transaction.JBossTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1506
+#. Tag: para
#, no-c-format
msgid "JBoss"
msgstr "JBoss"
-#. Tag: literal
-#: configuration.xml:1509
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.WeblogicTransactionManagerLookup"
-msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1510
+#. Tag: para
#, no-c-format
msgid "Weblogic"
msgstr "Weblogic"
-#. Tag: literal
-#: configuration.xml:1513
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.WebSphereTransactionManagerLookup"
-msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1514
+#. Tag: para
#, no-c-format
msgid "WebSphere"
msgstr "WebSphere"
-#. Tag: literal
-#: configuration.xml:1517
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
-msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
+msgid "<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1518
+#. Tag: para
#, no-c-format
msgid "WebSphere 6"
msgstr "WebSphere 6"
-#. Tag: literal
-#: configuration.xml:1521
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.OrionTransactionManagerLookup"
-msgstr "org.hibernate.transaction.OrionTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1522
+#. Tag: para
#, no-c-format
msgid "Orion"
msgstr "Orion"
-#. Tag: literal
-#: configuration.xml:1525
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.ResinTransactionManagerLookup"
-msgstr "org.hibernate.transaction.ResinTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1526
+#. Tag: para
#, no-c-format
msgid "Resin"
msgstr "Resin"
-#. Tag: literal
-#: configuration.xml:1529
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.JOTMTransactionManagerLookup"
-msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1530
+#. Tag: para
#, no-c-format
msgid "JOTM"
msgstr "JOTM"
-#. Tag: literal
-#: configuration.xml:1533
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.JOnASTransactionManagerLookup"
-msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1534
+#. Tag: para
#, no-c-format
msgid "JOnAS"
msgstr "JOnAS"
-#. Tag: literal
-#: configuration.xml:1537
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.JRun4TransactionManagerLookup"
-msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1538
+#. Tag: para
#, no-c-format
msgid "JRun4"
msgstr "JRun4"
-#. Tag: literal
-#: configuration.xml:1541
+#. Tag: para
#, no-c-format
-msgid "org.hibernate.transaction.BESTransactionManagerLookup"
-msgstr "org.hibernate.transaction.BESTransactionManagerLookup"
+msgid "<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
-#. Tag: entry
-#: configuration.xml:1542
+#. Tag: para
#, no-c-format
msgid "Borland ES"
msgstr "Borland ES"
#. Tag: title
-#: configuration.xml:1551
#, no-c-format
msgid "JNDI-bound <literal>SessionFactory</literal>"
-msgstr "JNDIç»å®ç<literal>SessionFactory</literal>"
+msgstr "JNDI ç»å®ç <literal>SessionFactory</literal>"
#. Tag: para
-#: configuration.xml:1553
-#, fuzzy, no-c-format
-msgid ""
-"A JNDI-bound Hibernate <literal>SessionFactory</literal> can simplify the "
-"lookup function of the factory and create new <literal>Session</literal>s. "
-"This is not, however, related to a JNDI bound <literal>Datasource</literal>; "
-"both simply use the same registry."
-msgstr ""
-"ä¸JNDIç»å®çHibernateç<literal>SessionFactory</literal>è½ç®åå·¥åçæ¥è¯¢ï¼ç®"
-"åå建æ°ç<literal>Session</literal>. éè¦æ³¨æçæ¯è¿ä¸JNDIç»å®"
-"<literal>Datasource</literal>没æå
³ç³», å®ä»¬åªæ¯æ°å·§ç¨äºç¸åçæ³¨å表!"
+#, no-c-format
+msgid "A JNDI-bound Hibernate <literal>SessionFactory</literal> can simplify the lookup function of the factory and create new <literal>Session</literal>s. This is not, however, related to a JNDI bound <literal>Datasource</literal>; both simply use the same registry."
+msgstr "ä¸ JNDI ç»å®ç Hibernate ç <literal>SessionFactory</literal> è½ç®åå·¥åçæ¥è¯¢ï¼ç®åå建æ°ç <literal>Session</literal>ãéè¦æ³¨æçæ¯è¿ä¸ JNDI ç»å® <literal>Datasource</literal> 没æå
³ç³»ï¼å®ä»¬åªæ¯æ°å·§ç¨äºç¸åçæ³¨å表ã"
#. Tag: para
-#: configuration.xml:1560
-#, fuzzy, no-c-format
-msgid ""
-"If you wish to have the <literal>SessionFactory</literal> bound to a JNDI "
-"namespace, specify a name (e.g. <literal>java:hibernate/SessionFactory</"
-"literal>) using the property <literal>hibernate.session_factory_name</"
-"literal>. If this property is omitted, the <literal>SessionFactory</literal> "
-"will not be bound to JNDI. This is especially useful in environments with a "
-"read-only JNDI default implementation (in Tomcat, for example)."
-msgstr ""
-"å¦æä½ å¸æå°<literal>SessionFactory</literal>ç»å®å°ä¸ä¸ªJNDIçåå空é´, ç¨å±æ§"
-"<literal>hibernate.session_factory_name</literal>æå®ä¸ä¸ªåå(å¦, "
-"<literal>java:hibernate/SessionFactory</literal>). 妿ä¸è®¾ç½®è¿ä¸ªå±æ§, "
-"<literal>SessionFactory</literal>å°ä¸ä¼è¢«ç»å®å°JNDIä¸. (å¨ä»¥åªè¯»JNDI为é»è®¤å®"
-"ç°çç¯å¢ä¸ï¼è¿ä¸ªè®¾ç½®å°¤å
¶æç¨, å¦Tomcat.)"
+#, no-c-format
+msgid "If you wish to have the <literal>SessionFactory</literal> bound to a JNDI namespace, specify a name (e.g. <literal>java:hibernate/SessionFactory</literal>) using the property <literal>hibernate.session_factory_name</literal>. If this property is omitted, the <literal>SessionFactory</literal> will not be bound to JNDI. This is especially useful in environments with a read-only JNDI default implementation (in Tomcat, for example)."
+msgstr "å¦æä½ å¸æå° <literal>SessionFactory</literal> ç»å®å°ä¸ä¸ª JNDI çåå空é´ï¼ç¨å±æ§ <literal>hibernate.session_factory_name</literal> æå®ä¸ä¸ªååï¼å¦ï¼<literal>javaï¼hibernate/SessionFactory</literal>ï¼ã妿ä¸è®¾ç½®è¿ä¸ªå±æ§ï¼<literal>SessionFactory</literal> å°ä¸ä¼è¢«ç»å®å° JNDI ä¸ï¼å¨ä»¥åªè¯» JNDI 为é»è®¤å®ç°çç¯å¢ä¸ï¼è¿ä¸ªè®¾ç½®å°¤å
¶æç¨ï¼å¦ Tomcatï¼ã"
#. Tag: para
-#: configuration.xml:1568
#, no-c-format
-msgid ""
-"When binding the <literal>SessionFactory</literal> to JNDI, Hibernate will "
-"use the values of <literal>hibernate.jndi.url</literal>, <literal>hibernate."
-"jndi.class</literal> to instantiate an initial context. If they are not "
-"specified, the default <literal>InitialContext</literal> will be used."
-msgstr ""
-"å¨å°<literal>SessionFactory</literal>ç»å®è³JNDIæ¶, Hibernateå°ä½¿ç¨"
-"<literal>hibernate.jndi.url</literal>, å<literal>hibernate.jndi.class</"
-"literal>ç弿¥å®ä¾ååå§ç¯å¢(initial context). 妿å®ä»¬æ²¡æè¢«æå®, å°ä½¿ç¨é»è®¤"
-"ç<literal>InitialContext</literal>."
+msgid "When binding the <literal>SessionFactory</literal> to JNDI, Hibernate will use the values of <literal>hibernate.jndi.url</literal>, <literal>hibernate.jndi.class</literal> to instantiate an initial context. If they are not specified, the default <literal>InitialContext</literal> will be used."
+msgstr "å¨å° <literal>SessionFactory</literal> ç»å®è³ JNDI æ¶ï¼Hibernate å°ä½¿ç¨ <literal>hibernate.jndi.url</literal>ï¼å <literal>hibernate.jndi.class</literal> ç弿¥å®ä¾ååå§ç¯å¢ï¼initial contextï¼ã妿å®ä»¬æ²¡æè¢«æå®ï¼å°ä½¿ç¨é»è®¤ç <literal>InitialContext</literal>ã"
#. Tag: para
-#: configuration.xml:1575
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate will automatically place the <literal>SessionFactory</literal> in "
-"JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means "
-"you will have this call in some startup code, or utility class in your "
-"application, unless you use JMX deployment with the "
-"<literal>HibernateService</literal> (this is discussed later in greater "
-"detail)."
-msgstr ""
-"å¨ä½ è°ç¨<literal>cfg.buildSessionFactory()</literal>å, Hibernateä¼èªå¨å°"
-"<literal>SessionFactory</literal>注åå°JNDI. è¿æå³è¿ä½ è³å°éè¦å¨ä½ åºç¨ç¨åºç"
-"å¯å¨ä»£ç (æå·¥å
·ç±»)ä¸å®æè¿ä¸ªè°ç¨, é¤éä½ ä½¿ç¨<literal>HibernateService</"
-"literal>æ¥åJMXé¨ç½² (è§åé¢è®¨è®º)."
+#, no-c-format
+msgid "Hibernate will automatically place the <literal>SessionFactory</literal> in JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means you will have this call in some startup code, or utility class in your application, unless you use JMX deployment with the <literal>HibernateService</literal> (this is discussed later in greater detail)."
+msgstr "å¨ä½ è°ç¨ <literal>cfg.buildSessionFactory()</literal>åï¼Hibernate ä¼èªå¨å° <literal>SessionFactory</literal> 注åå° JNDIãè¿æå³è¿ä½ è³å°éè¦å¨ä½ åºç¨ç¨åºçå¯å¨ä»£ç ï¼æå·¥å
·ç±»ï¼ä¸å®æè¿ä¸ªè°ç¨ï¼é¤éä½ ä½¿ç¨ <literal>HibernateService</literal> æ¥å JMX é¨ç½²ï¼è§åé¢è®¨è®ºï¼ã"
#. Tag: para
-#: configuration.xml:1582
-#, fuzzy, no-c-format
-msgid ""
-"If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other "
-"class, you can obtain the <literal>SessionFactory</literal> using a JNDI "
-"lookup."
-msgstr ""
-"åè¥ä½ 使ç¨JNDI <literal>SessionFactory</literal>,EJBæè
ä»»ä½å
¶å®ç±»é½å¯ä»¥ä»"
-"JNDI䏿¾å°æ¤<literal>SessionFactory</literal>ã"
+#, no-c-format
+msgid "If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other class, you can obtain the <literal>SessionFactory</literal> using a JNDI lookup."
+msgstr "åè¥ä½ ä½¿ç¨ JNDI <literal>SessionFactory</literal>ï¼EJB æè
ä»»ä½å
¶å®ç±»é½å¯ä»¥ä» JNDI 䏿¾å°æ¤ <literal>SessionFactory</literal>ã "
#. Tag: para
-#: configuration.xml:1587
-#, fuzzy, no-c-format
-msgid ""
-"It is recommended that you bind the <literal>SessionFactory</literal> to "
-"JNDI in a managed environment and use a <literal>static</literal> singleton "
-"otherwise. To shield your application code from these details, we also "
-"recommend to hide the actual lookup code for a <literal>SessionFactory</"
-"literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory"
-"()</literal>. Note that such a class is also a convenient way to startup "
-"Hibernate—see chapter 1."
-msgstr ""
-"æä»¬å»ºè®®ï¼å¨å管ççç¯å¢ä¸ï¼æ<literal>SessionFactory</literal>ç»å®å°JNDIï¼å¨"
-"å
¶å®æ
åµä¸ï¼ä½¿ç¨ä¸ä¸ª<literal>static(éæç)</literal>singletonã为äºå¨ä½ çåº"
-"ç¨ç¨åºä»£ç ä¸éèè¿äºç»èï¼æä»¬è¿å»ºè®®ä½ ç¨ä¸ä¸ªhelperç±»æå®é
æ¥æ¾"
-"<literal>SessionFactory</literal>ç代ç éèèµ·æ¥,æ¯å¦<literal>HibernateUtil."
-"getSessionFactory()</literal>ãæ³¨æï¼è¿ä¸ªç±»ä¹å°±å¯ä»¥æ¹ä¾¿å°å¯å¨Hibernateï¼åè§"
-"第ä¸ç« ã"
+#, no-c-format
+msgid "It is recommended that you bind the <literal>SessionFactory</literal> to JNDI in a managed environment and use a <literal>static</literal> singleton otherwise. To shield your application code from these details, we also recommend to hide the actual lookup code for a <literal>SessionFactory</literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory()</literal>. Note that such a class is also a convenient way to startup Hibernate—see chapter 1."
+msgstr "æä»¬å»ºè®®ï¼å¨å管ççç¯å¢ä¸ï¼æ <literal>SessionFactory</literal> ç»å®å° JNDIï¼å¨å
¶å®æ
åµä¸ï¼ä½¿ç¨ä¸ä¸ª <literal>staticï¼éæçï¼</literal>singletonã为äºå¨ä½ çåºç¨ç¨åºä»£ç ä¸éèè¿äºç»èï¼æä»¬è¿å»ºè®®ä½ ç¨ä¸ä¸ª helper ç±»æå®é
æ¥æ¾ <literal>SessionFactory</literal> ç代ç éèèµ·æ¥ï¼æ¯å¦ <literal>HibernateUtil.getSessionFactory()</literal>ãæ³¨æï¼è¿ä¸ªç±»ä¹å°±å¯ä»¥æ¹ä¾¿å°å¯å¨ Hibernateï¼åè§ç¬¬ä¸ç« ã "
#. Tag: title
-#: configuration.xml:1599
#, no-c-format
msgid "Current Session context management with JTA"
-msgstr "å¨JTAç¯å¢ä¸ä½¿ç¨Current Session context (å½åsessionä¸ä¸æ)管ç"
+msgstr "å¨ JTA ç¯å¢ä¸ä½¿ç¨ Current Session contextï¼å½å session ä¸ä¸æï¼ç®¡ç"
#. Tag: para
-#: configuration.xml:1601
-#, fuzzy, no-c-format
-msgid ""
-"The easiest way to handle <literal>Sessions</literal> and transactions is "
-"Hibernate's automatic \"current\" <literal>Session</literal> management. For "
-"a discussion of contextual sessions see <xref linkend=\"architecture-current-"
-"session\"/>. Using the <literal>\"jta\"</literal> session context, if there "
-"is no Hibernate <literal>Session</literal> associated with the current JTA "
-"transaction, one will be started and associated with that JTA transaction "
-"the first time you call <literal>sessionFactory.getCurrentSession()</"
-"literal>. The <literal>Session</literal>s retrieved via "
-"<literal>getCurrentSession()</literal> in the<literal>\"jta\"</literal> "
-"context are set to automatically flush before the transaction completes, "
-"close after the transaction completes, and aggressively release JDBC "
-"connections after each statement. This allows the <literal>Session</"
-"literal>s to be managed by the life cycle of the JTA transaction to which it "
-"is associated, keeping user code clean of such management concerns. Your "
-"code can either use JTA programmatically through <literal>UserTransaction</"
-"literal>, or (recommended for portable code) use the Hibernate "
-"<literal>Transaction</literal> API to set transaction boundaries. If you run "
-"in an EJB container, declarative transaction demarcation with CMT is "
-"preferred."
-msgstr ""
-"å¨Hibernateä¸ï¼ç®¡ç<literal>Session</literal>åtransactionæå¥½çæ¹æ³æ¯èªå¨ç"
-"\"å½å\"<literal>Session</literal>管çã请åè§<xref linkend=\"architecture-"
-"current-session\">contextual sessions</xref>ä¸èç讨论ã使ç¨<literal>\"jta"
-"\"</literal>sessionä¸ä¸æï¼åè¥å¨å½åJTAäºå¡ä¸è¿æ²¡æ"
-"Hibernate<literal>Session</literal>å
³èï¼ç¬¬ä¸æ¬¡<literal>sessionFactory."
-"getCurrentSession()</literal>è°ç¨ä¼å¯å¨ä¸ä¸ªSession,å¹¶å
³èå°å½åçJTAäºå¡ãå¨"
-"<literal>\"jta\"</literal>ä¸ä¸æä¸è°ç¨<literal>getCurrentSession()</literal>"
-"è·å¾ç<literal>Session</literal>ï¼ä¼è¢«è®¾ç½®ä¸ºå¨transactionå
³éçæ¶åèªå¨flush"
-"ï¼æ¸
æ´ï¼ãå¨transactionå
³éä¹åèªå¨å
³éï¼æ¯å¥è¯å¥ä¹å主å¨éæ¾JDBCè¿æ¥ãè¿å°±å¯"
-"ä»¥æ ¹æ®JTAäºå¡ççå½å¨ææ¥ç®¡çä¸ä¹å
³èç<literal>Session</literal>ï¼ç¨æ·ä»£ç ä¸"
-"å°±å¯ä»¥ä¸åèèè¿äºç®¡çãä½ ç代ç ä¹å¯ä»¥éè¿<literal>UserTransaction</literal>"
-"ç¨ç¼ç¨æ¹å¼ä½¿ç¨JTAï¼æè
(æä»¬å»ºè®®ï¼ä¸ºäºä¾¿äºç§»æ¤ä»£ç ï¼ä½¿ç¨Hibernateç"
-"<literal>Transaction</literal> APIæ¥è®¾ç½®transactionè¾¹çãå¦æä½ ç代ç è¿è¡å¨"
-"EJB容å¨ä¸ï¼å»ºè®®å¯¹CMT使ç¨å£°æå¼äºå¡å£°æã"
+#, no-c-format
+msgid "The easiest way to handle <literal>Sessions</literal> and transactions is Hibernate's automatic \"current\" <literal>Session</literal> management. For a discussion of contextual sessions see <xref linkend=\"architecture-current-session\" />. Using the <literal>\"jta\"</literal> session context, if there is no Hibernate <literal>Session</literal> associated with the current JTA transaction, one will be started and associated with that JTA transaction the first time you call <literal>sessionFactory.getCurrentSession()</literal>. The <literal>Session</literal>s retrieved via <literal>getCurrentSession()</literal> in the<literal>\"jta\"</literal> context are set to automatically flush before the transaction completes, close after the transaction completes, and aggressively release JDBC connections after each statement. This allows the <literal>Session</literal>s to be managed by the life cycle of the JTA transaction to which it is associated, keeping user code clean of s!
uch management concerns. Your code can either use JTA programmatically through <literal>UserTransaction</literal>, or (recommended for portable code) use the Hibernate <literal>Transaction</literal> API to set transaction boundaries. If you run in an EJB container, declarative transaction demarcation with CMT is preferred."
+msgstr "å¨ Hibernate ä¸ï¼ç®¡ç <literal>Session</literal> å transaction æå¥½çæ¹æ³æ¯èªå¨ç\"å½å\"<literal>Session</literal> 管çã请åè§ <xref linkend=\"architecture-current-session\" /> ä¸èç讨论ãä½¿ç¨ <literal>\"jta\"</literal> session ä¸ä¸æï¼åè¥å¨å½å JTA äºå¡ä¸è¿æ²¡æ Hibernate<literal>Session</literal> å
³èï¼ç¬¬ä¸æ¬¡ <literal>sessionFactory.getCurrentSession()</literal> è°ç¨ä¼å¯å¨ä¸ä¸ª Sessionï¼å¹¶å
³èå°å½åç JTA äºå¡ãå¨ <literal>\"jta\"</literal> ä¸ä¸æä¸è°ç¨ <literal>getCurrentSession()</literal> è·å¾ç <literal>Session</literal>ï¼ä¼è¢«è®¾ç½®ä¸ºå¨ transaction å
³éçæ¶åèªå¨ flushï¼æ¸
æ´ï¼ãå¨ transaction å
³éä¹åèªå¨å
³éï¼æ¯å¥è¯å¥ä¹å主å¨éæ¾ JDBC è¿æ¥ãè¿å°±å¯ä»¥æ ¹æ® JTA äºå¡ççå½å¨ææ¥ç®¡çä¸ä¹å
³èç <literal>Session</literal>ï¼ç¨æ·ä»£ç ä¸å°±å¯ä»¥ä¸åèèè¿äºç®¡çãä½ ç代ç ä¹å¯ä»¥éè¿ <literal>UserTransaction!
</literal>ç¨ç¼ç¨æ¹å¼ä½¿ç¨ JTAï¼æè
ï¼æä»¬å»ºè®®ï¼ä¸ºäºä¾¿äºç§»æ¤ä»£ç ï¼ä½¿ç¨ Hibernate ç <literal>Transaction</literal> API æ¥è®¾ç½® transaction è¾¹çãå¦æä½ ç代ç è¿è¡å¨ EJB 容å¨ä¸ï¼æä»¬å»ºè®®å¯¹ CMT 使ç¨å£°æå¼äºå¡å£°æã "
#. Tag: title
-#: configuration.xml:1624
#, no-c-format
msgid "JMX deployment"
-msgstr "JMXé¨ç½²"
+msgstr "JMX é¨ç½²"
#. Tag: para
-#: configuration.xml:1626
-#, fuzzy, no-c-format
-msgid ""
-"The line <literal>cfg.buildSessionFactory()</literal> still has to be "
-"executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You "
-"can do this either in a <literal>static</literal> initializer block, like "
-"the one in <literal>HibernateUtil</literal>, or you can deploy Hibernate as "
-"a <emphasis>managed service</emphasis>."
-msgstr ""
-"为äºå°<literal>SessionFactory</literal>注åå°JNDIä¸ï¼<literal>cfg."
-"buildSessionFactory()</literal>è¿è¡ä»£ç ä»é卿å¤è¢«æ§è¡. ä½ å¯å¨ä¸ä¸ª"
-"<literal>static</literal>åå§åå(å<literal>HibernateUtil</literal>ä¸ç飿 ·)"
-"䏿§è¡å®æå°Hibernateé¨ç½²ä¸ºä¸ä¸ª<emphasis>æç®¡çæå¡</emphasis>."
+#, no-c-format
+msgid "The line <literal>cfg.buildSessionFactory()</literal> still has to be executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You can do this either in a <literal>static</literal> initializer block, like the one in <literal>HibernateUtil</literal>, or you can deploy Hibernate as a <emphasis>managed service</emphasis>."
+msgstr "为äºå° <literal>SessionFactory</literal> 注åå° JNDI ä¸ï¼<literal>cfg.buildSessionFactory()</literal> è¿è¡ä»£ç ä»é卿å¤è¢«æ§è¡ãä½ å¯å¨ä¸ä¸ª <literal>static</literal> åå§ååï¼å <literal>HibernateUtil</literal> ä¸ç飿 ·ï¼ä¸æ§è¡å®æå° Hibernate é¨ç½²ä¸ºä¸ä¸ª<emphasis>æç®¡çæå¡</emphasis>ã "
#. Tag: para
-#: configuration.xml:1634
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</"
-"literal> for deployment on an application server with JMX capabilities, such "
-"as JBoss AS. The actual deployment and configuration is vendor-specific. "
-"Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
-msgstr ""
-"为äºé¨ç½²å¨ä¸ä¸ªæ¯æJMXçåºç¨ç¨åºæå¡å¨ä¸ï¼Hibernateå <literal>org.hibernate."
-"jmx.HibernateService</literal>ä¸åååï¼å¦Jboss ASã å®é
çé¨ç½²åé
ç½®æ¯ç±åºç¨"
-"ç¨åºæå¡å¨æä¾è
æå®ç. è¿éæ¯JBoss 4.0.xç<literal>jboss-service.xml</"
-"literal>æ ·ä¾:"
-
-#. Tag: programlisting
-#: configuration.xml:1641
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\"?>\n"
-"<server>\n"
-"\n"
-"<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
-" name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
-"\n"
-" <!-- Required services -->\n"
-" <depends>jboss.jca:service=RARDeployer</depends>\n"
-" <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
-"\n"
-" <!-- Bind the Hibernate service to JNDI -->\n"
-" <attribute name=\"JndiName\">java:/hibernate/SessionFactory</attribute>\n"
-"\n"
-" <!-- Datasource settings -->\n"
-" <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
-" <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</"
-"attribute>\n"
-"\n"
-" <!-- Transaction integration -->\n"
-" <attribute name=\"TransactionStrategy\">\n"
-" org.hibernate.transaction.JTATransactionFactory</attribute>\n"
-" <attribute name=\"TransactionManagerLookupStrategy\">\n"
-" org.hibernate.transaction.JBossTransactionManagerLookup</attribute>\n"
-" <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
-" <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
-"\n"
-" <!-- Fetching options -->\n"
-" <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
-"\n"
-" <!-- Second-level caching -->\n"
-" <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
-" <attribute name=\"CacheProviderClass\">org.hibernate.cache."
-"EhCacheProvider</attribute>\n"
-" <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
-"\n"
-" <!-- Logging -->\n"
-" <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
-"\n"
-" <!-- Mapping files -->\n"
-" <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/Category."
-"hbm.xml</attribute>\n"
-"\n"
-"</mbean>\n"
-"\n"
-"</server>]]>"
-msgstr ""
+msgid "Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</literal> for deployment on an application server with JMX capabilities, such as JBoss AS. The actual deployment and configuration is vendor-specific. Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
+msgstr "为äºé¨ç½²å¨ä¸ä¸ªæ¯æ JMX çåºç¨ç¨åºæå¡å¨ä¸ï¼Hibernate å <literal>org.hibernate.jmx.HibernateService</literal> ä¸åååï¼å¦ Jboss ASã å®é
çé¨ç½²åé
ç½®æ¯ç±åºç¨ç¨åºæå¡å¨æä¾è
æå®çãè¿éæ¯ JBoss 4.0.x ç <literal>jboss-service.xml</literal> æ ·ä¾ï¼ "
#. Tag: para
-#: configuration.xml:1643
-#, fuzzy, no-c-format
-msgid ""
-"This file is deployed in a directory called <literal>META-INF</literal> and "
-"packaged in a JAR file with the extension <literal>.sar</literal> (service "
-"archive). You also need to package Hibernate, its required third-party "
-"libraries, your compiled persistent classes, as well as your mapping files "
-"in the same archive. Your enterprise beans (usually session beans) can be "
-"kept in their own JAR file, but you can include this EJB JAR file in the "
-"main service archive to get a single (hot-)deployable unit. Consult the "
-"JBoss AS documentation for more information about JMX service and EJB "
-"deployment."
-msgstr ""
-"è¿ä¸ªæä»¶æ¯é¨ç½²å¨<literal>META-INF</literal>ç®å½ä¸ç, å¹¶ä¼è¢«æå
å°ä»¥<literal>."
-"sar</literal> (service archive)为æ©å±åçJARæä»¶ä¸. åæ¶ï¼ä½ éè¦å°Hibernateã"
-"宿éè¦çç¬¬ä¸æ¹åºãä½ ç¼è¯å¥½çæä¹
å类以åä½ çæ å°å®ä¹æä»¶æå
è¿åä¸ä¸ªææ¡£. "
-"ä½ çä¼ä¸Bean(ä¸è¬ä¸ºä¼è¯Bean)å¯è½ä¼è¢«æå
æå®ä»¬èªå·±çJARæä»¶, ä½ä½ ä¹è®¸ä¼å°EJB "
-"JARæä»¶ä¸åå
å«è¿è½ç¬ç«(ç)é¨ç½²ç主æå¡ææ¡£. åèJBoss ASææ¡£ä»¥äºè§£æ´å¤çJMX"
-"æå¡ä¸EJBé¨ç½²çä¿¡æ¯."
+#, no-c-format
+msgid "This file is deployed in a directory called <literal>META-INF</literal> and packaged in a JAR file with the extension <literal>.sar</literal> (service archive). You also need to package Hibernate, its required third-party libraries, your compiled persistent classes, as well as your mapping files in the same archive. Your enterprise beans (usually session beans) can be kept in their own JAR file, but you can include this EJB JAR file in the main service archive to get a single (hot-)deployable unit. Consult the JBoss AS documentation for more information about JMX service and EJB deployment."
+msgstr "è¿ä¸ªæä»¶æ¯é¨ç½²å¨ <literal>META-INF</literal> ç®å½ä¸çï¼å¹¶ä¼è¢«æå
å°ä»¥ <literal>.sar</literal>ï¼service archiveï¼ä¸ºæ©å±åç JAR æä»¶ä¸ãåæ¶ï¼ä½ éè¦å° Hibernateã宿éè¦çç¬¬ä¸æ¹åºãä½ ç¼è¯å¥½çæä¹
å类以åä½ çæ å°å®ä¹æä»¶æå
è¿åä¸ä¸ªææ¡£ãä½ çä¼ä¸ Beanï¼ä¸è¬ä¸ºä¼è¯ Beanï¼å¯è½ä¼è¢«æå
æå®ä»¬èªå·±ç JAR æä»¶ï¼ä½ä½ ä¹è®¸ä¼å° EJB JAR æä»¶ä¸åå
å«è¿è½ç¬ç«ï¼çï¼é¨ç½²ç主æå¡ææ¡£ãåè JBoss AS ææ¡£ä»¥äºè§£æ´å¤ç JMXæå¡ä¸ EJB é¨ç½²çä¿¡æ¯ã "
#~ msgid ""
-#~ "<literal>hibernate.properties</literal> is the easiest approach if you "
-#~ "want to get started quickly."
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addResource(\"Item.hbm.xml\")\n"
+#~ " .addResource(\"Bid.hbm.xml\");]]>"
#~ msgstr ""
-#~ "妿æ³å°½å¿«ä½éªHibernate, <literal>hibernate.properties</literal>æ¯æç®åç"
-#~ "æ¹å¼."
-
-#~ msgid "Hibernate logs various events using Apache commons-logging."
-#~ msgstr "Hibernate使ç¨Apache commons-loggingæ¥ä¸ºåç§äºä»¶è®°å½æ¥å¿."
-
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addResource(\"Item.hbm.xml\")\n"
+#~ " .addResource(\"Bid.hbm.xml\");]]>"
#~ msgid ""
-#~ "The commons-logging service will direct output to either Apache Log4j (if "
-#~ "you include <literal>log4j.jar</literal> in your classpath) or JDK1.4 "
-#~ "logging (if running under JDK1.4 or above). You may download Log4j from "
-#~ "<literal>http://jakarta.apache.org</literal>. To use Log4j you will need "
-#~ "to place a <literal>log4j.properties</literal> file in your classpath, an "
-#~ "example properties file is distributed with Hibernate in the <literal>src/"
-#~ "</literal> directory."
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class);]]>"
#~ msgstr ""
-#~ "commons-loggingå°ç´æ¥è¾åºå°Apache Log4j(妿å¨ç±»è·¯å¾ä¸å
æ¬<literal>log4j."
-#~ "jar</literal>)æ JDK1.4 logging (妿è¿è¡å¨JDK1.4æä»¥ä¸çç¯å¢ä¸). ä½ å¯ä»¥ä»"
-#~ "<literal>http://jakarta.apache.org</literal> ä¸è½½Log4j. è¦ä½¿ç¨Log4jï¼ä½ é"
-#~ "è¦å°<literal>log4j.properties</literal>æä»¶æ¾ç½®å¨ç±»è·¯å¾ä¸, éHibernate ä¸"
-#~ "åååçæ ·ä¾å±æ§æä»¶å¨<literal>src/</literal>ç®å½ä¸."
-
-#~ msgid "<placeholder-1/> (optional)"
-#~ msgstr "<placeholder-1/> (å¯é)"
-
-#~ msgid "InitialContextFactory"
-#~ msgstr "InitialContextFactory"
-
-#~ msgid "class of the JNDI <placeholder-1/>"
-#~ msgstr "JNDI <placeholder-1/>ç±»"
-
-#, fuzzy
-#~ msgid "eg."
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class);]]>"
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class)\n"
+#~ " .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect."
+#~ "MySQLInnoDBDialect\")\n"
+#~ " .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/"
+#~ "jdbc/test\")\n"
+#~ " .setProperty(\"hibernate.order_updates\", \"true\");]]>"
#~ msgstr ""
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "eg.\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "åå¼"
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class)\n"
+#~ " .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect."
+#~ "MySQLInnoDBDialect\")\n"
+#~ " .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/"
+#~ "jdbc/test\")\n"
+#~ " .setProperty(\"hibernate.order_updates\", \"true\");]]>"
+#~ msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+#~ msgstr "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
+#~ ">"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
+#~ ">"
+#~ msgid "JDBC URL"
+#~ msgstr "JDBC URL"
+#~ msgid "database user"
+#~ msgstr "database user"
+#~ msgid "database user password"
+#~ msgstr "æ°æ®åºç¨æ·å¯ç "
+#~ msgid ""
+#~ "<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
+#~ "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
+#~ "hibernate.connection.username = myuser\n"
+#~ "hibernate.connection.password = secret\n"
+#~ "hibernate.c3p0.min_size=5\n"
+#~ "hibernate.c3p0.max_size=20\n"
+#~ "hibernate.c3p0.timeout=1800\n"
+#~ "hibernate.c3p0.max_statements=50\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+#~ msgstr ""
+#~ "<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
+#~ "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
+#~ "hibernate.connection.username = myuser\n"
+#~ "hibernate.connection.password = secret\n"
+#~ "hibernate.c3p0.min_size=5\n"
+#~ "hibernate.c3p0.max_size=20\n"
+#~ "hibernate.c3p0.timeout=1800\n"
+#~ "hibernate.c3p0.max_statements=50\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+#~ msgid "datasource JNDI name"
+#~ msgstr "æ°æ®æº JNDI åå"
+#~ msgid ""
+#~ "<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
+#~ "hibernate.transaction.factory_class = \\\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ "hibernate.transaction.manager_lookup_class = \\\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+#~ msgstr ""
+#~ "<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
+#~ "hibernate.transaction.factory_class = \\\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ "hibernate.transaction.manager_lookup_class = \\\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+#~ msgid "<entry>DB2</entry>"
+#~ msgstr "<entry>DB2</entry>"
+#~ msgid "hibernate.query.substitutions true=1, false=0"
+#~ msgstr "hibernate.query.substitutions true=1ï¼false=0"
+#~ msgid "hibernate.query.substitutions toLowercase=LOWER"
+#~ msgstr "hibernate.query.substitutions toLowercase=LOWER"
+#~ msgid "org.hibernate"
+#~ msgstr "org.hibernate"
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgid ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <!-- a SessionFactory instance listed as /jndi/name -->\n"
+#~ " <session-factory\n"
+#~ " name=\"java:hibernate/SessionFactory\">\n"
+#~ "\n"
+#~ " <!-- properties -->\n"
+#~ " <property name=\"connection.datasource\">java:/comp/env/jdbc/"
+#~ "MyDB</property>\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</"
+#~ "property>\n"
+#~ " <property name=\"show_sql\">false</property>\n"
+#~ " <property name=\"transaction.factory_class\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ " </property>\n"
+#~ " <property name=\"jta.UserTransaction\">java:comp/UserTransaction</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- mapping files -->\n"
+#~ " <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
+#~ " <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
+#~ "\n"
+#~ " <!-- cache settings -->\n"
+#~ " <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-"
+#~ "write\"/>\n"
+#~ " <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only"
+#~ "\"/>\n"
+#~ " <collection-cache collection=\"org.hibernate.auction.Item.bids\" "
+#~ "usage=\"read-write\"/>\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <!-- a SessionFactory instance listed as /jndi/name -->\n"
+#~ " <session-factory\n"
+#~ " name=\"java:hibernate/SessionFactory\">\n"
+#~ "\n"
+#~ " <!-- properties -->\n"
+#~ " <property name=\"connection.datasource\">java:/comp/env/jdbc/"
+#~ "MyDB</property>\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</"
+#~ "property>\n"
+#~ " <property name=\"show_sql\">false</property>\n"
+#~ " <property name=\"transaction.factory_class\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ " </property>\n"
+#~ " <property name=\"jta.UserTransaction\">java:comp/UserTransaction</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- mapping files -->\n"
+#~ " <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
+#~ " <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
+#~ "\n"
+#~ " <!-- cache settings -->\n"
+#~ " <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-"
+#~ "write\"/>\n"
+#~ " <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only"
+#~ "\"/>\n"
+#~ " <collection-cache collection=\"org.hibernate.auction.Item.bids\" "
+#~ "usage=\"read-write\"/>\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
+#~ "buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
+#~ "buildSessionFactory();]]>"
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<server>\n"
+#~ "\n"
+#~ "<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
+#~ " name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
+#~ "\n"
+#~ " <!-- Required services -->\n"
+#~ " <depends>jboss.jca:service=RARDeployer</depends>\n"
+#~ " <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
+#~ "\n"
+#~ " <!-- Bind the Hibernate service to JNDI -->\n"
+#~ " <attribute name=\"JndiName\">java:/hibernate/SessionFactory</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Datasource settings -->\n"
+#~ " <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
+#~ " <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Transaction integration -->\n"
+#~ " <attribute name=\"TransactionStrategy\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory</attribute>\n"
+#~ " <attribute name=\"TransactionManagerLookupStrategy\">\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup</"
+#~ "attribute>\n"
+#~ " <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
+#~ " <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Fetching options -->\n"
+#~ " <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
+#~ "\n"
+#~ " <!-- Second-level caching -->\n"
+#~ " <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
+#~ " <attribute name=\"CacheProviderClass\">org.hibernate.cache."
+#~ "EhCacheProvider</attribute>\n"
+#~ " <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Logging -->\n"
+#~ " <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Mapping files -->\n"
+#~ " <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/"
+#~ "Category.hbm.xml</attribute>\n"
+#~ "\n"
+#~ "</mbean>\n"
+#~ "\n"
+#~ "</server>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<server>\n"
+#~ "\n"
+#~ "<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
+#~ " name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
+#~ "\n"
+#~ " <!-- Required services -->\n"
+#~ " <depends>jboss.jca:service=RARDeployer</depends>\n"
+#~ " <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
+#~ "\n"
+#~ " <!-- Bind the Hibernate service to JNDI -->\n"
+#~ " <attribute name=\"JndiName\">java:/hibernate/SessionFactory</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Datasource settings -->\n"
+#~ " <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
+#~ " <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Transaction integration -->\n"
+#~ " <attribute name=\"TransactionStrategy\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory</attribute>\n"
+#~ " <attribute name=\"TransactionManagerLookupStrategy\">\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup</"
+#~ "attribute>\n"
+#~ " <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
+#~ " <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Fetching options -->\n"
+#~ " <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
+#~ "\n"
+#~ " <!-- Second-level caching -->\n"
+#~ " <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
+#~ " <attribute name=\"CacheProviderClass\">org.hibernate.cache."
+#~ "EhCacheProvider</attribute>\n"
+#~ " <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Logging -->\n"
+#~ " <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Mapping files -->\n"
+#~ " <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/"
+#~ "Category.hbm.xml</attribute>\n"
+#~ "\n"
+#~ "</mbean>\n"
+#~ "\n"
+#~ "</server>]]>"
-#~ msgid "full.classname.of.Dialect"
-#~ msgstr "full.classname.of.Dialect"
-
-#~ msgid "debug"
-#~ msgstr "debug"
-
-#~ msgid "SCHEMA_NAME"
-#~ msgstr "SCHEMA_NAME"
-
-#~ msgid "CATALOG_NAME"
-#~ msgstr "CATALOG_NAME"
-
-#~ msgid "SessionFactory"
-#~ msgstr "SessionFactory"
-
-#~ msgid "jndi/composite/name"
-#~ msgstr "jndi/composite/name"
-
-#~ msgid "0"
-#~ msgstr "0"
-
-#~ msgid "false"
-#~ msgstr "false"
-
-#~ msgid "Statement.setFetchSize()"
-#~ msgstr "Statement.setFetchSize()"
-
-#~ msgid "true"
-#~ msgstr "executeBatch()"
-
-#~ msgid "executeBatch()"
-#~ msgstr "true"
-
-#~ msgid "Batcher"
-#~ msgstr "Batcher"
-
-#~ msgid "classname.of.BatcherFactory"
-#~ msgstr "classname.of.BatcherFactory"
-
-#~ msgid "binary"
-#~ msgstr "binary (äºè¿å¶)"
-
-#~ msgid "serializable"
-#~ msgstr "serializable (å¯åºåå)"
-
-#~ msgid "PreparedStatement.getGeneratedKeys()"
-#~ msgstr "PreparedStatement.getGeneratedKeys()"
-
-#~ msgid "true|false"
-#~ msgstr "true|false"
-
-#~ msgid "ConnectionProvider"
-#~ msgstr "ConnectionProvider"
-
-#~ msgid "classname.of.ConnectionProvider"
-#~ msgstr "classname.of.ConnectionProvider"
-
-#~ msgid "java.sql.Connection"
-#~ msgstr "java.sql.Connection"
-
-#~ msgid "1, 2, 4, 8"
-#~ msgstr "1, 2, 4, 8"
-
-#~ msgid "after_statement"
-#~ msgstr "after_statement"
-
-#~ msgid "after_transaction"
-#~ msgstr "after_transaction"
-
-#~ msgid "auto"
-#~ msgstr "auto"
-
-#~ msgid "<propertyName>"
-#~ msgstr "<propertyName>"
-
-#~ msgid "hibernate.connection.<placeholder-1/>"
-#~ msgstr "hibernate.connection.<placeholder-1/>"
-
-#~ msgid "propertyName"
-#~ msgstr "propertyName"
-
-#~ msgid "DriverManager.getConnection()"
-#~ msgstr "DriverManager.getConnection()"
-
-#~ msgid "Pass the JDBC property <placeholder-1/> to <placeholder-2/>."
-#~ msgstr "å°JDBC屿§<placeholder-1/>ä¼ éå°<placeholder-2/>ä¸å»."
-
-#~ msgid "hibernate.jndi.<placeholder-1/>"
-#~ msgstr "hibernate.jndi.<placeholder-1/>"
-
-#~ msgid "Pass the property <placeholder-1/> to the JNDI <placeholder-2/>."
-#~ msgstr "å°å±æ§<placeholder-1/>ä¼ éå°JNDI <placeholder-2/>ä¸å»."
-
-#~ msgid "CacheProvider"
-#~ msgstr "CacheProvider"
-
-#~ msgid "classname.of.CacheProvider"
-#~ msgstr "classname.of.CacheProvider"
-
-#~ msgid "<cache>"
-#~ msgstr "<cache>"
-
-#~ msgid "QueryCache"
-#~ msgstr "QueryCache"
-
-#~ msgid "StandardQueryCache"
-#~ msgstr "StandardQueryCache"
-
-#~ msgid "classname.of.QueryCache"
-#~ msgstr "classname.of.QueryCache"
-
-#~ msgid "prefix"
-#~ msgstr "prefix"
-
-#~ msgid "TransactionFactory"
-#~ msgstr "TransactionFactory"
-
-#~ msgid "Transaction"
-#~ msgstr "Transaction"
-
-#~ msgid "JDBCTransactionFactory"
-#~ msgstr "JDBCTransactionFactory"
-
-#~ msgid "classname.of.TransactionFactory"
-#~ msgstr "classname.of.TransactionFactory"
-
-#~ msgid "JTATransactionFactory"
-#~ msgstr "JTATransactionFactory"
-
-#~ msgid "UserTransaction"
-#~ msgstr "UserTransaction"
-
-#~ msgid "TransactionManagerLookup"
-#~ msgstr "TransactionManagerLookup"
-
-#~ msgid "classname.of.TransactionManagerLookup"
-#~ msgstr "classname.of.TransactionManagerLookup"
-
-#~ msgid "Session"
-#~ msgstr "Session"
-
-#~ msgid "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC"
-#~ msgstr "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC"
-
-#~ msgid "create-drop"
-#~ msgstr "create-drop"
-
-#~ msgid "hibernate.cfg.xml"
-#~ msgstr "hibernate.cfg.xml"
-
-#~ msgid "DB2"
-#~ msgstr "DB2"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/events.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/events.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/events.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,41 +1,41 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-11-23 09:36+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: events.xml:29
#, no-c-format
msgid "Interceptors and events"
-msgstr "æ¦æªå¨ä¸äºä»¶(Interceptors and events)"
+msgstr "æ¦æªå¨ä¸äºä»¶ï¼Interceptors and eventsï¼"
#. Tag: para
-#: events.xml:31
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"It is useful for the application to react to certain events that occur "
"inside Hibernate. This allows for the implementation of generic "
"functionality and the extension of Hibernate functionality."
msgstr ""
-"åºç¨ç¨åºè½å¤ååºHibernateå
é¨äº§ççç¹å®äºä»¶æ¯é常æç¨çãè¿æ ·å°±å
许å®ç°æäºé"
-"ç¨çåè½ ä»¥åå
许对Hibernateåè½è¿è¡æ©å±ã"
+"åºç¨ç¨åºè½å¤ååº Hibernate å
é¨äº§ççç¹å®äºä»¶æ¯é常æç¨çãè¿æ ·å°±å
许å®ç°æäº"
+"éç¨çåè½ä»¥åå
许对 Hibernate åè½è¿è¡æ©å±ã"
#. Tag: title
-#: events.xml:38
#, no-c-format
msgid "Interceptors"
-msgstr "æ¦æªå¨(Interceptors)"
+msgstr "æ¦æªå¨ï¼Interceptorsï¼"
#. Tag: para
-#: events.xml:40
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The <literal>Interceptor</literal> interface provides callbacks from the "
"session to the application, allowing the application to inspect and/or "
@@ -47,145 +47,46 @@
"<literal>lastUpdateTimestamp</literal> property when an <literal>Auditable</"
"literal> is updated."
msgstr ""
-"<literal>Interceptor</literal>æ¥å£æä¾äºä»ä¼è¯(session)åè°(callback)åºç¨ç¨åº"
-"(application)çæºå¶ï¼ è¿ç§åè°æºå¶å¯ä»¥å
许åºç¨ç¨åºå¨æä¹
å对象被ä¿åãæ´æ°ã"
-"å 餿æ¯å è½½ä¹åï¼æ£æ¥å¹¶ï¼æï¼ä¿®æ¹å
¶ 屿§ãä¸ä¸ªå¯è½çç¨éï¼å°±æ¯ç¨æ¥è·è¸ªå®¡æ ¸"
-"(auditing)ä¿¡æ¯ãä¾å¦ï¼ä¸é¢çè¿ä¸ª<literal>æ¦æªå¨</literal>ï¼ä¼å¨ä¸ä¸ªå®ç°äº "
-"<literal>Auditable</literal>æ¥å£ç对象被å建æ¶èªå¨å°è®¾ç½®"
-"<literal>createTimestamp</literal>屿§ï¼å¹¶å¨å®ç°äº <literal>Auditable</"
-"literal>æ¥å£çå¯¹è±¡è¢«æ´æ°æ¶ï¼åæ¥æ´æ°<literal>lastUpdateTimestamp</literal>å±"
-"æ§ã"
+"<literal>Interceptor</literal> æ¥å£æä¾äºä»ä¼è¯ï¼sessionï¼åè°ï¼callbackï¼åº"
+"ç¨ç¨åºï¼applicationï¼çæºå¶ï¼ è¿ç§åè°æºå¶å¯ä»¥å
许åºç¨ç¨åºå¨æä¹
å对象被ä¿"
+"åãæ´æ°ãå 餿æ¯å è½½ä¹åï¼æ£æ¥å¹¶ï¼æï¼ä¿®æ¹å
¶ 屿§ãä¸ä¸ªå¯è½çç¨éï¼å°±æ¯ç¨æ¥"
+"è·è¸ªå®¡æ ¸ï¼auditingï¼ä¿¡æ¯ãä¾å¦ï¼ä¸é¢çè¿ä¸ª<literal>æ¦æªå¨</literal>ï¼ä¼å¨ä¸ä¸ª"
+"å®ç°äº <literal>Auditable</literal> æ¥å£ç对象被å建æ¶èªå¨å°è®¾ç½® "
+"<literal>createTimestamp</literal> 屿§ï¼å¹¶å¨å®ç°äº <literal>Auditable</"
+"literal> æ¥å£çå¯¹è±¡è¢«æ´æ°æ¶ï¼åæ¥æ´æ° <literal>lastUpdateTimestamp</literal> "
+"屿§ã "
#. Tag: para
-#: events.xml:51
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"You can either implement <literal>Interceptor</literal> directly or extend "
"<literal>EmptyInterceptor</literal>."
msgstr ""
-"ä½ å¯ä»¥ç´æ¥å®ç°<literal>Interceptor</literal>æ¥å£ï¼ä¹å¯ä»¥ï¼æå¥½ï¼ç»§æ¿èª"
-"<literal>EmptyInterceptor</literal>ã"
+"ä½ å¯ä»¥ç´æ¥å®ç° <literal>Interceptor</literal> æ¥å£ï¼ä¹å¯ä»¥ï¼æå¥½ï¼ç»§æ¿èª "
+"<literal>EmptyInterceptor</literal>ã "
-#. Tag: programlisting
-#: events.xml:56
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[package org.hibernate.test;\n"
-"\n"
-"import java.io.Serializable;\n"
-"import java.util.Date;\n"
-"import java.util.Iterator;\n"
-"\n"
-"import org.hibernate.EmptyInterceptor;\n"
-"import org.hibernate.Transaction;\n"
-"import org.hibernate.type.Type;\n"
-"\n"
-"public class AuditInterceptor extends EmptyInterceptor {\n"
-"\n"
-" private int updates;\n"
-" private int creates;\n"
-" private int loads;\n"
-"\n"
-" public void onDelete(Object entity,\n"
-" Serializable id,\n"
-" Object[] state,\n"
-" String[] propertyNames,\n"
-" Type[] types) {\n"
-" // do nothing\n"
-" }\n"
-"\n"
-" public boolean onFlushDirty(Object entity,\n"
-" Serializable id,\n"
-" Object[] currentState,\n"
-" Object[] previousState,\n"
-" String[] propertyNames,\n"
-" Type[] types) {\n"
-"\n"
-" if ( entity instanceof Auditable ) {\n"
-" updates++;\n"
-" for ( int i=0; i < propertyNames.length; i++ ) {\n"
-" if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
-" currentState[i] = new Date();\n"
-" return true;\n"
-" }\n"
-" }\n"
-" }\n"
-" return false;\n"
-" }\n"
-"\n"
-" public boolean onLoad(Object entity,\n"
-" Serializable id,\n"
-" Object[] state,\n"
-" String[] propertyNames,\n"
-" Type[] types) {\n"
-" if ( entity instanceof Auditable ) {\n"
-" loads++;\n"
-" }\n"
-" return false;\n"
-" }\n"
-"\n"
-" public boolean onSave(Object entity,\n"
-" Serializable id,\n"
-" Object[] state,\n"
-" String[] propertyNames,\n"
-" Type[] types) {\n"
-"\n"
-" if ( entity instanceof Auditable ) {\n"
-" creates++;\n"
-" for ( int i=0; i<propertyNames.length; i++ ) {\n"
-" if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
-" state[i] = new Date();\n"
-" return true;\n"
-" }\n"
-" }\n"
-" }\n"
-" return false;\n"
-" }\n"
-"\n"
-" public void afterTransactionCompletion(Transaction tx) {\n"
-" if ( tx.wasCommitted() ) {\n"
-" System.out.println(\"Creations: \" + creates + \", Updates: \" + "
-"updates, \"Loads: \" + loads);\n"
-" }\n"
-" updates=0;\n"
-" creates=0;\n"
-" loads=0;\n"
-" }\n"
-"\n"
-"}]]>"
-msgstr ""
-
-#. Tag: para
-#: events.xml:58
-#, fuzzy, no-c-format
-msgid ""
"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
"<literal>SessionFactory</literal>-scoped."
msgstr ""
-"æ¦æªå¨å¯ä»¥æä¸¤ç§:<literal>Session</literal>èå´å
çï¼å"
-"<literal>SessionFactory</literal>èå´å
çã"
+"æ¦æªå¨å¯ä»¥æä¸¤ç§ï¼<literal>Session</literal> èå´å
çå "
+"<literal>SessionFactory</literal> èå´å
çã"
#. Tag: para
-#: events.xml:63
#, no-c-format
msgid ""
"A <literal>Session</literal>-scoped interceptor is specified when a session "
"is opened using one of the overloaded SessionFactory.openSession() methods "
"accepting an <literal>Interceptor</literal>."
msgstr ""
-"å½ä½¿ç¨æä¸ªéè½½çSessionFactory.openSession()使ç¨<literal>Interceptor</"
-"literal>ä½ä¸ºåæ°è°ç¨æå¼ä¸ä¸ªsessionçæ¶åï¼å°±æå®äº<literal>Session</literal>"
-"èå´å
çæ¦æªå¨ã"
+"å½ä½¿ç¨æä¸ªéè½½ç SessionFactory.openSession() ä½¿ç¨ <literal>Interceptor</"
+"literal> ä½ä¸ºåæ°è°ç¨æå¼ä¸ä¸ª session çæ¶åï¼å°±æå®äº <literal>Session</"
+"literal> èå´å
çæ¦æªå¨ã"
-#. Tag: programlisting
-#: events.xml:69
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
-msgstr ""
-
-#. Tag: para
-#: events.xml:71
-#, fuzzy, no-c-format
msgid ""
"A <literal>SessionFactory</literal>-scoped interceptor is registered with "
"the <literal>Configuration</literal> object prior to building the "
@@ -196,40 +97,31 @@
"Ensure that you do not store session-specific states, since multiple "
"sessions will use this interceptor potentially concurrently."
msgstr ""
-"<literal>SessionFactory</literal>èå´å
çæ¦æªå¨è¦éè¿<literal>Configuration</"
-"literal>䏿³¨åï¼èè¿å¿
é¡»å¨å建<literal>SessionFactory</literal>ä¹åãå¨è¿ç§æ
"
-"åµä¸ï¼ç»åºçæ¦æªå¨ä¼è¢«è¿ä¸ª<literal>SessionFactory</literal>ææå¼çææ"
-"session使ç¨äºï¼é¤ésessionæå¼æ¶æç¡®ææäºä½¿ç¨çæ¦æªå¨ã"
-"<literal>SessionFactory</literal>èå´å
çæ¦æªå¨ï¼å¿
é¡»æ¯çº¿ç¨å®å
¨çï¼å 为å¤ä¸ª"
-"sessionå¯è½å¹¶å使ç¨è¿ä¸ªæ¦æªå¨ï¼è¦å æ¤å°å¿ä¸è¦ä¿åä¸sessionç¸å
³çç¶æã"
+"<literal>SessionFactory</literal> èå´å
çæ¦æªå¨è¦éè¿ "
+"<literal>Configuration</literal> 䏿³¨åï¼èè¿å¿
é¡»å¨å建 "
+"<literal>SessionFactory</literal> ä¹åãå¨è¿ç§æ
åµä¸ï¼ç»åºçæ¦æªå¨ä¼è¢«è¿ä¸ª "
+"<literal>SessionFactory</literal> ææå¼çææ session 使ç¨äºï¼é¤é session "
+"æå¼æ¶æç¡®ææäºä½¿ç¨çæ¦æªå¨ã<literal>SessionFactory</literal> èå´å
çæ¦æª"
+"å¨ï¼å¿
é¡»æ¯çº¿ç¨å®å
¨çãç¡®ä¿ä½ 没æä¿å session 䏿çç¶æï¼å 为å¤ä¸ª session å¯"
+"è½å¹¶å使ç¨è¿ä¸ªæ¦æªå¨ã"
-#. Tag: programlisting
-#: events.xml:80
-#, no-c-format
-msgid ""
-"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
-msgstr ""
-
#. Tag: title
-#: events.xml:85
#, no-c-format
msgid "Event system"
-msgstr "äºä»¶ç³»ç»(Event system)"
+msgstr "äºä»¶ç³»ç»ï¼Event systemï¼"
#. Tag: para
-#: events.xml:87
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"If you have to react to particular events in your persistence layer, you can "
"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
"system can be used in addition, or as a replacement, for interceptors."
msgstr ""
-"妿éè¦ååºæä¹
å±çæäºç¹æ®äºä»¶ï¼ä½ ä¹å¯ä»¥ä½¿ç¨Hibernate3çäºä»¶æ¡æ¶ã 该äºä»¶ç³»"
-"ç»å¯ä»¥ç¨æ¥æ¿ä»£æ¦æªå¨ï¼ä¹å¯ä»¥ä½ä¸ºæ¦æªå¨çè¡¥å
æ¥ä½¿ç¨ã"
+"妿éè¦ååºæä¹
å±çæäºç¹æ®äºä»¶ï¼ä½ ä¹å¯ä»¥ä½¿ç¨ Hibernate3 çäºä»¶æ¡æ¶ã该äºä»¶"
+"ç³»ç»å¯ä»¥ç¨æ¥æ¿ä»£æ¦æªå¨ï¼ä¹å¯ä»¥ä½ä¸ºæ¦æªå¨çè¡¥å
æ¥ä½¿ç¨ã "
#. Tag: para
-#: events.xml:93
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"All the methods of the <literal>Session</literal> interface correlate to an "
"event. You have a <literal>LoadEvent</literal>, a <literal>FlushEvent</"
@@ -246,30 +138,28 @@
"processing any <literal>load()</literal> requests made of the "
"<literal>Session</literal>."
msgstr ""
-"åºæ¬ä¸ï¼<literal>Session</literal>æ¥å£çæ¯ä¸ªæ¹æ³é½æç¸å¯¹åºçäºä»¶ãæ¯å¦ "
-"<literal>LoadEvent</literal>ï¼<literal>FlushEvent</literal>ï¼ççï¼æ¥é
XMLé
"
-"ç½®æä»¶ çDTDï¼ä»¥å<literal>org.hibernate.event</literal>å
æ¥è·å¾ææå·²å®ä¹ç"
-"äºä»¶çå表ï¼ãå½æä¸ªæ¹ æ³è¢«è°ç¨æ¶ï¼Hibernate <literal>Session</literal>ä¼çæ"
-"ä¸ä¸ªç¸å¯¹åºçäºä»¶å¹¶æ¿æ´»æ æé
置好çäºä»¶çå¬å¨ãç³»ç»é¢è®¾ççå¬å¨å®ç°çå¤çè¿ç¨"
-"å°±æ¯è¢«çå¬çæ¹æ³è¦åçï¼è¢«çå¬çæ¹æ³æåçå
¶å®ä»
ä»
æ¯æ¿æ´»çå¬å¨ï¼ âå®é
âçå·¥ä½"
-"æ¯ç±çå¬å¨å®æçï¼ãä¸è¿ï¼ä½ å¯ä»¥èªç±å°éæ©å®ç° ä¸ä¸ªèªå·±å®å¶ççå¬å¨ï¼æ¯å¦ï¼å®"
-"ç°å¹¶æ³¨åç¨æ¥å¤çå¤ç<literal>LoadEvent</literal>ç"
-"<literal>LoadEventListener</literal>æ¥å£ï¼ï¼ æ¥è´è´£å¤çææçè°ç¨"
-"<literal>Session</literal>ç<literal>load()</literal>æ¹æ³ç请æ±ã"
+"åºæ¬ä¸ï¼<literal>Session</literal> æ¥å£çæ¯ä¸ªæ¹æ³é½æç¸å¯¹åºçäºä»¶ãæ¯å¦ "
+"<literal>LoadEvent</literal>ï¼<literal>FlushEvent</literal>ï¼ççï¼æ¥é
XML "
+"é
ç½®æä»¶ç DTDï¼ä»¥å <literal>org.hibernate.event</literal> å
æ¥è·å¾ææå·²å®"
+"ä¹çäºä»¶çå表ï¼ãå½æä¸ªæ¹ æ³è¢«è°ç¨æ¶ï¼Hibernate <literal>Session</literal>ä¼"
+"çæä¸ä¸ªç¸å¯¹åºçäºä»¶å¹¶æ¿æ´»æ æé
置好çäºä»¶çå¬å¨ãç³»ç»é¢è®¾ççå¬å¨å®ç°çå¤ç"
+"è¿ç¨å°±æ¯è¢«çå¬çæ¹æ³è¦åçï¼è¢«çå¬çæ¹æ³æåçå
¶å®ä»
ä»
æ¯æ¿æ´»çå¬å¨ï¼âå®é
âç"
+"工使¯ç±çå¬å¨å®æçï¼ãä¸è¿ï¼ä½ å¯ä»¥èªç±å°éæ©å®ç° ä¸ä¸ªèªå·±å®å¶ççå¬å¨ï¼æ¯"
+"å¦ï¼å®ç°å¹¶æ³¨åç¨æ¥å¤çå¤ç <literal>LoadEvent</literal> ç "
+"<literal>LoadEventListener</literal> æ¥å£ï¼ï¼ æ¥è´è´£å¤çææçè°ç¨ "
+"<literal>Session</literal> ç <literal>load()</literal> æ¹æ³ç请æ±ã"
#. Tag: para
-#: events.xml:108
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The listeners should be considered singletons. This means they are shared "
"between requests, and should not save any state as instance variables."
msgstr ""
-"çå¬å¨åºè¯¥è¢«ç使¯åä¾(singleton)对象ï¼ä¹å°±æ¯è¯´ï¼ææåç±»åçäºä»¶çå¤çå
±äº«å"
-"ä¸ä¸ªçå¬å¨å®ä¾ï¼å æ¤çå¬å¨ ä¸åºè¯¥ä¿åä»»ä½ç¶æï¼ä¹å°±æ¯ä¸åºè¯¥ä½¿ç¨æååéï¼ã"
+"çå¬å¨åºè¯¥è¢«ç使¯åä¾ï¼singletonï¼å¯¹è±¡ï¼ä¹å°±æ¯è¯´ï¼ææåç±»åçäºä»¶çå¤çå
񄧮"
+"åä¸ä¸ªçå¬å¨å®ä¾ï¼å æ¤çå¬å¨ä¸åºè¯¥ä¿åä»»ä½ç¶æï¼ä¹å°±æ¯ä¸åºè¯¥ä½¿ç¨æååéï¼ã"
#. Tag: para
-#: events.xml:113
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A custom listener implements the appropriate interface for the event it "
"wants to process and/or extend one of the convenience base classes (or even "
@@ -281,89 +171,42 @@
"example of a custom load event listener:"
msgstr ""
"ç¨æ·å®å¶ççå¬å¨åºè¯¥å®ç°ä¸æè¦å¤ççäºä»¶ç¸å¯¹åºçæ¥å£ï¼æè
ä»ä¸ä¸ªåéçåºç±»ç»§"
-"æ¿ï¼çè³æ¯ä»Hibernateèªå¸¦çé»è®¤äºä»¶çå¬å¨ç±»ç»§æ¿ï¼ ä¸ºäºæ¹ä¾¿ä½ è¿æ ·åï¼è¿äºç±»é½"
-"被声æænon-finalçäºï¼ãç¨æ·å®å¶ççå¬å¨å¯ä»¥éè¿ç¼ç¨ä½¿ç¨"
-"<literal>Configuration</literal>对象 æ¥æ³¨åï¼ä¹å¯ä»¥å¨HibernateçXMLæ ¼å¼çé
ç½®"
-"æä»¶ä¸è¿è¡å£°æï¼ä¸æ¯æå¨Propertiesæ ¼å¼çé
ç½®æä»¶å£°æçå¬å¨ï¼ã ä¸é¢æ¯ä¸ä¸ªç¨æ·"
-"å®å¶çå è½½äºä»¶(load event)ççå¬å¨ï¼"
+"æ¿ï¼çè³æ¯ä» Hibernate èªå¸¦çé»è®¤äºä»¶çå¬å¨ç±»ç»§æ¿ï¼ä¸ºäºæ¹ä¾¿ä½ è¿æ ·åï¼è¿äºç±»é½"
+"è¢«å£°ææ non-final çäºï¼ãç¨æ·å®å¶ççå¬å¨å¯ä»¥éè¿ç¼ç¨ä½¿ç¨ "
+"<literal>Configuration</literal> 对象 æ¥æ³¨åï¼ä¹å¯ä»¥å¨Hibernateç XML æ ¼å¼ç"
+"é
ç½®æä»¶ä¸è¿è¡å£°æï¼ä¸æ¯æå¨ Properties æ ¼å¼çé
ç½®æä»¶å£°æçå¬å¨ï¼ãä¸é¢æ¯ä¸"
+"ä¸ªç¨æ·å®å¶çå è½½äºä»¶ï¼load eventï¼ççå¬å¨ï¼"
-#. Tag: programlisting
-#: events.xml:123
-#, no-c-format
-msgid ""
-"<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
-" // this is the single method defined by the LoadEventListener interface\n"
-" public void onLoad(LoadEvent event, LoadEventListener.LoadType "
-"loadType)\n"
-" throws HibernateException {\n"
-" if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
-"getEntityId() ) ) {\n"
-" throw MySecurityException(\"Unauthorized access\");\n"
-" }\n"
-" }\n"
-"}]]>"
-msgstr ""
-
#. Tag: para
-#: events.xml:125
#, no-c-format
msgid ""
"You also need a configuration entry telling Hibernate to use the listener in "
"addition to the default listener:"
msgstr ""
-"ä½ è¿éè¦ä¿®æ¹ä¸å¤é
ç½®ï¼æ¥åè¯Hibernateï¼é¤äºé»è®¤ççå¬å¨ï¼è¿è¦éå éå®ççå¬"
+"ä½ è¿éè¦ä¿®æ¹ä¸å¤é
ç½®ï¼æ¥åè¯ Hibernateï¼é¤äºé»è®¤ççå¬å¨ï¼è¿è¦éå éå®ççå¬"
"å¨ã"
-#. Tag: programlisting
-#: events.xml:130
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-configuration>\n"
-" <session-factory>\n"
-" ...\n"
-" <event type=\"load\">\n"
-" <listener class=\"com.eg.MyLoadListener\"/>\n"
-" <listener class=\"org.hibernate.event.def."
-"DefaultLoadEventListener\"/>\n"
-" </event>\n"
-" </session-factory>\n"
-"</hibernate-configuration>]]>"
-msgstr ""
+msgid "Instead, you can register it programmatically:"
+msgstr "æè
ï¼ä½ å¯ä»¥éè¿ç¼ç¨çæ¹å¼æ¥æ³¨åå®ï¼"
#. Tag: para
-#: events.xml:132
-#, fuzzy, no-c-format
-msgid "Instead, you can register it programmatically:"
-msgstr "ççç¨å¦ä¸ç§æ¹å¼ï¼éè¿ç¼ç¨çæ¹å¼æ¥æ³¨åå®ã"
-
-#. Tag: programlisting
-#: events.xml:136
#, no-c-format
msgid ""
-"<![CDATA[Configuration cfg = new Configuration();\n"
-"LoadEventListener[] stack = { new MyLoadListener(), new "
-"DefaultLoadEventListener() };\n"
-"cfg.EventListeners().setLoadEventListeners(stack);]]>"
-msgstr ""
-
-#. Tag: para
-#: events.xml:138
-#, fuzzy, no-c-format
-msgid ""
"Listeners registered declaratively cannot share instances. If the same class "
"name is used in multiple <literal><listener/></literal> elements, each "
"reference will result in a separate instance of that class. If you need to "
"share listener instances between listener types you must use the "
"programmatic registration approach."
msgstr ""
-"éè¿å¨XMLé
ç½®æä»¶å£°æè注åççå¬å¨ä¸è½å
±äº«å®ä¾ã妿å¨å¤ä¸ª<literal><"
-"listener/></literal>èç¹ä¸ä½¿ç¨ äºç¸åçç±»çååï¼åæ¯ä¸ä¸ªå¼ç¨é½å°ä¼äº§çä¸"
+"éè¿å¨XMLé
ç½®æä»¶å£°æè注åççå¬å¨ä¸è½å
±äº«å®ä¾ã妿å¨å¤ä¸ª <literal><"
+"listener/></literal> èç¹ä¸ä½¿ç¨ äºç¸åçç±»çååï¼åæ¯ä¸ä¸ªå¼ç¨é½å°ä¼äº§çä¸"
"个ç¬ç«çå®ä¾ãå¦æä½ éè¦å¨å¤ä¸ªçå¬å¨ç±»åä¹é´å
±äº« çå¬å¨çå®ä¾ï¼åä½ å¿
须使ç¨ç¼"
-"ç¨çæ¹å¼æ¥è¿è¡æ³¨åã"
+"ç¨çæ¹å¼æ¥è¿è¡æ³¨åã "
#. Tag: para
-#: events.xml:146
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Why implement an interface and define the specific type during "
"configuration? A listener implementation could implement multiple event "
@@ -373,84 +216,326 @@
msgstr ""
"为ä»ä¹æä»¬å®ç°äºç¹å®çå¬å¨çæ¥å£ï¼å¨æ³¨åçæ¶åè¿è¦æç¡®æåºæä»¬è¦æ³¨ååªä¸ªäºä»¶"
"ççå¬å¨å¢ï¼ è¿æ¯å 为ä¸ä¸ªç±»å¯è½å®ç°å¤ä¸ªçå¬å¨çæ¥å£ã卿³¨åçæ¶åæç¡®æå®è¦ç"
-"å¬çäºä»¶ï¼å¯ä»¥è®©å¯ç¨æè
ç¦ç¨å¯¹æä¸ªäºä»¶ççå¬çé
置工ä½ç®åäºã"
+"å¬çäºä»¶ï¼å¯ä»¥è®©å¯ç¨æè
ç¦ç¨å¯¹æä¸ªäºä»¶ççå¬çé
置工ä½ç®åäºã "
#. Tag: title
-#: events.xml:156
#, no-c-format
msgid "Hibernate declarative security"
-msgstr "Hibernateç声æå¼å®å
¨æºå¶"
+msgstr "Hibernate ç声æå¼å®å
¨æºå¶"
#. Tag: para
-#: events.xml:157
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Usually, declarative security in Hibernate applications is managed in a "
"session facade layer. Hibernate3 allows certain actions to be permissioned "
"via JACC, and authorized via JAAS. This is an optional functionality that is "
"built on top of the event architecture."
msgstr ""
-"é常ï¼Hibernateåºç¨ç¨åºç声æå¼å®å
¨æºå¶ç±ä¼è¯å¤è§å±(session facade)æç®¡çã "
-"ç°å¨ï¼Hibernate3å
许æäºç¹å®çè¡ä¸ºç±JACCè¿è¡è®¸å¯ç®¡çï¼ç±JAASè¿è¡ææç®¡çã æ¬"
-"åè½æ¯ä¸ä¸ªå»ºç«å¨äºä»¶æ¡æ¶ä¹ä¸çå¯éçåè½ã"
+"é常ï¼Hibernate åºç¨ç¨åºç声æå¼å®å
¨æºå¶ç±ä¼è¯å¤è§å±ï¼session facadeï¼æç®¡"
+"çãç°å¨ï¼Hibernate3å
许æäºç¹å®çè¡ä¸ºç± JACC è¿è¡è®¸å¯ç®¡çï¼ç± JAAS è¿è¡ææ"
+"管çãæ¬åè½æ¯ä¸ä¸ªå»ºç«å¨äºä»¶æ¡æ¶ä¹ä¸çå¯éçåè½ã "
#. Tag: para
-#: events.xml:163
#, no-c-format
msgid ""
"First, you must configure the appropriate event listeners, to enable the use "
"of JAAS authorization."
msgstr ""
-"é¦å
ï¼ä½ å¿
é¡»è¦é
ç½®éå½çäºä»¶çå¬å¨ï¼event listenerï¼ï¼æ¥æ¿æ´»ä½¿ç¨JAASç®¡çææ"
-"çåè½ã"
+"é¦å
ï¼ä½ å¿
é¡»è¦é
ç½®éå½çäºä»¶çå¬å¨ï¼event listenerï¼ï¼æ¥æ¿æ´»ä½¿ç¨ JAAS 管çæ"
+"æçåè½ã"
-#. Tag: programlisting
-#: events.xml:168
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
-"JACCPreDeleteEventListener\"/>\n"
-"<listener type=\"pre-update\" class=\"org.hibernate.secure."
-"JACCPreUpdateEventListener\"/>\n"
-"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
-"JACCPreInsertEventListener\"/>\n"
-"<listener type=\"pre-load\" class=\"org.hibernate.secure."
-"JACCPreLoadEventListener\"/>]]>"
-msgstr ""
-
-#. Tag: para
-#: events.xml:170
-#, fuzzy, no-c-format
-msgid ""
"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
"></event></literal> when there is exactly one listener for a "
"particular event type."
msgstr ""
-"注æï¼<literal><listener type=\"...\" class=\"...\"/></literal>åªæ¯"
+"注æï¼<literal><listener type=\"...\" class=\"...\"/></literal> åªæ¯ "
"<literal><event type=\"...\"><listener class=\"...\"/></"
-"event></literal>çç®åï¼å¯¹æ¯ä¸ä¸ªäºä»¶ç±»åé½å¿
é¡»ä¸¥æ ¼çæä¸ä¸ªçå¬å¨ä¸ä¹å¯¹åºã"
+"event></literal> çç®åï¼å¯¹æ¯ä¸ä¸ªäºä»¶ç±»åé½å¿
é¡»ä¸¥æ ¼çæä¸ä¸ªçå¬å¨ä¸ä¹å¯¹"
+"åºã "
#. Tag: para
-#: events.xml:176
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
"permissions to roles:"
msgstr ""
-"æ¥ä¸æ¥ï¼ä»ç¶å¨<literal>hibernate.cfg.xml</literal>æä»¶ä¸ï¼ç»å®è§è²çæéï¼"
+"æ¥ä¸æ¥ï¼ä»ç¶å¨ <literal>hibernate.cfg.xml</literal> æä»¶ä¸ï¼ç»å®è§è²çæéï¼ "
-#. Tag: programlisting
-#: events.xml:180
-#, no-c-format
-msgid ""
-"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
-"read\"/>\n"
-"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
-msgstr ""
-
#. Tag: para
-#: events.xml:182
#, no-c-format
msgid "The role names are the roles understood by your JACC provider."
-msgstr "è¿äºè§è²çååå°±æ¯ä½ çJACC provideræå®ä¹çè§è²çååã"
+msgstr "è¿äºè§è²çååå°±æ¯ä½ ç JACC provider æå®ä¹çè§è²çååã"
+
+#~ msgid ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+#~ msgstr ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_mappings.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_mappings.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_mappings.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,36 +1,36 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-11-20 18:36+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: example_mappings.xml:29
#, no-c-format
msgid "Example: Various Mappings"
msgstr "示ä¾ï¼å¤ææ å°å®ä¾"
#. Tag: para
-#: example_mappings.xml:32
-#, fuzzy, no-c-format
+#, no-c-format
msgid "This chapters explores some more complex association mappings."
-msgstr "æ¬ç« å±ç¤ºäºä¸äºè¾ä¸ºå¤æçå
³ç³»æ å°ã"
+msgstr "æ¬ç« å±ç¤ºäºä¸äºè¾ä¸ºå¤æçå
³ç³»æ å°ã "
#. Tag: title
-#: example_mappings.xml:37
#, no-c-format
msgid "Employer/Employee"
-msgstr "Employerï¼é主)/Employee(éå)"
+msgstr "Employerï¼é主ï¼/Employeeï¼éåï¼"
#. Tag: para
-#: example_mappings.xml:39
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The following model of the relationship between <literal>Employer</literal> "
"and <literal>Employee</literal> uses an entity class (<literal>Employment</"
@@ -38,128 +38,28 @@
"more than one period of employment for the same two parties. Components are "
"used to model monetary values and employee names."
msgstr ""
-"ä¸é¢å
³äº<literal>Employer</literal> å <literal>Employee</literal>çå
³ç³»æ¨¡å"
-"使ç¨äºä¸ä¸ªçå®çå®ä½ç±» (<literal>Employment</literal>)æ¥è¡¨è¿°ï¼è¿æ¯å 为对äºç¸"
-"åçéååé主å¯è½ä¼æå¤ä¸ªéä½£æ¶é´æ®µã 对äºéé¢åéåå§åï¼ç¨Components建模ã"
+"ä¸é¢å
³äº <literal>Employer</literal> å <literal>Employee</literal> çå
³ç³»æ¨¡"
+"å使ç¨äºä¸ä¸ªçå®çå®ä½ç±»ï¼<literal>Employment</literal>ï¼æ¥è¡¨è¿°ï¼è¿æ¯å 为对äº"
+"ç¸åçéååé主å¯è½ä¼æå¤ä¸ªéä½£æ¶é´æ®µã对äºéé¢åéåå§åï¼ç¨ Components 建"
+"模ã "
#. Tag: para
-#: example_mappings.xml:56
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Here is a possible mapping document:"
-msgstr "æ å°æä»¶å¯è½æ¯è¿æ ·:"
+msgstr "æ å°æä»¶å¯è½æ¯è¿æ ·ï¼ "
-#. Tag: programlisting
-#: example_mappings.xml:60
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-" \n"
-" <class name=\"Employer\" table=\"employers\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\">\n"
-" <param name=\"sequence\">employer_id_seq</param>\n"
-" </generator>\n"
-" </id>\n"
-" <property name=\"name\"/>\n"
-" </class>\n"
-"\n"
-" <class name=\"Employment\" table=\"employment_periods\">\n"
-"\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\">\n"
-" <param name=\"sequence\">employment_id_seq</param>\n"
-" </generator>\n"
-" </id>\n"
-" <property name=\"startDate\" column=\"start_date\"/>\n"
-" <property name=\"endDate\" column=\"end_date\"/>\n"
-"\n"
-" <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
-" <property name=\"amount\">\n"
-" <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/>\n"
-" </property>\n"
-" <property name=\"currency\" length=\"12\"/>\n"
-" </component>\n"
-"\n"
-" <many-to-one name=\"employer\" column=\"employer_id\" not-null=\"true"
-"\"/>\n"
-" <many-to-one name=\"employee\" column=\"employee_id\" not-null=\"true"
-"\"/>\n"
-"\n"
-" </class>\n"
-"\n"
-" <class name=\"Employee\" table=\"employees\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"sequence\">\n"
-" <param name=\"sequence\">employee_id_seq</param>\n"
-" </generator>\n"
-" </id>\n"
-" <property name=\"taxfileNumber\"/>\n"
-" <component name=\"name\" class=\"Name\">\n"
-" <property name=\"firstName\"/>\n"
-" <property name=\"initial\"/>\n"
-" <property name=\"lastName\"/>\n"
-" </component>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
-#. Tag: para
-#: example_mappings.xml:62
-#, fuzzy, no-c-format
msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
-msgstr "ç¨<literal>SchemaExport</literal>çæè¡¨ç»æã"
+msgstr "ç¨ <literal>SchemaExport</literal> çæè¡¨ç»æã "
-#. Tag: programlisting
-#: example_mappings.xml:66
-#, no-c-format
-msgid ""
-"<![CDATA[create table employers (\n"
-" id BIGINT not null, \n"
-" name VARCHAR(255), \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"create table employment_periods (\n"
-" id BIGINT not null,\n"
-" hourly_rate NUMERIC(12, 2),\n"
-" currency VARCHAR(12), \n"
-" employee_id BIGINT not null, \n"
-" employer_id BIGINT not null, \n"
-" end_date TIMESTAMP, \n"
-" start_date TIMESTAMP, \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"create table employees (\n"
-" id BIGINT not null, \n"
-" firstName VARCHAR(255), \n"
-" initial CHAR(1), \n"
-" lastName VARCHAR(255), \n"
-" taxfileNumber VARCHAR(255), \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"alter table employment_periods \n"
-" add constraint employment_periodsFK0 foreign key (employer_id) "
-"references employers\n"
-"alter table employment_periods \n"
-" add constraint employment_periodsFK1 foreign key (employee_id) "
-"references employees\n"
-"create sequence employee_id_seq\n"
-"create sequence employment_id_seq\n"
-"create sequence employer_id_seq]]>"
-msgstr ""
-
#. Tag: title
-#: example_mappings.xml:71
#, no-c-format
msgid "Author/Work"
-msgstr "Author(ä½å®¶)/Work(ä½å)"
+msgstr "Authorï¼ä½å®¶ï¼/Workï¼ä½åï¼"
#. Tag: para
-#: example_mappings.xml:73
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Consider the following model of the relationships between <literal>Work</"
"literal>, <literal>Author</literal> and <literal>Person</literal>. In the "
@@ -169,141 +69,39 @@
"literal> is represented as one-to-one association. Another possibility would "
"be to have <literal>Author</literal> extend <literal>Person</literal>."
msgstr ""
-"èèä¸é¢ç<literal>Work</literal>,<literal>Author</literal> å "
-"<literal>Person</literal>模åçå
³ç³»ã æä»¬ç¨å¤å¯¹å¤å
³ç³»æ¥æè¿°<literal>Work</"
-"literal> å <literal>Author</literal>ï¼ ç¨ä¸å¯¹ä¸å
³ç³»æ¥æè¿°<literal>Author</"
-"literal> å <literal>Person</literal>ï¼ å¦ä¸ç§å¯è½æ§æ¯<literal>Author</"
-"literal>ç»§æ¿<literal>Person</literal>ã"
+"èèä¸é¢ç <literal>Work</literal>ï¼<literal>Author</literal> å "
+"<literal>Person</literal> 模åçå
³ç³»ãæä»¬ç¨å¤å¯¹å¤å
³ç³»æ¥æè¿° <literal>Work</"
+"literal> å <literal>Author</literal>ï¼ç¨ä¸å¯¹ä¸å
³ç³»æ¥æè¿° <literal>Author</"
+"literal> å <literal>Person</literal>ï¼å¦ä¸ç§å¯è½æ§æ¯ <literal>Author</"
+"literal> ç»§æ¿ <literal>Person</literal>ã "
#. Tag: para
-#: example_mappings.xml:91
#, no-c-format
msgid ""
"The following mapping document correctly represents these relationships:"
msgstr "ä¸é¢çæ å°æä»¶æ£ç¡®çæè¿°äºè¿äºå
³ç³»ï¼"
-#. Tag: programlisting
-#: example_mappings.xml:95
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-"\n"
-" <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
-"\n"
-" <id name=\"id\" column=\"id\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <discriminator column=\"type\" type=\"character\"/>\n"
-"\n"
-" <property name=\"title\"/>\n"
-" <set name=\"authors\" table=\"author_work\">\n"
-" <key column name=\"work_id\"/>\n"
-" <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
-" </set>\n"
-"\n"
-" <subclass name=\"Book\" discriminator-value=\"B\">\n"
-" <property name=\"text\"/>\n"
-" </subclass>\n"
-"\n"
-" <subclass name=\"Song\" discriminator-value=\"S\">\n"
-" <property name=\"tempo\"/>\n"
-" <property name=\"genre\"/>\n"
-" </subclass>\n"
-"\n"
-" </class>\n"
-"\n"
-" <class name=\"Author\" table=\"authors\">\n"
-"\n"
-" <id name=\"id\" column=\"id\">\n"
-" <!-- The Author must have the same identifier as the Person -->\n"
-" <generator class=\"assigned\"/> \n"
-" </id>\n"
-"\n"
-" <property name=\"alias\"/>\n"
-" <one-to-one name=\"person\" constrained=\"true\"/>\n"
-"\n"
-" <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
-" <key column=\"author_id\"/>\n"
-" <many-to-many class=\"Work\" column=\"work_id\"/>\n"
-" </set>\n"
-"\n"
-" </class>\n"
-"\n"
-" <class name=\"Person\" table=\"persons\">\n"
-" <id name=\"id\" column=\"id\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"name\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
-#. Tag: para
-#: example_mappings.xml:97
-#, fuzzy, no-c-format
-msgid ""
"There are four tables in this mapping: <literal>works</literal>, "
"<literal>authors</literal> and <literal>persons</literal> hold work, author "
"and person data respectively. <literal>author_work</literal> is an "
"association table linking authors to works. Here is the table schema, as "
"generated by <literal>SchemaExport</literal>:"
msgstr ""
-"æ å°ä¸æ4个表ã<literal>works</literal>, <literal>authors</literal> å "
-"<literal>persons</literal> åå«ä¿åçworkï¼authoråpersonçæ°æ®ã"
-"<literal>author_work</literal>æ¯authorsåworksçå
³è表ã è¡¨ç»ææ¯ç±"
-"<literal>SchemaExport</literal>çæçã"
+"æ å°ä¸æ 4 个表ã<literal>works</literal>ï¼<literal>authors</literal> å "
+"<literal>persons</literal> åå«ä¿åç workï¼author å person çæ°æ®ã"
+"<literal>author_work</literal> æ¯ authors å works çå
³è表ãè¡¨ç»ææ¯ç± "
+"<literal>SchemaExport</literal> çæçï¼"
-#. Tag: programlisting
-#: example_mappings.xml:105
-#, no-c-format
-msgid ""
-"<![CDATA[create table works (\n"
-" id BIGINT not null generated by default as identity, \n"
-" tempo FLOAT, \n"
-" genre VARCHAR(255), \n"
-" text INTEGER, \n"
-" title VARCHAR(255), \n"
-" type CHAR(1) not null, \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"create table author_work (\n"
-" author_id BIGINT not null, \n"
-" work_id BIGINT not null, \n"
-" primary key (work_id, author_id)\n"
-")\n"
-"\n"
-"create table authors (\n"
-" id BIGINT not null generated by default as identity, \n"
-" alias VARCHAR(255), \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"create table persons (\n"
-" id BIGINT not null generated by default as identity, \n"
-" name VARCHAR(255), \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"alter table authors \n"
-" add constraint authorsFK0 foreign key (id) references persons\n"
-"alter table author_work \n"
-" add constraint author_workFK0 foreign key (author_id) references "
-"authors\n"
-"alter table author_work\n"
-" add constraint author_workFK1 foreign key (work_id) references works]]>"
-msgstr ""
-
#. Tag: title
-#: example_mappings.xml:110
#, no-c-format
msgid "Customer/Order/Product"
-msgstr "Customer(客æ·)/Order(订å)/Product(产å)"
+msgstr "Customerï¼å®¢æ·ï¼/Orderï¼è®¢åï¼/Productï¼äº§åï¼"
#. Tag: para
-#: example_mappings.xml:112
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"In this section we consider a model of the relationships between "
"<literal>Customer</literal>, <literal>Order</literal>, <literal>Line Item</"
@@ -315,65 +113,20 @@
"between <literal>Order</literal> and <literal>Product</literal>. In "
"Hibernate this is called a composite element."
msgstr ""
-"ç°å¨æ¥èè<literal>Customer</literal>,<literal>Order</literal> ï¼ "
-"<literal>LineItem</literal> å <literal>Product</literal>å
³ç³»ç模åã"
-"<literal>Customer</literal> å <literal>Order</literal>ä¹é´ æ¯ä¸å¯¹å¤çå
³ç³»ï¼"
-"使¯æä»¬æä¹æ¥æè¿°<literal>Order</literal> / <literal>LineItem</literal> / "
-"<literal>Product</literal>å¢ï¼ æå¯ä»¥æ<literal>LineItem</literal>ä½ä¸ºæè¿°"
-"<literal>Order</literal> å <literal>Product</literal> å¤å¯¹å¤å
³ç³»çå
³èç±»ï¼å¨"
-"Hibernateï¼è¿å«åç»åå
ç´ ã"
+"ç°å¨æ¥èè <literal>Customer</literal>ï¼<literal>Order</literal>ï¼ "
+"<literal>LineItem</literal> å <literal>Product</literal> å
³ç³»ç模åã"
+"<literal>Customer</literal> å <literal>Order</literal> ä¹é´ æ¯ä¸å¯¹å¤çå
³ç³»ï¼"
+"使¯æä»¬æä¹æ¥æè¿° <literal>Order</literal> / <literal>LineItem</literal> / "
+"<literal>Product</literal>å¢ï¼ æå¯ä»¥æ <literal>LineItem</literal> ä½ä¸ºæè¿° "
+"<literal>Order</literal> å <literal>Product</literal> å¤å¯¹å¤å
³ç³»çå
³èç±»ï¼"
+"å¨ Hibernateï¼è¿å«åç»åå
ç´ ã "
#. Tag: para
-#: example_mappings.xml:132
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The mapping document will look like this:"
-msgstr "æ å°æä»¶å¦ä¸ï¼"
+msgstr "æ å°æä»¶å¦ä¸ï¼ "
-#. Tag: programlisting
-#: example_mappings.xml:136
-#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-"\n"
-" <class name=\"Customer\" table=\"customers\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"name\"/>\n"
-" <set name=\"orders\" inverse=\"true\">\n"
-" <key column=\"customer_id\"/>\n"
-" <one-to-many class=\"Order\"/>\n"
-" </set>\n"
-" </class>\n"
-"\n"
-" <class name=\"Order\" table=\"orders\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"date\"/>\n"
-" <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
-" <list name=\"lineItems\" table=\"line_items\">\n"
-" <key column=\"order_id\"/>\n"
-" <list-index column=\"line_number\"/>\n"
-" <composite-element class=\"LineItem\">\n"
-" <property name=\"quantity\"/>\n"
-" <many-to-one name=\"product\" column=\"product_id\"/>\n"
-" </composite-element>\n"
-" </list>\n"
-" </class>\n"
-"\n"
-" <class name=\"Product\" table=\"products\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"serialNumber\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
#. Tag: para
-#: example_mappings.xml:138
#, no-c-format
msgid ""
"<literal>customers</literal>, <literal>orders</literal>, "
@@ -381,401 +134,1121 @@
"order, order line item and product data respectively. <literal>line_items</"
"literal> also acts as an association table linking orders with products."
msgstr ""
-"<literal>customers</literal>, <literal>orders</literal>, "
-"<literal>line_items</literal> å <literal>products</literal> åå«ä¿åç"
-"customer, order, order line item å productçæ°æ®ã <literal>line_items</"
-"literal>ä¹ä½ä¸ºè¿æ¥orders å productsçå
³è表ã"
+"<literal>customers</literal>ï¼<literal>orders</literal>ï¼"
+"<literal>line_items</literal> å <literal>products</literal> åå«ä¿åç "
+"customerï¼orderï¼order line item å product çæ°æ®ã <literal>line_items</"
+"literal> ä¹ä½ä¸ºè¿æ¥ orders å products çå
³è表ã"
-#. Tag: programlisting
-#: example_mappings.xml:145
-#, no-c-format
-msgid ""
-"<![CDATA[create table customers (\n"
-" id BIGINT not null generated by default as identity, \n"
-" name VARCHAR(255), \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"create table orders (\n"
-" id BIGINT not null generated by default as identity, \n"
-" customer_id BIGINT, \n"
-" date TIMESTAMP, \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"create table line_items (\n"
-" line_number INTEGER not null, \n"
-" order_id BIGINT not null, \n"
-" product_id BIGINT, \n"
-" quantity INTEGER, \n"
-" primary key (order_id, line_number)\n"
-")\n"
-"\n"
-"create table products (\n"
-" id BIGINT not null generated by default as identity, \n"
-" serialNumber VARCHAR(255), \n"
-" primary key (id)\n"
-")\n"
-"\n"
-"alter table orders \n"
-" add constraint ordersFK0 foreign key (customer_id) references customers\n"
-"alter table line_items\n"
-" add constraint line_itemsFK0 foreign key (product_id) references "
-"products\n"
-"alter table line_items\n"
-" add constraint line_itemsFK1 foreign key (order_id) references orders]]>"
-msgstr ""
-
#. Tag: title
-#: example_mappings.xml:150
#, no-c-format
msgid "Miscellaneous example mappings"
msgstr "æä¾"
#. Tag: para
-#: example_mappings.xml:152
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"These examples are available from the Hibernate test suite. You will find "
"many other useful example mappings there by searching in the <literal>test</"
"literal> folder of the Hibernate distribution."
msgstr ""
-"è¿äºä¾åå
¨é¨æ¥èªäºHibernateçtest suiteï¼åæ¶ä½ ä¹å¯ä»¥æ¾å°å
¶ä»æç¨çä¾åã å¯"
-"以åèHibernateç<literal>test</literal>ç®å½ã"
+"è¿äºä¾åå
¨é¨æ¥èªäº Hibernate ç test suiteï¼åæ¶ä½ ä¹å¯ä»¥æ¾å°å
¶ä»æç¨çä¾åã"
+"å¯ä»¥åè Hibernate ç <literal>test</literal> ç®å½ã "
#. Tag: title
-#: example_mappings.xml:161
#, no-c-format
msgid "\"Typed\" one-to-one association"
-msgstr "\"Typed\" one-to-one association"
+msgstr "\"Typed\" ä¸å¯¹ä¸å
³è"
-#. Tag: programlisting
-#: example_mappings.xml:162
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"name\"/>\n"
-" <one-to-one name=\"address\" \n"
-" cascade=\"all\">\n"
-" <formula>name</formula>\n"
-" <formula>'HOME'</formula>\n"
-" </one-to-one>\n"
-" <one-to-one name=\"mailingAddress\" \n"
-" cascade=\"all\">\n"
-" <formula>name</formula>\n"
-" <formula>'MAILING'</formula>\n"
-" </one-to-one>\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\" batch-size=\"2\" \n"
-" check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
-" <composite-id>\n"
-" <key-many-to-one name=\"person\" \n"
-" column=\"personName\"/>\n"
-" <key-property name=\"type\" \n"
-" column=\"addressType\"/>\n"
-" </composite-id>\n"
-" <property name=\"street\" type=\"text\"/>\n"
-" <property name=\"state\"/>\n"
-" <property name=\"zip\"/>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: title
-#: example_mappings.xml:166
#, no-c-format
msgid "Composite key example"
-msgstr "Composite key example"
+msgstr "ç»åé®ç¤ºä¾"
-#. Tag: programlisting
-#: example_mappings.xml:167
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Customer\">\n"
-"\n"
-" <id name=\"customerId\"\n"
-" length=\"10\">\n"
-" <generator class=\"assigned\"/>\n"
-" </id>\n"
-"\n"
-" <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
-" <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
-"\n"
-" <list name=\"orders\"\n"
-" inverse=\"true\"\n"
-" cascade=\"save-update\">\n"
-" <key column=\"customerId\"/>\n"
-" <index column=\"orderNumber\"/>\n"
-" <one-to-many class=\"Order\"/>\n"
-" </list>\n"
-"\n"
-"</class>\n"
-"\n"
-"<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
-" <synchronize table=\"LineItem\"/>\n"
-" <synchronize table=\"Product\"/>\n"
-" \n"
-" <composite-id name=\"id\" \n"
-" class=\"Order$Id\">\n"
-" <key-property name=\"customerId\" length=\"10\"/>\n"
-" <key-property name=\"orderNumber\"/>\n"
-" </composite-id>\n"
-" \n"
-" <property name=\"orderDate\" \n"
-" type=\"calendar_date\"\n"
-" not-null=\"true\"/>\n"
-" \n"
-" <property name=\"total\">\n"
-" <formula>\n"
-" ( select sum(li.quantity*p.price) \n"
-" from LineItem li, Product p \n"
-" where li.productId = p.productId \n"
-" and li.customerId = customerId \n"
-" and li.orderNumber = orderNumber )\n"
-" </formula>\n"
-" </property>\n"
-" \n"
-" <many-to-one name=\"customer\"\n"
-" column=\"customerId\"\n"
-" insert=\"false\"\n"
-" update=\"false\" \n"
-" not-null=\"true\"/>\n"
-" \n"
-" <bag name=\"lineItems\"\n"
-" fetch=\"join\" \n"
-" inverse=\"true\"\n"
-" cascade=\"save-update\">\n"
-" <key>\n"
-" <column name=\"customerId\"/>\n"
-" <column name=\"orderNumber\"/>\n"
-" </key>\n"
-" <one-to-many class=\"LineItem\"/>\n"
-" </bag>\n"
-" \n"
-"</class>\n"
-" \n"
-"<class name=\"LineItem\">\n"
-" \n"
-" <composite-id name=\"id\" \n"
-" class=\"LineItem$Id\">\n"
-" <key-property name=\"customerId\" length=\"10\"/>\n"
-" <key-property name=\"orderNumber\"/>\n"
-" <key-property name=\"productId\" length=\"10\"/>\n"
-" </composite-id>\n"
-" \n"
-" <property name=\"quantity\"/>\n"
-" \n"
-" <many-to-one name=\"order\"\n"
-" insert=\"false\"\n"
-" update=\"false\" \n"
-" not-null=\"true\">\n"
-" <column name=\"customerId\"/>\n"
-" <column name=\"orderNumber\"/>\n"
-" </many-to-one>\n"
-" \n"
-" <many-to-one name=\"product\"\n"
-" insert=\"false\"\n"
-" update=\"false\" \n"
-" not-null=\"true\"\n"
-" column=\"productId\"/>\n"
-" \n"
-"</class>\n"
-"\n"
-"<class name=\"Product\">\n"
-" <synchronize table=\"LineItem\"/>\n"
-"\n"
-" <id name=\"productId\"\n"
-" length=\"10\">\n"
-" <generator class=\"assigned\"/>\n"
-" </id>\n"
-" \n"
-" <property name=\"description\" \n"
-" not-null=\"true\" \n"
-" length=\"200\"/>\n"
-" <property name=\"price\" length=\"3\"/>\n"
-" <property name=\"numberAvailable\"/>\n"
-" \n"
-" <property name=\"numberOrdered\">\n"
-" <formula>\n"
-" ( select sum(li.quantity) \n"
-" from LineItem li \n"
-" where li.productId = productId )\n"
-" </formula>\n"
-" </property>\n"
-" \n"
-"</class>]]>"
-msgstr ""
-
#. Tag: title
-#: example_mappings.xml:171
#, no-c-format
msgid "Many-to-many with shared composite key attribute"
msgstr ""
-"å
±æç»åé®å±æ§çå¤å¯¹å¤(Many-to-many with shared composite key attribute)"
+"å
±æç»åé®å±æ§çå¤å¯¹å¤ï¼Many-to-many with shared composite key attributeï¼"
-#. Tag: programlisting
-#: example_mappings.xml:172
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"User\" table=\"`User`\">\n"
-" <composite-id>\n"
-" <key-property name=\"name\"/>\n"
-" <key-property name=\"org\"/>\n"
-" </composite-id>\n"
-" <set name=\"groups\" table=\"UserGroup\">\n"
-" <key>\n"
-" <column name=\"userName\"/>\n"
-" <column name=\"org\"/>\n"
-" </key>\n"
-" <many-to-many class=\"Group\">\n"
-" <column name=\"groupName\"/>\n"
-" <formula>org</formula>\n"
-" </many-to-many>\n"
-" </set>\n"
-"</class>\n"
-" \n"
-"<class name=\"Group\" table=\"`Group`\">\n"
-" <composite-id>\n"
-" <key-property name=\"name\"/>\n"
-" <key-property name=\"org\"/>\n"
-" </composite-id>\n"
-" <property name=\"description\"/>\n"
-" <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
-" <key>\n"
-" <column name=\"groupName\"/>\n"
-" <column name=\"org\"/>\n"
-" </key>\n"
-" <many-to-many class=\"User\">\n"
-" <column name=\"userName\"/>\n"
-" <formula>org</formula>\n"
-" </many-to-many>\n"
-" </set>\n"
-"</class>\n"
-"]]>"
-msgstr ""
-
#. Tag: title
-#: example_mappings.xml:176
#, no-c-format
msgid "Content based discrimination"
-msgstr "Content based discrimination"
+msgstr "åºäºå
容çè¯å«"
-#. Tag: programlisting
-#: example_mappings.xml:177
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\"\n"
-" discriminator-value=\"P\">\n"
-" \n"
-" <id name=\"id\" \n"
-" column=\"person_id\" \n"
-" unsaved-value=\"0\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" \n"
-" \n"
-" <discriminator \n"
-" type=\"character\">\n"
-" <formula>\n"
-" case \n"
-" when title is not null then 'E' \n"
-" when salesperson is not null then 'C' \n"
-" else 'P' \n"
-" end\n"
-" </formula>\n"
-" </discriminator>\n"
-"\n"
-" <property name=\"name\" \n"
-" not-null=\"true\"\n"
-" length=\"80\"/>\n"
-" \n"
-" <property name=\"sex\" \n"
-" not-null=\"true\"\n"
-" update=\"false\"/>\n"
-" \n"
-" <component name=\"address\">\n"
-" <property name=\"address\"/>\n"
-" <property name=\"zip\"/>\n"
-" <property name=\"country\"/>\n"
-" </component>\n"
-" \n"
-" <subclass name=\"Employee\" \n"
-" discriminator-value=\"E\">\n"
-" <property name=\"title\"\n"
-" length=\"20\"/>\n"
-" <property name=\"salary\"/>\n"
-" <many-to-one name=\"manager\"/>\n"
-" </subclass>\n"
-" \n"
-" <subclass name=\"Customer\" \n"
-" discriminator-value=\"C\">\n"
-" <property name=\"comments\"/>\n"
-" <many-to-one name=\"salesperson\"/>\n"
-" </subclass>\n"
-" \n"
-"</class>]]>"
-msgstr ""
-
#. Tag: title
-#: example_mappings.xml:181
#, no-c-format
msgid "Associations on alternate keys"
-msgstr "Associations on alternate keys"
+msgstr "å¤ç¨é®çèå"
-#. Tag: programlisting
-#: example_mappings.xml:182
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" \n"
-" <id name=\"id\">\n"
-" <generator class=\"hilo\"/>\n"
-" </id>\n"
-" \n"
-" <property name=\"name\" length=\"100\"/>\n"
-" \n"
-" <one-to-one name=\"address\" \n"
-" property-ref=\"person\"\n"
-" cascade=\"all\"\n"
-" fetch=\"join\"/>\n"
-" \n"
-" <set name=\"accounts\" \n"
-" inverse=\"true\">\n"
-" <key column=\"userId\"\n"
-" property-ref=\"userId\"/>\n"
-" <one-to-many class=\"Account\"/>\n"
-" </set>\n"
-" \n"
-" <property name=\"userId\" length=\"8\"/>\n"
-"\n"
-"</class>\n"
-"\n"
-"<class name=\"Address\">\n"
-"\n"
-" <id name=\"id\">\n"
-" <generator class=\"hilo\"/>\n"
-" </id>\n"
-"\n"
-" <property name=\"address\" length=\"300\"/>\n"
-" <property name=\"zip\" length=\"5\"/>\n"
-" <property name=\"country\" length=\"25\"/>\n"
-" <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
-"\n"
-"</class>\n"
-"\n"
-"<class name=\"Account\">\n"
-" <id name=\"accountId\" length=\"32\">\n"
-" <generator class=\"uuid\"/>\n"
-" </id>\n"
-" \n"
-" <many-to-one name=\"user\"\n"
-" column=\"userId\"\n"
-" property-ref=\"userId\"/>\n"
-" \n"
-" <property name=\"type\" not-null=\"true\"/>\n"
-" \n"
-"</class>]]>"
-msgstr ""
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
-#~ msgid "TODO: put words around this stuff"
-#~ msgstr "TODO: put words around this stuff"
+#~ msgid ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+#~ msgstr ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,24 +1,26 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-11-27 13:54+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: example_parentchild.xml:29
#, no-c-format
msgid "Example: Parent/Child"
-msgstr "示ä¾ï¼ç¶åå
³ç³»(Parent Child Relationships)"
+msgstr "示ä¾ï¼ç¶åå
³ç³»ï¼Parent/Childï¼"
#. Tag: para
-#: example_parentchild.xml:31
-#, fuzzy, no-c-format
+#, 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 "
@@ -34,45 +36,42 @@
"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>带æçº§èçååä¸å¯¹å¤å
³è"
-"(bidirectional one to many association with cascades)</emphasis>å»å»ºç«ææã"
-"ä¼ç¾çparent / childå
³ç³»ãè¿ä¸ç¹ä¹ä¸é¾ï¼"
+"ååæ¥è§¦ 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
-#: example_parentchild.xml:45
#, no-c-format
msgid "A note about collections"
-msgstr "å
³äºcollectionséè¦æ³¨æçä¸ç¹"
+msgstr "å
³äº collections éè¦æ³¨æçä¸ç¹"
#. Tag: para
-#: example_parentchild.xml:47
-#, fuzzy, no-c-format
+#, 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被å½ä½å
¶æå±å®ä½è䏿¯å
¶å
å«å®ä½çä¸ä¸ªé»è¾é¨åãè¿é常é"
-"è¦ï¼å®ä¸»è¦ä½ç°ä¸ºä»¥ä¸å ç¹ï¼"
+"Hibernate collections 被å½ä½å
¶æå±å®ä½è䏿¯å
¶å
å«å®ä½çä¸ä¸ªé»è¾é¨åãè¿é常"
+"éè¦ï¼å®ä¸»è¦ä½ç°ä¸ºä»¥ä¸å ç¹ï¼"
#. Tag: para
-#: example_parentchild.xml:54
-#, fuzzy, no-c-format
+#, 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æå±è
ççæ¬å¼ä¼éå¢ã"
+msgstr ""
+"å½å 餿å¢å collection ä¸å¯¹è±¡çæ¶åï¼collection æå±è
ççæ¬å¼ä¼éå¢ã "
#. Tag: para
-#: example_parentchild.xml:60
-#, fuzzy, no-c-format
+#, 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 "
@@ -80,13 +79,13 @@
"value type instance to the collection will cause its state to be immediately "
"persistent."
msgstr ""
-"妿ä¸ä¸ªä»collectionä¸ç§»é¤ç对象æ¯ä¸ä¸ªå¼ç±»å(value type)çå®ä¾ï¼æ¯å¦"
+"妿ä¸ä¸ªä» collection ä¸ç§»é¤ç对象æ¯ä¸ä¸ªå¼ç±»åï¼value typeï¼çå®ä¾ï¼æ¯å¦ "
"composite elementï¼é£ä¹è¿ä¸ªå¯¹è±¡çæä¹
åç¶æå°ä¼ç»æ¢ï¼å
¶å¨æ°æ®åºä¸å¯¹åºçè®°å½ä¼"
-"被å é¤ãåæ ·çï¼åcollectionå¢å ä¸ä¸ªvalue typeçå®ä¾å°ä¼ä½¿ä¹ç«å³è¢«æä¹
åã"
+"被å é¤ãåæ ·çï¼å collection å¢å ä¸ä¸ª value type çå®ä¾å°ä¼ä½¿ä¹ç«å³è¢«æä¹
"
+"åã "
#. Tag: para
-#: example_parentchild.xml:68
-#, fuzzy, no-c-format
+#, 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 "
@@ -94,13 +93,13 @@
"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å¢å ä¸ä¸ªå®ä½ä¸ä¼ä½¿ä¹è¢«æä¹
åã"
+"å¦ä¸æ¹é¢ï¼å¦æä»ä¸å¯¹å¤æå¤å¯¹å¤å
³èç collection ä¸ç§»é¤ä¸ä¸ªå®ä½ï¼å¨ç¼ºçæ
åµä¸"
+"è¿ä¸ªå¯¹è±¡å¹¶ä¸ä¼è¢«å é¤ãè¿ä¸ªè¡ä¸ºæ¯å®å
¨åä¹é»è¾çï¼ï¼æ¹åä¸ä¸ªå®ä½çå
é¨ç¶æä¸åº"
+"该使ä¸å®å
³èçå®ä½æ¶å¤±æãåæ ·çï¼å collection å¢å ä¸ä¸ªå®ä½ä¸ä¼ä½¿ä¹è¢«æä¹
"
+"åã "
#. Tag: para
-#: example_parentchild.xml:78
-#, fuzzy, no-c-format
+#, 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 "
@@ -108,106 +107,68 @@
"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å¢å ä¸ä¸ªå®ä½ç缺çå¨ä½åªæ¯å¨ä¸¤ä¸ªå®ä½ä¹é´å建ä¸ä¸ªè¿æ¥è"
+"å®é
ä¸ï¼å Collection å¢å ä¸ä¸ªå®ä½ç缺çå¨ä½åªæ¯å¨ä¸¤ä¸ªå®ä½ä¹é´å建ä¸ä¸ªè¿æ¥è"
"å·²ï¼åæ ·ç§»é¤çæ¶åä¹åªæ¯å é¤è¿æ¥ãè¿ç§å¤çå¯¹äºææçæ
åµé½æ¯åéçã对äºç¶å"
-"å
³ç³»åæ¯å®å
¨ä¸éåçï¼å¨è¿ç§å
³ç³»ä¸ï¼å对象ççåç»å®äºç¶å¯¹è±¡ççå卿ã"
+"å
³ç³»åæ¯å®å
¨ä¸éåçï¼å¨è¿ç§å
³ç³»ä¸ï¼å对象ççåç»å®äºç¶å¯¹è±¡ççå卿ã "
#. Tag: title
-#: example_parentchild.xml:88
#, no-c-format
msgid "Bidirectional one-to-many"
-msgstr "ååçä¸å¯¹å¤å
³ç³»(Bidirectional one-to-many)"
+msgstr "ååçä¸å¯¹å¤å
³ç³»ï¼Bidirectional one-to-manyï¼"
#. Tag: para
-#: example_parentchild.xml:90
#, 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>å
³èã"
-
-#. Tag: programlisting
-#: example_parentchild.xml:95
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"children\">\n"
-" <key column=\"parent_id\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-"</set>]]>"
msgstr ""
+"å设æä»¬è¦å®ç°ä¸ä¸ªç®åçä» Parent å° Child ç <one-to-many> å
³èã"
#. Tag: para
-#: example_parentchild.xml:97
-#, fuzzy, no-c-format
+#, no-c-format
msgid "If we were to execute the following code:"
-msgstr "妿æä»¬è¿è¡ä¸é¢ç代ç "
+msgstr "妿æä»¬è¿è¡ä¸é¢ç代ç ï¼"
-#. Tag: programlisting
-#: example_parentchild.xml:101
-#, no-c-format
-msgid ""
-"<![CDATA[Parent p = .....;\n"
-"Child c = new Child();\n"
-"p.getChildren().add(c);\n"
-"session.save(c);\n"
-"session.flush();]]>"
-msgstr ""
-
#. Tag: para
-#: example_parentchild.xml:103
#, no-c-format
msgid "Hibernate would issue two SQL statements:"
-msgstr "Hibernateä¼äº§ç两æ¡SQLè¯å¥ï¼"
+msgstr "Hibernate ä¼äº§çä¸¤æ¡ SQL è¯å¥ï¼"
#. Tag: para
-#: example_parentchild.xml:109
#, no-c-format
msgid ""
"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
-msgstr "䏿¡<literal>INSERT</literal>è¯å¥ï¼ä¸º<literal>c</literal>åå»ºä¸æ¡è®°å½"
+msgstr ""
+"䏿¡ <literal>INSERT</literal> è¯å¥ï¼ä¸º <literal>c</literal> åå»ºä¸æ¡è®°å½"
#. Tag: para
-#: example_parentchild.xml:112
#, 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>çè¿æ¥"
+"䏿¡ <literal>UPDATE</literal> è¯å¥ï¼åå»ºä» <literal>p</literal> å° "
+"<literal>c</literal> çè¿æ¥"
#. Tag: para
-#: example_parentchild.xml:119
-#, fuzzy, no-c-format
+#, 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>not-null=\"true\"</literal>æ¥è§£å³è¿åé空约"
-"æçé®é¢ï¼"
+"è¿æ ·åä¸ä»
æçä½ï¼èä¸è¿åäº <literal>parent_id</literal> å "
+"<literal>parent_id</literal> é空çéå¶ãæä»¬å¯ä»¥éè¿å¨éåç±»æ å°ä¸æå® "
+"<literal>not-null=\"true\"</literal> æ¥è§£å³è¿åé空约æçé®é¢ï¼"
-#. Tag: programlisting
-#: example_parentchild.xml:125
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"children\">\n"
-" <key column=\"parent_id\" not-null=\"true\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-"</set>]]>"
-msgstr ""
-
#. Tag: para
-#: example_parentchild.xml:127
#, no-c-format
msgid "However, this is not the recommended solution."
msgstr "ç¶èï¼è¿å¹¶éæ¯æ¨èçè§£å³æ¹æ³ã"
#. Tag: para
-#: example_parentchild.xml:130
-#, fuzzy, no-c-format
+#, 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</"
@@ -215,261 +176,131 @@
"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>å¯¹è±¡ç¶æçä¸é¨åï¼å èæ²¡æå¨"
-"INSERTè¯å¥ä¸è¢«å建ãå æ¤è§£å³çåæ³å°±æ¯æè¿ä¸ªè¿æ¥æ·»å å°Childçæ å°ä¸ã"
+"è¿ç§ç°è±¡çæ ¹æ¬åå æ¯ä» <literal>p</literal> å° <literal>c</literal> çè¿æ¥"
+"ï¼å¤é® parent_idï¼æ²¡æè¢«å½ä½ <literal>Child</literal> å¯¹è±¡ç¶æçä¸é¨åï¼å è"
+"没æå¨ <literal>INSERT</literal> è¯å¥ä¸è¢«å建ãå æ¤è§£å³çåæ³å°±æ¯æè¿ä¸ªè¿æ¥æ·»"
+"å å° <literal>Child</literal> çæ å°ä¸ã"
-#. Tag: programlisting
-#: example_parentchild.xml:137
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
-">]]>"
-msgstr ""
-
-#. Tag: para
-#: example_parentchild.xml:139
-#, fuzzy, 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>屿§ï¼"
+"ä½ è¿éè¦ä¸ºç±» <literal>Child</literal> æ·»å <literal>parent</literal> 屿§ã"
#. Tag: para
-#: example_parentchild.xml:143
-#, fuzzy, no-c-format
+#, 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>屿§ã"
+"ç°å¨å®ä½ <literal>Child</literal> å¨ç®¡çè¿æ¥çç¶æï¼ä¸ºäºä½¿ collection 䏿´æ°"
+"è¿æ¥ï¼æä»¬ä½¿ç¨ <literal>inverse</literal> 屿§ï¼"
-#. Tag: programlisting
-#: example_parentchild.xml:148
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"children\" inverse=\"true\">\n"
-" <key column=\"parent_id\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-"</set>]]>"
-msgstr ""
-
#. Tag: para
-#: example_parentchild.xml:150
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The following code would be used to add a new <literal>Child</literal>:"
-msgstr "ä¸é¢çä»£ç æ¯ç¨æ¥æ·»å ä¸ä¸ªæ°ç<literal>Child</literal>"
+msgstr "ä¸é¢çä»£ç æ¯ç¨æ¥æ·»å ä¸ä¸ªæ°ç <literal>Child</literal>ï¼"
-#. Tag: programlisting
-#: example_parentchild.xml:154
-#, no-c-format
-msgid ""
-"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-"Child c = new Child();\n"
-"c.setParent(p);\n"
-"p.getChildren().add(c);\n"
-"session.save(c);\n"
-"session.flush();]]>"
-msgstr ""
-
#. Tag: para
-#: example_parentchild.xml:156
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Only one SQL <literal>INSERT</literal> would now be issued."
-msgstr "ç°å¨ï¼åªä¼æä¸æ¡<literal>INSERT</literal>è¯å¥è¢«æ§è¡ï¼"
+msgstr "ç°å¨ï¼åªä¼æä¸æ¡ <literal>INSERT</literal> è¯å¥è¢«æ§è¡ã"
#. Tag: para
-#: example_parentchild.xml:160
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"You could also create an <literal>addChild()</literal> method of "
"<literal>Parent</literal>."
msgstr ""
-"为äºè®©äºæ
åå¾äºäºææ¡ï¼å¯ä»¥ä¸º<literal>Parent</literal>å ä¸ä¸ª"
-"<literal>addChild()</literal>æ¹æ³ã"
+"为äºè®©äºæ
åå¾äºäºææ¡ï¼å¯ä»¥ä¸º <literal>Parent</literal> å ä¸ä¸ª "
+"<literal>addChild()</literal> æ¹æ³ã"
-#. Tag: programlisting
-#: example_parentchild.xml:165
-#, no-c-format
-msgid ""
-"<![CDATA[public void addChild(Child c) {\n"
-" c.setParent(this);\n"
-" children.add(c);\n"
-"}]]>"
-msgstr ""
-
#. Tag: para
-#: example_parentchild.xml:167
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The code to add a <literal>Child</literal> looks like this:"
-msgstr "ç°å¨ï¼æ·»å <literal>Child</literal>ç代ç å°±æ¯è¿æ ·"
+msgstr "ç°å¨ï¼æ·»å <literal>Child</literal> ç代ç å°±æ¯è¿æ ·ï¼"
-#. Tag: programlisting
-#: example_parentchild.xml:171
-#, no-c-format
-msgid ""
-"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-"Child c = new Child();\n"
-"p.addChild(c);\n"
-"session.save(c);\n"
-"session.flush();]]>"
-msgstr ""
-
#. Tag: title
-#: example_parentchild.xml:176
#, no-c-format
msgid "Cascading life cycle"
-msgstr "级èçå½å¨æï¼Cascading life cycleï¼"
+msgstr "级èçå½å¨æï¼Cascading lifecycleï¼ "
#. Tag: para
-#: example_parentchild.xml:178
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"You can address the frustrations of the explicit call to <literal>save()</"
"literal> by using cascades."
msgstr ""
-"éè¦æ¾å¼è°ç¨<literal>save()</literal>ä»ç¶å¾éº»ç¦ï¼æä»¬å¯ä»¥ç¨çº§èæ¥è§£å³è¿ä¸ªé®"
-"é¢ã"
+"éè¦æ¾å¼è°ç¨ <literal>save()</literal> ä»ç¶å¾éº»ç¦ï¼æä»¬å¯ä»¥ç¨çº§èæ¥è§£å³è¿ä¸ªé®"
+"é¢ã "
-#. Tag: programlisting
-#: example_parentchild.xml:183
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
-" <key column=\"parent_id\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-"</set>]]>"
-msgstr ""
-
#. Tag: para
-#: example_parentchild.xml:185
-#, fuzzy, no-c-format
+#, no-c-format
msgid "This simplifies the code above to:"
-msgstr "è¿æ ·ä¸é¢ç代ç å¯ä»¥ç®å为ï¼"
+msgstr "è¿æ ·ä¸é¢ç代ç å¯ä»¥ç®åä¸ºï¼ "
-#. Tag: programlisting
-#: example_parentchild.xml:189
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-"Child c = new Child();\n"
-"p.addChild(c);\n"
-"session.flush();]]>"
-msgstr ""
-
-#. Tag: para
-#: example_parentchild.xml:191
-#, fuzzy, 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>åå
¶ææå对象对åºçæ°æ®åºè®°å½ã"
+"åæ ·çï¼ä¿åæå é¤ <literal>Parent</literal> å¯¹è±¡çæ¶åå¹¶ä¸éè¦éåå
¶å对象ã"
+"ä¸é¢ç代ç ä¼å é¤å¯¹è±¡ <literal>p</literal> åå
¶ææå对象对åºçæ°æ®åºè®°å½ã "
-#. Tag: programlisting
-#: example_parentchild.xml:196
-#, no-c-format
-msgid ""
-"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-"session.delete(p);\n"
-"session.flush();]]>"
-msgstr ""
-
#. Tag: para
-#: example_parentchild.xml:198
-#, fuzzy, no-c-format
+#, no-c-format
msgid "However, the following code:"
-msgstr "ç¶èï¼è¿æ®µä»£ç "
+msgstr "ç¶èï¼è¿æ®µä»£ç ï¼"
-#. Tag: programlisting
-#: example_parentchild.xml:202
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-"Child c = (Child) p.getChildren().iterator().next();\n"
-"p.getChildren().remove(c);\n"
-"c.setParent(null);\n"
-"session.flush();]]>"
-msgstr ""
-
-#. Tag: para
-#: example_parentchild.xml:204
-#, fuzzy, 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>ã"
+"ä¸ä¼ä»æ°æ®åºå é¤<literal>c</literal>ï¼å®åªä¼å é¤ä¸ <literal>p</literal> ä¹é´"
+"çè¿æ¥ï¼å¹¶ä¸ä¼å¯¼è´è¿å <literal>NOT NULL</literal> 约æï¼å¨è¿ä¸ªä¾åä¸ï¼ãä½ é"
+"è¦æ¾å¼è°ç¨ <literal>delete()</literal> æ¥å é¤ <literal>Child</literal>ã "
-#. Tag: programlisting
-#: example_parentchild.xml:210
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-"Child c = (Child) p.getChildren().iterator().next();\n"
-"p.getChildren().remove(c);\n"
-"session.delete(c);\n"
-"session.flush();]]>"
-msgstr ""
-
-#. Tag: para
-#: example_parentchild.xml:212
-#, fuzzy, 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>ã"
+"卿们çä¾åä¸ï¼å¦ææ²¡æç¶å¯¹è±¡ï¼å对象就ä¸åºè¯¥åå¨ï¼å¦æå°åå¯¹è±¡ä» "
+"collection ä¸ç§»é¤ï¼å®é
ä¸æä»¬æ¯æ³å é¤å®ãè¦å®ç°è¿ç§è¦æ±ï¼å°±å¿
é¡»ä½¿ç¨ "
+"<literal>cascade=\"all-delete-orphan\"</literal>ã "
-#. Tag: programlisting
-#: example_parentchild.xml:218
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
-"\">\n"
-" <key column=\"parent_id\"/>\n"
-" <one-to-many class=\"Child\"/>\n"
-"</set>]]>"
-msgstr ""
-
-#. Tag: para
-#: example_parentchild.xml:220
-#, fuzzy, 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>æ¯ä¸å¤çã"
+"注æï¼å³ä½¿å¨ collection 䏿¹çæ å°ä¸æå® <literal>inverse=\"true\"</"
+"literal>ï¼çº§èä»ç¶æ¯éè¿éå collection ä¸çå
ç´ æ¥å¤ççãå¦æä½ æ³è¦éè¿çº§è"
+"è¿è¡å对象çæå
¥ãå é¤ãæ´æ°æä½ï¼å°±å¿
é¡»æå®å å° collection ä¸ï¼åªè°ç¨ "
+"<literal>setParent()</literal> æ¯ä¸å¤çã "
#. Tag: title
-#: example_parentchild.xml:230
#, no-c-format
msgid "Cascades and <literal>unsaved-value</literal>"
-msgstr ""
-"级èä¸<literal>æªä¿åå¼</literal>ï¼Cascades and <literal>unsaved-value</"
-"literal>ï¼"
+msgstr "级è䏿ªä¿åå¼ï¼<literal>unsaved-value</literal>ï¼"
#. Tag: para
-#: example_parentchild.xml:232
#, fuzzy, no-c-format
msgid ""
"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
@@ -482,47 +313,33 @@
"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 "
+"\"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>"
+"å设æä»¬ä» <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>"
#. Tag: para
-#: example_parentchild.xml:244
-#, fuzzy, no-c-format
+#, 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>对象ã"
+"ä¸é¢ç代ç 伿´æ° <literal>parent</literal> å <literal>child</literal> 对象ï¼"
+"并䏿å
¥ <literal>newChild</literal> 对象ã "
-#. Tag: programlisting
-#: example_parentchild.xml:249
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[//parent and child were both loaded in a previous session\n"
-"parent.addChild(child);\n"
-"Child newChild = new Child();\n"
-"parent.addChild(newChild);\n"
-"session.update(parent);\n"
-"session.flush();]]>"
-msgstr ""
-
-#. Tag: para
-#: example_parentchild.xml:251
-#, fuzzy, 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 "
@@ -532,30 +349,27 @@
"cache or, worst case, the database, to see if the row exists."
msgstr ""
"è¿å¯¹äºèªå¨çææ è¯çæ
嵿¯é常好çï¼ä½æ¯èªåé
çæ è¯åå¤åæ è¯æä¹åå¢ï¼è¿æ¯"
-"æç¹éº»ç¦ï¼å 为Hibernate没æåæ³åºåæ°å®ä¾åçå¯¹è±¡ï¼æ è¯è¢«ç¨æ·æå®äºï¼ååä¸ä¸ª"
-"Sessionè£
å
¥ç对象ãå¨è¿ç§æ
åµä¸ï¼Hibernateä¼ä½¿ç¨timestampæversion屿§ï¼æè
"
-"æ¥è¯¢ç¬¬äºçº§ç¼åï¼æè
æåçæ
åµï¼æ¥è¯¢æ°æ®åºï¼æ¥ç¡®è®¤æ¯å¦æ¤è¡åå¨ã"
+"æç¹éº»ç¦ï¼å 为 Hibernate 没æåæ³åºåæ°å®ä¾åçå¯¹è±¡ï¼æ è¯è¢«ç¨æ·æå®äºï¼ååä¸"
+"个 Session è£
å
¥ç对象ãå¨è¿ç§æ
åµä¸ï¼Hibernate ä¼ä½¿ç¨ timestamp æ version å±"
+"æ§ï¼æè
æ¥è¯¢ç¬¬äºçº§ç¼åï¼æè
æåçæ
åµï¼æ¥è¯¢æ°æ®åºï¼æ¥ç¡®è®¤æ¯å¦æ¤è¡åå¨ã "
#. Tag: title
-#: example_parentchild.xml:284
#, no-c-format
msgid "Conclusion"
msgstr "ç»è®º"
#. Tag: para
-#: example_parentchild.xml:286
-#, fuzzy, no-c-format
+#, 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åºç¨ç¨åºé½ä¼ç»å¸¸ç¨å°ç¶å对象模å¼ã"
+"常好ã大é¨å Hibernate åºç¨ç¨åºé½ä¼ç»å¸¸ç¨å°ç¶å对象模å¼ã "
#. Tag: para
-#: example_parentchild.xml:291
-#, fuzzy, no-c-format
+#, 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, "
@@ -564,7 +378,184 @@
"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ï¼å¹¶ä¸ï¼é¤äºç¨äºæä¸çç¶å¯¹"
-"象å¤ï¼å®ä»¬ä¸è½åä½ä¸ºå
¶å®ä»»ä½å®ä½çå对象ã"
+"å¨ç¬¬ä¸æ®µä¸æä»¬æ¾ç»æå°å¦ä¸ä¸ªæ¹æ¡ãä¸é¢çè¿äºé®é¢é½ä¸ä¼åºç°å¨ <literal><"
+"composite-element></literal> æ å°ä¸ï¼å®åç¡®å°è¡¨è¾¾äºç¶åå
³ç³»çè¯ä¹ãå¾ä¸å¹¸"
+"å¤åå
ç´ è¿æä¸¤ä¸ªé大éå¶ï¼å¤åå
ç´ ä¸è½æ¥æ collectionsï¼å¹¶ä¸ï¼é¤äºç¨äºæä¸ç"
+"ç¶å¯¹è±¡å¤ï¼å®ä»¬ä¸è½åä½ä¸ºå
¶å®ä»»ä½å®ä½çå对象ã "
+
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "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"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <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"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
+#~ " <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"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "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"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+#~ " <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"
+#~ "p.addChild(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "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"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ "p.getChildren().remove(c);\n"
+#~ "c.setParent(null);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = (Child) p.getChildren().iterator().next();\n"
+#~ "p.getChildren().remove(c);\n"
+#~ "c.setParent(null);\n"
+#~ "session.flush();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = (Child) p.getChildren().iterator().next();\n"
+#~ "p.getChildren().remove(c);\n"
+#~ "session.delete(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = (Child) p.getChildren().iterator().next();\n"
+#~ "p.getChildren().remove(c);\n"
+#~ "session.delete(c);\n"
+#~ "session.flush();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-"
+#~ "orphan\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-"
+#~ "orphan\">\n"
+#~ " <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"
+#~ "Child newChild = new Child();\n"
+#~ "parent.addChild(newChild);\n"
+#~ "session.update(parent);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//parent and child were both loaded in a previous session\n"
+#~ "parent.addChild(child);\n"
+#~ "Child newChild = new Child();\n"
+#~ "parent.addChild(newChild);\n"
+#~ "session.update(parent);\n"
+#~ "session.flush();]]>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_weblog.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_weblog.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_weblog.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,481 +1,856 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-11-27 13:54+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: example_weblog.xml:29
#, no-c-format
msgid "Example: Weblog Application"
-msgstr "示ä¾ï¼Weblog åºç¨ç¨åº"
+msgstr "示ä¾ï¼Weblog åºç¨ç¨åº "
#. Tag: title
-#: example_weblog.xml:32
#, no-c-format
msgid "Persistent Classes"
-msgstr "æä¹
åç±»"
+msgstr "æä¹
åç±»ï¼Persistent Classesï¼"
#. Tag: para
-#: example_weblog.xml:34
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The persistent classes here represent a weblog and an item posted in a "
"weblog. They are to be modelled as a standard parent/child relationship, but "
"we will use an ordered bag, instead of a set:"
msgstr ""
-"ä¸é¢çæä¹
å类表示ä¸ä¸ªweblogåå¨å
¶ä¸å¼ è´´çä¸ä¸ªè´´åãä»ä»¬æ¯æ åçç¶/åå
³ç³»æ¨¡"
-"åï¼ä½æ¯æä»¬ä¼ç¨ä¸ä¸ªæåºå
ï¼ordered bag)èééå(set)ã"
+"ä¸é¢çæä¹
å类表示ä¸ä¸ª weblog åå¨å
¶ä¸å¼ è´´çä¸ä¸ªè´´åãä»ä»¬æ¯æ åçç¶/åå
³ç³»æ¨¡"
+"åï¼ä½æ¯æä»¬ä¼ç¨ä¸ä¸ªæåºå
ï¼ordered bagï¼èééåï¼setï¼ã "
-#. Tag: programlisting
-#: example_weblog.xml:40
-#, no-c-format
-msgid ""
-"<![CDATA[package eg;\n"
-"\n"
-"import java.util.List;\n"
-"\n"
-"public class Blog {\n"
-" private Long _id;\n"
-" private String _name;\n"
-" private List _items;\n"
-"\n"
-" public Long getId() {\n"
-" return _id;\n"
-" }\n"
-" public List getItems() {\n"
-" return _items;\n"
-" }\n"
-" public String getName() {\n"
-" return _name;\n"
-" }\n"
-" public void setId(Long long1) {\n"
-" _id = long1;\n"
-" }\n"
-" public void setItems(List list) {\n"
-" _items = list;\n"
-" }\n"
-" public void setName(String string) {\n"
-" _name = string;\n"
-" }\n"
-"}]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: example_weblog.xml:42
-#, no-c-format
-msgid ""
-"<![CDATA[package eg;\n"
-"\n"
-"import java.text.DateFormat;\n"
-"import java.util.Calendar;\n"
-"\n"
-"public class BlogItem {\n"
-" private Long _id;\n"
-" private Calendar _datetime;\n"
-" private String _text;\n"
-" private String _title;\n"
-" private Blog _blog;\n"
-"\n"
-" public Blog getBlog() {\n"
-" return _blog;\n"
-" }\n"
-" public Calendar getDatetime() {\n"
-" return _datetime;\n"
-" }\n"
-" public Long getId() {\n"
-" return _id;\n"
-" }\n"
-" public String getText() {\n"
-" return _text;\n"
-" }\n"
-" public String getTitle() {\n"
-" return _title;\n"
-" }\n"
-" public void setBlog(Blog blog) {\n"
-" _blog = blog;\n"
-" }\n"
-" public void setDatetime(Calendar calendar) {\n"
-" _datetime = calendar;\n"
-" }\n"
-" public void setId(Long long1) {\n"
-" _id = long1;\n"
-" }\n"
-" public void setText(String string) {\n"
-" _text = string;\n"
-" }\n"
-" public void setTitle(String string) {\n"
-" _title = string;\n"
-" }\n"
-"}]]>"
-msgstr ""
-
#. Tag: title
-#: example_weblog.xml:47
#, no-c-format
msgid "Hibernate Mappings"
msgstr "Hibernate æ å°"
#. Tag: para
-#: example_weblog.xml:49
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The XML mappings are now straightforward. For example:"
-msgstr "ä¸åçXMLæ å°åºè¯¥æ¯å¾ç´ç½çã"
+msgstr "ä¸åç XML æ å°åºè¯¥æ¯å¾ç´ç½çãä¾å¦ï¼"
-#. Tag: programlisting
-#: example_weblog.xml:53
-#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\"?>\n"
-"<!DOCTYPE hibernate-mapping PUBLIC\n"
-" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-"\n"
-"<hibernate-mapping package=\"eg\">\n"
-"\n"
-" <class\n"
-" name=\"Blog\"\n"
-" table=\"BLOGS\">\n"
-"\n"
-" <id\n"
-" name=\"id\"\n"
-" column=\"BLOG_ID\">\n"
-"\n"
-" <generator class=\"native\"/>\n"
-"\n"
-" </id>\n"
-"\n"
-" <property\n"
-" name=\"name\"\n"
-" column=\"NAME\"\n"
-" not-null=\"true\"\n"
-" unique=\"true\"/>\n"
-"\n"
-" <bag\n"
-" name=\"items\"\n"
-" inverse=\"true\"\n"
-" order-by=\"DATE_TIME\"\n"
-" cascade=\"all\">\n"
-"\n"
-" <key column=\"BLOG_ID\"/>\n"
-" <one-to-many class=\"BlogItem\"/>\n"
-"\n"
-" </bag>\n"
-"\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: example_weblog.xml:55
-#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\"?>\n"
-"<!DOCTYPE hibernate-mapping PUBLIC\n"
-" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-"\n"
-"<hibernate-mapping package=\"eg\">\n"
-"\n"
-" <class\n"
-" name=\"BlogItem\"\n"
-" table=\"BLOG_ITEMS\"\n"
-" dynamic-update=\"true\">\n"
-"\n"
-" <id\n"
-" name=\"id\"\n"
-" column=\"BLOG_ITEM_ID\">\n"
-"\n"
-" <generator class=\"native\"/>\n"
-"\n"
-" </id>\n"
-"\n"
-" <property\n"
-" name=\"title\"\n"
-" column=\"TITLE\"\n"
-" not-null=\"true\"/>\n"
-"\n"
-" <property\n"
-" name=\"text\"\n"
-" column=\"TEXT\"\n"
-" not-null=\"true\"/>\n"
-"\n"
-" <property\n"
-" name=\"datetime\"\n"
-" column=\"DATE_TIME\"\n"
-" not-null=\"true\"/>\n"
-"\n"
-" <many-to-one\n"
-" name=\"blog\"\n"
-" column=\"BLOG_ID\"\n"
-" not-null=\"true\"/>\n"
-"\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
#. Tag: title
-#: example_weblog.xml:60
#, no-c-format
msgid "Hibernate Code"
msgstr "Hibernate 代ç "
#. Tag: para
-#: example_weblog.xml:62
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The following class demonstrates some of the kinds of things we can do with "
"these classes using Hibernate:"
-msgstr "ä¸é¢çç±»æ¼ç¤ºäºæä»¬å¯ä»¥ä½¿ç¨Hibernate对è¿äºç±»è¿è¡çä¸äºæä½ã"
+msgstr "ä¸é¢çç±»æ¼ç¤ºäºæä»¬å¯ä»¥ä½¿ç¨ Hibernate 对è¿äºç±»è¿è¡çä¸äºæä½ï¼"
-#. Tag: programlisting
-#: example_weblog.xml:67
-#, no-c-format
-msgid ""
-"<![CDATA[package eg;\n"
-"\n"
-"import java.util.ArrayList;\n"
-"import java.util.Calendar;\n"
-"import java.util.Iterator;\n"
-"import java.util.List;\n"
-"\n"
-"import org.hibernate.HibernateException;\n"
-"import org.hibernate.Query;\n"
-"import org.hibernate.Session;\n"
-"import org.hibernate.SessionFactory;\n"
-"import org.hibernate.Transaction;\n"
-"import org.hibernate.cfg.Configuration;\n"
-"import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
-"\n"
-"public class BlogMain {\n"
-" \n"
-" private SessionFactory _sessions;\n"
-" \n"
-" public void configure() throws HibernateException {\n"
-" _sessions = new Configuration()\n"
-" .addClass(Blog.class)\n"
-" .addClass(BlogItem.class)\n"
-" .buildSessionFactory();\n"
-" }\n"
-" \n"
-" public void exportTables() throws HibernateException {\n"
-" Configuration cfg = new Configuration()\n"
-" .addClass(Blog.class)\n"
-" .addClass(BlogItem.class);\n"
-" new SchemaExport(cfg).create(true, true);\n"
-" }\n"
-" \n"
-" public Blog createBlog(String name) throws HibernateException {\n"
-" \n"
-" Blog blog = new Blog();\n"
-" blog.setName(name);\n"
-" blog.setItems( new ArrayList() );\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" session.persist(blog);\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" return blog;\n"
-" }\n"
-" \n"
-" public BlogItem createBlogItem(Blog blog, String title, String text)\n"
-" throws HibernateException {\n"
-" \n"
-" BlogItem item = new BlogItem();\n"
-" item.setTitle(title);\n"
-" item.setText(text);\n"
-" item.setBlog(blog);\n"
-" item.setDatetime( Calendar.getInstance() );\n"
-" blog.getItems().add(item);\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" session.update(blog);\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" return item;\n"
-" }\n"
-" \n"
-" public BlogItem createBlogItem(Long blogid, String title, String text)\n"
-" throws HibernateException {\n"
-" \n"
-" BlogItem item = new BlogItem();\n"
-" item.setTitle(title);\n"
-" item.setText(text);\n"
-" item.setDatetime( Calendar.getInstance() );\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" Blog blog = (Blog) session.load(Blog.class, blogid);\n"
-" item.setBlog(blog);\n"
-" blog.getItems().add(item);\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" return item;\n"
-" }\n"
-" \n"
-" public void updateBlogItem(BlogItem item, String text)\n"
-" throws HibernateException {\n"
-" \n"
-" item.setText(text);\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" session.update(item);\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" }\n"
-" \n"
-" public void updateBlogItem(Long itemid, String text)\n"
-" throws HibernateException {\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" BlogItem item = (BlogItem) session.load(BlogItem.class, "
-"itemid);\n"
-" item.setText(text);\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" }\n"
-" \n"
-" public List listAllBlogNamesAndItemCounts(int max)\n"
-" throws HibernateException {\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" List result = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" Query q = session.createQuery(\n"
-" \"select blog.id, blog.name, count(blogItem) \" +\n"
-" \"from Blog as blog \" +\n"
-" \"left outer join blog.items as blogItem \" +\n"
-" \"group by blog.name, blog.id \" +\n"
-" \"order by max(blogItem.datetime)\"\n"
-" );\n"
-" q.setMaxResults(max);\n"
-" result = q.list();\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" return result;\n"
-" }\n"
-" \n"
-" public Blog getBlogAndAllItems(Long blogid)\n"
-" throws HibernateException {\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" Blog blog = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" Query q = session.createQuery(\n"
-" \"from Blog as blog \" +\n"
-" \"left outer join fetch blog.items \" +\n"
-" \"where blog.id = :blogid\"\n"
-" );\n"
-" q.setParameter(\"blogid\", blogid);\n"
-" blog = (Blog) q.uniqueResult();\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" return blog;\n"
-" }\n"
-" \n"
-" public List listBlogsAndRecentItems() throws HibernateException {\n"
-" \n"
-" Session session = _sessions.openSession();\n"
-" Transaction tx = null;\n"
-" List result = null;\n"
-" try {\n"
-" tx = session.beginTransaction();\n"
-" Query q = session.createQuery(\n"
-" \"from Blog as blog \" +\n"
-" \"inner join blog.items as blogItem \" +\n"
-" \"where blogItem.datetime > :minDate\"\n"
-" );\n"
-"\n"
-" Calendar cal = Calendar.getInstance();\n"
-" cal.roll(Calendar.MONTH, false);\n"
-" q.setCalendar(\"minDate\", cal);\n"
-" \n"
-" result = q.list();\n"
-" tx.commit();\n"
-" }\n"
-" catch (HibernateException he) {\n"
-" if (tx!=null) tx.rollback();\n"
-" throw he;\n"
-" }\n"
-" finally {\n"
-" session.close();\n"
-" }\n"
-" return result;\n"
-" }\n"
-"}]]>"
-msgstr ""
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/filters.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/filters.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/filters.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,44 +1,44 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-11-27 13:53+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: filters.xml:29
#, no-c-format
msgid "Filtering data"
msgstr "è¿æ»¤æ°æ®"
#. Tag: para
-#: filters.xml:31
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Hibernate3 provides an innovative new approach to handling data with "
"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
"named, parameterized filter that can be enabled or disabled for a particular "
"Hibernate session."
msgstr ""
-"Hibernate3 æä¾äºä¸ç§åæ°çæ¹å¼æ¥å¤çå
·æâæ¾æ§(visibility)âè§åçæ°æ®ï¼é£å°±æ¯"
-"使ç¨<emphasis>Hibernate filter</emphasis>ã <emphasis>Hibernate filter</"
-"emphasis>æ¯å
¨å±ææçãå
·æååãå¯ä»¥å¸¦åæ°çè¿æ»¤å¨ï¼ å¯¹äºæä¸ªç¹å®ç"
-"Hibernate sessionæ¨å¯ä»¥éæ©æ¯å¦å¯ç¨ï¼æç¦ç¨ï¼æä¸ªè¿æ»¤å¨ã"
+"Hibernate3 æä¾äºä¸ç§åæ°çæ¹å¼æ¥å¤çå
·æâæ¾æ§ï¼visibilityï¼âè§åçæ°æ®ï¼é£å°±"
+"æ¯ä½¿ç¨<emphasis>Hibernate è¿æ»¤å¨</emphasis>ã<emphasis>Hibernate è¿æ»¤å¨</"
+"emphasis>æ¯å
¨å±ææçãå
·æååãå¯ä»¥å¸¦åæ°çè¿æ»¤å¨ï¼å¯¹äºæä¸ªç¹å®ç "
+"Hibernate session æ¨å¯ä»¥éæ©æ¯å¦å¯ç¨ï¼æç¦ç¨ï¼æä¸ªè¿æ»¤å¨ã"
#. Tag: title
-#: filters.xml:38
#, no-c-format
msgid "Hibernate filters"
-msgstr "Hibernate è¿æ»¤å¨(filters)"
+msgstr "Hibernate è¿æ»¤å¨ï¼filtersï¼"
#. Tag: para
-#: filters.xml:40
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Hibernate3 has the ability to pre-define filter criteria and attach those "
"filters at both a class level and a collection level. A filter criteria "
@@ -49,14 +49,13 @@
"parameter values should be. Filters can be used like database views, but "
"they are parameterized inside the application."
msgstr ""
-"Hibernate3æ°å¢äºå¯¹æä¸ªç±»æè
éå使ç¨é¢å
å®ä¹çè¿æ»¤å¨æ¡ä»¶(filter criteria)çå"
-"è½ãè¿æ»¤å¨æ¡ä»¶ç¸å½äºå®ä¹ä¸ä¸ª é常类似äºç±»ååç§éåä¸çâwhereâ屿§ç约æå"
-"å¥ï¼ä½æ¯è¿æ»¤å¨æ¡ä»¶å¯ä»¥å¸¦åæ°ã åºç¨ç¨åºå¯ä»¥å¨è¿è¡æ¶å³å®æ¯å¦å¯ç¨ç»å®çè¿æ»¤å¨ï¼"
-"以å使ç¨ä»ä¹æ ·çåæ°å¼ã è¿æ»¤å¨çç¨æ³å¾åæ°æ®åºè§å¾ï¼åªä¸è¿æ¯å¨åºç¨ç¨åºä¸ç¡®å®"
-"使ç¨ä»ä¹æ ·çåæ°çã"
+"Hibernate3 æ°å¢äºå¯¹æä¸ªç±»æè
éå使ç¨é¢å
å®ä¹çè¿æ»¤å¨æ¡ä»¶ï¼filter criteriaï¼"
+"çåè½ãè¿æ»¤å¨æ¡ä»¶ç¸å½äºå®ä¹ä¸ä¸ª é常类似äºç±»ååç§éåä¸çâwhereâ屿§ç约æ"
+"åå¥ï¼ä½æ¯è¿æ»¤å¨æ¡ä»¶å¯ä»¥å¸¦åæ°ã åºç¨ç¨åºå¯ä»¥å¨è¿è¡æ¶å³å®æ¯å¦å¯ç¨ç»å®çè¿æ»¤"
+"å¨ï¼ä»¥å使ç¨ä»ä¹æ ·çåæ°å¼ãè¿æ»¤å¨çç¨æ³å¾åæ°æ®åºè§å¾ï¼åªä¸è¿æ¯å¨åºç¨ç¨åºä¸"
+"ç¡®å®ä½¿ç¨ä»ä¹æ ·çåæ°çã "
#. Tag: para
-#: filters.xml:50
#, no-c-format
msgid ""
"In order to use filters, they must first be defined and then attached to the "
@@ -64,62 +63,27 @@
"filter-def/></literal> element within a <literal><hibernate-mapping/"
"></literal> element:"
msgstr ""
-"è¦ä½¿ç¨è¿æ»¤å¨ï¼å¿
é¡»é¦å
å¨ç¸åºçæ å°èç¹ä¸å®ä¹ãèå®ä¹ä¸ä¸ªè¿æ»¤å¨ï¼è¦ç¨å°ä½äº"
-"<literal><hibernate-mapping/></literal> èç¹ä¹å
ç<literal><filter-"
-"def/></literal>èç¹ï¼"
+"è¦ä½¿ç¨è¿æ»¤å¨ï¼å¿
é¡»é¦å
å¨ç¸åºçæ å°èç¹ä¸å®ä¹ãèå®ä¹ä¸ä¸ªè¿æ»¤å¨ï¼è¦ç¨å°ä½äº "
+"<literal><hibernate-mapping/></literal> èç¹ä¹å
ç <literal><filter-"
+"def/></literal> èç¹ï¼"
-#. Tag: programlisting
-#: filters.xml:56
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<filter-def name=\"myFilter\">\n"
-" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
-"</filter-def>]]>"
-msgstr ""
+msgid "This filter can then be attached to a class:"
+msgstr "å®ä¹å¥½ä¹åï¼å°±å¯ä»¥å¨æä¸ªç±»ä¸ä½¿ç¨è¿ä¸ªè¿æ»¤å¨ï¼ "
#. Tag: para
-#: filters.xml:58
-#, fuzzy, no-c-format
-msgid "This filter can then be attached to a class:"
-msgstr "å®ä¹å¥½ä¹åï¼å°±å¯ä»¥å¨æä¸ªç±»ä¸ä½¿ç¨è¿ä¸ªè¿æ»¤å¨ï¼"
-
-#. Tag: programlisting
-#: filters.xml:62
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"myClass\" ...>\n"
-" ...\n"
-" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
-"\"/>\n"
-"</class>]]>"
-msgstr ""
+msgid "Or, to a collection:"
+msgstr "æè
ä¹å¯ä»¥å¨æä¸ªéå使ç¨å®ï¼"
#. Tag: para
-#: filters.xml:64
-#, fuzzy, no-c-format
-msgid "Or, to a collection:"
-msgstr "ä¹å¯ä»¥å¨æä¸ªéå使ç¨å®ï¼"
-
-#. Tag: programlisting
-#: filters.xml:68
#, no-c-format
-msgid ""
-"<![CDATA[<set ...>\n"
-" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
-"\"/>\n"
-"</set>]]>"
-msgstr ""
-
-#. Tag: para
-#: filters.xml:70
-#, fuzzy, no-c-format
msgid "Or, to both or multiples of each at the same time."
-msgstr ""
-"å¯ä»¥å¨å¤ä¸ªç±»æéåä¸ä½¿ç¨æä¸ªè¿æ»¤å¨ï¼æä¸ªç±»æè
éåä¸ä¹å¯ä»¥ä½¿ç¨å¤ä¸ªè¿æ»¤å¨ã"
+msgstr "æè
å¨åæ¶å¯ä»¥ä½¿ç¨å¤ä¸ªè¿æ»¤å¨ã"
#. Tag: para
-#: filters.xml:74
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
@@ -130,129 +94,64 @@
"interface. If you used the simple filter defined above, it would look like "
"this:"
msgstr ""
-"<literal>Session</literal>对象ä¸ä¼ç¨å°çæ¹æ³æï¼<literal>enableFilter(String "
-"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
-"literal>, å <literal>disableFilter(String filterName)</literal>. Sessionä¸é»"
-"认æ¯<emphasis>ä¸</emphasis>å¯ç¨è¿æ»¤å¨çï¼å¿
é¡»éè¿<literal>Session."
-"enabledFilter()</literal>æ¹æ³æ¾å¼çå¯ç¨ã è¯¥æ¹æ³è¿å被å¯ç¨ç<literal>Filter</"
-"literal>çå®ä¾ã以䏿å®ä¹çè¿æ»¤å¨ä¸ºä¾ï¼"
+"<literal>Session</literal> 对象ä¸ä¼ç¨å°çæ¹æ³æï¼<literal>enableFilter"
+"(String filterName)</literal>ï¼<literal>getEnabledFilter(String filterName)</"
+"literal>ï¼å <literal>disableFilter(String filterName)</literal>ãSession ä¸"
+"é»è®¤æ¯<emphasis>ä¸</emphasis>å¯ç¨è¿æ»¤å¨çï¼å¿
é¡»éè¿ <literal>Session."
+"enabledFilter()</literal> æ¹æ³æ¾å¼çå¯ç¨ãè¯¥æ¹æ³è¿å被å¯ç¨ç "
+"<literal>Filter</literal> çå®ä¾ã以䏿å®ä¹çè¿æ»¤å¨ä¸ºä¾ï¼"
-#. Tag: programlisting
-#: filters.xml:83
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
-"\"some-value\");]]>"
-msgstr ""
-
-#. Tag: para
-#: filters.xml:85
-#, fuzzy, no-c-format
-msgid ""
"Methods on the org.hibernate.Filter interface do allow the method-chaining "
"common to much of Hibernate."
msgstr ""
-"注æï¼org.hibernate.Filterçæ¹æ³å
许é¾å¼æ¹æ³è°ç¨ãï¼ç±»ä¼¼ä¸é¢ä¾åä¸å¯ç¨Filter"
-"ä¹å设å®Filteråæ°è¿ä¸ªâæ¹æ³é¾âï¼ Hibernateçå
¶ä»é¨åä¹å¤§å¤æè¿ä¸ªç¹æ§ã"
+"注æï¼org.hibernate.Filter çæ¹æ³å
许é¾å¼æ¹æ³è°ç¨ãï¼ç±»ä¼¼ä¸é¢ä¾åä¸å¯ç¨ "
+"Filter ä¹åè®¾å® Filter åæ°è¿ä¸ªâæ¹æ³é¾âï¼ Hibernate çå
¶ä»é¨åä¹å¤§å¤æè¿ä¸ªç¹"
+"æ§ã "
#. Tag: para
-#: filters.xml:89
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The following is a full example, using temporal data with an effective "
"record date pattern:"
-msgstr "ä¸é¢æ¯ä¸ä¸ªæ¯è¾å®æ´çä¾åï¼ä½¿ç¨äºè®°å½çææ¥ææ¨¡å¼è¿æ»¤ææ¶æçæ°æ®ï¼"
+msgstr "ä¸é¢æ¯ä¸ä¸ªæ¯è¾å®æ´çä¾åï¼ä½¿ç¨äºè®°å½çææ¥ææ¨¡å¼è¿æ»¤ææ¶æçæ°æ®ï¼ "
-#. Tag: programlisting
-#: filters.xml:93
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<filter-def name=\"effectiveDate\">\n"
-" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
-"</filter-def>\n"
-"\n"
-"<class name=\"Employee\" ...>\n"
-"...\n"
-" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/"
-">\n"
-" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt"
-"\"/>\n"
-" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/"
-">\n"
-"...\n"
-" <!--\n"
-" Note that this assumes non-terminal records have an eff_end_dt set "
-"to\n"
-" a max db date for simplicity-sake\n"
-" -->\n"
-" <filter name=\"effectiveDate\"\n"
-" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"Department\" ...>\n"
-"...\n"
-" <set name=\"employees\" lazy=\"true\">\n"
-" <key column=\"dept_id\"/>\n"
-" <one-to-many class=\"Employee\"/>\n"
-" <filter name=\"effectiveDate\"\n"
-" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
-">\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: para
-#: filters.xml:95
-#, fuzzy, no-c-format
-msgid ""
"In order to ensure that you are provided with currently effective records, "
"enable the filter on the session prior to retrieving employee data:"
msgstr ""
"å®ä¹å¥½åï¼å¦ææ³è¦ä¿è¯ååç齿¯ç®åå¤äºçææçè®°å½ï¼åªéå¨è·åéåæ°æ®çæ"
-"ä½ä¹åå
å¼å¯è¿æ»¤å¨å³å¯ï¼"
+"ä½ä¹åå
å¼å¯è¿æ»¤å¨å³å¯ï¼ "
-#. Tag: programlisting
-#: filters.xml:100
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[Session session = ...;\n"
-"session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
-"());\n"
-"List results = session.createQuery(\"from Employee as e where e.salary > :"
-"targetSalary\")\n"
-" .setLong(\"targetSalary\", new Long(1000000))\n"
-" .list();\n"
-"]]>"
-msgstr ""
-
-#. Tag: para
-#: filters.xml:102
-#, fuzzy, no-c-format
-msgid ""
"Even though a salary constraint was mentioned explicitly on the results in "
"the above HQL, because of the enabled filter, the query will return only "
"currently active employees who have a salary greater than one million "
"dollars."
msgstr ""
-"å¨ä¸é¢çHQLä¸ï¼è½ç¶æä»¬ä»
ä»
æ¾å¼ç使ç¨äºä¸ä¸ªèªæ°´æ¡ä»¶ï¼ä½å 为å¯ç¨äºè¿æ»¤å¨ï¼æ¥è¯¢"
-"å°ä»
è¿åé£äºç®åéç¨ å
³ç³»å¤äºçææçï¼å¹¶ä¸èªæ°´é«äºä¸ç¾ä¸ç¾åçéåçæ°æ®ã"
+"å¨ä¸é¢ç HQL ä¸ï¼è½ç¶æä»¬ä»
ä»
æ¾å¼ç使ç¨äºä¸ä¸ªèªæ°´æ¡ä»¶ï¼ä½å 为å¯ç¨äºè¿æ»¤å¨ï¼æ¥"
+"询å°ä»
è¿åé£äºç®åéç¨å
³ç³»å¤äºçææçï¼å¹¶ä¸èªæ°´é«äºä¸ç¾ä¸ç¾å
çéåçæ°æ®ã "
#. Tag: para
-#: filters.xml:108
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"If you want to use filters with outer joining, either through HQL or load "
"fetching, be careful of the direction of the condition expression. It is "
"safest to set this up for left outer joining. Place the parameter first "
"followed by the column name(s) after the operator."
msgstr ""
-"注æï¼å¦æä½ æç®å¨ä½¿ç¨å¤è¿æ¥ï¼æè
éè¿HQLæload fetchingï¼çåæ¶ä½¿ç¨è¿æ»¤å¨ï¼"
-"è¦æ³¨ææ¡ä»¶è¡¨è¾¾å¼çæ¹åï¼å·¦è¿æ¯å³ï¼ã æå®å
¨çæ¹å¼æ¯ä½¿ç¨å·¦å¤è¿æ¥ï¼left outer "
-"joiningï¼ãå¹¶ä¸é常æ¥è¯´ï¼å
ååæ°ï¼ ç¶åæ¯æä½ç¬¦ï¼æååæ°æ®åºå段åã"
+"注æï¼å¦æä½ æç®å¨ä½¿ç¨å¤è¿æ¥ï¼æè
éè¿ HQL æ load fetchingï¼çåæ¶ä½¿ç¨è¿æ»¤"
+"å¨ï¼è¦æ³¨ææ¡ä»¶è¡¨è¾¾å¼çæ¹åï¼å·¦è¿æ¯å³ï¼ãæå®å
¨çæ¹å¼æ¯ä½¿ç¨å·¦å¤è¿æ¥ï¼left "
+"outer joiningï¼ãå¹¶ä¸é常æ¥è¯´ï¼å
ååæ°ï¼ç¶åæ¯æä½ç¬¦ï¼æååæ°æ®åºå段åã"
#. Tag: para
-#: filters.xml:115
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"After being defined, a filter might be attached to multiple entities and/or "
"collections each with its own condition. This can be problematic when the "
@@ -260,27 +159,154 @@
"literal> allows you to definine a default condition, either as an attribute "
"or CDATA:"
msgstr ""
-"å¨Filterå®ä¹ä¹å,å®å¯è½è¢«éå å°å¤ä¸ªå®ä½å/æéåç±»,æ¯ä¸ªé½æèªå·±çæ¡ä»¶ãåè¥è¿"
-"äºæ¡ä»¶é½æ¯ä¸æ ·çï¼æ¯æ¬¡é½è¦å®ä¹å°±æ¾å¾å¾ç¹çãå æ¤ï¼<literal><filter-def/"
-"></literal>è¢«ç¨æ¥å®ä¹ä¸ä¸ªé»è®¤æ¡ä»¶ï¼å®å¯è½ä½ä¸ºå±æ§æè
CDATAåºç°ï¼"
+"å¨ Filter å®ä¹ä¹å,å®å¯è½è¢«éå å°å¤ä¸ªå®ä½å/æéåç±»,æ¯ä¸ªé½æèªå·±çæ¡ä»¶ãåè¥"
+"è¿äºæ¡ä»¶é½æ¯ä¸æ ·çï¼æ¯æ¬¡é½è¦å®ä¹å°±æ¾å¾å¾ç¹çãå æ¤ï¼<literal><filter-def/"
+"></literal> è¢«ç¨æ¥å®ä¹ä¸ä¸ªé»è®¤æ¡ä»¶ï¼å®å¯è½ä½ä¸ºå±æ§æè
CDATA åºç°ï¼ "
-#. Tag: programlisting
-#: filters.xml:122
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-"
-"def>\n"
-"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
-msgstr ""
-
-#. Tag: para
-#: filters.xml:124
-#, fuzzy, no-c-format
-msgid ""
"This default condition will be used whenever the filter is attached to "
"something without specifying a condition. This means you can give a specific "
"condition as part of the attachment of the filter that overrides the default "
"condition in that particular case."
msgstr ""
-"å½è¿ä¸ªfilter被éå å°ä»»ä½ç®çå°ï¼èåæ²¡ææææ¡ä»¶æ¶ï¼è¿ä¸ªæ¡ä»¶å°±ä¼è¢«ä½¿ç¨ã注"
-"æï¼æ¢å¥è¯è¯´ï¼ä½ å¯ä»¥éè¿ç»filteréå ç¹å«çæ¡ä»¶æ¥éè½½é»è®¤æ¡ä»¶ã"
+"å½è¿ä¸ª filter 被éå å°ä»»ä½ç®çå°ï¼èåæ²¡ææææ¡ä»¶æ¶ï¼è¿ä¸ªç¼ºçæ¡ä»¶å°±ä¼è¢«ä½¿"
+"ç¨ã注æï¼æ¢å¥è¯è¯´ï¼ä½ å¯ä»¥éè¿ç» filter éå ç¹å«çæ¡ä»¶æ¥éè½½é»è®¤æ¡ä»¶ã"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+#~ msgstr ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/inheritance_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/inheritance_mapping.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/inheritance_mapping.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,72 +1,63 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-16 18:47+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"PO-Revision-Date: 2009-12-07 09:35+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: inheritance_mapping.xml:29
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Inheritance mapping"
-msgstr "ç»§æ¿æ å°(Inheritance Mappings)"
+msgstr "ç»§æ¿æ å°ï¼Inheritance Mappingï¼ "
#. Tag: title
-#: inheritance_mapping.xml:32
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The three strategies"
-msgstr "ä¸ç§çç¥"
+msgstr "ä¸ç§çç¥ "
#. Tag: para
-#: inheritance_mapping.xml:34
#, no-c-format
msgid "Hibernate supports the three basic inheritance mapping strategies:"
-msgstr "Hibernateæ¯æä¸ç§åºæ¬çç»§æ¿æ å°çç¥ï¼"
+msgstr "Hibernate æ¯æä¸ç§åºæ¬çç»§æ¿æ å°çç¥ï¼"
#. Tag: para
-#: inheritance_mapping.xml:40
#, no-c-format
msgid "table per class hierarchy"
-msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表(table per class hierarchy)"
+msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表ï¼table per class hierarchyï¼"
#. Tag: para
-#: inheritance_mapping.xml:45
-#, fuzzy, no-c-format
-msgid "<para>table per subclass</para>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ¯ä¸ªåç±»ä¸å¼ 表(table per subclass)\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ¯ä¸ªåç±»ä¸å¼ 表"
+#, no-c-format
+msgid "table per subclass"
+msgstr "æ¯ä¸ªåç±»ä¸å¼ 表ï¼Table per subclassï¼ "
#. Tag: para
-#: inheritance_mapping.xml:50
#, no-c-format
msgid "table per concrete class"
-msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表(table per concrete class)"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼table per concrete classï¼"
#. Tag: para
-#: inheritance_mapping.xml:56
#, no-c-format
msgid ""
"In addition, Hibernate supports a fourth, slightly different kind of "
"polymorphism:"
-msgstr "æ¤å¤ï¼Hibernateè¿æ¯æç¬¬åç§ç¨æä¸åç夿æ å°çç¥ï¼"
+msgstr "æ¤å¤ï¼Hibernate è¿æ¯æç¬¬åç§ç¨æä¸åç夿æ å°çç¥ï¼"
#. Tag: para
-#: inheritance_mapping.xml:63
#, no-c-format
msgid "implicit polymorphism"
-msgstr "éå¼å¤æ(implicit polymorphism)"
+msgstr "éå¼å¤æï¼implicit polymorphismï¼"
#. Tag: para
-#: inheritance_mapping.xml:69
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"It is possible to use different mapping strategies for different branches of "
"the same inheritance hierarchy. You can then make use of implicit "
@@ -80,17 +71,16 @@
"<literal><join></literal> elements (see below for an example)."
msgstr ""
"对äºåä¸ä¸ªç»§æ¿å±æ¬¡å
çä¸å忝ï¼å¯ä»¥éç¨ä¸åçæ å°çç¥ï¼ç¶åç¨éå¼å¤ ææ¥å®æ"
-"è·¨è¶æ´ä¸ªå±æ¬¡ç夿ã使¯å¨åä¸ä¸ª<literal><class></literal>æ ¹å
ç´ ä¸ï¼"
-"Hibernate䏿¯ææ··åäºå
ç´ <literal><subclass></literal>ã <literal><"
-"joined-subclass></literal>å<literal><union-subclass></literal> çæ "
-"å°ãå¨åä¸ä¸ª<literal><class></literal>å
ç´ ä¸ï¼å¯ä»¥æ··åä½¿ç¨ âæ¯ä¸ªç±»åå±"
-"ç»æä¸å¼ 表âï¼table per hierarchyï¼ åâæ¯ä¸ªåç±»ä¸å¼ 表âï¼table per subclassï¼ "
-"è¿ä¸¤ç§æ å°çç¥ï¼è¿æ¯éè¿ç»åå
ç´ <literal><subclass></literal>å "
-"<literal><join></literal>æ¥å®ç°çï¼è§åï¼ã"
+"è·¨è¶æ´ä¸ªå±æ¬¡ç夿ã使¯å¨åä¸ä¸ª <literal><class></literal> æ ¹å
ç´ ä¸ï¼"
+"Hibernate 䏿¯ææ··åäºå
ç´ <literal><subclass></literal>ã<literal><"
+"joined-subclass></literal> å <literal><union-subclass></literal> ç"
+"æ å°ãå¨åä¸ä¸ª <literal><class></literal> å
ç´ ä¸ï¼å¯ä»¥æ··å使ç¨âæ¯ä¸ªç±»å"
+"å±ç»æä¸å¼ 表âï¼table per hierarchyï¼åâæ¯ä¸ªåç±»ä¸å¼ 表âï¼table per subclassï¼ "
+"è¿ä¸¤ç§æ å°çç¥ï¼è¿æ¯éè¿ç»åå
ç´ <literal><subclass></literal> å "
+"<literal><join></literal> æ¥å®ç°çï¼è§åï¼ã "
#. Tag: para
-#: inheritance_mapping.xml:83
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"It is possible to define <literal>subclass</literal>, <literal>union-"
"subclass</literal>, and <literal>joined-subclass</literal> mappings in "
@@ -103,36 +93,21 @@
"extends keyword. The ordering inside a single mapping file still needs to be "
"defined as superclasses before subclasses."
msgstr ""
-"å¨å¤ä¸ªæ å°æä»¶ä¸ï¼å¯ä»¥ç´æ¥å¨<literal>hibernate-mapping</literal>æ ¹ä¸å®ä¹"
-"<literal>subclass</literal>ï¼<literal>union-subclass</literal>å"
+"å¨å¤ä¸ªæ å°æä»¶ä¸ï¼å¯ä»¥ç´æ¥å¨ <literal>hibernate-mapping</literal> æ ¹ä¸å®ä¹ "
+"<literal>subclass</literal>ï¼<literal>union-subclass</literal> å "
"<literal>joined-subclass</literal>ãä¹å°±æ¯è¯´ï¼ä½ å¯ä»¥ä»
å å
¥ä¸ä¸ªæ°çæ å°æä»¶æ¥"
-"æ©å±ç±»å±æ¬¡ãä½ å¿
é¡»å¨subclassçæ å°ä¸ææ<literal>extends</literal>屿§ï¼ç»åº"
-"ä¸ä¸ªä¹åå®ä¹çè¶
ç±»çååãæ³¨æï¼å¨ä»¥åï¼è¿ä¸åè½å¯¹æ å°æä»¶çé¡ºåºæä¸¥æ ¼çè¦"
-"æ±ï¼ä»Hibernate 3å¼å§ï¼ä½¿ç¨extendså
³é®åçæ¶ä¾¯ï¼å¯¹æ å°æä»¶ç顺åºä¸åæè¦æ±ï¼"
-"ä½å¨æ¯ä¸ªæ å°æä»¶éï¼è¶
ç±»å¿
é¡»å¨åç±»ä¹åå®ä¹ã"
+"æ©å±ç±»å±æ¬¡ãä½ å¿
é¡»å¨ subclass çæ å°ä¸ææ <literal>extends</literal> 屿§ï¼"
+"ç»åºä¸ä¸ªä¹åå®ä¹çè¶
ç±»çååãæ³¨æï¼å¨ä»¥åï¼è¿ä¸åè½å¯¹æ å°æä»¶çé¡ºåºæä¸¥æ ¼ç"
+"è¦æ±ï¼ä» Hibernate 3 å¼å§ï¼ä½¿ç¨ extends å
³é®åçæ¶ä¾¯ï¼å¯¹æ å°æä»¶ç顺åºä¸åæ"
+"è¦æ±ï¼ä½å¨æ¯ä¸ªæ å°æä»¶éï¼è¶
ç±»å¿
é¡»å¨åç±»ä¹åå®ä¹ã "
-#. Tag: programlisting
-#: inheritance_mapping.xml:94
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-" <hibernate-mapping>\n"
-" <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value=\"D"
-"\">\n"
-" <property name=\"name\" type=\"string\"/>\n"
-" </subclass>\n"
-" </hibernate-mapping>]]>"
-msgstr ""
-
#. Tag: title
-#: inheritance_mapping.xml:98
#, no-c-format
msgid "Table per class hierarchy"
-msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表(Table per class hierarchy)"
+msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表ï¼Table per class hierarchyï¼"
#. Tag: para
-#: inheritance_mapping.xml:100
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Suppose we have an interface <literal>Payment</literal> with the "
"implementors <literal>CreditCardPayment</literal>, <literal>CashPayment</"
@@ -140,102 +115,49 @@
"mapping would display in the following way:"
msgstr ""
"å设æä»¬ææ¥å£<literal>Payment</literal>åå®çå 个å®ç°ç±»ï¼ "
-"<literal>CreditCardPayment</literal>, <literal>CashPayment</literal>, å"
-"<literal>ChequePayment</literal>ãåâæ¯ä¸ªç±»åå±ç»æä¸å¼ 表â(Table per class "
-"hierarchy)çæ å°ä»£ç å¦ä¸æç¤ºï¼"
+"<literal>CreditCardPayment</literal>, <literal>CashPayment</literal> å"
+"<literal>ChequePayment</literal>ãåâæ¯ä¸ªç±»åå±ç»æä¸å¼ 表âï¼Table per class "
+"hierarchyï¼çæ å°ä»£ç å¦ä¸æç¤ºï¼ "
-#. Tag: programlisting
-#: inheritance_mapping.xml:107
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-" <property name=\"amount\" column=\"AMOUNT\"/>\n"
-" ...\n"
-" <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-" ...\n"
-" </subclass>\n"
-" <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-" ...\n"
-" </subclass>\n"
-" <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-" ...\n"
-" </subclass>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: para
-#: inheritance_mapping.xml:109
-#, fuzzy, no-c-format
-msgid ""
"Exactly one table is required. There is a limitation of this mapping "
"strategy: columns declared by the subclasses, such as <literal>CCTYPE</"
"literal>, cannot have <literal>NOT NULL</literal> constraints."
msgstr ""
"éç¨è¿ç§çç¥åªéè¦ä¸å¼ 表å³å¯ã宿ä¸ä¸ªå¾å¤§çéå¶ï¼è¦æ±é£äºç±åç±»å®ä¹çåæ®µï¼ "
-"å¦<literal>CCTYPE</literal>ï¼ä¸è½æ<literal>é空(NOT NULL)</literal>约æã"
+"å¦ <literal>CCTYPE</literal>ï¼ä¸è½æ<literal>é空ï¼NOT NULLï¼</literal>约"
+"æã "
#. Tag: title
-#: inheritance_mapping.xml:118
#, no-c-format
msgid "Table per subclass"
-msgstr "æ¯ä¸ªåç±»ä¸å¼ 表(Table per subclass)"
+msgstr "æ¯ä¸ªåç±»ä¸å¼ 表ï¼Table per subclassï¼"
#. Tag: para
-#: inheritance_mapping.xml:120
-#, fuzzy, no-c-format
+#, no-c-format
msgid "A table per subclass mapping looks like this:"
-msgstr "对äºä¸ä¾ä¸çå 个类èè¨ï¼éç¨âæ¯ä¸ªåç±»ä¸å¼ 表âçæ å°çç¥ï¼ä»£ç å¦ä¸æç¤ºï¼"
-
-#. Tag: programlisting
-#: inheritance_mapping.xml:124
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"amount\" column=\"AMOUNT\"/>\n"
-" ...\n"
-" <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-" ...\n"
-" </joined-subclass>\n"
-" <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" ...\n"
-" </joined-subclass>\n"
-" <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" ...\n"
-" </joined-subclass>\n"
-"</class>]]>"
msgstr ""
+" 对äºä¸ä¾ä¸çå 个类èè¨ï¼éç¨âæ¯ä¸ªåç±»ä¸å¼ 表âçæ å°çç¥ï¼ä»£ç å¦ä¸æç¤ºï¼"
#. Tag: para
-#: inheritance_mapping.xml:126
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Four tables are required. The three subclass tables have primary key "
"associations to the superclass table so the relational model is actually a "
"one-to-one association."
msgstr ""
-"éè¦åå¼ è¡¨ãä¸ä¸ªå类表éè¿ä¸»é®å
³èå°è¶
类表(å èå
³ç³»æ¨¡åå®é
䏿¯ä¸å¯¹ä¸å
³è)ã"
+"éè¦åå¼ è¡¨ãä¸ä¸ªå类表éè¿ä¸»é®å
³èå°è¶
类表ï¼å èå
³ç³»æ¨¡åå®é
䏿¯ä¸å¯¹ä¸å
³"
+"èï¼ã "
#. Tag: title
-#: inheritance_mapping.xml:135
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Table per subclass: using a discriminator"
-msgstr "æ¯ä¸ªåç±»ä¸å¼ 表(Table per subclass)ï¼ä½¿ç¨è¾¨å«æ å¿(Discriminator)"
+msgstr "æ¯ä¸ªåç±»ä¸å¼ 表ï¼Table per subclassï¼ï¼ä½¿ç¨è¾¨å«æ å¿ï¼Discriminatorï¼ "
#. Tag: para
-#: inheritance_mapping.xml:137
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Hibernate's implementation of table per subclass does not require a "
"discriminator column. Other object/relational mappers use a different "
@@ -246,160 +168,63 @@
"strategy, you can combine the use of <literal><subclass></literal> and "
"<literal><join></literal>, as follows:"
msgstr ""
-"注æï¼å¯¹âæ¯ä¸ªåç±»ä¸å¼ 表âçæ å°çç¥ï¼Hibernateçå®ç°ä¸éè¦è¾¨å«å段ï¼èå
¶ä» ç"
-"对象/å
³ç³»æ å°å·¥å
·ä½¿ç¨äºä¸ç§ä¸åäºHibernateçå®ç°æ¹æ³ï¼è¯¥æ¹æ³è¦æ±å¨è¶
ç±» è¡¨ä¸æ"
-"ä¸ä¸ªç±»å辨å«å段(type discriminator column)ãHibernateéç¨çæ¹æ³æ´ é¾å®ç°ï¼ä½"
-"ä»å
³ç³»ï¼æ°æ®åºï¼çè§åº¦æ¥çï¼æçè¯´å®æ´æ£ç¡®ãè¥ä½ æ¿æä½¿ç¨å¸¦æè¾¨å«å 段çâæ¯ä¸ª"
-"åç±»ä¸å¼ 表âççç¥ï¼ä½ å¯ä»¥ç»å使ç¨<literal><subclass></literal> ä¸"
-"<literal><join></literal>ï¼å¦ä¸æç¤ºï¼"
+"注æï¼å¯¹âæ¯ä¸ªåç±»ä¸å¼ 表âçæ å°çç¥ï¼Hibernate çå®ç°ä¸éè¦è¾¨å«å段ï¼èå
¶ä»ç"
+"对象ï¼å
³ç³»æ å°å·¥å
·ä½¿ç¨äºä¸ç§ä¸åäºHibernateçå®ç°æ¹æ³ï¼è¯¥æ¹æ³è¦æ±å¨è¶
ç±»è¡¨ä¸æ"
+"ä¸ä¸ªç±»å辨å«å段ï¼type discriminator columnï¼ãHibernate éç¨çæ¹æ³æ´é¾å®ç°ï¼"
+"ä½ä»å
³ç³»ï¼æ°æ®åºï¼çè§åº¦æ¥çï¼æçè¯´å®æ´æ£ç¡®ãè¥ä½ æ¿æä½¿ç¨å¸¦æè¾¨å«å段çâæ¯ä¸ª"
+"åç±»ä¸å¼ 表âççç¥ï¼ä½ å¯ä»¥ç»åä½¿ç¨ <literal><subclass></literal> ä¸"
+"<literal><join></literal>ï¼å¦ä¸æç¤ºï¼ "
-#. Tag: programlisting
-#: inheritance_mapping.xml:149
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-" <property name=\"amount\" column=\"AMOUNT\"/>\n"
-" ...\n"
-" <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-" <join table=\"CREDIT_PAYMENT\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-" ...\n"
-" </join>\n"
-" </subclass>\n"
-" <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-" <join table=\"CASH_PAYMENT\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" ...\n"
-" </join>\n"
-" </subclass>\n"
-" <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-" <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" ...\n"
-" </join>\n"
-" </subclass>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: para
-#: inheritance_mapping.xml:151
#, no-c-format
msgid ""
"The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate "
"not to fetch the <literal>ChequePayment</literal> subclass data using an "
"outer join when querying the superclass."
msgstr ""
-"å¯éç声æ<literal>fetch=\"select\"</literal>ï¼æ¯ç¨æ¥åè¯Hibernateï¼å¨æ¥è¯¢è¶
"
-"ç±»æ¶ï¼ ä¸è¦ä½¿ç¨å¤é¨è¿æ¥(outer join)æ¥æååç±»<literal>ChequePayment</literal>"
-"çæ°æ®ã"
+"å¯éç声æ <literal>fetch=\"select\"</literal>ï¼æ¯ç¨æ¥åè¯ Hibernateï¼å¨æ¥è¯¢"
+"è¶
ç±»æ¶ï¼ä¸è¦ä½¿ç¨å¤é¨è¿æ¥ï¼outer joinï¼æ¥æååç±» <literal>ChequePayment</"
+"literal> çæ°æ®ã"
#. Tag: title
-#: inheritance_mapping.xml:160
#, no-c-format
msgid "Mixing table per class hierarchy with table per subclass"
msgstr "æ··å使ç¨âæ¯ä¸ªç±»åå±ç»æä¸å¼ 表âåâæ¯ä¸ªåç±»ä¸å¼ 表â"
#. Tag: para
-#: inheritance_mapping.xml:162
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"You can even mix the table per hierarchy and table per subclass strategies "
"using the following approach:"
msgstr ""
"ä½ çè³å¯ä»¥éåå¦ä¸æ¹æ³æ··å使ç¨âæ¯ä¸ªç±»åå±ç»æä¸å¼ 表âåâæ¯ä¸ªåç±»ä¸å¼ 表âè¿ä¸¤ç§"
-"çç¥ï¼"
+"çç¥ï¼ "
-#. Tag: programlisting
-#: inheritance_mapping.xml:167
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-" <property name=\"amount\" column=\"AMOUNT\"/>\n"
-" ...\n"
-" <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-" <join table=\"CREDIT_PAYMENT\">\n"
-" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-" ...\n"
-" </join>\n"
-" </subclass>\n"
-" <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-" ...\n"
-" </subclass>\n"
-" <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-" ...\n"
-" </subclass>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: para
-#: inheritance_mapping.xml:169
#, no-c-format
msgid ""
"For any of these mapping strategies, a polymorphic association to the root "
"<literal>Payment</literal> class is mapped using <literal><many-to-one>"
"</literal>."
msgstr ""
-"对ä¸è¿°ä»»ä½ä¸ç§æ å°çç¥èè¨ï¼æåæ ¹ç±»<literal>Payment</literal>ç å
³èæ¯ä½¿ç¨"
-"<literal><many-to-one></literal>è¿è¡æ å°çã"
+"对ä¸è¿°ä»»ä½ä¸ç§æ å°çç¥èè¨ï¼æåæ ¹ç±» <literal>Payment</literal> çå
³èæ¯ä½¿ç¨ "
+"<literal><many-to-one></literal> è¿è¡æ å°çã"
-#. Tag: programlisting
-#: inheritance_mapping.xml:175
-#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment"
-"\"/>]]>"
-msgstr ""
-
#. Tag: title
-#: inheritance_mapping.xml:180
#, no-c-format
msgid "Table per concrete class"
-msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表(Table per concrete class)"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼Table per concrete classï¼"
#. Tag: para
-#: inheritance_mapping.xml:182
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"There are two ways we can map the table per concrete class strategy. First, "
"you can use <literal><union-subclass></literal>."
msgstr ""
-"对äºâæ¯ä¸ªå
·ä½ç±»ä¸å¼ 表âçæ å°çç¥ï¼å¯ä»¥éç¨ä¸¤ç§æ¹æ³ã第ä¸ç§æ¹æ³æ¯ä½¿ç¨ "
-"<literal><union-subclass></literal>ã"
+"对äºâæ¯ä¸ªå
·ä½ç±»ä¸å¼ 表âçæ å°çç¥ï¼å¯ä»¥éç¨ä¸¤ç§æ¹æ³ã第ä¸ç§æ¹æ³æ¯ä½¿ç¨ "
+"<literal><union-subclass></literal>ã "
-#. Tag: programlisting
-#: inheritance_mapping.xml:187
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Payment\">\n"
-" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-" <property name=\"amount\" column=\"AMOUNT\"/>\n"
-" ...\n"
-" <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-" ...\n"
-" </union-subclass>\n"
-" <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-" ...\n"
-" </union-subclass>\n"
-" <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-" ...\n"
-" </union-subclass>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: para
-#: inheritance_mapping.xml:189
#, no-c-format
msgid ""
"Three tables are involved for the subclasses. Each table defines columns for "
@@ -409,8 +234,7 @@
"å®ä¹ç¸åºå段ã"
#. Tag: para
-#: inheritance_mapping.xml:194
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The limitation of this approach is that if a property is mapped on the "
"superclass, the column name must be the same on all subclass tables. The "
@@ -418,68 +242,35 @@
"The primary key seed has to be shared across all unioned subclasses of a "
"hierarchy."
msgstr ""
-"è¿ç§æ¹å¼çå±éå¨äºï¼å¦æä¸ä¸ªå±æ§å¨è¶
ç±»ä¸åäºæ å°ï¼å
¶å段åå¿
须䏿æåç±» 表ä¸"
-"å®ä¹çç¸åã(æä»¬å¯è½ä¼å¨Hibernateçåç»åå¸çæ¬ä¸æ¾å®½æ¤éå¶ã) ä¸å
许å¨èå"
-"åç±»(union subclass)çç»§æ¿å±æ¬¡ä¸ä½¿ç¨æ è¯çæå¨çç¥(identity generator "
-"strategy), å®é
ä¸, 主é®çç§å(primary key seed)ä¸å¾ä¸ä¸ºåä¸ç»§æ¿å±æ¬¡ä¸çå
¨é¨è¢«"
-"èååç±»æå
±ç¨."
+"è¿ç§æ¹å¼çå±éå¨äºï¼å¦æä¸ä¸ªå±æ§å¨è¶
ç±»ä¸åäºæ å°ï¼å
¶å段åå¿
须䏿æå类表ä¸"
+"å®ä¹çç¸åãï¼æä»¬å¯è½ä¼å¨ Hibernate çåç»åå¸çæ¬ä¸æ¾å®½æ¤éå¶ãï¼ä¸å
许å¨è"
+"ååç±»ï¼union subclassï¼çç»§æ¿å±æ¬¡ä¸ä½¿ç¨æ è¯çæå¨çç¥ï¼identity generator "
+"strategyï¼ï¼å®é
ä¸ï¼ä¸»é®çç§åï¼primary key seedï¼ä¸å¾ä¸ä¸ºåä¸ç»§æ¿å±æ¬¡ä¸çå
¨"
+"é¨è¢«èååç±»æå
±ç¨ã "
#. Tag: para
-#: inheritance_mapping.xml:203
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"If your superclass is abstract, map it with <literal>abstract=\"true\"</"
"literal>. If it is not abstract, an additional table (it defaults to "
"<literal>PAYMENT</literal> in the example above), is needed to hold "
"instances of the superclass."
msgstr ""
-"åè¥è¶
ç±»æ¯æ½è±¡ç±»ï¼è¯·ä½¿ç¨<literal>abstract=\"true\"</literal>ãå½ç¶ï¼åè¥å®ä¸"
-"æ¯æ½è±¡çï¼éè¦ä¸ä¸ªé¢å¤ç表ï¼ä¸é¢çä¾åä¸ï¼é»è®¤æ¯<literal>PAYMENT</"
-"literal>ï¼ï¼æ¥ä¿åè¶
ç±»çå®ä¾ã"
+"åè¥è¶
ç±»æ¯æ½è±¡ç±»ï¼è¯·ä½¿ç¨ <literal>abstract=\"true\"</literal>ãå½ç¶ï¼åè¥å®ä¸"
+"æ¯æ½è±¡çï¼éè¦ä¸ä¸ªé¢å¤ç表ï¼ä¸é¢çä¾åä¸ï¼é»è®¤æ¯ <literal>PAYMENT</"
+"literal>ï¼ï¼æ¥ä¿åè¶
ç±»çå®ä¾ã "
#. Tag: title
-#: inheritance_mapping.xml:213
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Table per concrete class using implicit polymorphism"
-msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼ä½¿ç¨éå¼å¤æ"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼ä½¿ç¨éå¼å¤æ "
#. Tag: para
-#: inheritance_mapping.xml:215
#, no-c-format
msgid "An alternative approach is to make use of implicit polymorphism:"
msgstr "å¦ä¸ç§å¯ä¾éæ©çæ¹æ³æ¯éç¨éå¼å¤æï¼"
-#. Tag: programlisting
-#: inheritance_mapping.xml:219
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
-" ...\n"
-"</class>\n"
-"\n"
-"<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
-" ...\n"
-"</class>\n"
-"\n"
-"<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
-" ...\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: para
-#: inheritance_mapping.xml:221
#, fuzzy, no-c-format
msgid ""
"Notice that the <literal>Payment</literal> interface is not mentioned "
@@ -487,56 +278,39 @@
"mapped in each of the subclasses. If you want to avoid duplication, consider "
"using XML entities (for example, <literal>[ <!ENTITY allproperties SYSTEM "
"\"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> "
-"declaration and <literal>&allproperties;</literal> in the mapping)."
+"declaration and <literal>&allproperties;</literal> in the mapping)."
msgstr ""
-"注æï¼æä»¬æ²¡æå¨ä»»ä½å°æ¹æç¡®çæåæ¥å£<literal>Payment</literal>ãåæ¶æ³¨æ "
-"<literal>Payment</literal>ç屿§å¨æ¯ä¸ªåç±»ä¸é½è¿è¡äºæ å°ãå¦æä½ æ³é¿å
éå¤ï¼ "
-"å¯ä»¥èè使ç¨XMLå®ä½(ä¾å¦ï¼ä½äº<literal>DOCTYPE</literal>声æå
ç <literal>"
-"[ <!ENTITY allproperties SYSTEM \"allproperties.xml\"> ]</literal> åæ "
-"å°ä¸ç<literal>&allproperties;</literal>)ã"
+"请注æè¿éæ²¡ææ¾æ§å°æå <literal>Payment</literal> æ¥å£ã<literal>Payment</"
+"literal> ç屿§æ å°å°æ¯ä¸ªåç±»ãå¦æä½ æ³é¿å
éå¤ï¼è¯·èèä½¿ç¨ XML å®ä½ï¼å¦ï¼"
+"<literal>DOCTYPE</literal> 声æéç <literal>[ <!ENTITY allproperties "
+"SYSTEM \"allproperties.xml\"> ]</literal> åæ å°éç "
+"<literal>&allproperties;</literal>ï¼ã"
#. Tag: para
-#: inheritance_mapping.xml:231
#, no-c-format
msgid ""
"The disadvantage of this approach is that Hibernate does not generate SQL "
"<literal>UNION</literal>s when performing polymorphic queries."
msgstr ""
-"è¿ç§æ¹æ³ç缺é·å¨äºï¼å¨Hibernateæ§è¡å¤ææ¥è¯¢æ¶(polymorphic queries)æ æ³çæå¸¦ "
-"<literal>UNION</literal>çSQLè¯å¥ã"
+"è¿ç§æ¹æ³ç缺é·å¨äºï¼å¨ Hibernate æ§è¡å¤ææ¥è¯¢æ¶ï¼polymorphic queriesï¼æ æ³ç"
+"æå¸¦ <literal>UNION</literal> ç SQL è¯å¥ã "
#. Tag: para
-#: inheritance_mapping.xml:236
#, no-c-format
msgid ""
"For this mapping strategy, a polymorphic association to <literal>Payment</"
"literal> is usually mapped using <literal><any></literal>."
msgstr ""
-"对äºè¿ç§æ å°çç¥èè¨ï¼é常ç¨<literal><any></literal>æ¥å®ç°å° "
-"<literal>Payment</literal>ç夿å
³èæ å°ã"
+"对äºè¿ç§æ å°çç¥èè¨ï¼éå¸¸ç¨ <literal><any></literal> æ¥å®ç°å° "
+"<literal>Payment</literal> ç夿å
³èæ å°ã"
-#. Tag: programlisting
-#: inheritance_mapping.xml:241
-#, no-c-format
-msgid ""
-"<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
-" <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
-" <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
-" <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
-" <column name=\"PAYMENT_CLASS\"/>\n"
-" <column name=\"PAYMENT_ID\"/>\n"
-"</any>]]>"
-msgstr ""
-
#. Tag: title
-#: inheritance_mapping.xml:246
#, no-c-format
msgid "Mixing implicit polymorphism with other inheritance mappings"
msgstr "éå¼å¤æåå
¶ä»ç»§æ¿æ å°æ··å使ç¨"
#. Tag: para
-#: inheritance_mapping.xml:248
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Since the subclasses are each mapped in their own <literal><class></"
"literal> element, and since <literal>Payment</literal> is just an "
@@ -544,48 +318,14 @@
"inheritance hierarchy. You can still use polymorphic queries against the "
"<literal>Payment</literal> interface."
msgstr ""
-"对è¿ä¸æ å°è¿æä¸ç¹éè¦æ³¨æãå 为æ¯ä¸ªåç±»é½å¨åèªç¬ç«çå
ç´ <literal><"
-"class></literal> 䏿 å°(å¹¶ä¸<literal>Payment</literal>åªæ¯ä¸ä¸ªæ¥å£)ï¼æ¯ä¸ª"
-"åç±»å¯ä»¥å¾å®¹æçæä¸ºå¦ä¸ 个继æ¿ä½ç³»ä¸çä¸é¨åï¼(ä½ ä»ç¶å¯ä»¥å¯¹æ¥å£"
-"<literal>Payment</literal>使ç¨å¤ææ¥è¯¢ã)"
+"对è¿ä¸æ å°è¿æä¸ç¹éè¦æ³¨æãå 为æ¯ä¸ªåç±»é½å¨åèªç¬ç«çå
ç´ <literal><"
+"class></literal> 䏿 å°ï¼å¹¶ä¸ <literal>Payment</literal> åªæ¯ä¸ä¸ªæ¥å£ï¼ï¼"
+"æ¯ä¸ªåç±»å¯ä»¥å¾å®¹æçæä¸ºå¦ä¸ä¸ªç»§æ¿ä½ç³»ä¸çä¸é¨åï¼ï¼ä½ ä»ç¶å¯ä»¥å¯¹æ¥å£ "
+"<literal>Payment</literal> 使ç¨å¤ææ¥è¯¢ãï¼ "
-#. Tag: programlisting
-#: inheritance_mapping.xml:256
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-" <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
-" <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
-" ...\n"
-" <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
-" <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
-"</class>\n"
-"\n"
-"<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
-" <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" ...\n"
-" <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
-" ...\n"
-" </joined-subclass>\n"
-" <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-" <key column=\"PAYMENT_ID\"/>\n"
-" <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
-" ...\n"
-" </joined-subclass>\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: para
-#: inheritance_mapping.xml:258
-#, fuzzy, no-c-format
-msgid ""
"Once again, <literal>Payment</literal> is not mentioned explicitly. If we "
"execute a query against the <literal>Payment</literal> interface, for "
"example <literal>from Payment</literal>, Hibernate automatically returns "
@@ -594,225 +334,573 @@
"literal> and <literal>ChequePayment</literal>, but not instances of "
"<literal>NonelectronicTransaction</literal>."
msgstr ""
-"æä»¬è¿æ¯æ²¡ææç¡®çæå°<literal>Payment</literal>ã 妿æä»¬é对æ¥å£"
-"<literal>Payment</literal>æ§è¡æ¥è¯¢ ââå¦<literal>from Payment</literal>ââ "
-"Hibernate èªå¨è¿å<literal>CreditCardPayment</literal>(åå®çåç±»ï¼å 为 å®ä»¬"
-"ä¹å®ç°äºæ¥å£<literal>Payment</literal>)ã <literal>CashPayment</literal>å"
-"<literal>Chequepayment</literal>çå®ä¾ï¼ ä½ä¸è¿å"
-"<literal>NonelectronicTransaction</literal>çå®ä¾ã"
+"æä»¬è¿æ¯æ²¡ææç¡®çæå° <literal>Payment</literal>ã妿æä»¬é对æ¥å£ "
+"<literal>Payment</literal> æ§è¡æ¥è¯¢ â å¦ <literal>from Payment</literal> â "
+"Hibernate èªå¨è¿å <literal>CreditCardPayment</literal>ï¼åå®çåç±»ï¼å 为 å®"
+"们ä¹å®ç°äºæ¥å£ <literal>Payment</literal>ï¼ã<literal>CashPayment</literal> "
+"å <literal>Chequepayment</literal> çå®ä¾ï¼ä½ä¸è¿å "
+"<literal>NonelectronicTransaction</literal> çå®ä¾ã "
#. Tag: title
-#: inheritance_mapping.xml:273
#, no-c-format
msgid "Limitations"
msgstr "éå¶"
#. Tag: para
-#: inheritance_mapping.xml:275
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"There are limitations to the \"implicit polymorphism\" approach to the table "
"per concrete-class mapping strategy. There are somewhat less restrictive "
"limitations to <literal><union-subclass></literal> mappings."
msgstr ""
"å¯¹âæ¯ä¸ªå
·ä½ç±»æ å°ä¸å¼ 表âï¼table per concrete-classï¼çæ å°çç¥èè¨ï¼éå¼å¤æ"
-"ç æ¹å¼æä¸å®çéå¶ãè<literal><union-subclass></literal>æ å°çéå¶å"
-"没æé£ ä¹ä¸¥æ ¼ã"
+"çæ¹å¼æä¸å®çéå¶ãè <literal><union-subclass></literal> æ å°çéå¶å"
+"没æé£ä¹ä¸¥æ ¼ã "
#. Tag: para
-#: inheritance_mapping.xml:282
#, no-c-format
msgid ""
-"The following table shows the limitations of table per concrete-class "
+"The following list shows the limitations of table per concrete-class "
"mappings, and of implicit polymorphism, in Hibernate."
-msgstr "ä¸é¢è¡¨æ ¼ä¸ååºäºå¨Hibernteä¸âæ¯ä¸ªå
·ä½ç±»ä¸å¼ 表âççç¥åéå¼å¤æçéå¶ã"
+msgstr ""
+"ä¸é¢è¡¨æ ¼ä¸ååºäºå¨ Hibernte ä¸âæ¯ä¸ªå
·ä½ç±»ä¸å¼ 表âççç¥åéå¼å¤æçéå¶ã "
-#. Tag: title
-#: inheritance_mapping.xml:288
+#. Tag: term
#, no-c-format
-msgid "Features of inheritance mappings"
-msgstr "ç»§æ¿æ å°ç¹æ§(Features of inheritance mappings)"
+msgid "table per class-heirarchy"
+msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表 "
-#. Tag: entry
-#: inheritance_mapping.xml:301
+#. Tag: para
#, no-c-format
-msgid "Inheritance strategy"
-msgstr "ç»§æ¿çç¥(Inheritance strategy)"
+msgid "Polymorphic many-to-one: <code><many-to-one></code>"
+msgstr "夿æ§å¤å¯¹ä¸ï¼<code><many-to-one></code>"
-#. Tag: entry
-#: inheritance_mapping.xml:302
+#. Tag: para
#, no-c-format
-msgid "Polymorphic many-to-one"
-msgstr "夿å¤å¯¹ä¸"
+msgid "Polymorphic one-to-one: <code><one-to-one></code>"
+msgstr "夿æ§ä¸å¯¹ä¸ï¼<code><one-to-one></code>"
-#. Tag: entry
-#: inheritance_mapping.xml:303
+#. Tag: para
#, no-c-format
-msgid "Polymorphic one-to-one"
-msgstr "夿ä¸å¯¹ä¸"
+msgid "Polymorphic one-to-many: <code><one-to-many></code>"
+msgstr "夿æ§ä¸å¯¹å¤ï¼<code><one-to-many></code>"
-#. Tag: entry
-#: inheritance_mapping.xml:304
+#. Tag: para
#, no-c-format
-msgid "Polymorphic one-to-many"
-msgstr "夿ä¸å¯¹å¤"
+msgid "Polymorphic many-to-many: <code><many-to-many></code>"
+msgstr "夿æ§å¤å¯¹å¤ï¼<code><many-to-many></code>"
-#. Tag: entry
-#: inheritance_mapping.xml:305
+#. Tag: para
#, no-c-format
-msgid "Polymorphic many-to-many"
-msgstr "夿å¤å¯¹å¤"
-
-#. Tag: entry
-#: inheritance_mapping.xml:306
-#, no-c-format
-msgid "Polymorphic <literal>load()/get()</literal>"
+msgid ""
+"Polymorphic <literal>load()</literal> or <literal>get()</literal>: <code>s."
+"get(Payment.class, id)</code>"
msgstr ""
+"å¤ææ§ <literal>load()</literal> æ <literal>get()</literal>ï¼<code>s.get"
+"(Payment.class, id)</code>"
-#. Tag: entry
-#: inheritance_mapping.xml:307
+#. Tag: para
#, no-c-format
-msgid "Polymorphic queries"
-msgstr "夿æ¥è¯¢"
+msgid "Polymorphic queries: <code>from Payment p</code>"
+msgstr "å¤ææ§æ¥è¯¢ï¼<code>from Payment p</code>"
-#. Tag: entry
-#: inheritance_mapping.xml:308
+#. Tag: para
#, no-c-format
-msgid "Polymorphic joins"
-msgstr "å¤æè¿æ¥(join)"
+msgid "Polymorphic joins: <code>from Order o join o.payment p</code>"
+msgstr "å¤ææ§ joinï¼<code>from Order o join o.payment p</code>"
-#. Tag: entry
-#: inheritance_mapping.xml:309
+#. Tag: para
#, no-c-format
-msgid "Outer join fetching"
-msgstr "å¤è¿æ¥(Outer join)读å"
+msgid "Outer join fetching is supported."
+msgstr "æ¯æå¤è¿æ¥ï¼Outer joinï¼è¯»åã"
-#. Tag: entry
-#: inheritance_mapping.xml:314
+#. Tag: term
#, no-c-format
-msgid "table per class-hierarchy"
-msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表"
+msgid "table per concrete-class (union-subclass)"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼union-subclassï¼"
-#. Tag: literal
-#: inheritance_mapping.xml:315 inheritance_mapping.xml:326
-#: inheritance_mapping.xml:337
+#. Tag: para
#, no-c-format
-msgid "<many-to-one>"
-msgstr "<many-to-one>"
+msgid ""
+"Polymorphic one-to-many: <code><one-to-many></code> (for <code>inverse="
+"\"true\"</code> only)"
+msgstr ""
+"夿æ§ä¸å¯¹å¤ï¼<literal><one-to-many></literal> (ä»
éç¨äº "
+"<literal>inverse=\"true\"</literal>)"
-#. Tag: literal
-#: inheritance_mapping.xml:316 inheritance_mapping.xml:327
-#: inheritance_mapping.xml:338
+#. Tag: term
#, no-c-format
-msgid "<one-to-one>"
-msgstr "<one-to-one>"
+msgid "table per concrete class (implicit polymorphism"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼éå¼å¤æï¼ "
-#. Tag: literal
-#: inheritance_mapping.xml:317 inheritance_mapping.xml:328
+#. Tag: para
#, no-c-format
-msgid "<one-to-many>"
-msgstr "<one-to-many>"
+msgid "Polymorphic many-to-one: <code><any></code>"
+msgstr "夿å¤å¯¹ä¸ï¼<code><any></code>"
-#. Tag: literal
-#: inheritance_mapping.xml:318 inheritance_mapping.xml:329
-#: inheritance_mapping.xml:340
+#. Tag: para
#, no-c-format
-msgid "<many-to-many>"
-msgstr "<many-to-many>"
+msgid ""
+"Polymorphic <literal>load()</literal> or <literal>get()</literal>: <code>s."
+"createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</"
+"code>"
+msgstr ""
+"å¤ææ§ <literal>load()</literal> æ <literal>get()</literal>ï¼<code>s."
+"createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</"
+"code>"
-#. Tag: literal
-#: inheritance_mapping.xml:319 inheritance_mapping.xml:330
-#: inheritance_mapping.xml:341
+#. Tag: para
#, no-c-format
-msgid "s.get(Payment.class, id)"
-msgstr "s.get(Payment.class, id)"
+msgid ""
+"Polymorphic one-to-one, polymorphic one-to-many, polymorphic joins, and "
+"outer join fetching are not supported."
+msgstr "夿æ§ä¸å¯¹ä¸ã夿æ§ä¸å¯¹å¤ï¼ä¸æ¯æå¤ææ§ join å outer join fetchingã"
-#. Tag: literal
-#: inheritance_mapping.xml:320 inheritance_mapping.xml:331
-#: inheritance_mapping.xml:342 inheritance_mapping.xml:353
-#, no-c-format
-msgid "from Payment p"
-msgstr "from Payment p"
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "<para>æ¯ä¸ªåç±»ä¸å¼ 表</para>"
-#. Tag: literal
-#: inheritance_mapping.xml:321 inheritance_mapping.xml:332
-#: inheritance_mapping.xml:343
-#, no-c-format
-msgid "from Order o join o.payment p"
-msgstr "from Order o join o.payment p"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ " <hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value="
+#~ "\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-"
+#~ "value=\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>"
-#. Tag: emphasis
-#: inheritance_mapping.xml:322 inheritance_mapping.xml:333
-#: inheritance_mapping.xml:344
-#, no-c-format
-msgid "supported"
-msgstr "æ¯æ"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
-#. Tag: entry
-#: inheritance_mapping.xml:325
-#, fuzzy, no-c-format
-msgid "<entry>table per subclass</entry>"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ¯ä¸ªåç±»ä¸å¼ 表(table per subclass)\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æ¯ä¸ªåç±»ä¸å¼ 表"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
-#. Tag: entry
-#: inheritance_mapping.xml:336
-#, no-c-format
-msgid "table per concrete-class (union-subclass)"
-msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表(union-subclass)"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>"
-#. Tag: entry
-#: inheritance_mapping.xml:339
-#, no-c-format
-msgid ""
-"<literal><one-to-many></literal> (for <literal>inverse=\"true\"</"
-"literal> only)"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
-#. Tag: entry
-#: inheritance_mapping.xml:347
-#, no-c-format
-msgid "table per concrete class (implicit polymorphism)"
-msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表(éå¼å¤æ)"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class="
+#~ "\"Payment\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment\"/"
+#~ ">"
-#. Tag: literal
-#: inheritance_mapping.xml:348
-#, no-c-format
-msgid "<any>"
-msgstr "<any>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>"
-#. Tag: emphasis
-#: inheritance_mapping.xml:349 inheritance_mapping.xml:350
-#: inheritance_mapping.xml:354 inheritance_mapping.xml:355
-#, no-c-format
-msgid "not supported"
-msgstr "䏿¯æ"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>"
-#. Tag: literal
-#: inheritance_mapping.xml:351
-#, no-c-format
-msgid "<many-to-any>"
-msgstr "<many-to-any>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>"
-#. Tag: literal
-#: inheritance_mapping.xml:352
-#, no-c-format
-msgid ""
-"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
-msgstr ""
-"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/"
+#~ ">\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN"
+#~ "\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
-#~ msgid "load()/get()"
-#~ msgstr "load()/get()"
+#~ msgid "Features of inheritance mappings"
+#~ msgstr "ç»§æ¿æ å°ç¹æ§ï¼Features of inheritance mappingsï¼"
-#~ msgid "Polymorphic <placeholder-1/>"
-#~ msgstr "夿 <placeholder-1/>"
+#~ msgid "Inheritance strategy"
+#~ msgstr "ç»§æ¿çç¥ï¼Inheritance strategyï¼"
-#~ msgid "inverse=\"true\""
-#~ msgstr "inverse=\"true\""
+#~ msgid "Polymorphic one-to-one"
+#~ msgstr "夿ä¸å¯¹ä¸"
-#~ msgid "<placeholder-1/> (for <placeholder-2/> only)"
-#~ msgstr "<placeholder-1/> (ä»
对äº<placeholder-2/>çæ
åµ)"
+#~ msgid "Polymorphic one-to-many"
+#~ msgstr "夿ä¸å¯¹å¤"
+
+#~ msgid "Polymorphic many-to-many"
+#~ msgstr "夿å¤å¯¹å¤"
+
+#~ msgid "Polymorphic <literal>load()/get()</literal>"
+#~ msgstr "Polymorphic <literal>load()/get()</literal>"
+
+#~ msgid "Polymorphic queries"
+#~ msgstr "夿æ¥è¯¢"
+
+#~ msgid "Polymorphic joins"
+#~ msgstr "å¤æè¿æ¥ï¼joinï¼"
+
+#~ msgid "<many-to-one>"
+#~ msgstr "<many-to-one>"
+
+#~ msgid "<one-to-one>"
+#~ msgstr "<one-to-one>"
+
+#~ msgid "<one-to-many>"
+#~ msgstr "<one-to-many>"
+
+#~ msgid "<many-to-many>"
+#~ msgstr "<many-to-many>"
+
+#~ msgid "s.get(Payment.class, id)"
+#~ msgstr "s.get(Payment.class, id)"
+
+#~ msgid "from Payment p"
+#~ msgstr "from Payment p"
+
+#~ msgid "supported"
+#~ msgstr "æ¯æ"
+
+#~ msgid "<entry>table per subclass</entry>"
+#~ msgstr "<entry>æ¯ä¸ªåç±»ä¸å¼ 表</entry>"
+
+#~ msgid "<any>"
+#~ msgstr "<any>"
+
+#~ msgid "not supported"
+#~ msgstr "䏿¯æ"
+
+#~ msgid "<many-to-any>"
+#~ msgstr "<many-to-any>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/performance.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/performance.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/performance.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,2484 +1,1440 @@
+# translation of performance.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: performance\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"PO-Revision-Date: 2009-12-07 09:35+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: performance.xml:29
#, no-c-format
msgid "Improving performance"
msgstr "æåæ§è½"
#. Tag: title
-#: performance.xml:32
#, no-c-format
msgid "Fetching strategies"
-msgstr "æåçç¥(Fetching strategies)"
+msgstr "æåçç¥ï¼Fetching strategiesï¼"
#. Tag: para
-#: performance.xml:34
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate uses a <emphasis>fetching strategy</emphasis> to retrieve "
-"associated objects if the application needs to navigate the association. "
-"Fetch strategies can be declared in the O/R mapping metadata, or over-ridden "
-"by a particular HQL or <literal>Criteria</literal> query."
-msgstr ""
-"<emphasis>æåçç¥ï¼fetching strategyï¼</emphasis> æ¯æï¼å½åºç¨ç¨åºéè¦å¨"
-"ï¼Hibernateå®ä½å¯¹è±¡å¾çï¼å
³èå
³ç³»é´è¿è¡å¯¼èªçæ¶åï¼ Hibernateå¦ä½è·åå
³è对象"
-"ççç¥ãæåçç¥å¯ä»¥å¨O/Ræ å°çå
æ°æ®ä¸å£°æï¼ä¹å¯ä»¥å¨ç¹å®çHQL æ<literal>æ¡"
-"ä»¶æ¥è¯¢ï¼Criteria Queryï¼</literal>ä¸é载声æã"
+#, no-c-format
+msgid "Hibernate uses a <emphasis>fetching strategy</emphasis> to retrieve associated objects if the application needs to navigate the association. Fetch strategies can be declared in the O/R mapping metadata, or over-ridden by a particular HQL or <literal>Criteria</literal> query."
+msgstr "å½åºç¨ç¨åºéè¦å¨ï¼Hibernateå®ä½å¯¹è±¡å¾çï¼å
³èå
³ç³»é´è¿è¡å¯¼èªçæ¶åï¼Hibernate ä½¿ç¨ <emphasis>æåçç¥ï¼fetching strategyï¼</emphasis> è·åå
³è对象ãæåçç¥å¯ä»¥å¨ O/R æ å°çå
æ°æ®ä¸å£°æï¼ä¹å¯ä»¥å¨ç¹å®ç HQL æ<literal>æ¡ä»¶æ¥è¯¢ï¼Criteria Queryï¼</literal>ä¸é载声æã"
#. Tag: para
-#: performance.xml:41
#, no-c-format
msgid "Hibernate3 defines the following fetching strategies:"
msgstr "Hibernate3 å®ä¹äºå¦ä¸å ç§æåçç¥ï¼"
#. Tag: para
-#: performance.xml:47
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Join fetching</emphasis>: Hibernate retrieves the associated "
-"instance or collection in the same <literal>SELECT</literal>, using an "
-"<literal>OUTER JOIN</literal>."
-msgstr ""
-"<emphasis>è¿æ¥æåï¼Join fetchingï¼</emphasis> - Hibernateéè¿ å¨"
-"<literal>SELECT</literal>è¯å¥ä½¿ç¨<literal>OUTER JOIN</literal>ï¼å¤è¿æ¥ï¼æ¥ è·"
-"å¾å¯¹è±¡çå
³èå®ä¾æè
å
³èéåã"
+#, no-c-format
+msgid "<emphasis>Join fetching</emphasis>: Hibernate retrieves the associated instance or collection in the same <literal>SELECT</literal>, using an <literal>OUTER JOIN</literal>."
+msgstr "<emphasis>è¿æ¥æåï¼Join fetchingï¼</emphasis>ï¼Hibernate éè¿å¨ <literal>SELECT</literal> è¯å¥ä½¿ç¨ <literal>OUTER JOIN</literal>ï¼å¤è¿æ¥ï¼æ¥è·å¾å¯¹è±¡çå
³èå®ä¾æè
å
³èéåã "
#. Tag: para
-#: performance.xml:54
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Select fetching</emphasis>: a second <literal>SELECT</literal> is "
-"used to retrieve the associated entity or collection. Unless you explicitly "
-"disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this "
-"second select will only be executed when you access the association."
-msgstr ""
-"<emphasis>æ¥è¯¢æåï¼Select fetchingï¼</emphasis> - å¦å¤åé䏿¡ "
-"<literal>SELECT</literal> è¯å¥æåå½å对象çå
³èå®ä½æéåãé¤éä½ æ¾å¼çæå®"
-"<literal>lazy=\"false\"</literal>ç¦æ¢ å»¶è¿æåï¼lazy fetchingï¼ï¼å¦ååªæå½ä½ "
-"çæ£è®¿é®å
³èå
³ç³»çæ¶åï¼æä¼æ§è¡ç¬¬äºæ¡selectè¯å¥ã"
+#, no-c-format
+msgid "<emphasis>Select fetching</emphasis>: a second <literal>SELECT</literal> is used to retrieve the associated entity or collection. Unless you explicitly disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this second select will only be executed when you access the association."
+msgstr "<emphasis>æ¥è¯¢æåï¼Select fetchingï¼</emphasis>ï¼å¦å¤åé䏿¡ <literal>SELECT</literal> è¯å¥æåå½å对象çå
³èå®ä½æéåãé¤éä½ æ¾å¼çæå® <literal>lazy=\"false\"</literal> ç¦æ¢ å»¶è¿æåï¼lazy fetchingï¼ï¼å¦ååªæå½ä½ çæ£è®¿é®å
³èå
³ç³»çæ¶åï¼æä¼æ§è¡ç¬¬äºæ¡ select è¯å¥ã"
#. Tag: para
-#: performance.xml:63
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Subselect fetching</emphasis>: a second <literal>SELECT</literal> "
-"is used to retrieve the associated collections for all entities retrieved in "
-"a previous query or fetch. Unless you explicitly disable lazy fetching by "
-"specifying <literal>lazy=\"false\"</literal>, this second select will only "
-"be executed when you access the association."
-msgstr ""
-"<emphasis>åæ¥è¯¢æåï¼Subselect fetchingï¼</emphasis> - å¦å¤åé䏿¡"
-"<literal>SELECT</literal> è¯å¥æåå¨å颿¥è¯¢å°ï¼æè
æåå°ï¼çææå®ä½å¯¹è±¡ç"
-"å
³èéåãé¤éä½ æ¾å¼çæå®<literal>lazy=\"false\"</literal> ç¦æ¢å»¶è¿æå"
-"ï¼lazy fetchingï¼ï¼å¦ååªæå½ä½ çæ£è®¿é®å
³èå
³ç³»çæ¶åï¼æä¼æ§è¡ç¬¬äºæ¡selectè¯"
-"å¥ã"
+#, no-c-format
+msgid "<emphasis>Subselect fetching</emphasis>: a second <literal>SELECT</literal> is used to retrieve the associated collections for all entities retrieved in a previous query or fetch. Unless you explicitly disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this second select will only be executed when you access the association."
+msgstr "<emphasis>åæ¥è¯¢æåï¼Subselect fetchingï¼</emphasis>ï¼å¦å¤åé䏿¡ <literal>SELECT</literal> è¯å¥æåå¨å颿¥è¯¢å°ï¼æè
æåå°ï¼çææå®ä½å¯¹è±¡çå
³èéåãé¤éä½ æ¾å¼çæå® <literal>lazy=\"false\"</literal> ç¦æ¢å»¶è¿æåï¼lazy fetchingï¼ï¼å¦ååªæå½ä½ çæ£è®¿é®å
³èå
³ç³»çæ¶åï¼æä¼æ§è¡ç¬¬äºæ¡ select è¯å¥ã"
#. Tag: para
-#: performance.xml:72
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Batch fetching</emphasis>: an optimization strategy for select "
-"fetching. Hibernate retrieves a batch of entity instances or collections in "
-"a single <literal>SELECT</literal> by specifying a list of primary or "
-"foreign keys."
-msgstr ""
-"<emphasis>æ¹éæåï¼Batch fetchingï¼</emphasis> - 对æ¥è¯¢æåçä¼åæ¹æ¡ï¼ éè¿"
-"æå®ä¸ä¸ªä¸»é®æå¤é®å表ï¼Hibernate使ç¨åæ¡<literal>SELECT</literal>è¯å¥è·åä¸"
-"æ¹å¯¹è±¡å®ä¾æéåã"
+#, no-c-format
+msgid "<emphasis>Batch fetching</emphasis>: an optimization strategy for select fetching. Hibernate retrieves a batch of entity instances or collections in a single <literal>SELECT</literal> by specifying a list of primary or foreign keys."
+msgstr "<emphasis>æ¹éæåï¼Batch fetchingï¼</emphasis>ï¼å¯¹æ¥è¯¢æåçä¼åæ¹æ¡ï¼éè¿æå®ä¸ä¸ªä¸»é®æå¤é®å表ï¼Hibernate 使ç¨åæ¡ <literal>SELECT</literal> è¯å¥è·å䏿¹å¯¹è±¡å®ä¾æéåã"
#. Tag: para
-#: performance.xml:81
#, no-c-format
msgid "Hibernate also distinguishes between:"
-msgstr "Hibernateä¼åºåä¸ååç§æ
åµï¼"
+msgstr "Hibernate ä¼åºåä¸ååç§æ
åµï¼"
#. Tag: para
-#: performance.xml:87
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Immediate fetching</emphasis>: an association, collection or "
-"attribute is fetched immediately when the owner is loaded."
-msgstr ""
-"<emphasis>Immediate fetchingï¼ç«å³æå</emphasis> - å½å®¿ä¸»è¢«å è½½æ¶ï¼å
³èãé"
-"åæå±æ§è¢«ç«å³æåã"
+#, no-c-format
+msgid "<emphasis>Immediate fetching</emphasis>: an association, collection or attribute is fetched immediately when the owner is loaded."
+msgstr "<emphasis>Immediate fetchingï¼ç«å³æå</emphasis>ï¼å½å®¿ä¸»è¢«å è½½æ¶ï¼å
³èãéåæå±æ§è¢«ç«å³æåã"
#. Tag: para
-#: performance.xml:93
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Lazy collection fetching</emphasis>: a collection is fetched when "
-"the application invokes an operation upon that collection. This is the "
-"default for collections."
-msgstr ""
-"<emphasis>Lazy collection fetchingï¼å»¶è¿éåæå</emphasis>- ç´å°åºç¨ç¨åºå¯¹é"
-"åè¿è¡äºä¸æ¬¡æä½æ¶ï¼éåæè¢«æåãï¼å¯¹éåèè¨è¿æ¯é»è®¤è¡ä¸ºãï¼"
+#, no-c-format
+msgid "<emphasis>Lazy collection fetching</emphasis>: a collection is fetched when the application invokes an operation upon that collection. This is the default for collections."
+msgstr "<emphasis>Lazy collection fetchingï¼å»¶è¿éåæå</emphasis>ï¼ç´å°åºç¨ç¨åºå¯¹éåè¿è¡äºä¸æ¬¡æä½æ¶ï¼éåæè¢«æåï¼å¯¹éåèè¨è¿æ¯é»è®¤è¡ä¸ºï¼ã"
#. Tag: para
-#: performance.xml:100
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>\"Extra-lazy\" collection fetching</emphasis>: individual elements "
-"of the collection are accessed from the database as needed. Hibernate tries "
-"not to fetch the whole collection into memory unless absolutely needed. It "
-"is suitable for large collections."
-msgstr ""
-"<emphasis>\"Extra-lazy\" collection fetching,\"Extra-lazy\"éåæå</"
-"emphasis> -对éåç±»ä¸çæ¯ä¸ªå
ç´ èè¨ï¼é½æ¯ç´å°éè¦æ¶æå»è®¿é®æ°æ®åºãé¤éç»å¯¹å¿
"
-"è¦ï¼Hibernateä¸ä¼è¯å¾å»ææ´ä¸ªéå齿åå°å
å鿥ï¼éç¨äºé常大çéåï¼ã"
+#, no-c-format
+msgid "<emphasis>\"Extra-lazy\" collection fetching</emphasis>: individual elements of the collection are accessed from the database as needed. Hibernate tries not to fetch the whole collection into memory unless absolutely needed. It is suitable for large collections."
+msgstr "<emphasis>\"Extra-lazy\" collection fetching,\"Extra-lazy\" éåæå</emphasis>ï¼å¯¹éåç±»ä¸çæ¯ä¸ªå
ç´ èè¨ï¼é½æ¯ç´å°éè¦æ¶æå»è®¿é®æ°æ®åºãé¤éç»å¯¹å¿
è¦ï¼Hibernate ä¸ä¼è¯å¾å»ææ´ä¸ªéå齿åå°å
å鿥ï¼éç¨äºé常大çéåï¼ã"
#. Tag: para
-#: performance.xml:108
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Proxy fetching</emphasis>: a single-valued association is fetched "
-"when a method other than the identifier getter is invoked upon the "
-"associated object."
-msgstr ""
-"<emphasis>Proxy fetchingï¼ä»£çæå</emphasis> - 对è¿ååå¼çå
³èèè¨ï¼å½å
¶æ"
-"ä¸ªæ¹æ³è¢«è°ç¨ï¼èé对å
¶å
³é®åè¿è¡getæä½æ¶ææåã"
+#, no-c-format
+msgid "<emphasis>Proxy fetching</emphasis>: a single-valued association is fetched when a method other than the identifier getter is invoked upon the associated object."
+msgstr "<emphasis>Proxy fetchingï¼ä»£çæå</emphasis>ï¼å¯¹è¿ååå¼çå
³èèè¨ï¼å½å
¶æä¸ªæ¹æ³è¢«è°ç¨ï¼èé对å
¶å
³é®åè¿è¡ get æä½æ¶ææåã"
#. Tag: para
-#: performance.xml:115
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>\"No-proxy\" fetching</emphasis>: a single-valued association is "
-"fetched when the instance variable is accessed. Compared to proxy fetching, "
-"this approach is less lazy; the association is fetched even when only the "
-"identifier is accessed. It is also more transparent, since no proxy is "
-"visible to the application. This approach requires buildtime bytecode "
-"instrumentation and is rarely necessary."
-msgstr ""
-"<emphasis>\"No-proxy\" fetching,é代çæå</emphasis> - 对è¿ååå¼çå
³èè"
-"è¨ï¼å½å®ä¾åé被访é®çæ¶åè¿è¡æåãä¸ä¸é¢ç代çæåç¸æ¯ï¼è¿ç§æ¹æ³æ²¡æé£ä¹âå»¶"
-"è¿âå¾å害(å°±ç®åªè®¿é®æ è¯ç¬¦ï¼ä¹ä¼å¯¼è´å
³èæå)使¯æ´å éæï¼å 为对åºç¨ç¨åºæ¥"
-"说ï¼ä¸åçå°proxyãè¿ç§æ¹æ³éè¦å¨ç¼è¯æé´è¿è¡åèç å¢å¼ºæä½ï¼å æ¤å¾å°éè¦ç¨"
-"å°ã"
+#, no-c-format
+msgid "<emphasis>\"No-proxy\" fetching</emphasis>: a single-valued association is fetched when the instance variable is accessed. Compared to proxy fetching, this approach is less lazy; the association is fetched even when only the identifier is accessed. It is also more transparent, since no proxy is visible to the application. This approach requires buildtime bytecode instrumentation and is rarely necessary."
+msgstr "<emphasis>\"No-proxy\" fetchingï¼é代çæå</emphasis>ï¼å¯¹è¿ååå¼çå
³èèè¨ï¼å½å®ä¾åé被访é®çæ¶åè¿è¡æåãä¸ä¸é¢ç代çæåç¸æ¯ï¼è¿ç§æ¹æ³æ²¡æé£ä¹âå»¶è¿âå¾å害ï¼å°±ç®åªè®¿é®æ è¯ç¬¦ï¼ä¹ä¼å¯¼è´å
³èæåï¼ä½æ¯æ´å éæï¼å 为对åºç¨ç¨åºæ¥è¯´ï¼ä¸åçå° proxyãè¿ç§æ¹æ³éè¦å¨ç¼è¯æé´è¿è¡åèç å¢å¼ºæä½ï¼å æ¤å¾å°éè¦ç¨å°ã"
#. Tag: para
-#: performance.xml:125
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Lazy attribute fetching</emphasis>: an attribute or single valued "
-"association is fetched when the instance variable is accessed. This approach "
-"requires buildtime bytecode instrumentation and is rarely necessary."
-msgstr ""
-"<emphasis>Lazy attribute fetchingï¼å±æ§å»¶è¿å è½½</emphasis> - 坹屿§æè¿ååå¼"
-"çå
³èèè¨ï¼å½å
¶å®ä¾åé被访é®çæ¶åè¿è¡æåãéè¦ç¼è¯æåèç 强åï¼å æ¤è¿ä¸"
-"æ¹æ³å¾å°æ¯å¿
è¦çã"
+#, no-c-format
+msgid "<emphasis>Lazy attribute fetching</emphasis>: an attribute or single valued association is fetched when the instance variable is accessed. This approach requires buildtime bytecode instrumentation and is rarely necessary."
+msgstr "<emphasis>Lazy attribute fetchingï¼å±æ§å»¶è¿å è½½</emphasis>ï¼å¯¹å±æ§æè¿ååå¼çå
³èèè¨ï¼å½å
¶å®ä¾åé被访é®çæ¶åè¿è¡æåãéè¦ç¼è¯æåèç 强åï¼å æ¤è¿ä¸æ¹æ³å¾å°æ¯å¿
è¦çã"
#. Tag: para
-#: performance.xml:134
-#, fuzzy, no-c-format
-msgid ""
-"We have two orthogonal notions here: <emphasis>when</emphasis> is the "
-"association fetched and <emphasis>how</emphasis> is it fetched. It is "
-"important that you do not confuse them. We use <literal>fetch</literal> to "
-"tune performance. We can use <literal>lazy</literal> to define a contract "
-"for what data is always available in any detached instance of a particular "
-"class."
-msgstr ""
-"è¿éæä¸¤ä¸ªæ£äº¤çæ¦å¿µï¼å
³è<emphasis>使¶</emphasis>被æåï¼ä»¥å被<emphasis>å¦"
-"ä½</emphasis>æåï¼ä¼éç¨ä»ä¹æ ·çSQLè¯å¥ï¼ãä¸è¦æ··æ·å®ä»¬ï¼æä»¬ä½¿ç¨<literal>æ"
-"å</literal>æ¥æ¹åæ§è½ãæä»¬ä½¿ç¨<literal>å»¶è¿</literal>æ¥å®ä¹ä¸äºå¥çº¦ï¼å¯¹æç¹"
-"å®ç±»çæä¸ªè±ç®¡çå®ä¾ï¼ç¥éæåªäºæ°æ®æ¯å¯ä»¥ä½¿ç¨çã"
+#, no-c-format
+msgid "We have two orthogonal notions here: <emphasis>when</emphasis> is the association fetched and <emphasis>how</emphasis> is it fetched. It is important that you do not confuse them. We use <literal>fetch</literal> to tune performance. We can use <literal>lazy</literal> to define a contract for what data is always available in any detached instance of a particular class."
+msgstr "è¿éæä¸¤ä¸ªæ£äº¤çæ¦å¿µï¼å
³è<emphasis>使¶</emphasis>被æåï¼ä»¥å被<emphasis>å¦ä½</emphasis>æåï¼ä¼éç¨ä»ä¹æ ·ç SQL è¯å¥ï¼ã注æä¸è¦æ··æ·å®ä»¬ãæä»¬ä½¿ç¨<literal>æå</literal>æ¥æ¹åæ§è½ãæä»¬ä½¿ç¨<literal>å»¶è¿</literal>æ¥å®ä¹ä¸äºå¥çº¦ï¼å¯¹æç¹å®ç±»çæä¸ªè±ç®¡çå®ä¾ï¼ç¥éæåªäºæ°æ®æ¯å¯ä»¥ä½¿ç¨çã"
#. Tag: title
-#: performance.xml:143
#, no-c-format
msgid "Working with lazy associations"
msgstr "æä½å»¶è¿å è½½çå
³è"
#. Tag: para
-#: performance.xml:145
-#, fuzzy, no-c-format
-msgid ""
-"By default, Hibernate3 uses lazy select fetching for collections and lazy "
-"proxy fetching for single-valued associations. These defaults make sense for "
-"most associations in the majority of applications."
-msgstr ""
-"é»è®¤æ
åµä¸ï¼Hibernate 3对éå使ç¨å»¶è¿selectæåï¼å¯¹è¿ååå¼çå
³è使ç¨å»¶è¿ä»£ç"
-"æåã对å 乿¯ææçåºç¨èè¨ï¼å
¶ç»å¤§å¤æ°çå
³èï¼è¿ç§çç¥é½æ¯ææçã"
+#, no-c-format
+msgid "By default, Hibernate3 uses lazy select fetching for collections and lazy proxy fetching for single-valued associations. These defaults make sense for most associations in the majority of applications."
+msgstr "é»è®¤æ
åµä¸ï¼Hibernate 3 对éå使ç¨å»¶è¿ select æåï¼å¯¹è¿ååå¼çå
³è使ç¨å»¶è¿ä»£çæåã对å 乿¯ææçåºç¨èè¨ï¼å
¶ç»å¤§å¤æ°çå
³èï¼è¿ç§çç¥é½æ¯ææçã"
#. Tag: para
-#: performance.xml:151
-#, fuzzy, no-c-format
-msgid ""
-"If you set <literal>hibernate.default_batch_fetch_size</literal>, Hibernate "
-"will use the batch fetch optimization for lazy fetching. This optimization "
-"can also be enabled at a more granular level."
-msgstr ""
-"<emphasis>注æ:</emphasis>åè¥ä½ 设置äº<literal>hibernate."
-"default_batch_fetch_size</literal>,Hibernateä¼å¯¹å»¶è¿å è½½éåæ¹éæåä¼åæªæ½"
-"ï¼è¿ç§ä¼åä¹å¯è½ä¼å¨æ´ç»åççº§å«æå¼ï¼ã"
+#, no-c-format
+msgid "If you set <literal>hibernate.default_batch_fetch_size</literal>, Hibernate will use the batch fetch optimization for lazy fetching. This optimization can also be enabled at a more granular level."
+msgstr "åè¥ä½ è®¾ç½®äº <literal>hibernate.default_batch_fetch_size</literal>ï¼Hibernate ä¼å¯¹å»¶è¿å è½½éåæ¹éæåä¼åæªæ½ï¼è¿ç§ä¼åä¹å¯è½ä¼å¨æ´ç»åççº§å«æå¼ï¼ã"
#. Tag: para
-#: performance.xml:158
-#, fuzzy, no-c-format
-msgid ""
-"Please be aware that access to a lazy association outside of the context of "
-"an open Hibernate session will result in an exception. For example:"
-msgstr ""
-"ç¶èï¼ä½ å¿
é¡»äºè§£å»¶è¿æå带æ¥çä¸ä¸ªé®é¢ãå¨ä¸ä¸ªæå¼çHibernate sessionä¸ä¸æä¹"
-"å¤è°ç¨å»¶è¿éåä¼å¯¼è´ä¸æ¬¡æå¤ãæ¯å¦ï¼"
-
-#. Tag: programlisting
-#: performance.xml:164
#, no-c-format
-msgid ""
-"<![CDATA[s = sessions.openSession();\n"
-"Transaction tx = s.beginTransaction();\n"
-" \n"
-"User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n"
-" .setString(\"userName\", userName).uniqueResult();\n"
-"Map permissions = u.getPermissions();\n"
-"\n"
-"tx.commit();\n"
-"s.close();\n"
-"\n"
-"Integer accessLevel = (Integer) permissions.get(\"accounts\"); // Error!]]>"
-msgstr ""
+msgid "Please be aware that access to a lazy association outside of the context of an open Hibernate session will result in an exception. For example:"
+msgstr "ç¶èï¼ä½ å¿
é¡»äºè§£å»¶è¿æå带æ¥çä¸ä¸ªé®é¢ãå¨ä¸ä¸ªæå¼ç Hibernate session ä¸ä¸æä¹å¤è°ç¨å»¶è¿éåä¼å¯¼è´ä¸æ¬¡æå¤ãæ¯å¦ï¼ "
#. Tag: para
-#: performance.xml:166
-#, fuzzy, no-c-format
-msgid ""
-"Since the permissions collection was not initialized when the "
-"<literal>Session</literal> was closed, the collection will not be able to "
-"load its state. <emphasis>Hibernate does not support lazy initialization for "
-"detached objects</emphasis>. This can be fixed by moving the code that reads "
-"from the collection to just before the transaction is committed."
-msgstr ""
-"å¨<literal>Session</literal>å
³éåï¼permessionséåå°æ¯æªå®ä¾åçãä¸åå¯ç¨ï¼"
-"å æ¤æ æ³æ£å¸¸è½½å
¥å
¶ç¶æã <emphasis>Hibernate对è±ç®¡å¯¹è±¡ä¸æ¯æå»¶è¿å®ä¾å</"
-"emphasis>. è¿éçä¿®æ¹æ¹æ³æ¯ï¼å°permissionsè¯»åæ°æ®ç代ç ç§»å°tx.commit()ä¹"
-"åã"
+#, no-c-format
+msgid "Since the permissions collection was not initialized when the <literal>Session</literal> was closed, the collection will not be able to load its state. <emphasis>Hibernate does not support lazy initialization for detached objects</emphasis>. This can be fixed by moving the code that reads from the collection to just before the transaction is committed."
+msgstr "å¨ <literal>Session</literal> å
³éåï¼permessions éåå°æ¯æªå®ä¾åçãä¸åå¯ç¨ï¼å æ¤æ æ³æ£å¸¸è½½å
¥å
¶ç¶æã <emphasis>Hibernate 对è±ç®¡å¯¹è±¡ä¸æ¯æå»¶è¿å®ä¾å</emphasis>ãè¿éçä¿®æ¹æ¹æ³æ¯å° permissions è¯»åæ°æ®ç代ç ç§»å°äºå¡æäº¤ä¹åã"
#. Tag: para
-#: performance.xml:174
-#, fuzzy, no-c-format
-msgid ""
-"Alternatively, you can use a non-lazy collection or association, by "
-"specifying <literal>lazy=\"false\"</literal> for the association mapping. "
-"However, it is intended that lazy initialization be used for almost all "
-"collections and associations. If you define too many non-lazy associations "
-"in your object model, Hibernate will fetch the entire database into memory "
-"in every transaction."
-msgstr ""
-"餿¤ä¹å¤ï¼éè¿å¯¹å
³èæ å°æå®<literal>lazy=\"false\"</literal>,æä»¬ä¹å¯ä»¥ä½¿ç¨"
-"éå»¶è¿çéåæå
³èã使¯ï¼ 对ç»å¤§é¨åéåæ¥è¯´ï¼æ´æ¨è使ç¨å»¶è¿æ¹å¼æåæ°æ®ãå¦"
-"æå¨ä½ ç对象模åä¸å®ä¹äºå¤ªå¤çéå»¶è¿å
³èï¼Hibernateæç»å ä¹éè¦å¨æ¯ä¸ªäºå¡ä¸è½½"
-"å
¥æ´ä¸ªæ°æ®åºå°å
åä¸ï¼"
+#, no-c-format
+msgid "Alternatively, you can use a non-lazy collection or association, by specifying <literal>lazy=\"false\"</literal> for the association mapping. However, it is intended that lazy initialization be used for almost all collections and associations. If you define too many non-lazy associations in your object model, Hibernate will fetch the entire database into memory in every transaction."
+msgstr "餿¤ä¹å¤ï¼éè¿å¯¹å
³èæ å°æå® <literal>lazy=\"false\"</literal>ï¼æä»¬ä¹å¯ä»¥ä½¿ç¨éå»¶è¿çéåæå
³èã使¯ï¼å¯¹ç»å¤§é¨åéåæ¥è¯´ï¼æ´æ¨è使ç¨å»¶è¿æ¹å¼æåæ°æ®ã妿å¨ä½ ç对象模åä¸å®ä¹äºå¤ªå¤çéå»¶è¿å
³èï¼Hibernate æç»å ä¹éè¦å¨æ¯ä¸ªäºå¡ä¸è½½å
¥æ´ä¸ªæ°æ®åºå°å
åä¸ã"
#. Tag: para
-#: performance.xml:183
-#, fuzzy, no-c-format
-msgid ""
-"On the other hand, you can use join fetching, which is non-lazy by nature, "
-"instead of select fetching in a particular transaction. We will now explain "
-"how to customize the fetching strategy. In Hibernate3, the mechanisms for "
-"choosing a fetch strategy are identical for single-valued associations and "
-"collections."
-msgstr ""
-"使¯ï¼å¦ä¸æ¹é¢ï¼å¨ä¸äºç¹æ®çäºå¡ä¸ï¼æä»¬ä¹ç»å¸¸éè¦ä½¿ç¨å°è¿æ¥æåï¼å®æ¬èº«ä¸å°±"
-"æ¯éå»¶è¿çï¼ï¼ä»¥ä»£æ¿æ¥è¯¢æåã ä¸é¢æä»¬å°ä¼å¾å¿«æç½å¦ä½å
·ä½çå®å¶Hibernateä¸"
-"çæåçç¥ãå¨Hibernate3ä¸ï¼å
·ä½éæ©åªç§æåçç¥çæºå¶æ¯åéæ© åå¼å
³èæéå"
-"å
³èç¸ä¸è´çã"
+#, no-c-format
+msgid "On the other hand, you can use join fetching, which is non-lazy by nature, instead of select fetching in a particular transaction. We will now explain how to customize the fetching strategy. In Hibernate3, the mechanisms for choosing a fetch strategy are identical for single-valued associations and collections."
+msgstr "使¯ï¼å¦ä¸æ¹é¢ï¼å¨ä¸äºç¹æ®çäºå¡ä¸ï¼æä»¬ä¹ç»å¸¸éè¦ä½¿ç¨å°è¿æ¥æåï¼å®æ¬èº«ä¸å°±æ¯éå»¶è¿çï¼ï¼ä»¥ä»£æ¿æ¥è¯¢æåã ä¸é¢æä»¬å°ä¼å¾å¿«æç½å¦ä½å
·ä½çå®å¶ Hibernate ä¸çæåçç¥ãå¨ Hibernate3 ä¸ï¼å
·ä½éæ©åªç§æåçç¥çæºå¶æ¯åéæ© åå¼å
³èæéåå
³èç¸ä¸è´çã "
#. Tag: title
-#: performance.xml:194
#, no-c-format
msgid "Tuning fetch strategies"
msgstr "è°æ´æåçç¥ï¼Tuning fetch strategiesï¼"
#. Tag: para
-#: performance.xml:196
#, no-c-format
-msgid ""
-"Select fetching (the default) is extremely vulnerable to N+1 selects "
-"problems, so we might want to enable join fetching in the mapping document:"
-msgstr ""
-"æ¥è¯¢æåï¼é»è®¤çï¼å¨N+1æ¥è¯¢çæ
åµä¸æ¯æå
¶èå¼±çï¼å æ¤æä»¬å¯è½ä¼è¦æ±å¨æ å°ææ¡£"
-"ä¸å®ä¹ä½¿ç¨è¿æ¥æåï¼"
+msgid "Select fetching (the default) is extremely vulnerable to N+1 selects problems, so we might want to enable join fetching in the mapping document:"
+msgstr "æ¥è¯¢æåï¼é»è®¤çï¼å¨ N+1 æ¥è¯¢çæ
åµä¸æ¯æå
¶èå¼±çï¼å æ¤æä»¬å¯è½ä¼è¦æ±å¨æ å°ææ¡£ä¸å®ä¹ä½¿ç¨è¿æ¥æåï¼"
-#. Tag: programlisting
-#: performance.xml:201
-#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"permissions\" \n"
-" fetch=\"join\">\n"
-" <key column=\"userId\"/>\n"
-" <one-to-many class=\"Permission\"/>\n"
-"</set]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: performance.xml:203
-#, no-c-format
-msgid "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
-msgstr ""
-
#. Tag: para
-#: performance.xml:205
#, no-c-format
-msgid ""
-"The <literal>fetch</literal> strategy defined in the mapping document "
-"affects:"
-msgstr ""
-"卿 å°ææ¡£ä¸å®ä¹ç<literal>æå</literal>çç¥å°ä¼å¯¹ä»¥ä¸å表æ¡ç®äº§çå½±åï¼"
+msgid "The <literal>fetch</literal> strategy defined in the mapping document affects:"
+msgstr "卿 å°ææ¡£ä¸å®ä¹ç<literal>æå</literal>çç¥å°ä¼å¯¹ä»¥ä¸å表æ¡ç®äº§çå½±åï¼"
#. Tag: para
-#: performance.xml:211
#, no-c-format
msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
-msgstr "éè¿<literal>get()</literal>æ<literal>load()</literal>æ¹æ³å徿°æ®ã"
+msgstr "éè¿ <literal>get()</literal> æ <literal>load()</literal> æ¹æ³å徿°æ®ã"
#. Tag: para
-#: performance.xml:216
#, no-c-format
msgid "retrieval that happens implicitly when an association is navigated"
msgstr "åªæå¨å
³èä¹é´è¿è¡å¯¼èªæ¶ï¼æä¼éå¼çå徿°æ®ã"
#. Tag: para
-#: performance.xml:221
#, no-c-format
msgid "<literal>Criteria</literal> queries"
msgstr "æ¡ä»¶æ¥è¯¢"
#. Tag: para
-#: performance.xml:226
#, no-c-format
msgid "HQL queries if <literal>subselect</literal> fetching is used"
-msgstr "使ç¨äº<literal>subselect</literal>æåçHQLæ¥è¯¢"
+msgstr "使ç¨äº <literal>subselect</literal> æåç HQL æ¥è¯¢"
#. Tag: para
-#: performance.xml:232
-#, fuzzy, no-c-format
-msgid ""
-"Irrespective of the fetching strategy you use, the defined non-lazy graph is "
-"guaranteed to be loaded into memory. This might, however, result in several "
-"immediate selects being used to execute a particular HQL query."
-msgstr ""
-"ä¸ç®¡ä½ 使ç¨åªç§æåçç¥ï¼å®ä¹ä¸ºéå»¶è¿çç±»å¾ä¼è¢«ä¿è¯ä¸å®è£
è½½å
¥å
åãæ³¨æè¿å¯è½"
-"æå³çå¨ä¸æ¡HQLæ¥è¯¢åç´§è·çä¸ç³»åçæ¥è¯¢ã"
+#, no-c-format
+msgid "Irrespective of the fetching strategy you use, the defined non-lazy graph is guaranteed to be loaded into memory. This might, however, result in several immediate selects being used to execute a particular HQL query."
+msgstr "ä¸ç®¡ä½ 使ç¨åªç§æåçç¥ï¼å®ä¹ä¸ºéå»¶è¿çç±»å¾ä¼è¢«ä¿è¯ä¸å®è£
è½½å
¥å
åãæ³¨æè¿å¯è½æå³çå¨ä¸æ¡ HQL æ¥è¯¢åç´§è·çä¸ç³»åçæ¥è¯¢ã "
#. Tag: para
-#: performance.xml:238
-#, fuzzy, no-c-format
-msgid ""
-"Usually, the mapping document is not used to customize fetching. Instead, we "
-"keep the default behavior, and override it for a particular transaction, "
-"using <literal>left join fetch</literal> in HQL. This tells Hibernate to "
-"fetch the association eagerly in the first select, using an outer join. In "
-"the <literal>Criteria</literal> query API, you would use "
-"<literal>setFetchMode(FetchMode.JOIN)</literal>."
-msgstr ""
-"é常æ
åµä¸ï¼æä»¬å¹¶ä¸ä½¿ç¨æ å°ææ¡£è¿è¡æåçç¥çå®å¶ãæ´å¤çæ¯ï¼ä¿æå
¶é»è®¤å¼ï¼"
-"ç¶åå¨ç¹å®çäºå¡ä¸ï¼ 使ç¨HQLç<literal>å·¦è¿æ¥æåï¼left join fetchï¼</"
-"literal> 对å
¶è¿è¡éè½½ãè¿å°éç¥ Hibernateå¨ç¬¬ä¸æ¬¡æ¥è¯¢ä¸ä½¿ç¨å¤é¨å
³èï¼outer "
-"joinï¼ï¼ç´æ¥å¾å°å
¶å
³èæ°æ®ã å¨<literal>æ¡ä»¶æ¥è¯¢</literal> APIä¸ï¼åºè¯¥è°ç¨ "
-"<literal>setFetchMode(FetchMode.JOIN)</literal>è¯å¥ã"
+#, no-c-format
+msgid "Usually, the mapping document is not used to customize fetching. Instead, we keep the default behavior, and override it for a particular transaction, using <literal>left join fetch</literal> in HQL. This tells Hibernate to fetch the association eagerly in the first select, using an outer join. In the <literal>Criteria</literal> query API, you would use <literal>setFetchMode(FetchMode.JOIN)</literal>."
+msgstr "é常æ
åµä¸ï¼æä»¬å¹¶ä¸ä½¿ç¨æ å°ææ¡£è¿è¡æåçç¥çå®å¶ãæ´å¤çæ¯ï¼ä¿æå
¶é»è®¤å¼ï¼ç¶åå¨ç¹å®çäºå¡ä¸ï¼ ä½¿ç¨ HQL ç<literal>å·¦è¿æ¥æåï¼left join fetchï¼</literal> 对å
¶è¿è¡éè½½ãè¿å°éç¥ Hibernateå¨ç¬¬ä¸æ¬¡æ¥è¯¢ä¸ä½¿ç¨å¤é¨å
³èï¼outer joinï¼ï¼ç´æ¥å¾å°å
¶å
³èæ°æ®ãå¨<literal>æ¡ä»¶æ¥è¯¢</literal> API ä¸ï¼åºè¯¥è°ç¨ <literal>setFetchModeï¼FetchMode.JOINï¼</literal>è¯å¥ã "
#. Tag: para
-#: performance.xml:247
-#, fuzzy, no-c-format
-msgid ""
-"If you want to change the fetching strategy used by <literal>get()</literal> "
-"or <literal>load()</literal>, you can use a <literal>Criteria</literal> "
-"query. For example:"
-msgstr ""
-"ä¹è®¸ä½ 忬¢ä»
ä»
éè¿æ¡ä»¶æ¥è¯¢ï¼å°±å¯ä»¥æ¹å<literal>get()</literal> æ "
-"<literal>load()</literal>è¯å¥ä¸çæ°æ®æåçç¥ãä¾å¦ï¼"
-
-#. Tag: programlisting
-#: performance.xml:253
#, no-c-format
-msgid ""
-"<![CDATA[User user = (User) session.createCriteria(User.class)\n"
-" .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
-" .add( Restrictions.idEq(userId) )\n"
-" .uniqueResult();]]>"
-msgstr ""
+msgid "If you want to change the fetching strategy used by <literal>get()</literal> or <literal>load()</literal>, you can use a <literal>Criteria</literal> query. For example:"
+msgstr "ä¹è®¸ä½ 忬¢ä»
ä»
éè¿æ¡ä»¶æ¥è¯¢ï¼å°±å¯ä»¥æ¹å <literal>get()</literal> æ <literal>load()</literal> è¯å¥ä¸çæ°æ®æåçç¥ãä¾å¦ï¼ "
#. Tag: para
-#: performance.xml:255
-#, fuzzy, no-c-format
-msgid ""
-"This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan"
-"\"."
-msgstr ""
-"ï¼è¿å°±æ¯å
¶ä»ORMè§£å³æ¹æ¡çâæå计å(fetch plan)âå¨Hibernateä¸ççä»·ç©ãï¼"
+#, no-c-format
+msgid "This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan\"."
+msgstr "è¿å°±æ¯å
¶ä» ORM è§£å³æ¹æ¡çâæå计åï¼fetch planï¼âå¨ Hibernate ä¸ççä»·ç©ã"
#. Tag: para
-#: performance.xml:259
-#, fuzzy, no-c-format
-msgid ""
-"A completely different approach to problems with N+1 selects is to use the "
-"second-level cache."
-msgstr "æªç¶ä¸åçä¸ç§é¿å
N+1次æ¥è¯¢çæ¹æ³æ¯ï¼ä½¿ç¨äºçº§ç¼åã"
+#, no-c-format
+msgid "A completely different approach to problems with N+1 selects is to use the second-level cache."
+msgstr "æªç¶ä¸åçä¸ç§é¿å
N+1 次æ¥è¯¢çæ¹æ³æ¯ï¼ä½¿ç¨äºçº§ç¼åã "
#. Tag: title
-#: performance.xml:267
#, no-c-format
msgid "Single-ended association proxies"
msgstr "å端å
³è代çï¼Single-ended association proxiesï¼"
#. Tag: para
-#: performance.xml:269
-#, fuzzy, no-c-format
-msgid ""
-"Lazy fetching for collections is implemented using Hibernate's own "
-"implementation of persistent collections. However, a different mechanism is "
-"needed for lazy behavior in single-ended associations. The target entity of "
-"the association must be proxied. Hibernate implements lazy initializing "
-"proxies for persistent objects using runtime bytecode enhancement which is "
-"accessed via the CGLIB library."
-msgstr ""
-"å¨Hinerbateä¸ï¼å¯¹éåçå»¶è¿æåçéç¨äºèªå·±çå®ç°æ¹æ³ã使¯ï¼å¯¹äºå端å
³èçå»¶"
-"è¿æåï¼åéè¦éç¨ å
¶ä»ä¸åçæºå¶ãå端å
³èçç®æ å®ä½å¿
须使ç¨ä»£çï¼Hihernate"
-"å¨è¿è¡æäºè¿å¶çº§ï¼éè¿ä¼å¼çCGLIBåºï¼ï¼ 为æä¹
对象å®ç°äºå»¶è¿è½½å
¥ä»£çã"
+#, no-c-format
+msgid "Lazy fetching for collections is implemented using Hibernate's own implementation of persistent collections. However, a different mechanism is needed for lazy behavior in single-ended associations. The target entity of the association must be proxied. Hibernate implements lazy initializing proxies for persistent objects using runtime bytecode enhancement which is accessed via the CGLIB library."
+msgstr "å¨ Hinerbate ä¸ï¼å¯¹éåçå»¶è¿æåçéç¨äºèªå·±çå®ç°æ¹æ³ã使¯ï¼å¯¹äºå端å
³èçå»¶è¿æåï¼åéè¦éç¨ å
¶ä»ä¸åçæºå¶ãå端å
³èçç®æ å®ä½å¿
须使ç¨ä»£çï¼Hihernate å¨è¿è¡æäºè¿å¶çº§ï¼éè¿ä¼å¼ç CGLIB åºï¼ï¼ 为æä¹
对象å®ç°äºå»¶è¿è½½å
¥ä»£çã "
#. Tag: para
-#: performance.xml:277
-#, fuzzy, no-c-format
-msgid ""
-"At startup, Hibernate3 generates proxies by default for all persistent "
-"classes and uses them to enable lazy fetching of <literal>many-to-one</"
-"literal> and <literal>one-to-one</literal> associations."
-msgstr ""
-"é»è®¤çï¼Hibernate3å°ä¼ä¸ºææçæä¹
对象产ç代çï¼å¨å¯å¨é¶æ®µï¼ï¼ç¶å使ç¨ä»ä»¬å®"
-"ç° <literal>å¤å¯¹ä¸ï¼many-to-oneï¼</literal>å
³èå<literal>ä¸å¯¹ä¸ï¼one-to-"
-"oneï¼</literal> å
³èçå»¶è¿æåã"
+#, no-c-format
+msgid "At startup, Hibernate3 generates proxies by default for all persistent classes and uses them to enable lazy fetching of <literal>many-to-one</literal> and <literal>one-to-one</literal> associations."
+msgstr "é»è®¤çï¼Hibernate3 å°ä¼ä¸ºææçæä¹
对象产ç代çï¼å¨å¯å¨é¶æ®µï¼ï¼ç¶å使ç¨ä»ä»¬å®ç° <literal>å¤å¯¹ä¸ï¼many-to-oneï¼</literal>å
³èå<literal>ä¸å¯¹ä¸ï¼one-to-oneï¼</literal> å
³èçå»¶è¿æåã "
#. Tag: para
-#: performance.xml:283
-#, fuzzy, no-c-format
-msgid ""
-"The mapping file may declare an interface to use as the proxy interface for "
-"that class, with the <literal>proxy</literal> attribute. By default, "
-"Hibernate uses a subclass of the class. <emphasis>The proxied class must "
-"implement a default constructor with at least package visibility. This "
-"constructor is recommended for all persistent classes</emphasis>."
-msgstr ""
-"卿 å°æä»¶ä¸ï¼å¯ä»¥éè¿è®¾ç½®<literal>proxy</literal>屿§ä¸ºç®æ class声æä¸ä¸ªæ¥å£"
-"ä¾ä»£çæ¥å£ä½¿ç¨ã é»è®¤çï¼Hibernateå°ä¼ä½¿ç¨è¯¥ç±»çä¸ä¸ªåç±»ã <emphasis>注æï¼è¢«"
-"代ççç±»å¿
é¡»å®ç°ä¸ä¸ªè³å°å
å¯è§çé»è®¤æé 彿°ï¼æä»¬å»ºè®®ææçæä¹
ç±»é½åºæ¥æè¿"
-"æ ·çæé 彿°</emphasis>"
+#, no-c-format
+msgid "The mapping file may declare an interface to use as the proxy interface for that class, with the <literal>proxy</literal> attribute. By default, Hibernate uses a subclass of the class. <emphasis>The proxied class must implement a default constructor with at least package visibility. This constructor is recommended for all persistent classes</emphasis>."
+msgstr "卿 å°æä»¶ä¸ï¼å¯ä»¥éè¿è®¾ç½® <literal>proxy</literal> 屿§ä¸ºç®æ class 声æä¸ä¸ªæ¥å£ä¾ä»£çæ¥å£ä½¿ç¨ã é»è®¤çï¼Hibernate å°ä¼ä½¿ç¨è¯¥ç±»çä¸ä¸ªåç±»ã<emphasis>注æï¼è¢«ä»£ççç±»å¿
é¡»å®ç°ä¸ä¸ªè³å°å
å¯è§çé»è®¤æé 彿°ï¼æä»¬å»ºè®®ææçæä¹
ç±»é½åºæ¥æè¿æ ·çæé 彿°ã</emphasis>"
#. Tag: para
-#: performance.xml:290
-#, fuzzy, no-c-format
-msgid ""
-"There are potential problems to note when extending this approach to "
-"polymorphic classes.For example:"
-msgstr "å¨å¦æ¤æ¹å¼å®ä¹ä¸ä¸ªå¤æç±»çæ¶åï¼æè®¸å¤å¼å¾æ³¨æçå¸¸è§æ§çé®é¢ï¼ä¾å¦ï¼"
-
-#. Tag: programlisting
-#: performance.xml:294
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
-" ......\n"
-" <subclass name=\"DomesticCat\">\n"
-" .....\n"
-" </subclass>\n"
-"</class>]]>"
-msgstr ""
+msgid "There are potential problems to note when extending this approach to polymorphic classes.For example:"
+msgstr "å¨å¦æ¤æ¹å¼å®ä¹ä¸ä¸ªå¤æç±»çæ¶åï¼æè®¸å¤å¼å¾æ³¨æçå¸¸è§æ§çé®é¢ï¼ä¾å¦ï¼ "
#. Tag: para
-#: performance.xml:296
#, no-c-format
-msgid ""
-"Firstly, instances of <literal>Cat</literal> will never be castable to "
-"<literal>DomesticCat</literal>, even if the underlying instance is an "
-"instance of <literal>DomesticCat</literal>:"
-msgstr ""
-"é¦å
ï¼<literal>Cat</literal>å®ä¾æ°¸è¿ä¸å¯ä»¥è¢«å¼ºå¶è½¬æ¢ä¸º<literal>DomesticCat</"
-"literal>, å³ä½¿å®æ¬èº«å°±æ¯<literal>DomesticCat</literal>å®ä¾ã"
+msgid "Firstly, instances of <literal>Cat</literal> will never be castable to <literal>DomesticCat</literal>, even if the underlying instance is an instance of <literal>DomesticCat</literal>:"
+msgstr "é¦å
ï¼<literal>Cat</literal> å®ä¾æ°¸è¿ä¸å¯ä»¥è¢«å¼ºå¶è½¬æ¢ä¸º <literal>DomesticCat</literal>ï¼å³ä½¿å®æ¬èº«å°±æ¯ <literal>DomesticCat</literal> å®ä¾ã"
-#. Tag: programlisting
-#: performance.xml:302
-#, no-c-format
-msgid ""
-"<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // instantiate a "
-"proxy (does not hit the db)\n"
-"if ( cat.isDomesticCat() ) { // hit the db to initialize "
-"the proxy\n"
-" DomesticCat dc = (DomesticCat) cat; // Error!\n"
-" ....\n"
-"}]]>"
-msgstr ""
-
#. Tag: para
-#: performance.xml:304
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
-msgstr "å
¶æ¬¡ï¼ä»£ççâ<literal>==</literal>âå¯è½ä¸åæç«ã"
+msgstr "å
¶æ¬¡ï¼ä»£ççâ<literal>==</literal>âå¯è½ä¸åæç«ã "
-#. Tag: programlisting
-#: performance.xml:308
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // "
-"instantiate a Cat proxy\n"
-"DomesticCat dc = \n"
-" (DomesticCat) session.load(DomesticCat.class, id); // acquire new "
-"DomesticCat proxy!\n"
-"System.out.println(cat==dc); // false]]>"
-msgstr ""
+msgid "However, the situation is not quite as bad as it looks. Even though we now have two references to different proxy objects, the underlying instance will still be the same object:"
+msgstr "è½ç¶å¦æ¤ï¼ä½å®é
æ
åµå¹¶æ²¡æçä¸å»é£ä¹ç³ç³ãè½ç¶æä»¬ç°å¨æä¸¤ä¸ªä¸åçå¼ç¨ï¼å嫿åè¿ä¸¤ä¸ªä¸åç代ç对象ï¼ä½å®é
ä¸ï¼å
¶åºå±åºè¯¥æ¯åä¸ä¸ªå®ä¾å¯¹è±¡ï¼"
#. Tag: para
-#: performance.xml:310
#, no-c-format
-msgid ""
-"However, the situation is not quite as bad as it looks. Even though we now "
-"have two references to different proxy objects, the underlying instance will "
-"still be the same object:"
-msgstr ""
-"è½ç¶å¦æ¤ï¼ä½å®é
æ
åµå¹¶æ²¡æçä¸å»é£ä¹ç³ç³ãè½ç¶æä»¬ç°å¨æä¸¤ä¸ªä¸åçå¼ç¨ï¼åå«"
-"æåè¿ä¸¤ä¸ªä¸åç代çå¯¹è±¡ï¼ ä½å®é
ä¸ï¼å
¶åºå±åºè¯¥æ¯åä¸ä¸ªå®ä¾å¯¹è±¡ï¼"
+msgid "Third, you cannot use a CGLIB proxy for a <literal>final</literal> class or a class with any <literal>final</literal> methods."
+msgstr "第ä¸ï¼ä½ ä¸è½å¯¹ <literal>final</literal> ç±»æå
·æ <literal>final</literal> æ¹æ³çç±»ä½¿ç¨ CGLIB 代çã"
-#. Tag: programlisting
-#: performance.xml:315
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[cat.setWeight(11.0); // hit the db to initialize the proxy\n"
-"System.out.println( dc.getWeight() ); // 11.0]]>"
-msgstr ""
+msgid "Finally, if your persistent object acquires any resources upon instantiation (e.g. in initializers or default constructor), then those resources will also be acquired by the proxy. The proxy class is an actual subclass of the persistent class."
+msgstr "æåï¼å¦æä½ çæä¹
å对象å¨å®ä¾åæ¶éè¦æäºèµæºï¼ä¾å¦ï¼å¨å®ä¾åæ¹æ³ãé»è®¤æé æ¹æ³ä¸ï¼ï¼é£ä¹ä»£ç对象ä¹åæ ·éè¦ä½¿ç¨è¿äºèµæºãå®é
ä¸ï¼ä»£çç±»æ¯æä¹
åç±»çåç±»ã"
#. Tag: para
-#: performance.xml:317
-#, fuzzy, no-c-format
-msgid ""
-"Third, you cannot use a CGLIB proxy for a <literal>final</literal> class or "
-"a class with any <literal>final</literal> methods."
-msgstr "第ä¸ï¼ä½ ä¸è½å¯¹âfinalç±»âæâå
·æfinalæ¹æ³çç±»â使ç¨CGLIB代çã"
-
-#. Tag: para
-#: performance.xml:322
-#, fuzzy, no-c-format
-msgid ""
-"Finally, if your persistent object acquires any resources upon instantiation "
-"(e.g. in initializers or default constructor), then those resources will "
-"also be acquired by the proxy. The proxy class is an actual subclass of the "
-"persistent class."
-msgstr ""
-"æåï¼å¦æä½ çæä¹
å对象å¨å®ä¾åæ¶éè¦æäºèµæºï¼ä¾å¦ï¼å¨å®ä¾åæ¹æ³ãé»è®¤æé "
-"æ¹æ³ä¸ï¼ï¼ é£ä¹ä»£ç对象ä¹åæ ·éè¦ä½¿ç¨è¿äºèµæºãå®é
ä¸ï¼ä»£çç±»æ¯æä¹
åç±»çå"
-"ç±»ã"
-
-#. Tag: para
-#: performance.xml:328
-#, fuzzy, no-c-format
-msgid ""
-"These problems are all due to fundamental limitations in Java's single "
-"inheritance model. To avoid these problems your persistent classes must each "
-"implement an interface that declares its business methods. You should "
-"specify these interfaces in the mapping file where <literal>CatImpl</"
-"literal> implements the interface <literal>Cat</literal> and "
-"<literal>DomesticCatImpl</literal> implements the interface "
-"<literal>DomesticCat</literal>. For example:"
-msgstr ""
-"è¿äºé®é¢é½æºäºJavaçåæ ¹ç»§æ¿æ¨¡åç天çéå¶ãå¦æä½ å¸æé¿å
è¿äºé®é¢ï¼é£ä¹ä½ ç"
-"æ¯ä¸ªæä¹
åç±»å¿
é¡»å®ç°ä¸ä¸ªæ¥å£ï¼ 卿¤æ¥å£ä¸å·²ç»å£°æäºå
¶ä¸å¡æ¹æ³ãç¶åï¼ä½ éè¦å¨"
-"æ å°ææ¡£ä¸åæå®è¿äºæ¥å£ãä¾å¦ï¼"
-
-#. Tag: programlisting
-#: performance.xml:336
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
-" ......\n"
-" <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
-" .....\n"
-" </subclass>\n"
-"</class>]]>"
-msgstr ""
+msgid "These problems are all due to fundamental limitations in Java's single inheritance model. To avoid these problems your persistent classes must each implement an interface that declares its business methods. You should specify these interfaces in the mapping file where <literal>CatImpl</literal> implements the interface <literal>Cat</literal> and <literal>DomesticCatImpl</literal> implements the interface <literal>DomesticCat</literal>. For example:"
+msgstr "è¿äºé®é¢é½æºäº Java çåæ ¹ç»§æ¿æ¨¡åç天çéå¶ãå¦æä½ å¸æé¿å
è¿äºé®é¢ï¼é£ä¹ä½ çæ¯ä¸ªæä¹
åç±»å¿
é¡»å®ç°ä¸ä¸ªæ¥å£ï¼ 卿¤æ¥å£ä¸å·²ç»å£°æäºå
¶ä¸å¡æ¹æ³ãç¶åï¼ä½ éè¦å¨æ å°ææ¡£ä¸åæå®è¿äºæ¥å£ï¼å¦ <literal>CatImpl</literal> å®ç° <literal>Cat</literal> è <literal>DomesticCatImpl</literal> å®ç° <literal>DomesticCat</literal> æ¥å£ãä¾å¦ï¼"
#. Tag: para
-#: performance.xml:338
-#, fuzzy, no-c-format
-msgid ""
-"Then proxies for instances of <literal>Cat</literal> and "
-"<literal>DomesticCat</literal> can be returned by <literal>load()</literal> "
-"or <literal>iterate()</literal>."
-msgstr ""
-"é¦å
ï¼<literal>Cat</literal>å®ä¾æ°¸è¿ä¸å¯ä»¥è¢«å¼ºå¶è½¬æ¢ä¸º<literal>DomesticCat</"
-"literal>, å³ä½¿å®æ¬èº«å°±æ¯<literal>DomesticCat</literal>å®ä¾ã"
-
-#. Tag: programlisting
-#: performance.xml:343
#, no-c-format
-msgid ""
-"<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
-"Iterator iter = session.createQuery(\"from CatImpl as cat where cat."
-"name='fritz'\").iterate();\n"
-"Cat fritz = (Cat) iter.next();]]>"
-msgstr ""
+msgid "Then proxies for instances of <literal>Cat</literal> and <literal>DomesticCat</literal> can be returned by <literal>load()</literal> or <literal>iterate()</literal>."
+msgstr "ç¶åï¼<literal>load()</literal> å <literal>iterate()</literal> æ°¸è¿ä¹ä¸ä¼è¿å <literal>Cat</literal> å <literal>DomesticCat</literal> å®ä¾ç代çã"
#. Tag: title
-#: performance.xml:346
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
#. Tag: para
-#: performance.xml:347
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>list()</literal> does not usually return proxies."
-msgstr "æ¡ä»¶æ¥è¯¢"
+msgstr "<literal>list()</literal> é常ä¸è¿å代çã"
#. Tag: para
-#: performance.xml:352
#, no-c-format
-msgid ""
-"Relationships are also lazily initialized. This means you must declare any "
-"properties to be of type <literal>Cat</literal>, not <literal>CatImpl</"
-"literal>."
-msgstr ""
-"è¿éï¼å¯¹è±¡ä¹é´çå
³ç³»ä¹å°è¢«å»¶è¿è½½å
¥ãè¿å°±æå³çï¼ä½ åºè¯¥å°å±æ§å£°æä¸º"
-"<literal>Cat</literal>ï¼è䏿¯<literal>CatImpl</literal>ã"
+msgid "Relationships are also lazily initialized. This means you must declare any properties to be of type <literal>Cat</literal>, not <literal>CatImpl</literal>."
+msgstr "è¿éï¼å¯¹è±¡ä¹é´çå
³ç³»ä¹å°è¢«å»¶è¿è½½å
¥ãè¿å°±æå³çï¼ä½ åºè¯¥å°å±æ§å£°æä¸º <literal>Cat</literal>ï¼è䏿¯ <literal>CatImpl</literal>ã"
#. Tag: para
-#: performance.xml:357
-#, fuzzy, no-c-format
-msgid ""
-"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
-msgstr "使¯ï¼å¨æäºæ¹æ³ä¸æ¯<emphasis>ä¸éè¦</emphasis>使ç¨ä»£ççãä¾å¦ï¼"
+#, no-c-format
+msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgstr "æäºæ¹æ³ä¸æ¯<emphasis>ä¸</emphasis>éè¦ä»£çåå§åçï¼"
#. Tag: para
-#: performance.xml:363
-#, fuzzy, no-c-format
-msgid ""
-"<literal>equals()</literal>: if the persistent class does not override "
-"<literal>equals()</literal>"
-msgstr ""
-"<literal>equals()</literal>æ¹æ³ï¼å¦ææä¹
类没æéè½½<literal>equals()</"
-"literal>æ¹æ³ã"
+#, no-c-format
+msgid "<literal>equals()</literal>: if the persistent class does not override <literal>equals()</literal>"
+msgstr "<literal>equals()</literal> æ¹æ³ï¼å¦ææä¹
类没æéè½½ <literal>equals()</literal> æ¹æ³ã"
#. Tag: para
-#: performance.xml:369
-#, fuzzy, no-c-format
-msgid ""
-"<literal>hashCode()</literal>: if the persistent class does not override "
-"<literal>hashCode()</literal>"
-msgstr ""
-"<literal>hashCode()</literal>æ¹æ³ï¼å¦ææä¹
类没æéè½½<literal>hashCode()</"
-"literal>æ¹æ³ã"
+#, no-c-format
+msgid "<literal>hashCode()</literal>: if the persistent class does not override <literal>hashCode()</literal>"
+msgstr "<literal>hashCode()</literal>ï¼å¦ææä¹
类没æéè½½ <literal>hashCode()</literal> æ¹æ³ã"
#. Tag: para
-#: performance.xml:375
#, no-c-format
msgid "The identifier getter method"
-msgstr "æ å¿ç¬¦çgetteræ¹æ³ã"
+msgstr "æ å¿ç¬¦ç getter æ¹æ³ã"
#. Tag: para
-#: performance.xml:381
#, no-c-format
-msgid ""
-"Hibernate will detect persistent classes that override <literal>equals()</"
-"literal> or <literal>hashCode()</literal>."
-msgstr ""
-"Hibernateå°ä¼è¯å«åºé£äºéè½½äº<literal>equals()</literal>ãæ<literal>hashCode"
-"()</literal>æ¹æ³çæä¹
åç±»ã"
+msgid "Hibernate will detect persistent classes that override <literal>equals()</literal> or <literal>hashCode()</literal>."
+msgstr "Hibernate å°ä¼è¯å«åºé£äºéè½½äº <literal>equals()</literal>ãæ <literal>hashCode()</literal> æ¹æ³çæä¹
åç±»ã"
#. Tag: para
-#: performance.xml:386
-#, fuzzy, no-c-format
-msgid ""
-"By choosing <literal>lazy=\"no-proxy\"</literal> instead of the default "
-"<literal>lazy=\"proxy\"</literal>, you can avoid problems associated with "
-"typecasting. However, buildtime bytecode instrumentation is required, and "
-"all operations will result in immediate proxy initialization."
-msgstr ""
-"è¥éæ©<literal>lazy=\"no-proxy\"</literal>èéé»è®¤ç<literal>lazy=\"proxy\"</"
-"literal>ï¼æä»¬å¯ä»¥é¿å
ç±»å转æ¢å¸¦æ¥çé®é¢ãç¶èï¼è¿æ ·æä»¬å°±éè¦ç¼è¯æåèç å¢"
-"强ï¼å¹¶ä¸ææçæä½é½ä¼å¯¼è´ç«å»è¿è¡ä»£çåå§åã"
+#, no-c-format
+msgid "By choosing <literal>lazy=\"no-proxy\"</literal> instead of the default <literal>lazy=\"proxy\"</literal>, you can avoid problems associated with typecasting. However, buildtime bytecode instrumentation is required, and all operations will result in immediate proxy initialization."
+msgstr "è¥éæ© <literal>lazy=\"no-proxy\"</literal> èéé»è®¤ç <literal>lazy=\"proxy\"</literal>ï¼æä»¬å¯ä»¥é¿å
ç±»å转æ¢å¸¦æ¥çé®é¢ãç¶èï¼è¿æ ·æä»¬å°±éè¦ç¼è¯æåèç å¢å¼ºï¼å¹¶ä¸ææçæä½é½ä¼å¯¼è´ç«å»è¿è¡ä»£çåå§åã "
#. Tag: title
-#: performance.xml:396
#, no-c-format
msgid "Initializing collections and proxies"
msgstr "å®ä¾åéåå代çï¼Initializing collections and proxiesï¼"
#. Tag: para
-#: performance.xml:398
-#, fuzzy, no-c-format
-msgid ""
-"A <literal>LazyInitializationException</literal> will be thrown by Hibernate "
-"if an uninitialized collection or proxy is accessed outside of the scope of "
-"the <literal>Session</literal>, i.e., when the entity owning the collection "
-"or having the reference to the proxy is in the detached state."
-msgstr ""
-"å¨<literal>Session</literal>èå´ä¹å¤è®¿é®æªåå§åçéåæä»£çï¼Hibernateå°ä¼æ"
-"åº<literal>LazyInitializationException</literal>å¼å¸¸ã ä¹å°±æ¯è¯´ï¼å¨åç¦»ç¶æ"
-"ä¸ï¼è®¿é®ä¸ä¸ªå®ä½ææ¥æçéåï¼æè
访é®å
¶æå代çç屿§æ¶ï¼ä¼å¼åæ¤å¼å¸¸ã"
+#, no-c-format
+msgid "A <literal>LazyInitializationException</literal> will be thrown by Hibernate if an uninitialized collection or proxy is accessed outside of the scope of the <literal>Session</literal>, i.e., when the entity owning the collection or having the reference to the proxy is in the detached state."
+msgstr "å¨ <literal>Session</literal> èå´ä¹å¤è®¿é®æªåå§åçéåæä»£çï¼Hibernate å°ä¼æåº <literal>LazyInitializationException</literal> å¼å¸¸ãä¹å°±æ¯è¯´ï¼å¨åç¦»ç¶æä¸ï¼è®¿é®ä¸ä¸ªå®ä½ææ¥æçéåï¼æè
访é®å
¶æå代çç屿§æ¶ï¼ä¼å¼åæ¤å¼å¸¸ã "
#. Tag: para
-#: performance.xml:404
-#, fuzzy, no-c-format
-msgid ""
-"Sometimes a proxy or collection needs to be initialized before closing the "
-"<literal>Session</literal>. You can force initialization by calling "
-"<literal>cat.getSex()</literal> or <literal>cat.getKittens().size()</"
-"literal>, for example. However, this can be confusing to readers of the code "
-"and it is not convenient for generic code."
-msgstr ""
-"ææ¶åæä»¬éè¦ä¿è¯æä¸ªä»£çæè
éåå¨Sessionå
³éå就已ç»è¢«åå§åäºã å½ç¶ï¼æ"
-"们å¯ä»¥éè¿å¼ºè¡è°ç¨<literal>cat.getSex()</literal>æè
<literal>cat.getKittens"
-"().size()</literal>ä¹ç±»çæ¹æ³æ¥ç¡®ä¿è¿ä¸ç¹ã 使¯è¿æ ·çç¨åºä¼é æè¯»è
ççæï¼"
-"ä¹ä¸ç¬¦åé常ç代ç è§èã"
+#, no-c-format
+msgid "Sometimes a proxy or collection needs to be initialized before closing the <literal>Session</literal>. You can force initialization by calling <literal>cat.getSex()</literal> or <literal>cat.getKittens().size()</literal>, for example. However, this can be confusing to readers of the code and it is not convenient for generic code."
+msgstr "ææ¶åæä»¬éè¦ä¿è¯æä¸ªä»£çæè
éåå¨ Session å
³éå就已ç»è¢«åå§åäºãå½ç¶ï¼æä»¬å¯ä»¥éè¿å¼ºè¡è°ç¨ <literal>cat.getSex()</literal> æè
<literal>cat.getKittens().size()</literal> ä¹ç±»çæ¹æ³æ¥ç¡®ä¿è¿ä¸ç¹ã 使¯è¿æ ·çç¨åºä¼é æè¯»è
ççæï¼ä¹ä¸ç¬¦åé常ç代ç è§èã "
#. Tag: para
-#: performance.xml:411
-#, fuzzy, no-c-format
-msgid ""
-"The static methods <literal>Hibernate.initialize()</literal> and "
-"<literal>Hibernate.isInitialized()</literal>, provide the application with a "
-"convenient way of working with lazily initialized collections or proxies. "
-"<literal>Hibernate.initialize(cat)</literal> will force the initialization "
-"of a proxy, <literal>cat</literal>, as long as its <literal>Session</"
-"literal> is still open. <literal>Hibernate.initialize( cat.getKittens() )</"
-"literal> has a similar effect for the collection of kittens."
-msgstr ""
-"éææ¹æ³<literal>Hibernate.initialized()</literal> ä¸ºä½ çåºç¨ç¨åºæä¾äºä¸ä¸ªä¾¿"
-"æ·çé徿¥å»¶è¿å è½½éåæä»£çã åªè¦å®çSessionå¤äºopenç¶æï¼"
-"<literal>Hibernate.initialize(cat)</literal> å°ä¼ä¸ºcat强å¶å¯¹ä»£çå®ä¾åã å"
-"æ ·ï¼<literal>Hibernate.initialize( cat.getKittens() )</literal> 对kittensçé"
-"åå
·æåæ ·çåè½ã"
+#, no-c-format
+msgid "The static methods <literal>Hibernate.initialize()</literal> and <literal>Hibernate.isInitialized()</literal>, provide the application with a convenient way of working with lazily initialized collections or proxies. <literal>Hibernate.initialize(cat)</literal> will force the initialization of a proxy, <literal>cat</literal>, as long as its <literal>Session</literal> is still open. <literal>Hibernate.initialize( cat.getKittens() )</literal> has a similar effect for the collection of kittens."
+msgstr "éææ¹æ³ <literal>Hibernate.initialized()</literal> ä¸ºä½ çåºç¨ç¨åºæä¾äºä¸ä¸ªä¾¿æ·çé徿¥å»¶è¿å è½½éåæä»£çã åªè¦å®ç Session å¤äº open ç¶æï¼<literal>Hibernate.initialize(cat)</literal> å°ä¼ä¸º cat 强å¶å¯¹ä»£çå®ä¾åãåæ ·ï¼<literal>Hibernate.initialize(cat.getKittens())</literal> 对 kittens çéåå
·æåæ ·çåè½ã "
#. Tag: para
-#: performance.xml:420
-#, fuzzy, no-c-format
-msgid ""
-"Another option is to keep the <literal>Session</literal> open until all "
-"required collections and proxies have been loaded. In some application "
-"architectures, particularly where the code that accesses data using "
-"Hibernate, and the code that uses it are in different application layers or "
-"different physical processes, it can be a problem to ensure that the "
-"<literal>Session</literal> is open when a collection is initialized. There "
-"are two basic ways to deal with this issue:"
-msgstr ""
-"è¿æå¦å¤ä¸ç§éæ©ï¼å°±æ¯ä¿æ<literal>Session</literal>ä¸ç´å¤äºopenç¶æï¼ç´å°æ"
-"æéè¦çéåæä»£çé½è¢«è½½å
¥ã 卿äºåºç¨æ¶æä¸ï¼ç¹å«æ¯å¯¹äºé£äºä½¿ç¨Hibernateè¿"
-"è¡æ°æ®è®¿é®ç代ç ï¼ä»¥åé£äºå¨ä¸ååºç¨å±åä¸åç©çè¿ç¨ä¸ä½¿ç¨Hibernateç代ç ã "
-"å¨éåå®ä¾åæ¶ï¼å¦ä½ä¿è¯<literal>Session</literal>å¤äºopenç¶æç»å¸¸ä¼æ¯ä¸ä¸ªé®"
-"é¢ãæä¸¤ç§æ¹æ³å¯ä»¥è§£å³æ¤é®é¢ï¼"
+#, no-c-format
+msgid "Another option is to keep the <literal>Session</literal> open until all required collections and proxies have been loaded. In some application architectures, particularly where the code that accesses data using Hibernate, and the code that uses it are in different application layers or different physical processes, it can be a problem to ensure that the <literal>Session</literal> is open when a collection is initialized. There are two basic ways to deal with this issue:"
+msgstr "è¿æå¦å¤ä¸ç§éæ©ï¼å°±æ¯ä¿æ <literal>Session</literal> ä¸ç´å¤äº open ç¶æï¼ç´å°ææéè¦çéåæä»£çé½è¢«è½½å
¥ã 卿äºåºç¨æ¶æä¸ï¼ç¹å«æ¯å¯¹äºé£äºä½¿ç¨ Hibernate è¿è¡æ°æ®è®¿é®ç代ç ï¼ä»¥åé£äºå¨ä¸ååºç¨å±åä¸åç©çè¿ç¨ä¸ä½¿ç¨ Hibernate ç代ç ã å¨éåå®ä¾åæ¶ï¼å¦ä½ä¿è¯ <literal>Session</literal> å¤äº open ç¶æç»å¸¸ä¼æ¯ä¸ä¸ªé®é¢ãæä¸¤ç§æ¹æ³å¯ä»¥è§£å³æ¤é®é¢ï¼ "
#. Tag: para
-#: performance.xml:431
-#, fuzzy, no-c-format
-msgid ""
-"In a web-based application, a servlet filter can be used to close the "
-"<literal>Session</literal> only at the end of a user request, once the "
-"rendering of the view is complete (the <emphasis>Open Session in View</"
-"emphasis> pattern). Of course, this places heavy demands on the correctness "
-"of the exception handling of your application infrastructure. It is vitally "
-"important that the <literal>Session</literal> is closed and the transaction "
-"ended before returning to the user, even when an exception occurs during "
-"rendering of the view. See the Hibernate Wiki for examples of this \"Open "
-"Session in View\" pattern."
-msgstr ""
-"å¨ä¸ä¸ªåºäºWebçåºç¨ä¸ï¼å¯ä»¥å©ç¨servletè¿æ»¤å¨ï¼filterï¼ï¼å¨ç¨æ·è¯·æ±ï¼requestï¼"
-"ç»æã页é¢çæ ç»ææ¶å
³é<literal>Session</literal>ï¼è¿é使ç¨äº<emphasis>å¨å±"
-"示å±ä¿ææå¼Session模å¼ï¼Open Session in Viewï¼</emphasis>ï¼ï¼ å½ç¶ï¼è¿å°ä¾èµ"
-"äºåºç¨æ¡æ¶ä¸å¼å¸¸éè¦è¢«æ£ç¡®çå¤çãå¨è¿åçé¢ç»ç¨æ·ä¹åï¼ä¹è³å¨çæçé¢è¿ç¨ä¸"
-"åçå¼å¸¸çæ
åµä¸ï¼ æ£ç¡®å
³é<literal>Session</literal>åç»æäºå¡å°æ¯é常éè¦"
-"çï¼ è¯·åè§Hibernate wikiä¸ç\"Open Session in View\"模å¼ï¼ä½ å¯ä»¥æ¾å°ç¤ºä¾ã"
+#, no-c-format
+msgid "In a web-based application, a servlet filter can be used to close the <literal>Session</literal> only at the end of a user request, once the rendering of the view is complete (the <emphasis>Open Session in View</emphasis> pattern). Of course, this places heavy demands on the correctness of the exception handling of your application infrastructure. It is vitally important that the <literal>Session</literal> is closed and the transaction ended before returning to the user, even when an exception occurs during rendering of the view. See the Hibernate Wiki for examples of this \"Open Session in View\" pattern."
+msgstr "å¨ä¸ä¸ªåºäº Web çåºç¨ä¸ï¼å¯ä»¥å©ç¨ servlet è¿æ»¤å¨ï¼filterï¼ï¼å¨ç¨æ·è¯·æ±ï¼requestï¼ç»æã页é¢çæ ç»ææ¶å
³é <literal>Session</literal>ï¼è¿é使ç¨äº<emphasis>å¨å±ç¤ºå±ä¿ææå¼ Session 模å¼ï¼Open Session in Viewï¼</emphasis>ï¼ï¼å½ç¶ï¼è¿å°ä¾èµäºåºç¨æ¡æ¶ä¸å¼å¸¸éè¦è¢«æ£ç¡®çå¤çãå¨è¿åçé¢ç»ç¨æ·ä¹åï¼ä¹è³å¨çæçé¢è¿ç¨ä¸åçå¼å¸¸çæ
åµä¸ï¼æ£ç¡®å
³é <literal>Session</literal> åç»æäºå¡å°æ¯é常éè¦çï¼ è¯·åè§ Hibernate wiki ä¸ç \"Open Session in View\" 模å¼ï¼ä½ å¯ä»¥æ¾å°ç¤ºä¾ã "
#. Tag: para
-#: performance.xml:444
-#, fuzzy, no-c-format
-msgid ""
-"In an application with a separate business tier, the business logic must "
-"\"prepare\" all collections that the web tier needs before returning. This "
-"means that the business tier should load all the data and return all the "
-"data already initialized to the presentation/web tier that is required for a "
-"particular use case. Usually, the application calls <literal>Hibernate."
-"initialize()</literal> for each collection that will be needed in the web "
-"tier (this call must occur before the session is closed) or retrieves the "
-"collection eagerly using a Hibernate query with a <literal>FETCH</literal> "
-"clause or a <literal>FetchMode.JOIN</literal> in <literal>Criteria</"
-"literal>. This is usually easier if you adopt the <emphasis>Command</"
-"emphasis> pattern instead of a <emphasis>Session Facade</emphasis>."
-msgstr ""
-"å¨ä¸ä¸ªæ¥æåç¬ä¸å¡å±çåºç¨ä¸ï¼ä¸å¡å±å¿
é¡»å¨è¿åä¹åï¼ä¸ºwebå±âåå¤â好å
¶æéçæ°"
-"æ®éåãè¿å°±æå³ç ä¸å¡å±åºè¯¥è½½å
¥ææè¡¨ç°å±/web屿éçæ°æ®ï¼å¹¶å°è¿äºå·²å®ä¾å"
-"宿¯çæ°æ®è¿åãé常ï¼åºç¨ç¨åºåºè¯¥ 为web屿éçæ¯ä¸ªéåè°ç¨"
-"<literal>Hibernate.initialize()</literal>ï¼è¿ä¸ªè°ç¨å¿
é¡»åçå±sessionå
³éä¹"
-"åï¼ï¼ æè
使ç¨å¸¦æ<literal>FETCH</literal>ä»å¥ï¼æ<literal>FetchMode.JOIN</"
-"literal>çHibernateæ¥è¯¢ï¼ äºå
å徿æçæ°æ®éåãå¦æä½ å¨åºç¨ä¸ä½¿ç¨äº"
-"<emphasis>Command</emphasis>模å¼ï¼ä»£æ¿<emphasis>Session Facade</emphasis> ï¼ "
-"é£ä¹è¿é¡¹ä»»å¡å°ä¼åå¾ç®åçå¤ã"
+#, no-c-format
+msgid "In an application with a separate business tier, the business logic must \"prepare\" all collections that the web tier needs before returning. This means that the business tier should load all the data and return all the data already initialized to the presentation/web tier that is required for a particular use case. Usually, the application calls <literal>Hibernate.initialize()</literal> for each collection that will be needed in the web tier (this call must occur before the session is closed) or retrieves the collection eagerly using a Hibernate query with a <literal>FETCH</literal> clause or a <literal>FetchMode.JOIN</literal> in <literal>Criteria</literal>. This is usually easier if you adopt the <emphasis>Command</emphasis> pattern instead of a <emphasis>Session Facade</emphasis>."
+msgstr "å¨ä¸ä¸ªæ¥æåç¬ä¸å¡å±çåºç¨ä¸ï¼ä¸å¡å±å¿
é¡»å¨è¿åä¹åï¼ä¸º web å±âåå¤â好å
¶æéçæ°æ®éåãè¿å°±æå³ç ä¸å¡å±åºè¯¥è½½å
¥ææè¡¨ç°å±/web 屿éçæ°æ®ï¼å¹¶å°è¿äºå·²å®ä¾å宿¯çæ°æ®è¿åãé常ï¼åºç¨ç¨åºåºè¯¥ä¸º web 屿éçæ¯ä¸ªéåè°ç¨ <literal>Hibernate.initialize()</literal>ï¼è¿ä¸ªè°ç¨å¿
é¡»åçå± session å
³éä¹åï¼ï¼æè
使ç¨å¸¦æ <literal>FETCH</literal> ä»å¥ï¼æ <literal>FetchMode.JOIN</literal> ç Hibernate æ¥è¯¢ï¼äºå
å徿æçæ°æ®éåãå¦æä½ å¨åºç¨ä¸ä½¿ç¨äº <emphasis>Command</emphasis> 模å¼ï¼ä»£æ¿ <emphasis>Session Facade</emphasis>ï¼é£ä¹è¿é¡¹ä»»å¡å°ä¼åå¾ç®åçå¤ã "
#. Tag: para
-#: performance.xml:459
-#, fuzzy, no-c-format
-msgid ""
-"You can also attach a previously loaded object to a new <literal>Session</"
-"literal> with <literal>merge()</literal> or <literal>lock()</literal> before "
-"accessing uninitialized collections or other proxies. Hibernate does not, "
-"and certainly <emphasis>should</emphasis> not, do this automatically since "
-"it would introduce impromptu transaction semantics."
-msgstr ""
-"ä½ ä¹å¯ä»¥éè¿<literal>merge()</literal>æ<literal>lock()</literal>æ¹æ³ï¼å¨è®¿é®"
-"æªå®ä¾åçéåï¼æä»£çï¼ä¹åï¼ ä¸ºå
åè½½å
¥ç对象ç»å®ä¸ä¸ªæ°ç<literal>Session</"
-"literal>ã æ¾ç¶ï¼Hibernateå°ä¸ä¼ï¼ä¹ä¸<emphasis>åºè¯¥</emphasis>èªå¨å®æè¿äºä»»"
-"å¡ï¼å 为è¿å°å¼å
¥ä¸ä¸ªç¹æ®çäºå¡è¯ä¹ã"
+#, no-c-format
+msgid "You can also attach a previously loaded object to a new <literal>Session</literal> with <literal>merge()</literal> or <literal>lock()</literal> before accessing uninitialized collections or other proxies. Hibernate does not, and certainly <emphasis>should</emphasis> not, do this automatically since it would introduce impromptu transaction semantics."
+msgstr "ä½ ä¹å¯ä»¥éè¿ <literal>merge()</literal> æ <literal>lock()</literal> æ¹æ³ï¼å¨è®¿é®æªå®ä¾åçéåï¼æä»£çï¼ä¹åï¼ä¸ºå
åè½½å
¥ç对象ç»å®ä¸ä¸ªæ°ç <literal>Session</literal>ãæ¾ç¶ï¼Hibernate å°ä¸ä¼ï¼ä¹ä¸<emphasis>åºè¯¥</emphasis>èªå¨å®æè¿äºä»»å¡ï¼å 为è¿å°å¼å
¥ä¸ä¸ªç¹æ®çäºå¡è¯ä¹ã "
#. Tag: para
-#: performance.xml:469
-#, fuzzy, no-c-format
-msgid ""
-"Sometimes you do not want to initialize a large collection, but still need "
-"some information about it, like its size, for example, or a subset of the "
-"data."
-msgstr ""
-"ææ¶åï¼ä½ å¹¶ä¸éè¦å®å
¨å®ä¾åæ´ä¸ªå¤§çéåï¼ä»
éè¦äºè§£å®çé¨åä¿¡æ¯ï¼ä¾å¦å
¶å¤§"
-"å°ï¼ãæè
éåçé¨åå
容ã"
+#, no-c-format
+msgid "Sometimes you do not want to initialize a large collection, but still need some information about it, like its size, for example, or a subset of the data."
+msgstr "ææ¶åï¼ä½ å¹¶ä¸éè¦å®å
¨å®ä¾åæ´ä¸ªå¤§çéåï¼ä»
éè¦äºè§£å®çé¨åä¿¡æ¯ï¼ä¾å¦å
¶å¤§å°ï¼ãæè
éåçé¨åå
容ã "
#. Tag: para
-#: performance.xml:474
#, no-c-format
-msgid ""
-"You can use a collection filter to get the size of a collection without "
-"initializing it:"
+msgid "You can use a collection filter to get the size of a collection without initializing it:"
msgstr "ä½ å¯ä»¥ä½¿ç¨éåè¿æ»¤å¨å¾å°å
¶éåç大å°ï¼èä¸å¿
å®ä¾åæ´ä¸ªéåï¼"
-#. Tag: programlisting
-#: performance.xml:478
-#, no-c-format
-msgid ""
-"<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" ).list"
-"().get(0) ).intValue()]]>"
-msgstr ""
-
#. Tag: para
-#: performance.xml:480
#, no-c-format
-msgid ""
-"The <literal>createFilter()</literal> method is also used to efficiently "
-"retrieve subsets of a collection without needing to initialize the whole "
-"collection:"
-msgstr ""
-"è¿éç<literal>createFilter()</literal>æ¹æ³ä¹å¯ä»¥è¢«ç¨æ¥ææçæåéåçé¨åå
"
-"容ï¼èæ éå®ä¾åæ´ä¸ªéåï¼"
+msgid "The <literal>createFilter()</literal> method is also used to efficiently retrieve subsets of a collection without needing to initialize the whole collection:"
+msgstr "è¿éç <literal>createFilter()</literal> æ¹æ³ä¹å¯ä»¥è¢«ç¨æ¥ææçæåéåçé¨åå
容ï¼èæ éå®ä¾åæ´ä¸ªéåï¼"
-#. Tag: programlisting
-#: performance.xml:485
-#, no-c-format
-msgid ""
-"<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
-"setMaxResults(10).list();]]>"
-msgstr ""
-
#. Tag: title
-#: performance.xml:490
#, no-c-format
msgid "Using batch fetching"
msgstr "ä½¿ç¨æ¹éæåï¼Using batch fetchingï¼"
#. Tag: para
-#: performance.xml:492
-#, fuzzy, no-c-format
-msgid ""
-"Using batch fetching, Hibernate can load several uninitialized proxies if "
-"one proxy is accessed. Batch fetching is an optimization of the lazy select "
-"fetching strategy. There are two ways you can configure batch fetching: on "
-"the class level and the collection level."
-msgstr ""
-"Hibernateå¯ä»¥å
åææçä½¿ç¨æ¹éæåï¼ä¹å°±æ¯è¯´ï¼å¦æä»
ä¸ä¸ªè®¿é®ä»£çï¼æéåï¼ï¼"
-"é£ä¹Hibernateå°ä¸è½½å
¥å
¶ä»æªå®ä¾åç代çã æ¹éæåæ¯å»¶è¿æ¥è¯¢æåçä¼åæ¹æ¡ï¼"
-"ä½ å¯ä»¥å¨ä¸¤ç§æ¹éæåæ¹æ¡ä¹é´è¿è¡éæ©ï¼å¨ç±»çº§å«åéå级å«ã"
+#, no-c-format
+msgid "Using batch fetching, Hibernate can load several uninitialized proxies if one proxy is accessed. Batch fetching is an optimization of the lazy select fetching strategy. There are two ways you can configure batch fetching: on the class level and the collection level."
+msgstr "Hibernate å¯ä»¥å
åææçä½¿ç¨æ¹éæåï¼ä¹å°±æ¯è¯´ï¼å¦æä»
ä¸ä¸ªè®¿é®ä»£çï¼æéåï¼ï¼é£ä¹ Hibernate å°ä¸è½½å
¥å
¶ä»æªå®ä¾åç代çãæ¹éæåæ¯å»¶è¿æ¥è¯¢æåçä¼åæ¹æ¡ï¼ä½ å¯ä»¥å¨ä¸¤ç§æ¹éæåæ¹æ¡ä¹é´è¿è¡éæ©ï¼å¨ç±»çº§å«åéå级å«ã "
#. Tag: para
-#: performance.xml:498
-#, fuzzy, no-c-format
-msgid ""
-"Batch fetching for classes/entities is easier to understand. Consider the "
-"following example: at runtime you have 25 <literal>Cat</literal> instances "
-"loaded in a <literal>Session</literal>, and each <literal>Cat</literal> has "
-"a reference to its <literal>owner</literal>, a <literal>Person</literal>. "
-"The <literal>Person</literal> class is mapped with a proxy, <literal>lazy="
-"\"true\"</literal>. If you now iterate through all cats and call "
-"<literal>getOwner()</literal> on each, Hibernate will, by default, execute "
-"25 <literal>SELECT</literal> statements to retrieve the proxied owners. You "
-"can tune this behavior by specifying a <literal>batch-size</literal> in the "
-"mapping of <literal>Person</literal>:"
-msgstr ""
-"ç±»/å®ä½çº§å«çæ¹éæåå¾å®¹æçè§£ãåè®¾ä½ å¨è¿è¡æ¶å°éè¦é¢å¯¹ä¸é¢çé®é¢ï¼ä½ å¨ä¸ä¸ª"
-"<literal>Session</literal>ä¸è½½å
¥äº25个 <literal>Cat</literal>å®ä¾ï¼æ¯ä¸ª"
-"<literal>Cat</literal>å®ä¾é½æ¥æä¸ä¸ªå¼ç¨æå<literal>owner</literal>ï¼ å
¶æå"
-"<literal>Person</literal>ï¼è<literal>Person</literal>ç±»æ¯ä»£çï¼åæ¶"
-"<literal>lazy=\"true\"</literal>ã å¦æä½ å¿
é¡»éåæ´ä¸ªcatséåï¼å¯¹æ¯ä¸ªå
ç´ è°ç¨"
-"<literal>getOwner()</literal>æ¹æ³ï¼Hibernateå°ä¼é»è®¤çæ§è¡25次"
-"<literal>SELECT</literal>æ¥è¯¢ï¼ å¾å°å
¶ownerç代ç对象ãè¿æ¶ï¼ä½ å¯ä»¥éè¿å¨æ å°"
-"æä»¶ç<literal>Person</literal>屿§ï¼æ¾å¼å£°æ<literal>batch-size</literal>ï¼"
-"æ¹åå
¶è¡ä¸ºï¼"
-
-#. Tag: programlisting
-#: performance.xml:508
#, no-c-format
-msgid "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
-msgstr ""
+msgid "Batch fetching for classes/entities is easier to understand. Consider the following example: at runtime you have 25 <literal>Cat</literal> instances loaded in a <literal>Session</literal>, and each <literal>Cat</literal> has a reference to its <literal>owner</literal>, a <literal>Person</literal>. The <literal>Person</literal> class is mapped with a proxy, <literal>lazy=\"true\"</literal>. If you now iterate through all cats and call <literal>getOwner()</literal> on each, Hibernate will, by default, execute 25 <literal>SELECT</literal> statements to retrieve the proxied owners. You can tune this behavior by specifying a <literal>batch-size</literal> in the mapping of <literal>Person</literal>:"
+msgstr "ç±»/å®ä½çº§å«çæ¹éæåå¾å®¹æçè§£ãåè®¾ä½ å¨è¿è¡æ¶å°éè¦é¢å¯¹ä¸é¢çé®é¢ï¼ä½ å¨ä¸ä¸ª <literal>Session</literal> ä¸è½½å
¥äº 25 个 <literal>Cat</literal> å®ä¾ï¼æ¯ä¸ª <literal>Cat</literal> å®ä¾é½æ¥æä¸ä¸ªå¼ç¨æå <literal>owner</literal>ï¼å
¶æå <literal>Person</literal>ï¼è <literal>Person</literal> ç±»æ¯ä»£çï¼åæ¶ <literal>lazy=\"true\"</literal>ãå¦æä½ å¿
é¡»éåæ´ä¸ª cats éåï¼å¯¹æ¯ä¸ªå
ç´ è°ç¨ <literal>getOwner()</literal> æ¹æ³ï¼Hibernate å°ä¼é»è®¤çæ§è¡ 25 次 <literal>SELECT</literal> æ¥è¯¢ï¼ å¾å°å
¶ owner ç代ç对象ãè¿æ¶ï¼ä½ å¯ä»¥éè¿å¨æ å°æä»¶ç <literal>Person</literal> 屿§ï¼æ¾å¼å£°æ <literal>batch-size</literal>ï¼æ¹åå
¶è¡ä¸ºï¼ "
#. Tag: para
-#: performance.xml:510
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate will now execute only three queries: the pattern is 10, 10, 5."
-msgstr "éä¹ï¼Hibernateå°åªéè¦æ§è¡ä¸æ¬¡æ¥è¯¢ï¼åå«ä¸º10ã10ã 5ã"
+#, no-c-format
+msgid "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgstr "éä¹ï¼Hibernate å°åªéè¦æ§è¡ä¸æ¬¡æ¥è¯¢ï¼åå«ä¸º 10ã10ã 5ã "
#. Tag: para
-#: performance.xml:514
-#, fuzzy, no-c-format
-msgid ""
-"You can also enable batch fetching of collections. For example, if each "
-"<literal>Person</literal> has a lazy collection of <literal>Cat</literal>s, "
-"and 10 persons are currently loaded in the <literal>Session</literal>, "
-"iterating through all persons will generate 10 <literal>SELECT</literal>s, "
-"one for every call to <literal>getCats()</literal>. If you enable batch "
-"fetching for the <literal>cats</literal> collection in the mapping of "
-"<literal>Person</literal>, Hibernate can pre-fetch collections:"
-msgstr ""
-"ä½ ä¹å¯ä»¥å¨éå级å«å®ä¹æ¹éæåãä¾å¦ï¼å¦ææ¯ä¸ª<literal>Person</literal>齿¥æ"
-"ä¸ä¸ªå»¶è¿è½½å
¥ç<literal>Cats</literal>éåï¼ ç°å¨ï¼<literal>Sesssion</literal>"
-"ä¸è½½å
¥äº10个person对象ï¼éåpersonéåå°ä¼å¼èµ·10次<literal>SELECT</literal>æ¥"
-"è¯¢ï¼ æ¯æ¬¡æ¥è¯¢é½ä¼è°ç¨<literal>getCats()</literal>æ¹æ³ãå¦æä½ å¨"
-"<literal>Person</literal>çæ å°å®ä¹é¨åï¼å
许对<literal>cats</literal>æ¹éæ"
-"å, é£ä¹ï¼Hibernateå°å¯ä»¥é¢å
æåæ´ä¸ªéåã请çä¾åï¼"
-
-#. Tag: programlisting
-#: performance.xml:523
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <set name=\"cats\" batch-size=\"3\">\n"
-" ...\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
+msgid "You can also enable batch fetching of collections. For example, if each <literal>Person</literal> has a lazy collection of <literal>Cat</literal>s, and 10 persons are currently loaded in the <literal>Session</literal>, iterating through all persons will generate 10 <literal>SELECT</literal>s, one for every call to <literal>getCats()</literal>. If you enable batch fetching for the <literal>cats</literal> collection in the mapping of <literal>Person</literal>, Hibernate can pre-fetch collections:"
+msgstr "ä½ ä¹å¯ä»¥å¨éå级å«å®ä¹æ¹éæåãä¾å¦ï¼å¦ææ¯ä¸ª <literal>Person</literal> 齿¥æä¸ä¸ªå»¶è¿è½½å
¥ç <literal>Cats</literal> éåï¼ ç°å¨ï¼<literal>Sesssion</literal> ä¸è½½å
¥äº 10 个 person 对象ï¼éå person éåå°ä¼å¼èµ· 10 次 <literal>SELECT</literal> æ¥è¯¢ï¼æ¯æ¬¡æ¥è¯¢é½ä¼è°ç¨ <literal>getCats()</literal> æ¹æ³ãå¦æä½ å¨ <literal>Person</literal> çæ å°å®ä¹é¨åï¼å
许对 <literal>cats</literal> æ¹éæåï¼é£ä¹ï¼Hibernate å°å¯ä»¥é¢å
æåæ´ä¸ªéåã请çä¾åï¼ "
#. Tag: para
-#: performance.xml:525
#, no-c-format
-msgid ""
-"With a <literal>batch-size</literal> of 3, Hibernate will load 3, 3, 3, 1 "
-"collections in four <literal>SELECT</literal>s. Again, the value of the "
-"attribute depends on the expected number of uninitialized collections in a "
-"particular <literal>Session</literal>."
-msgstr ""
-"妿æ´ä¸ªç<literal>batch-size</literal>æ¯3ï¼ç¬è¯¯ï¼ï¼ï¼é£ä¹Hibernateå°ä¼å忬¡"
-"æ§è¡<literal>SELECT</literal>æ¥è¯¢ï¼ æç
§3ã3ã3ã1ç大å°åå«è½½å
¥æ°æ®ãè¿éç"
-"æ¯æ¬¡è½½å
¥çæ°æ®éè¿å
·ä½ä¾èµäºå½å<literal>Session</literal>䏿ªå®ä¾åéåç个"
-"æ°ã"
+msgid "With a <literal>batch-size</literal> of 3, Hibernate will load 3, 3, 3, 1 collections in four <literal>SELECT</literal>s. Again, the value of the attribute depends on the expected number of uninitialized collections in a particular <literal>Session</literal>."
+msgstr "妿æ´ä¸ªç <literal>batch-size</literal> æ¯ 3ï¼é£ä¹ Hibernate å°ä¼å忬¡æ§è¡ <literal>SELECT</literal> æ¥è¯¢ï¼ æç
§ 3ã3ã3ã1 ç大å°åå«è½½å
¥æ°æ®ãè¿éçæ¯æ¬¡è½½å
¥çæ°æ®éè¿å
·ä½ä¾èµäºå½å <literal>Session</literal> 䏿ªå®ä¾åéåç个æ°ã "
#. Tag: para
-#: performance.xml:531
-#, fuzzy, no-c-format
-msgid ""
-"Batch fetching of collections is particularly useful if you have a nested "
-"tree of items, i.e. the typical bill-of-materials pattern. However, a "
-"<emphasis>nested set</emphasis> or a <emphasis>materialized path</emphasis> "
-"might be a better option for read-mostly trees."
-msgstr ""
-"å¦æä½ çæ¨¡å䏿åµå¥çæ ç¶ç»æï¼ä¾å¦å
¸åçå¸åï¼åæç»æï¼bill-of-materials "
-"patternï¼ï¼éåçæ¹éæåæ¯é常æç¨çã ï¼å°½ç®¡å¨æ´å¤æ
åµä¸å¯¹æ è¿è¡è¯»åæ¶ï¼"
-"<emphasis>åµå¥éåï¼nested setï¼</emphasis>æ<emphasis>åæè·¯å¾(materialized "
-"path)</emphasis>ï¼ÃÃï¼ æ¯æ´å¥½çè§£å³æ¹æ³ãï¼"
+#, no-c-format
+msgid "Batch fetching of collections is particularly useful if you have a nested tree of items, i.e. the typical bill-of-materials pattern. However, a <emphasis>nested set</emphasis> or a <emphasis>materialized path</emphasis> might be a better option for read-mostly trees."
+msgstr "å¦æä½ çæ¨¡å䏿åµå¥çæ ç¶ç»æï¼ä¾å¦å
¸åçå¸åï¼åæç»æï¼bill-of-materials patternï¼ï¼éåçæ¹éæåæ¯é常æç¨çãï¼å°½ç®¡å¨æ´å¤æ
åµä¸å¯¹æ è¿è¡è¯»åæ¶ï¼<emphasis>åµå¥éåï¼nested setï¼</emphasis>æ<emphasis>åæè·¯å¾ï¼materialized pathï¼</emphasis>å¯è½æ¯æ´å¥½çè§£å³æ¹æ³ãï¼"
#. Tag: title
-#: performance.xml:540
#, no-c-format
msgid "Using subselect fetching"
msgstr "使ç¨åæ¥è¯¢æåï¼Using subselect fetchingï¼"
#. Tag: para
-#: performance.xml:542
-#, fuzzy, no-c-format
-msgid ""
-"If one lazy collection or single-valued proxy has to be fetched, Hibernate "
-"will load all of them, re-running the original query in a subselect. This "
-"works in the same way as batch-fetching but without the piecemeal loading."
-msgstr ""
-"åè¥ä¸ä¸ªå»¶è¿éåæåå¼ä»£çéè¦æåï¼Hibernateä¼ä½¿ç¨ä¸ä¸ªsubselectéæ°è¿è¡åæ¥"
-"çæ¥è¯¢ï¼ä¸æ¬¡æ§è¯»å
¥ææçå®ä¾ãè¿åæ¹éæåçå®ç°æ¹æ³æ¯ä¸æ ·çï¼ä¸ä¼æç ´ç¢çå "
-"è½½ã"
+#, no-c-format
+msgid "If one lazy collection or single-valued proxy has to be fetched, Hibernate will load all of them, re-running the original query in a subselect. This works in the same way as batch-fetching but without the piecemeal loading."
+msgstr "åè¥ä¸ä¸ªå»¶è¿éåæåå¼ä»£çéè¦æåï¼Hibernate ä¼ä½¿ç¨ä¸ä¸ª subselect éæ°è¿è¡åæ¥çæ¥è¯¢ï¼ä¸æ¬¡æ§è¯»å
¥ææçå®ä¾ãè¿åæ¹éæåçå®ç°æ¹æ³æ¯ä¸æ ·çï¼ä¸ä¼æç ´ç¢çå è½½ã "
#. Tag: title
-#: performance.xml:553
#, no-c-format
msgid "Using lazy property fetching"
msgstr "使ç¨å»¶è¿å±æ§æåï¼Using lazy property fetchingï¼"
#. Tag: para
-#: performance.xml:555
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate3 supports the lazy fetching of individual properties. This "
-"optimization technique is also known as <emphasis>fetch groups</emphasis>. "
-"Please note that this is mostly a marketing feature; optimizing row reads is "
-"much more important than optimization of column reads. However, only loading "
-"some properties of a class could be useful in extreme cases. For example, "
-"when legacy tables have hundreds of columns and the data model cannot be "
-"improved."
-msgstr ""
-"Hibernate3对åç¬ç屿§æ¯æå»¶è¿æåï¼è¿é¡¹ä¼åææ¯ä¹è¢«ç§°ä¸º<emphasis>ç»æå"
-"ï¼fetch groupsï¼</emphasis>ã 请注æï¼è¯¥ææ¯æ´å¤çå±äºå¸åºç¹æ§ãå¨å®é
åºç¨"
-"ä¸ï¼ä¼åè¡è¯»åæ¯ä¼ååè¯»åæ´éè¦ã使¯ï¼ä»
è½½å
¥ç±»çé¨å屿§å¨æäºç¹å®æ
åµä¸ä¼"
-"æç¨ï¼ä¾å¦å¨åæè¡¨ä¸æ¥æå ç¾åæ°æ®ãæ°æ®æ¨¡åæ æ³æ¹å¨çæ
åµä¸ã"
+#, no-c-format
+msgid "Hibernate3 supports the lazy fetching of individual properties. This optimization technique is also known as <emphasis>fetch groups</emphasis>. Please note that this is mostly a marketing feature; optimizing row reads is much more important than optimization of column reads. However, only loading some properties of a class could be useful in extreme cases. For example, when legacy tables have hundreds of columns and the data model cannot be improved."
+msgstr "Hibernate3 对åç¬ç屿§æ¯æå»¶è¿æåï¼è¿é¡¹ä¼åææ¯ä¹è¢«ç§°ä¸º<emphasis>ç»æåï¼fetch groupsï¼</emphasis>ã 请注æï¼è¯¥ææ¯æ´å¤çå±äºå¸åºç¹æ§ãå¨å®é
åºç¨ä¸ï¼ä¼åè¡è¯»åæ¯ä¼ååè¯»åæ´éè¦ã使¯ï¼ä»
è½½å
¥ç±»çé¨å屿§å¨æäºç¹å®æ
åµä¸ä¼æç¨ï¼ä¾å¦å¨åæè¡¨ä¸æ¥æå ç¾åæ°æ®ãæ°æ®æ¨¡åæ æ³æ¹å¨çæ
åµä¸ã "
#. Tag: para
-#: performance.xml:564
#, no-c-format
-msgid ""
-"To enable lazy property loading, set the <literal>lazy</literal> attribute "
-"on your particular property mappings:"
-msgstr ""
-"å¯ä»¥å¨æ å°æä»¶ä¸å¯¹ç¹å®ç屿§è®¾ç½®<literal>lazy</literal>ï¼å®ä¹è¯¥å±æ§ä¸ºå»¶è¿è½½"
-"å
¥ã"
+msgid "To enable lazy property loading, set the <literal>lazy</literal> attribute on your particular property mappings:"
+msgstr "å¯ä»¥å¨æ å°æä»¶ä¸å¯¹ç¹å®ç屿§è®¾ç½® <literal>lazy</literal>ï¼å®ä¹è¯¥å±æ§ä¸ºå»¶è¿è½½å
¥ã"
-#. Tag: programlisting
-#: performance.xml:569
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Document\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
-" <property name=\"summary\" not-null=\"true\" length=\"200\" lazy=\"true"
-"\"/>\n"
-" <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true\"/"
-">\n"
-"</class>]]>"
-msgstr ""
+msgid "Lazy property loading requires buildtime bytecode instrumentation. If your persistent classes are not enhanced, Hibernate will ignore lazy property settings and return to immediate fetching."
+msgstr "屿§çå»¶è¿è½½å
¥è¦æ±å¨å
¶ä»£ç æå»ºæ¶å å
¥äºè¿å¶æç¤ºæä»¤ï¼bytecode instrumentationï¼ï¼å¦æä½ çæä¹
类代ç 䏿ªå«æè¿äºæä»¤ï¼ Hibernate å°ä¼å¿½ç¥è¿äºå±æ§çå»¶è¿è®¾ç½®ï¼ä»ç¶å°å
¶ç´æ¥è½½å
¥ã "
#. Tag: para
-#: performance.xml:571
-#, fuzzy, no-c-format
-msgid ""
-"Lazy property loading requires buildtime bytecode instrumentation. If your "
-"persistent classes are not enhanced, Hibernate will ignore lazy property "
-"settings and return to immediate fetching."
-msgstr ""
-"屿§çå»¶è¿è½½å
¥è¦æ±å¨å
¶ä»£ç æå»ºæ¶å å
¥äºè¿å¶æç¤ºæä»¤ï¼bytecode "
-"instrumentationï¼ï¼å¦æä½ çæä¹
类代ç 䏿ªå«æè¿äºæä»¤ï¼ Hibernateå°ä¼å¿½ç¥è¿äº"
-"屿§çå»¶è¿è®¾ç½®ï¼ä»ç¶å°å
¶ç´æ¥è½½å
¥ã"
-
-#. Tag: para
-#: performance.xml:577
#, no-c-format
msgid "For bytecode instrumentation, use the following Ant task:"
-msgstr "ä½ å¯ä»¥å¨AntçTaskä¸ï¼è¿è¡å¦ä¸å®ä¹ï¼å¯¹æä¹
类代ç å å
¥âäºè¿å¶æä»¤ãâ"
+msgstr "ä½ å¯ä»¥å¨ Ant ç Task ä¸ï¼è¿è¡å¦ä¸å®ä¹ï¼å¯¹æä¹
类代ç å å
¥âäºè¿å¶æä»¤ãâ"
-#. Tag: programlisting
-#: performance.xml:581
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
-" <taskdef name=\"instrument\" classname=\"org.hibernate.tool.instrument."
-"InstrumentTask\">\n"
-" <classpath path=\"${jar.path}\"/>\n"
-" <classpath path=\"${classes.dir}\"/>\n"
-" <classpath refid=\"lib.class.path\"/>\n"
-" </taskdef>\n"
-"\n"
-" <instrument verbose=\"true\">\n"
-" <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
-" <include name=\"*.class\"/>\n"
-" </fileset>\n"
-" </instrument>\n"
-"</target>]]>"
-msgstr ""
+msgid "A different way of avoiding unnecessary column reads, at least for read-only transactions, is to use the projection features of HQL or Criteria queries. This avoids the need for buildtime bytecode processing and is certainly a preferred solution."
+msgstr "è¿æä¸ç§å¯ä»¥ä¼åçæ¹æ³ï¼å®ä½¿ç¨ HQL ææ¡ä»¶æ¥è¯¢çæå½±ï¼projectionï¼ç¹æ§ï¼å¯ä»¥é¿å
读åéå¿
è¦çåï¼ è¿ä¸ç¹è³å°å¯¹åªè¯»äºå¡æ¯é常æç¨çã宿 éå¨ä»£ç æå»ºæ¶âäºè¿å¶æä»¤âå¤çï¼å æ¤æ¯ä¸ä¸ªæ´å å¼å¾éæ©çè§£å³æ¹æ³ã "
#. Tag: para
-#: performance.xml:583
-#, fuzzy, no-c-format
-msgid ""
-"A different way of avoiding unnecessary column reads, at least for read-only "
-"transactions, is to use the projection features of HQL or Criteria queries. "
-"This avoids the need for buildtime bytecode processing and is certainly a "
-"preferred solution."
-msgstr ""
-"è¿æä¸ç§å¯ä»¥ä¼åçæ¹æ³ï¼å®ä½¿ç¨HQLææ¡ä»¶æ¥è¯¢çæå½±ï¼projectionï¼ç¹æ§ï¼å¯ä»¥é¿å
"
-"读åéå¿
è¦çåï¼ è¿ä¸ç¹è³å°å¯¹åªè¯»äºå¡æ¯é常æç¨çã宿 éå¨ä»£ç æå»ºæ¶âäºè¿å¶"
-"æä»¤âå¤çï¼å æ¤æ¯ä¸ä¸ªæ´å å¼å¾éæ©çè§£å³æ¹æ³ã"
+#, no-c-format
+msgid "You can force the usual eager fetching of properties using <literal>fetch all properties</literal> in HQL."
+msgstr "ææ¶ä½ éè¦å¨ HQL ä¸éè¿<literal>æåææå±æ§</literal>ï¼å¼ºè¡æåææå
容ã "
-#. Tag: para
-#: performance.xml:590
-#, fuzzy, no-c-format
-msgid ""
-"You can force the usual eager fetching of properties using <literal>fetch "
-"all properties</literal> in HQL."
-msgstr ""
-"ææ¶ä½ éè¦å¨HQLä¸éè¿<literal>æåææå±æ§</literal>ï¼å¼ºè¡æåææå
容ã"
-
#. Tag: title
-#: performance.xml:600
#, no-c-format
msgid "The Second Level Cache"
msgstr "äºçº§ç¼åï¼The Second Level Cacheï¼"
#. Tag: para
-#: performance.xml:602
-#, fuzzy, no-c-format
-msgid ""
-"A Hibernate <literal>Session</literal> is a transaction-level cache of "
-"persistent data. It is possible to configure a cluster or JVM-level "
-"(<literal>SessionFactory</literal>-level) cache on a class-by-class and "
-"collection-by-collection basis. You can even plug in a clustered cache. Be "
-"aware that caches are not aware of changes made to the persistent store by "
-"another application. They can, however, be configured to regularly expire "
-"cached data."
-msgstr ""
-"Hibernateç<literal>Session</literal>å¨äºå¡çº§å«è¿è¡æä¹
åæ°æ®çç¼åæä½ã å½"
-"ç¶ï¼ä¹æå¯è½åå«ä¸ºæ¯ä¸ªç±»ï¼æéå)ï¼é
ç½®é群ãæJVM级å«"
-"(<literal>SessionFactory级å«</literal>)çç¼åã ä½ çè³å¯ä»¥ä¸ºä¹æå
¥ä¸ä¸ªé群ç"
-"ç¼åãæ³¨æï¼ç¼åæ°¸è¿ä¸ç¥éå
¶ä»åºç¨ç¨åºå¯¹æä¹
åä»åºï¼æ°æ®åºï¼å¯è½è¿è¡çä¿®æ¹ "
-"ï¼å³ä½¿å¯ä»¥å°ç¼åæ°æ®è®¾å®ä¸ºå®æå¤±æï¼ã"
+#, no-c-format
+msgid "A Hibernate <literal>Session</literal> is a transaction-level cache of persistent data. It is possible to configure a cluster or JVM-level (<literal>SessionFactory</literal>-level) cache on a class-by-class and collection-by-collection basis. You can even plug in a clustered cache. Be aware that caches are not aware of changes made to the persistent store by another application. They can, however, be configured to regularly expire cached data."
+msgstr "Hibernate ç <literal>Session</literal> å¨äºå¡çº§å«è¿è¡æä¹
åæ°æ®çç¼åæä½ã å½ç¶ï¼ä¹æå¯è½åå«ä¸ºæ¯ä¸ªç±»ï¼æéåï¼ï¼é
ç½®éç¾¤ãæ JVM 级å«ï¼<literal>SessionFactory 级å«</literal>ï¼çç¼åãä½ çè³å¯ä»¥ä¸ºä¹æå
¥ä¸ä¸ªé群çç¼åãæ³¨æï¼ç¼åæ°¸è¿ä¸ç¥éå
¶ä»åºç¨ç¨åºå¯¹æä¹
åä»åºï¼æ°æ®åºï¼å¯è½è¿è¡çä¿®æ¹ ï¼å³ä½¿å¯ä»¥å°ç¼åæ°æ®è®¾å®ä¸ºå®æå¤±æï¼ã "
#. Tag: para
-#: performance.xml:610
-#, fuzzy, no-c-format
-msgid ""
-"You have the option to tell Hibernate which caching implementation to use by "
-"specifying the name of a class that implements <literal>org.hibernate.cache."
-"CacheProvider</literal> using the property <literal>hibernate.cache."
-"provider_class</literal>. Hibernate is bundled with a number of built-in "
-"integrations with the open-source cache providers that are listed below. You "
-"can also implement your own and plug it in as outlined above. Note that "
-"versions prior to 3.2 use EhCache as the default cache provider."
-msgstr ""
-"éè¿å¨<literal>hibernate.cache.provider_class</literal>屿§ä¸æå®"
-"<literal>org.hibernate.cache.CacheProvider</literal>çæä¸ªå®ç°çç±»å,ä½ å¯ä»¥é"
-"æ©è®©Hibernate使ç¨åªä¸ªç¼åå®ç°ãHibernateæå
ä¸äºå¼æºç¼åå®ç°ï¼æä¾å¯¹å®ä»¬çå
"
-"ç½®æ¯æï¼è§ä¸è¡¨ï¼ã餿¤ä¹å¤ï¼ä½ ä¹å¯ä»¥å®ç°ä½ èªå·±çå®ç°ï¼å°å®ä»¬æå
¥å°ç³»ç»ä¸ã注"
-"æï¼å¨3.2çæ¬ä¹åï¼é»è®¤ä½¿ç¨EhCache ä½ä¸ºç¼åå®ç°ï¼ä½ä»3.2èµ·å°±ä¸åè¿æ ·äºã"
+#, no-c-format
+msgid "You have the option to tell Hibernate which caching implementation to use by specifying the name of a class that implements <literal>org.hibernate.cache.CacheProvider</literal> using the property <literal>hibernate.cache.provider_class</literal>. Hibernate is bundled with a number of built-in integrations with the open-source cache providers that are listed below. You can also implement your own and plug it in as outlined above. Note that versions prior to 3.2 use EhCache as the default cache provider."
+msgstr "éè¿å¨ <literal>hibernate.cache.provider_class</literal> 屿§ä¸æå® <literal>org.hibernate.cache.CacheProvider</literal> çæä¸ªå®ç°çç±»å,ä½ å¯ä»¥éæ©è®© Hibernate 使ç¨åªä¸ªç¼åå®ç°ãHibernate æå
ä¸äºå¼æºç¼åå®ç°ï¼æä¾å¯¹å®ä»¬çå
ç½®æ¯æï¼è§ä¸è¡¨ï¼ã餿¤ä¹å¤ï¼ä½ ä¹å¯ä»¥å®ç°ä½ èªå·±çå®ç°ï¼å°å®ä»¬æå
¥å°ç³»ç»ä¸ã注æï¼å¨ 3.2 çæ¬ä¹åï¼é»è®¤ä½¿ç¨ EhCache ä½ä¸ºç¼åå®ç°ï¼ä½ä» 3.2 èµ·å°±ä¸åè¿æ ·äºã "
#. Tag: title
-#: performance.xml:621
#, no-c-format
msgid "Cache Providers"
msgstr "ç¼åçç¥æä¾åï¼Cache Providersï¼"
#. Tag: entry
-#: performance.xml:630 performance.xml:818
#, no-c-format
msgid "Cache"
msgstr "Cache"
#. Tag: entry
-#: performance.xml:631
#, no-c-format
msgid "Provider class"
msgstr "Provider class"
#. Tag: entry
-#: performance.xml:632
#, no-c-format
msgid "Type"
msgstr "Type"
#. Tag: entry
-#: performance.xml:633
#, no-c-format
msgid "Cluster Safe"
msgstr "Cluster Safe"
#. Tag: entry
-#: performance.xml:634
#, no-c-format
msgid "Query Cache Supported"
msgstr "Query Cache Supported"
#. Tag: entry
-#: performance.xml:639 performance.xml:827
#, no-c-format
msgid "Hashtable (not intended for production use)"
-msgstr "Hashtable (not intended for production use)"
+msgstr "Hashtable ï¼not intended for production useï¼"
-#. Tag: literal
-#: performance.xml:640
+#. Tag: entry
#, no-c-format
-msgid "org.hibernate.cache.HashtableCacheProvider"
-msgstr "org.hibernate.cache.HashtableCacheProvider"
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
#. Tag: entry
-#: performance.xml:641
#, no-c-format
msgid "memory"
msgstr "memory"
#. Tag: entry
-#: performance.xml:643 performance.xml:650 performance.xml:657
-#: performance.xml:828 performance.xml:829 performance.xml:830
-#: performance.xml:835 performance.xml:836 performance.xml:837
-#: performance.xml:842 performance.xml:843 performance.xml:844
-#: performance.xml:849 performance.xml:850 performance.xml:856
-#: performance.xml:859 performance.xml:863 performance.xml:866
#, no-c-format
-msgid "<entry>yes</entry>"
-msgstr ""
+msgid "yes"
+msgstr "yes"
#. Tag: entry
-#: performance.xml:646 performance.xml:834
#, no-c-format
msgid "EHCache"
msgstr "EHCache"
-#. Tag: literal
-#: performance.xml:647
+#. Tag: entry
#, no-c-format
-msgid "org.hibernate.cache.EhCacheProvider"
-msgstr "org.hibernate.cache.EhCacheProvider"
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
#. Tag: entry
-#: performance.xml:648 performance.xml:655
#, no-c-format
msgid "memory, disk"
-msgstr "memory, disk"
+msgstr "memoryï¼disk"
#. Tag: entry
-#: performance.xml:653 performance.xml:841
#, no-c-format
msgid "OSCache"
msgstr "OSCache"
-#. Tag: literal
-#: performance.xml:654
+#. Tag: entry
#, no-c-format
-msgid "org.hibernate.cache.OSCacheProvider"
-msgstr "org.hibernate.cache.OSCacheProvider"
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
#. Tag: entry
-#: performance.xml:660 performance.xml:848
#, no-c-format
msgid "SwarmCache"
msgstr "SwarmCache"
-#. Tag: literal
-#: performance.xml:661
+#. Tag: entry
#, no-c-format
-msgid "org.hibernate.cache.SwarmCacheProvider"
-msgstr "org.hibernate.cache.SwarmCacheProvider"
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
#. Tag: entry
-#: performance.xml:662
#, no-c-format
msgid "clustered (ip multicast)"
msgstr "clustered (ip multicast)"
#. Tag: entry
-#: performance.xml:663
#, no-c-format
msgid "yes (clustered invalidation)"
msgstr "yes (clustered invalidation)"
#. Tag: entry
-#: performance.xml:667 performance.xml:855
-#, fuzzy, no-c-format
+#, no-c-format
msgid "JBoss Cache 1.x"
-msgstr "JBoss TreeCache"
+msgstr "JBoss Cache 1.x"
-#. Tag: literal
-#: performance.xml:668
+#. Tag: entry
#, no-c-format
-msgid "org.hibernate.cache.TreeCacheProvider"
-msgstr "org.hibernate.cache.TreeCacheProvider"
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
#. Tag: entry
-#: performance.xml:669 performance.xml:676
#, no-c-format
msgid "clustered (ip multicast), transactional"
msgstr "clustered (ip multicast), transactional"
#. Tag: entry
-#: performance.xml:670
#, no-c-format
msgid "yes (replication)"
msgstr "yes (replication)"
#. Tag: entry
-#: performance.xml:671 performance.xml:678
#, no-c-format
msgid "yes (clock sync req.)"
msgstr "yes (clock sync req.)"
#. Tag: entry
-#: performance.xml:674 performance.xml:862
-#, fuzzy, no-c-format
+#, no-c-format
msgid "JBoss Cache 2"
-msgstr "JBoss TreeCache"
+msgstr "JBoss Cache 2"
-#. Tag: literal
-#: performance.xml:675
-#, fuzzy, no-c-format
-msgid "org.hibernate.cache.jbc2.JBossCacheRegionFactory"
-msgstr "org.hibernate.cache.EhCacheProvider"
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
+msgstr "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
#. Tag: entry
-#: performance.xml:677
-#, fuzzy, no-c-format
+#, no-c-format
msgid "yes (replication or invalidation)"
-msgstr "yes (clustered invalidation)"
+msgstr "yes (replication or invalidation)"
#. Tag: title
-#: performance.xml:685
#, no-c-format
msgid "Cache mappings"
msgstr "ç¼åæ å°ï¼Cache mappingsï¼"
#. Tag: para
-#: performance.xml:687
#, no-c-format
-msgid ""
-"The <literal><cache></literal> element of a class or collection "
-"mapping has the following form:"
-msgstr "ç±»æè
éåæ å°çâ<literal><cache></literal>å
ç´ âå¯ä»¥æä¸åå½¢å¼ï¼"
+msgid "The <literal><cache></literal> element of a class or collection mapping has the following form:"
+msgstr "ç±»æè
éåæ å°çâ<literal><cache></literal> å
ç´ âå¯ä»¥æä¸åå½¢å¼ï¼"
-#. Tag: programlisting
-#: performance.xml:698
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<cache \n"
-" usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
-" region=\"RegionName\"\n"
-" include=\"all|non-lazy\"\n"
-"/>]]>"
-msgstr ""
+msgid "<literal>usage</literal> (required) specifies the caching strategy: <literal>transactional</literal>, <literal>read-write</literal>, <literal>nonstrict-read-write</literal> or <literal>read-only</literal>"
+msgstr "<literal>usage</literal>ï¼å¿
é¡»ï¼è¯´æäºç¼åççç¥ï¼<literal>transactional</literal>ã <literal>read-write</literal>ã<literal>nonstrict-read-write</literal> æ <literal>read-only</literal>ã"
#. Tag: para
-#: performance.xml:701
#, no-c-format
-msgid ""
-"<literal>usage</literal> (required) specifies the caching strategy: "
-"<literal>transactional</literal>, <literal>read-write</literal>, "
-"<literal>nonstrict-read-write</literal> or <literal>read-only</literal>"
-msgstr ""
-"<literal>usage</literal>(å¿
é¡»)说æäºç¼åççç¥: <literal>transactional</"
-"literal>ã <literal>read-write</literal>ã <literal>nonstrict-read-write</"
-"literal>æ <literal>read-only</literal>ã"
+msgid "<literal>region</literal> (optional: defaults to the class or collection role name): specifies the name of the second level cache region"
+msgstr "<literal>region</literal> ï¼å¯éï¼é»è®¤ä¸ºç±»æè
éåçååï¼class or collection role nameï¼ï¼ æå®ç¬¬äºçº§ç¼åçåºååï¼name of the second level cache regionï¼ "
#. Tag: para
-#: performance.xml:710
-#, fuzzy, no-c-format
-msgid ""
-"<literal>region</literal> (optional: defaults to the class or collection "
-"role name): specifies the name of the second level cache region"
-msgstr ""
-"<literal>region</literal> (å¯é, é»è®¤ä¸ºç±»æè
éåçåå(class or collection "
-"role name)) æå®ç¬¬äºçº§ç¼åçåºåå(name of the second level cache region)"
+#, no-c-format
+msgid "<literal>include</literal> (optional: defaults to <literal>all</literal>) <literal>non-lazy</literal>: specifies that properties of the entity mapped with <literal>lazy=\"true\"</literal> cannot be cached when attribute-level lazy fetching is enabled"
+msgstr "<literal>include</literal>ï¼å¯é,é»è®¤ä¸º <literal>all</literal>ï¼ <literal>non-lazy</literal> å½å±æ§çº§å»¶è¿æåæå¼æ¶ï¼æ 记为 <literal>lazy=\"true\"</literal> çå®ä½ç屿§å¯è½æ æ³è¢«ç¼å "
#. Tag: para
-#: performance.xml:717
-#, fuzzy, no-c-format
-msgid ""
-"<literal>include</literal> (optional: defaults to <literal>all</literal>) "
-"<literal>non-lazy</literal>: specifies that properties of the entity mapped "
-"with <literal>lazy=\"true\"</literal> cannot be cached when attribute-level "
-"lazy fetching is enabled"
-msgstr ""
-"<literal>include</literal> (å¯é,é»è®¤ä¸º <literal>all</literal>) <literal>non-"
-"lazy</literal> å½å±æ§çº§å»¶è¿æåæå¼æ¶, æ 记为<literal>lazy=\"true\"</literal>"
-"çå®ä½ç屿§å¯è½æ æ³è¢«ç¼å"
+#, no-c-format
+msgid "Alternatively, you can specify <literal><class-cache></literal> and <literal><collection-cache></literal> elements in <literal>hibernate.cfg.xml</literal>."
+msgstr "å¦å¤ï¼é¦é?ï¼ï¼ä½ å¯ä»¥å¨<literal>hibernate.cfg.xml</literal> ä¸æå® <literal><class-cache></literal> å <literal><collection-cache></literal> å
ç´ ã"
#. Tag: para
-#: performance.xml:727
-#, fuzzy, no-c-format
-msgid ""
-"Alternatively, you can specify <literal><class-cache></literal> and "
-"<literal><collection-cache></literal> elements in <literal>hibernate."
-"cfg.xml</literal>."
-msgstr ""
-"å¦å¤(é¦é?), ä½ å¯ä»¥å¨hibernate.cfg.xml䏿å®<literal><class-cache></"
-"literal>å <literal><collection-cache></literal> å
ç´ ã"
-
-#. Tag: para
-#: performance.xml:732
#, no-c-format
-msgid ""
-"The <literal>usage</literal> attribute specifies a <emphasis>cache "
-"concurrency strategy</emphasis>."
-msgstr ""
-"è¿éç<literal>usage</literal> 屿§ææäº<emphasis>ç¼åå¹¶åçç¥ï¼cache "
-"concurrency strategyï¼</emphasis>ã"
+msgid "The <literal>usage</literal> attribute specifies a <emphasis>cache concurrency strategy</emphasis>."
+msgstr "è¿éç <literal>usage</literal> 屿§ææäº<emphasis>ç¼åå¹¶åçç¥ï¼cache concurrency strategyï¼</emphasis>ã"
#. Tag: title
-#: performance.xml:739
#, no-c-format
msgid "Strategy: read only"
-msgstr "çç¥ï¼åªè¯»ç¼åï¼Strategy: read onlyï¼"
+msgstr "çç¥ï¼åªè¯»ç¼åï¼Strategyï¼read onlyï¼"
#. Tag: para
-#: performance.xml:741
-#, fuzzy, no-c-format
-msgid ""
-"If your application needs to read, but not modify, instances of a persistent "
-"class, a <literal>read-only</literal> cache can be used. This is the "
-"simplest and optimal performing strategy. It is even safe for use in a "
-"cluster."
-msgstr ""
-"å¦æä½ çåºç¨ç¨åºåªé读åä¸ä¸ªæä¹
åç±»çå®ä¾ï¼èæ é对å
¶ä¿®æ¹ï¼ é£ä¹å°±å¯ä»¥å¯¹å
¶è¿"
-"è¡<literal>åªè¯»</literal> ç¼åãè¿æ¯æç®åï¼ä¹æ¯å®ç¨æ§æå¥½çæ¹æ³ãçè³å¨é群"
-"ä¸ï¼å®ä¹è½å®ç¾å°è¿ä½ã"
-
-#. Tag: programlisting
-#: performance.xml:747
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
-" <cache usage=\"read-only\"/>\n"
-" ....\n"
-"</class>]]>"
-msgstr ""
+msgid "If your application needs to read, but not modify, instances of a persistent class, a <literal>read-only</literal> cache can be used. This is the simplest and optimal performing strategy. It is even safe for use in a cluster."
+msgstr "å¦æä½ çåºç¨ç¨åºåªé读åä¸ä¸ªæä¹
åç±»çå®ä¾ï¼èæ é对å
¶ä¿®æ¹ï¼ é£ä¹å°±å¯ä»¥å¯¹å
¶è¿è¡<literal>åªè¯»</literal> ç¼åãè¿æ¯æç®åï¼ä¹æ¯å®ç¨æ§æå¥½çæ¹æ³ãçè³å¨é群ä¸ï¼å®ä¹è½å®ç¾å°è¿ä½ã "
#. Tag: title
-#: performance.xml:753
#, no-c-format
msgid "Strategy: read/write"
-msgstr "çç¥:读/åç¼åï¼Strategy: read/writeï¼"
+msgstr "çç¥ï¼è¯»å/ç¼åï¼Strategyï¼read/writeï¼"
#. Tag: para
-#: performance.xml:755
-#, fuzzy, no-c-format
-msgid ""
-"If the application needs to update data, a <literal>read-write</literal> "
-"cache might be appropriate. This cache strategy should never be used if "
-"serializable transaction isolation level is required. If the cache is used "
-"in a JTA environment, you must specify the property <literal>hibernate."
-"transaction.manager_lookup_class</literal> and naming a strategy for "
-"obtaining the JTA <literal>TransactionManager</literal>. In other "
-"environments, you should ensure that the transaction is completed when "
-"<literal>Session.close()</literal> or <literal>Session.disconnect()</"
-"literal> is called. If you want to use this strategy in a cluster, you "
-"should ensure that the underlying cache implementation supports locking. The "
-"built-in cache providers <emphasis>do not</emphasis> support locking."
-msgstr ""
-"妿åºç¨ç¨åºéè¦æ´æ°æ°æ®ï¼é£ä¹ä½¿ç¨<literal>读/åç¼å</literal> æ¯è¾åéã å¦"
-"æåºç¨ç¨åºè¦æ±âåºååäºå¡âçé离级å«ï¼serializable transaction isolation "
-"levelï¼ï¼é£ä¹å°±å³ä¸è½ä½¿ç¨è¿ç§ç¼åçç¥ã 妿å¨JTAç¯å¢ä¸ä½¿ç¨ç¼åï¼ä½ å¿
é¡»æå®"
-"<literal>hibernate.transaction.manager_lookup_class</literal>屿§çå¼ï¼ éè¿"
-"å®ï¼Hibernateæè½ç¥é该åºç¨ç¨åºä¸JTAç<literal>TransactionManager</literal>ç"
-"å
·ä½çç¥ã å¨å
¶å®ç¯å¢ä¸ï¼ä½ å¿
é¡»ä¿è¯å¨<literal>Session.close()</literal>ãæ"
-"<literal>Session.disconnect()</literal>è°ç¨åï¼ æ´ä¸ªäºå¡å·²ç»ç»æã å¦æä½ æ³å¨"
-"é群ç¯å¢ä¸ä½¿ç¨æ¤çç¥ï¼ä½ å¿
é¡»ä¿è¯åºå±çç¼åå®ç°æ¯æéå®(locking)ãHibernateå
"
-"ç½®çç¼åçç¥å¹¶ä¸æ¯æéå®åè½ã"
-
-#. Tag: programlisting
-#: performance.xml:766
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"eg.Cat\" .... >\n"
-" <cache usage=\"read-write\"/>\n"
-" ....\n"
-" <set name=\"kittens\" ... >\n"
-" <cache usage=\"read-write\"/>\n"
-" ....\n"
-" </set>\n"
-"</class>]]>"
-msgstr ""
+msgid "If the application needs to update data, a <literal>read-write</literal> cache might be appropriate. This cache strategy should never be used if serializable transaction isolation level is required. If the cache is used in a JTA environment, you must specify the property <literal>hibernate.transaction.manager_lookup_class</literal> and naming a strategy for obtaining the JTA <literal>TransactionManager</literal>. In other environments, you should ensure that the transaction is completed when <literal>Session.close()</literal> or <literal>Session.disconnect()</literal> is called. If you want to use this strategy in a cluster, you should ensure that the underlying cache implementation supports locking. The built-in cache providers <emphasis>do not</emphasis> support locking."
+msgstr "妿åºç¨ç¨åºéè¦æ´æ°æ°æ®ï¼é£ä¹ä½¿ç¨<literal>读/åç¼å</literal> æ¯è¾åéã 妿åºç¨ç¨åºè¦æ±âåºååäºå¡âçé离级å«ï¼serializable transaction isolation levelï¼ï¼é£ä¹å°±å³ä¸è½ä½¿ç¨è¿ç§ç¼åçç¥ã å¦æå¨ JTA ç¯å¢ä¸ä½¿ç¨ç¼åï¼ä½ å¿
é¡»æå® <literal>hibernate.transaction.manager_lookup_class</literal> 屿§çå¼ï¼ éè¿å®ï¼Hibernate æè½ç¥é该åºç¨ç¨åºä¸ JTA ç<literal>TransactionManager</literal>çå
·ä½çç¥ã å¨å
¶å®ç¯å¢ä¸ï¼ä½ å¿
é¡»ä¿è¯å¨ <literal>Session.close()</literal>ãæ <literal>Session.disconnect()</literal> è°ç¨åï¼ æ´ä¸ªäºå¡å·²ç»ç»æã å¦æä½ æ³å¨é群ç¯å¢ä¸ä½¿ç¨æ¤çç¥ï¼ä½ å¿
é¡»ä¿è¯åºå±çç¼åå®ç°æ¯æéå®ï¼lockingï¼ãHibernate å
ç½®çç¼åçç¥å¹¶ä¸æ¯æéå®åè½ã "
#. Tag: title
-#: performance.xml:771
#, no-c-format
msgid "Strategy: nonstrict read/write"
-msgstr "çç¥:éä¸¥æ ¼è¯»/åç¼åï¼Strategy: nonstrict read/writeï¼"
+msgstr "çç¥ï¼éä¸¥æ ¼è¯»/åç¼åï¼Strategyï¼nonstrict read/writeï¼"
#. Tag: para
-#: performance.xml:773
-#, fuzzy, no-c-format
-msgid ""
-"If the application only occasionally needs to update data (i.e. if it is "
-"extremely unlikely that two transactions would try to update the same item "
-"simultaneously), and strict transaction isolation is not required, a "
-"<literal>nonstrict-read-write</literal> cache might be appropriate. If the "
-"cache is used in a JTA environment, you must specify <literal>hibernate."
-"transaction.manager_lookup_class</literal>. In other environments, you "
-"should ensure that the transaction is completed when <literal>Session.close()"
-"</literal> or <literal>Session.disconnect()</literal> is called."
-msgstr ""
-"妿åºç¨ç¨åºåªå¶å°éè¦æ´æ°æ°æ®ï¼ä¹å°±æ¯è¯´ï¼ä¸¤ä¸ªäºå¡åæ¶æ´æ°åä¸è®°å½çæ
åµå¾ä¸"
-"常è§ï¼ï¼ä¹ä¸éè¦ååä¸¥æ ¼çäºå¡éç¦»ï¼ é£ä¹æ¯è¾éå使ç¨<literal>éä¸¥æ ¼è¯»/åç¼å"
-"</literal>çç¥ã妿å¨JTAç¯å¢ä¸ä½¿ç¨è¯¥çç¥ï¼ ä½ å¿
须为å
¶æå®<literal>hibernate."
-"transaction.manager_lookup_class</literal>屿§çå¼ï¼ å¨å
¶å®ç¯å¢ä¸ï¼ä½ å¿
é¡»ä¿è¯"
-"å¨<literal>Session.close()</literal>ãæ<literal>Session.disconnect()</"
-"literal>è°ç¨åï¼ æ´ä¸ªäºå¡å·²ç»ç»æã"
+#, no-c-format
+msgid "If the application only occasionally needs to update data (i.e. if it is extremely unlikely that two transactions would try to update the same item simultaneously), and strict transaction isolation is not required, a <literal>nonstrict-read-write</literal> cache might be appropriate. If the cache is used in a JTA environment, you must specify <literal>hibernate.transaction.manager_lookup_class</literal>. In other environments, you should ensure that the transaction is completed when <literal>Session.close()</literal> or <literal>Session.disconnect()</literal> is called."
+msgstr "妿åºç¨ç¨åºåªå¶å°éè¦æ´æ°æ°æ®ï¼ä¹å°±æ¯è¯´ï¼ä¸¤ä¸ªäºå¡åæ¶æ´æ°åä¸è®°å½çæ
åµå¾ä¸å¸¸è§ï¼ï¼ä¹ä¸éè¦ååä¸¥æ ¼çäºå¡é离ï¼é£ä¹æ¯è¾éå使ç¨<literal>éä¸¥æ ¼è¯»/åç¼å</literal>çç¥ãå¦æå¨ JTA ç¯å¢ä¸ä½¿ç¨è¯¥çç¥ï¼ä½ å¿
须为å
¶æå® <literal>hibernate.transaction.manager_lookup_class</literal> 屿§çå¼ï¼å¨å
¶å®ç¯å¢ä¸ï¼ä½ å¿
é¡»ä¿è¯å¨<literal>Session.close()</literal>ãæ <literal>Session.disconnect()</literal> è°ç¨åï¼æ´ä¸ªäºå¡å·²ç»ç»æã "
#. Tag: title
-#: performance.xml:785
#, no-c-format
msgid "Strategy: transactional"
-msgstr "çç¥:äºå¡ç¼åï¼transactionalï¼"
+msgstr "çç¥ï¼äºå¡ç¼åï¼transactionalï¼"
#. Tag: para
-#: performance.xml:787
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>transactional</literal> cache strategy provides support for "
-"fully transactional cache providers such as JBoss TreeCache. Such a cache "
-"can only be used in a JTA environment and you must specify "
-"<literal>hibernate.transaction.manager_lookup_class</literal>."
-msgstr ""
-"Hibernateç<literal>äºå¡ç¼å</literal>çç¥æä¾äºå
¨äºå¡çç¼åæ¯æï¼ ä¾å¦å¯¹"
-"JBoss TreeCacheçæ¯æãè¿æ ·çç¼ååªè½ç¨äºJTAç¯å¢ä¸ï¼ä½ å¿
é¡»æå® 为å
¶"
-"<literal>hibernate.transaction.manager_lookup_class</literal>屿§ã"
+#, no-c-format
+msgid "The <literal>transactional</literal> cache strategy provides support for fully transactional cache providers such as JBoss TreeCache. Such a cache can only be used in a JTA environment and you must specify <literal>hibernate.transaction.manager_lookup_class</literal>."
+msgstr "Hibernate ç<literal>äºå¡ç¼å</literal>çç¥æä¾äºå
¨äºå¡çç¼åæ¯æï¼ä¾å¦å¯¹ JBoss TreeCache çæ¯æãè¿æ ·çç¼ååªè½ç¨äº JTA ç¯å¢ä¸ï¼ä½ å¿
é¡»æå®ä¸ºå
¶ <literal>hibernate.transaction.manager_lookup_class</literal> 屿§ã "
#. Tag: title
-#: performance.xml:796
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Cache-provider/concurrency-strategy compatibility"
-msgstr ""
-"åç§ç¼åæä¾å对ç¼åå¹¶åçç¥çæ¯ææ
åµï¼Cache Concurrency Strategy Supportï¼"
+msgstr "åç§ç¼åæä¾å/ç¼åå¹¶åçç¥çå
¼å®¹æ§"
#. Tag: para
-#: performance.xml:799
-#, fuzzy, no-c-format
-msgid ""
-"None of the cache providers support all of the cache concurrency strategies."
-msgstr ""
-"没æä¸ç§ç¼åæä¾åè½å¤æ¯æä¸åçææç¼åå¹¶åçç¥ãä¸è¡¨ä¸ååºäºåç§æä¾å¨ãå"
-"å
¶åèªéç¨çå¹¶åçç¥ã"
+#, no-c-format
+msgid "None of the cache providers support all of the cache concurrency strategies."
+msgstr "没æä¸ç§ç¼åæä¾åè½å¤æ¯æä¸åçææç¼åå¹¶åçç¥ãä¸è¡¨ä¸ååºäºåç§æä¾å¨ãåå
¶åèªéç¨çå¹¶åçç¥ã "
#. Tag: para
-#: performance.xml:804
-#, fuzzy, no-c-format
-msgid ""
-"The following table shows which providers are compatible with which "
-"concurrency strategies."
-msgstr ""
-"没æä¸ç§ç¼åæä¾åè½å¤æ¯æä¸åçææç¼åå¹¶åçç¥ãä¸è¡¨ä¸ååºäºåç§æä¾å¨ãå"
-"å
¶åèªéç¨çå¹¶åçç¥ã"
+#, no-c-format
+msgid "The following table shows which providers are compatible with which concurrency strategies."
+msgstr "没æä¸ç§ç¼åæä¾åè½å¤æ¯æä¸åçææç¼åå¹¶åçç¥ãä¸è¡¨ä¸ååºäºåç§æä¾å¨ãåå
¶åèªéç¨çå¹¶åçç¥ã "
#. Tag: title
-#: performance.xml:809
#, no-c-format
msgid "Cache Concurrency Strategy Support"
-msgstr ""
-"åç§ç¼åæä¾å对ç¼åå¹¶åçç¥çæ¯ææ
åµï¼Cache Concurrency Strategy Supportï¼"
+msgstr "åç§ç¼åæä¾å对ç¼åå¹¶åçç¥çæ¯ææ
åµï¼Cache Concurrency Strategy Supportï¼"
#. Tag: entry
-#: performance.xml:819
#, no-c-format
msgid "read-only"
msgstr "read-only"
#. Tag: entry
-#: performance.xml:820
#, no-c-format
msgid "nonstrict-read-write"
msgstr "nonstrict-read-write"
#. Tag: entry
-#: performance.xml:821
#, no-c-format
msgid "read-write"
msgstr "read-write"
#. Tag: entry
-#: performance.xml:822
#, no-c-format
msgid "transactional"
msgstr "transactional"
#. Tag: title
-#: performance.xml:877
#, no-c-format
msgid "Managing the caches"
msgstr "管çç¼åï¼Managing the cachesï¼"
#. Tag: para
-#: performance.xml:879
-#, fuzzy, no-c-format
-msgid ""
-"Whenever you pass an object to <literal>save()</literal>, <literal>update()</"
-"literal> or <literal>saveOrUpdate()</literal>, and whenever you retrieve an "
-"object using <literal>load()</literal>, <literal>get()</literal>, "
-"<literal>list()</literal>, <literal>iterate()</literal> or <literal>scroll()"
-"</literal>, that object is added to the internal cache of the "
-"<literal>Session</literal>."
-msgstr ""
-"æ è®ºä½æ¶ï¼å½ä½ ç»<literal>save()</literal>ã<literal>update()</literal>æ "
-"<literal>saveOrUpdate()</literal>æ¹æ³ä¼ éä¸ä¸ªå¯¹è±¡æ¶ï¼æä½¿ç¨<literal>load()</"
-"literal>ã <literal>get()</literal>ã<literal>list()</literal>ã"
-"<literal>iterate()</literal> æ<literal>scroll()</literal>æ¹æ³è·å¾ä¸ä¸ªå¯¹è±¡"
-"æ¶, 该对象é½å°è¢«å å
¥å°<literal>Session</literal>çå
é¨ç¼åä¸ã"
+#, no-c-format
+msgid "Whenever you pass an object to <literal>save()</literal>, <literal>update()</literal> or <literal>saveOrUpdate()</literal>, and whenever you retrieve an object using <literal>load()</literal>, <literal>get()</literal>, <literal>list()</literal>, <literal>iterate()</literal> or <literal>scroll()</literal>, that object is added to the internal cache of the <literal>Session</literal>."
+msgstr "æ è®ºä½æ¶ï¼å½ä½ ç» <literal>save()</literal>ã<literal>update()</literal> æ <literal>saveOrUpdate()</literal> æ¹æ³ä¼ éä¸ä¸ªå¯¹è±¡æ¶ï¼æä½¿ç¨ <literal>load()</literal>ã<literal>get()</literal>ã<literal>list()</literal>ã<literal>iterate()</literal> æ <literal>scroll()</literal> æ¹æ³è·å¾ä¸ä¸ªå¯¹è±¡æ¶ï¼è¯¥å¯¹è±¡é½å°è¢«å å
¥å° <literal>Session</literal> çå
é¨ç¼åä¸ã "
#. Tag: para
-#: performance.xml:886
-#, fuzzy, no-c-format
-msgid ""
-"When <literal>flush()</literal> is subsequently called, the state of that "
-"object will be synchronized with the database. If you do not want this "
-"synchronization to occur, or if you are processing a huge number of objects "
-"and need to manage memory efficiently, the <literal>evict()</literal> method "
-"can be used to remove the object and its collections from the first-level "
-"cache."
-msgstr ""
-"å½éåflush()æ¹æ³è¢«è°ç¨æ¶ï¼å¯¹è±¡çç¶æä¼åæ°æ®åºåå¾åæ¥ã å¦æä½ ä¸å¸ææ¤åæ¥"
-"æä½åçï¼æè
ä½ æ£å¤ç大é对象ãéè¦å¯¹ææç®¡çå
åæ¶ï¼ä½ å¯ä»¥è°ç¨"
-"<literal>evict()</literal> æ¹æ³ï¼ä»ä¸çº§ç¼åä¸å»æè¿äºå¯¹è±¡åå
¶éåã"
-
-#. Tag: programlisting
-#: performance.xml:894
#, no-c-format
-msgid ""
-"<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\").scroll"
-"(); //a huge result set\n"
-"while ( cats.next() ) {\n"
-" Cat cat = (Cat) cats.get(0);\n"
-" doSomethingWithACat(cat);\n"
-" sess.evict(cat);\n"
-"}]]>"
-msgstr ""
+msgid "When <literal>flush()</literal> is subsequently called, the state of that object will be synchronized with the database. If you do not want this synchronization to occur, or if you are processing a huge number of objects and need to manage memory efficiently, the <literal>evict()</literal> method can be used to remove the object and its collections from the first-level cache."
+msgstr "å½éå flush() æ¹æ³è¢«è°ç¨æ¶ï¼å¯¹è±¡çç¶æä¼åæ°æ®åºåå¾åæ¥ãå¦æä½ ä¸å¸ææ¤åæ¥æä½åçï¼æè
ä½ æ£å¤ç大é对象ãéè¦å¯¹ææç®¡çå
åæ¶ï¼ä½ å¯ä»¥è°ç¨ <literal>evict()</literal> æ¹æ³ï¼ä»ä¸çº§ç¼åä¸å»æè¿äºå¯¹è±¡åå
¶éåã "
#. Tag: para
-#: performance.xml:896
#, no-c-format
-msgid ""
-"The <literal>Session</literal> also provides a <literal>contains()</literal> "
-"method to determine if an instance belongs to the session cache."
-msgstr ""
-"Sessionè¿æä¾äºä¸ä¸ª<literal>contains()</literal>æ¹æ³ï¼ç¨æ¥å¤ææä¸ªå®ä¾æ¯å¦å¤"
-"äºå½åsessionçç¼åä¸ã"
+msgid "The <literal>Session</literal> also provides a <literal>contains()</literal> method to determine if an instance belongs to the session cache."
+msgstr "Session è¿æä¾äºä¸ä¸ª <literal>contains()</literal> æ¹æ³ï¼ç¨æ¥å¤ææä¸ªå®ä¾æ¯å¦å¤äºå½å session çç¼åä¸ã"
#. Tag: para
-#: performance.xml:901
-#, fuzzy, no-c-format
-msgid ""
-"To evict all objects from the session cache, call <literal>Session.clear()</"
-"literal>"
-msgstr ""
-"å¦è¥è¦æææç对象ä»sessionç¼åä¸å½»åºæ¸
é¤ï¼åéè¦è°ç¨<literal>Session.clear()"
-"</literal>ã"
+#, no-c-format
+msgid "To evict all objects from the session cache, call <literal>Session.clear()</literal>"
+msgstr "å¦è¥è¦æææçå¯¹è±¡ä» session ç¼åä¸å½»åºæ¸
é¤ï¼åéè¦è°ç¨ <literal>Session.clear()</literal>ã "
#. Tag: para
-#: performance.xml:905
#, no-c-format
-msgid ""
-"For the second-level cache, there are methods defined on "
-"<literal>SessionFactory</literal> for evicting the cached state of an "
-"instance, entire class, collection instance or entire collection role."
-msgstr ""
-"对äºäºçº§ç¼åæ¥è¯´ï¼å¨<literal>SessionFactory</literal>ä¸å®ä¹äºè®¸å¤æ¹æ³ï¼ æ¸
é¤"
-"ç¼åä¸å®ä¾ãæ´ä¸ªç±»ãéåå®ä¾æè
æ´ä¸ªéåã"
+msgid "For the second-level cache, there are methods defined on <literal>SessionFactory</literal> for evicting the cached state of an instance, entire class, collection instance or entire collection role."
+msgstr "对äºäºçº§ç¼åæ¥è¯´ï¼å¨ <literal>SessionFactory</literal> ä¸å®ä¹äºè®¸å¤æ¹æ³ï¼æ¸
é¤ç¼åä¸å®ä¾ãæ´ä¸ªç±»ãéåå®ä¾æè
æ´ä¸ªéåã"
-#. Tag: programlisting
-#: performance.xml:911
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular Cat\n"
-"sessionFactory.evict(Cat.class); //evict all Cats\n"
-"sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a particular "
-"collection of kittens\n"
-"sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten "
-"collections]]>"
-msgstr ""
+msgid "The <literal>CacheMode</literal> controls how a particular session interacts with the second-level cache:"
+msgstr "<literal>CacheMode</literal> åæ°ç¨äºæ§å¶å
·ä½ç Session å¦ä½ä¸äºçº§ç¼åè¿è¡äº¤äºã "
#. Tag: para
-#: performance.xml:913
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>CacheMode</literal> controls how a particular session interacts "
-"with the second-level cache:"
-msgstr ""
-"<literal>CacheMode</literal>åæ°ç¨äºæ§å¶å
·ä½çSessionå¦ä½ä¸äºçº§ç¼åè¿è¡äº¤äºã"
+#, no-c-format
+msgid "<literal>CacheMode.NORMAL</literal>: will read items from and write items to the second-level cache"
+msgstr "<literal>CacheMode.NORMAL</literal>ï¼ä»äºçº§ç¼åä¸è¯»ãåæ°æ®ã"
#. Tag: para
-#: performance.xml:920
-#, fuzzy, no-c-format
-msgid ""
-"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
-"the second-level cache"
-msgstr "<literal>CacheMode.NORMAL</literal> - ä»äºçº§ç¼åä¸è¯»ãåæ°æ®ã"
+#, no-c-format
+msgid "<literal>CacheMode.GET</literal>: will read items from the second-level cache. Do not write to the second-level cache except when updating data"
+msgstr "<literal>CacheMode.GET</literal>ï¼ä»äºçº§ç¼åä¸è¯»åæ°æ®ï¼ä»
卿°æ®æ´æ°æ¶å¯¹äºçº§ç¼ååæ°æ®ã"
#. Tag: para
-#: performance.xml:925
-#, fuzzy, no-c-format
-msgid ""
-"<literal>CacheMode.GET</literal>: will read items from the second-level "
-"cache. Do not write to the second-level cache except when updating data"
-msgstr ""
-"<literal>CacheMode.GET</literal> - ä»äºçº§ç¼åä¸è¯»åæ°æ®ï¼ä»
卿°æ®æ´æ°æ¶å¯¹äºçº§"
-"ç¼ååæ°æ®ã"
+#, no-c-format
+msgid "<literal>CacheMode.PUT</literal>: will write items to the second-level cache. Do not read from the second-level cache"
+msgstr "<literal>CacheMode.PUT</literal>ï¼ä»
åäºçº§ç¼ååæ°æ®ï¼ä½ä¸ä»äºçº§ç¼åä¸è¯»æ°æ®ã"
#. Tag: para
-#: performance.xml:931
-#, fuzzy, no-c-format
-msgid ""
-"<literal>CacheMode.PUT</literal>: will write items to the second-level "
-"cache. Do not read from the second-level cache"
-msgstr ""
-"<literal>CacheMode.PUT</literal> - ä»
åäºçº§ç¼ååæ°æ®ï¼ä½ä¸ä»äºçº§ç¼åä¸è¯»æ°"
-"æ®ã"
+#, no-c-format
+msgid "<literal>CacheMode.REFRESH</literal>: will write items to the second-level cache. Do not read from the second-level cache. Bypass the effect of <literal>hibernate.cache.use_minimal_puts</literal> forcing a refresh of the second-level cache for all items read from the database"
+msgstr "<literal>CacheMode.REFRESH</literal>ï¼ä»
åäºçº§ç¼ååæ°æ®ï¼ä½ä¸ä»äºçº§ç¼åä¸è¯»æ°æ®ãéè¿ <literal>hibernate.cache.use_minimal_puts</literal> ç设置ï¼å¼ºå¶äºçº§ç¼å仿°æ®åºä¸è¯»åæ°æ®ï¼å·æ°ç¼åå
容ã"
#. Tag: para
-#: performance.xml:937
-#, fuzzy, no-c-format
-msgid ""
-"<literal>CacheMode.REFRESH</literal>: will write items to the second-level "
-"cache. Do not read from the second-level cache. Bypass the effect of "
-"<literal>hibernate.cache.use_minimal_puts</literal> forcing a refresh of the "
-"second-level cache for all items read from the database"
-msgstr ""
-"<literal>CacheMode.REFRESH</literal> - ä»
åäºçº§ç¼ååæ°æ®ï¼ä½ä¸ä»äºçº§ç¼åä¸è¯»"
-"æ°æ®ãéè¿ <literal>hibernate.cache.use_minimal_puts</literal>ç设置ï¼å¼ºå¶äº"
-"级ç¼å仿°æ®åºä¸è¯»åæ°æ®ï¼å·æ°ç¼åå
容ã"
-
-#. Tag: para
-#: performance.xml:945
#, no-c-format
-msgid ""
-"To browse the contents of a second-level or query cache region, use the "
-"<literal>Statistics</literal> API:"
-msgstr ""
-"å¦è¥éè¦æ¥çäºçº§ç¼åææ¥è¯¢ç¼ååºåçå
容ï¼ä½ å¯ä»¥ä½¿ç¨<literal>ç»è®¡"
-"ï¼Statisticsï¼</literal> APIã"
+msgid "To browse the contents of a second-level or query cache region, use the <literal>Statistics</literal> API:"
+msgstr "å¦è¥éè¦æ¥çäºçº§ç¼åææ¥è¯¢ç¼ååºåçå
容ï¼ä½ å¯ä»¥ä½¿ç¨<literal>ç»è®¡ï¼Statisticsï¼</literal> APIã"
-#. Tag: programlisting
-#: performance.xml:950
-#, no-c-format
-msgid ""
-"<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
-" .getSecondLevelCacheStatistics(regionName)\n"
-" .getEntries();]]>"
-msgstr ""
-
#. Tag: para
-#: performance.xml:952
-#, fuzzy, no-c-format
-msgid ""
-"You will need to enable statistics and, optionally, force Hibernate to keep "
-"the cache entries in a more readable format:"
-msgstr ""
-"æ¤æ¶ï¼ä½ å¿
é¡»æå·¥æå¼ç»è®¡é项ãå¯éçï¼ä½ å¯ä»¥è®©Hibernateæ´äººå·¥å¯è¯»çæ¹å¼ç»´æ¤ç¼"
-"åå
容ã"
-
-#. Tag: programlisting
-#: performance.xml:957
#, no-c-format
-msgid ""
-"<![CDATA[hibernate.generate_statistics true\n"
-"hibernate.cache.use_structured_entries true]]>"
-msgstr ""
+msgid "You will need to enable statistics and, optionally, force Hibernate to keep the cache entries in a more readable format:"
+msgstr "æ¤æ¶ï¼ä½ å¿
é¡»æå·¥æå¼ç»è®¡é项ãå¯éçï¼ä½ å¯ä»¥è®© Hibernate æ´äººå·¥å¯è¯»çæ¹å¼ç»´æ¤ç¼åå
容ã "
#. Tag: title
-#: performance.xml:962
#, no-c-format
msgid "The Query Cache"
msgstr "æ¥è¯¢ç¼åï¼The Query Cacheï¼"
#. Tag: para
-#: performance.xml:964
-#, fuzzy, no-c-format
-msgid ""
-"Query result sets can also be cached. This is only useful for queries that "
-"are run frequently with the same parameters. You will first need to enable "
-"the query cache:"
-msgstr ""
-"æ¥è¯¢çç»æéä¹å¯ä»¥è¢«ç¼åãåªæå½ç»å¸¸ä½¿ç¨åæ ·çåæ°è¿è¡æ¥è¯¢æ¶ï¼è¿æä¼æäºç¨"
-"å¤ã è¦ä½¿ç¨æ¥è¯¢ç¼åï¼é¦å
ä½ å¿
é¡»æå¼å®ï¼"
-
-#. Tag: programlisting
-#: performance.xml:969
#, no-c-format
-msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
-msgstr ""
+msgid "Query result sets can also be cached. This is only useful for queries that are run frequently with the same parameters. You will first need to enable the query cache:"
+msgstr "æ¥è¯¢çç»æéä¹å¯ä»¥è¢«ç¼åãåªæå½ç»å¸¸ä½¿ç¨åæ ·çåæ°è¿è¡æ¥è¯¢æ¶ï¼è¿æä¼æäºç¨å¤ãè¦ä½¿ç¨æ¥è¯¢ç¼åï¼é¦å
ä½ å¿
é¡»æå¼å®ï¼ "
#. Tag: para
-#: performance.xml:971
-#, fuzzy, no-c-format
-msgid ""
-"This setting creates two new cache regions: one holding cached query result "
-"sets (<literal>org.hibernate.cache.StandardQueryCache</literal>), the other "
-"holding timestamps of the most recent updates to queryable tables "
-"(<literal>org.hibernate.cache.UpdateTimestampsCache</literal>). Note that "
-"the query cache does not cache the state of the actual entities in the "
-"result set; it caches only identifier values and results of value type. The "
-"query cache should always be used in conjunction with the second-level cache."
-msgstr ""
-"该设置å°ä¼å建两个ç¼ååºå - ä¸ä¸ªç¨äºä¿åæ¥è¯¢ç»æé(<literal>org.hibernate."
-"cache.StandardQueryCache</literal>)ï¼ å¦ä¸ä¸ªåç¨äºä¿åæè¿æ¥è¯¢çä¸ç³»åè¡¨çæ¶"
-"é´æ³(<literal>org.hibernate.cache.UpdateTimestampsCache</literal>)ã 请注æï¼"
-"卿¥è¯¢ç¼åä¸ï¼å®å¹¶ä¸ç¼åç»æé䏿å
å«çå®ä½çç¡®åç¶æï¼å®åªç¼åè¿äºå®ä½çæ "
-"è¯ç¬¦å±æ§çå¼ã以ååå¼ç±»åçç»æã æä»¥æ¥è¯¢ç¼åé常ä¼åäºçº§ç¼åä¸èµ·ä½¿ç¨ã"
+#, no-c-format
+msgid "This setting creates two new cache regions: one holding cached query result sets (<literal>org.hibernate.cache.StandardQueryCache</literal>), the other holding timestamps of the most recent updates to queryable tables (<literal>org.hibernate.cache.UpdateTimestampsCache</literal>). Note that the query cache does not cache the state of the actual entities in the result set; it caches only identifier values and results of value type. The query cache should always be used in conjunction with the second-level cache."
+msgstr "该设置å°ä¼å建两个ç¼ååºå â ä¸ä¸ªç¨äºä¿åæ¥è¯¢ç»æéï¼<literal>org.hibernate.cache.StandardQueryCache</literal>ï¼ï¼ å¦ä¸ä¸ªåç¨äºä¿åæè¿æ¥è¯¢çä¸ç³»åè¡¨çæ¶é´æ³ï¼<literal>org.hibernate.cache.UpdateTimestampsCache</literal>ï¼ã请注æï¼å¨æ¥è¯¢ç¼åä¸ï¼å®å¹¶ä¸ç¼åç»æé䏿å
å«çå®ä½çç¡®åç¶æï¼å®åªç¼åè¿äºå®ä½çæ è¯ç¬¦å±æ§çå¼ã以ååå¼ç±»åçç»æãæä»¥æ¥è¯¢ç¼åé常ä¼åäºçº§ç¼åä¸èµ·ä½¿ç¨ã "
#. Tag: para
-#: performance.xml:981
-#, fuzzy, no-c-format
-msgid ""
-"Most queries do not benefit from caching, so by default, queries are not "
-"cached. To enable caching, call <literal>Query.setCacheable(true)</literal>. "
-"This call allows the query to look for existing cache results or add its "
-"results to the cache when it is executed."
-msgstr ""
-"ç»å¤§å¤æ°çæ¥è¯¢å¹¶ä¸è½ä»æ¥è¯¢ç¼åä¸åçï¼æä»¥Hibernateé»è®¤æ¯ä¸è¿è¡æ¥è¯¢ç¼åçãå¦"
-"è¥éè¦è¿è¡ç¼åï¼è¯·è°ç¨ <literal>Query.setCacheable(true)</literal>æ¹æ³ãè¿ä¸ª"
-"è°ç¨ä¼è®©æ¥è¯¢å¨æ§è¡è¿ç¨ä¸æ¶å
ä»ç¼å䏿¥æ¾ç»æï¼ å¹¶å°èªå·±çç»æéæ¾å°ç¼åä¸å»ã"
+#, no-c-format
+msgid "Most queries do not benefit from caching, so by default, queries are not cached. To enable caching, call <literal>Query.setCacheable(true)</literal>. This call allows the query to look for existing cache results or add its results to the cache when it is executed."
+msgstr "ç»å¤§å¤æ°çæ¥è¯¢å¹¶ä¸è½ä»æ¥è¯¢ç¼åä¸åçï¼æä»¥ Hibernate é»è®¤æ¯ä¸è¿è¡æ¥è¯¢ç¼åçãå¦è¥éè¦è¿è¡ç¼åï¼è¯·è°ç¨ <literal>Query.setCacheableï¼trueï¼</literal>æ¹æ³ãè¿ä¸ªè°ç¨ä¼è®©æ¥è¯¢å¨æ§è¡è¿ç¨ä¸æ¶å
ä»ç¼å䏿¥æ¾ç»æï¼å¹¶å°èªå·±çç»æéæ¾å°ç¼åä¸å»ã "
#. Tag: para
-#: performance.xml:988
-#, fuzzy, no-c-format
-msgid ""
-"If you require fine-grained control over query cache expiration policies, "
-"you can specify a named cache region for a particular query by calling "
-"<literal>Query.setCacheRegion()</literal>."
-msgstr ""
-"å¦æä½ è¦å¯¹æ¥è¯¢ç¼åçå¤±ææ¿çè¿è¡ç²¾ç¡®çæ§å¶ï¼ä½ å¿
é¡»è°ç¨<literal>Query."
-"setCacheRegion()</literal>æ¹æ³ï¼ 为æ¯ä¸ªæ¥è¯¢æå®å
¶å½åçç¼ååºåã"
-
-#. Tag: programlisting
-#: performance.xml:994
#, no-c-format
-msgid ""
-"<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog.blogger "
-"= :blogger\")\n"
-" .setEntity(\"blogger\", blogger)\n"
-" .setMaxResults(15)\n"
-" .setCacheable(true)\n"
-" .setCacheRegion(\"frontpages\")\n"
-" .list();]]>"
-msgstr ""
+msgid "If you require fine-grained control over query cache expiration policies, you can specify a named cache region for a particular query by calling <literal>Query.setCacheRegion()</literal>."
+msgstr "å¦æä½ è¦å¯¹æ¥è¯¢ç¼åçå¤±ææ¿çè¿è¡ç²¾ç¡®çæ§å¶ï¼ä½ å¿
é¡»è°ç¨ <literal>Query.setCacheRegion()</literal> æ¹æ³ï¼ä¸ºæ¯ä¸ªæ¥è¯¢æå®å
¶å½åçç¼ååºåã "
#. Tag: para
-#: performance.xml:996
#, no-c-format
-msgid ""
-"If the query should force a refresh of its query cache region, you should "
-"call <literal>Query.setCacheMode(CacheMode.REFRESH)</literal>. This is "
-"particularly useful in cases where underlying data may have been updated via "
-"a separate process (i.e., not modified through Hibernate) and allows the "
-"application to selectively refresh particular query result sets. This is a "
-"more efficient alternative to eviction of a query cache region via "
-"<literal>SessionFactory.evictQueries()</literal>."
-msgstr ""
-"妿æ¥è¯¢éè¦å¼ºè¡å·æ°å
¶æ¥è¯¢ç¼ååºåï¼é£ä¹ä½ åºè¯¥è°ç¨<literal>Query.setCacheMode"
-"(CacheMode.REFRESH)</literal>æ¹æ³ã è¿å¯¹å¨å
¶ä»è¿ç¨ä¸ä¿®æ¹åºå±æ°æ®ï¼ä¾å¦ï¼ä¸é"
-"è¿Hibernateä¿®æ¹æ°æ®ï¼ï¼æå¯¹é£äºéè¦éæ©æ§æ´æ°ç¹å®æ¥è¯¢ç»æéçæ
åµç¹å«æç¨ã "
-"è¿æ¯å¯¹<literal>SessionFactory.evictQueries()</literal>çæ´ä¸ºææçæ¿ä»£æ¹æ¡ï¼"
-"åæ ·å¯ä»¥æ¸
餿¥è¯¢ç¼ååºåã"
+msgid "If the query should force a refresh of its query cache region, you should call <literal>Query.setCacheMode(CacheMode.REFRESH)</literal>. This is particularly useful in cases where underlying data may have been updated via a separate process (i.e., not modified through Hibernate) and allows the application to selectively refresh particular query result sets. This is a more efficient alternative to eviction of a query cache region via <literal>SessionFactory.evictQueries()</literal>."
+msgstr "妿æ¥è¯¢éè¦å¼ºè¡å·æ°å
¶æ¥è¯¢ç¼ååºåï¼é£ä¹ä½ åºè¯¥è°ç¨ <literal>Query.setCacheModeï¼CacheMode.REFRESHï¼</literal>æ¹æ³ã è¿å¯¹å¨å
¶ä»è¿ç¨ä¸ä¿®æ¹åºå±æ°æ®ï¼ä¾å¦ï¼ä¸éè¿Hibernateä¿®æ¹æ°æ®ï¼ï¼æå¯¹é£äºéè¦éæ©æ§æ´æ°ç¹å®æ¥è¯¢ç»æéçæ
åµç¹å«æç¨ã è¿æ¯å¯¹ <literal>SessionFactory.evictQueries()</literal> çæ´ä¸ºææçæ¿ä»£æ¹æ¡ï¼åæ ·å¯ä»¥æ¸
餿¥è¯¢ç¼ååºåã"
#. Tag: title
-#: performance.xml:1008
#, no-c-format
msgid "Understanding Collection performance"
msgstr "çè§£éåæ§è½ï¼Understanding Collection performanceï¼"
#. Tag: para
-#: performance.xml:1010
#, no-c-format
-msgid ""
-"In the previous sections we have covered collections and their applications. "
-"In this section we explore some more issues in relation to collections at "
-"runtime."
-msgstr ""
+msgid "In the previous sections we have covered collections and their applications. In this section we explore some more issues in relation to collections at runtime."
+msgstr "å¨åé¢çç« èéæä»¬å·²ç»è®¨è®ºäºéååç¸å
³åºç¨ç¨åºã卿¬èæä¹å°æ¢ç´¢è¿è¡æ¶éåçæ´å¤é®é¢ã"
#. Tag: title
-#: performance.xml:1017
#, no-c-format
msgid "Taxonomy"
msgstr "åç±»ï¼Taxonomyï¼"
#. Tag: para
-#: performance.xml:1019
#, no-c-format
msgid "Hibernate defines three basic kinds of collections:"
-msgstr "Hibernateå®ä¹äºä¸ç§åºæ¬ç±»åçéåï¼"
+msgstr "Hibernate å®ä¹äºä¸ç§åºæ¬ç±»åçéåï¼"
#. Tag: para
-#: performance.xml:1023
#, no-c-format
msgid "collections of values"
msgstr "弿°æ®éå"
#. Tag: para
-#: performance.xml:1026
-#, fuzzy, no-c-format
+#, no-c-format
msgid "one-to-many associations"
-msgstr "ä¸å¯¹å¤å
³è"
+msgstr "ä¸å¯¹å¤å
³èï¼One-to-many Associationsï¼ "
#. Tag: para
-#: performance.xml:1029
-#, fuzzy, no-c-format
+#, no-c-format
msgid "many-to-many associations"
-msgstr "å¤å¯¹å¤å
³è"
+msgstr "å¤å¯¹å¤å
³è "
#. Tag: para
-#: performance.xml:1033
#, no-c-format
-msgid ""
-"This classification distinguishes the various table and foreign key "
-"relationships but does not tell us quite everything we need to know about "
-"the relational model. To fully understand the relational structure and "
-"performance characteristics, we must also consider the structure of the "
-"primary key that is used by Hibernate to update or delete collection rows. "
-"This suggests the following classification:"
-msgstr ""
-"è¿ä¸ªåç±»æ¯åºåäºä¸åç表åå¤é®å
³ç³»ç±»åï¼ä½æ¯å®æ²¡æåè¯æä»¬å
³ç³»æ¨¡åçææå
"
-"容ã è¦å®å
¨çè§£ä»ä»¬çå
³ç³»ç»æåæ§è½ç¹ç¹ï¼æä»¬å¿
须忶èèâç¨äºHibernateæ´æ°æ"
-"å é¤éåè¡æ°æ®ç主é®çç»æâã å æ¤å¾å°äºå¦ä¸çåç±»ï¼"
+msgid "This classification distinguishes the various table and foreign key relationships but does not tell us quite everything we need to know about the relational model. To fully understand the relational structure and performance characteristics, we must also consider the structure of the primary key that is used by Hibernate to update or delete collection rows. This suggests the following classification:"
+msgstr "è¿ä¸ªåç±»æ¯åºåäºä¸åç表åå¤é®å
³ç³»ç±»åï¼ä½æ¯å®æ²¡æåè¯æä»¬å
³ç³»æ¨¡åçææå
容ã è¦å®å
¨çè§£ä»ä»¬çå
³ç³»ç»æåæ§è½ç¹ç¹ï¼æä»¬å¿
须忶èèâç¨äº Hibernate æ´æ°æå é¤éåè¡æ°æ®ç主é®çç»æâãå æ¤å¾å°äºå¦ä¸çåç±»ï¼"
#. Tag: para
-#: performance.xml:1044
#, no-c-format
msgid "indexed collections"
msgstr "æåºéåç±»"
#. Tag: para
-#: performance.xml:1047
#, no-c-format
msgid "sets"
msgstr "éåï¼setsï¼"
#. Tag: para
-#: performance.xml:1050
#, no-c-format
msgid "bags"
-msgstr "å
ï¼bags)"
+msgstr "å
ï¼bagsï¼"
#. Tag: para
-#: performance.xml:1054
-#, fuzzy, no-c-format
-msgid ""
-"All indexed collections (maps, lists, and arrays) have a primary key "
-"consisting of the <literal><key></literal> and <literal><index></"
-"literal> columns. In this case, collection updates are extremely efficient. "
-"The primary key can be efficiently indexed and a particular row can be "
-"efficiently located when Hibernate tries to update or delete it."
-msgstr ""
-"ææçæåºéåç±»ï¼maps, lists, arrays)齿¥æä¸ä¸ªç±<literal><key></"
-"literal>å <literal><index></literal>ç»æç主é®ã è¿ç§æ
åµä¸éåç±»çæ´"
-"æ°æ¯é叏髿çââ主é®å·²ç»è¢«ææçç´¢å¼ï¼å æ¤å½Hibernateè¯å¾æ´æ°æå é¤ä¸è¡æ¶ï¼å¯"
-"以è¿
éæ¾å°è¯¥è¡æ°æ®ã"
+#, no-c-format
+msgid "All indexed collections (maps, lists, and arrays) have a primary key consisting of the <literal><key></literal> and <literal><index></literal> columns. In this case, collection updates are extremely efficient. The primary key can be efficiently indexed and a particular row can be efficiently located when Hibernate tries to update or delete it."
+msgstr "ææçæåºéåç±»ï¼mapsï¼listsï¼arraysï¼é½æ¥æä¸ä¸ªç± <literal><key></literal> å <literal><index></literal> ç»æç主é®ãè¿ç§æ
åµä¸éåç±»çæ´æ°æ¯é叏髿ç â 主é®å·²ç»è¢«ææçç´¢å¼ï¼å æ¤å½ Hibernate è¯å¾æ´æ°æå é¤ä¸è¡æ¶ï¼å¯ä»¥è¿
éæ¾å°è¯¥è¡æ°æ®ã "
#. Tag: para
-#: performance.xml:1062
-#, fuzzy, no-c-format
-msgid ""
-"Sets have a primary key consisting of <literal><key></literal> and "
-"element columns. This can be less efficient for some types of collection "
-"element, particularly composite elements or large text or binary fields, as "
-"the database may not be able to index a complex primary key as efficiently. "
-"However, for one-to-many or many-to-many associations, particularly in the "
-"case of synthetic identifiers, it is likely to be just as efficient. If you "
-"want <literal>SchemaExport</literal> to actually create the primary key of a "
-"<literal><set></literal>, you must declare all columns as <literal>not-"
-"null=\"true\"</literal>."
-msgstr ""
-"éå(sets)ç主é®ç±<literal><key></literal>åå
¶ä»å
ç´ åæ®µææã å¯¹äºæäº"
-"å
ç´ ç±»åæ¥è¯´ï¼è¿å¾ä½æï¼ç¹å«æ¯ç»åå
ç´ æè
å¤§ææ¬ã大äºè¿å¶åæ®µï¼ æ°æ®åºå¯è½æ "
-"æ³ææç坹夿ç主é®è¿è¡ç´¢å¼ã å¦ä¸æ¹é¢ï¼å¯¹äºä¸å¯¹å¤ãå¤å¯¹å¤å
³èï¼ç¹å«æ¯åæç"
-"æ è¯ç¬¦æ¥è¯´ï¼éåä¹å¯ä»¥è¾¾å°åæ ·ç髿æ§è½ãï¼ éæ³¨ï¼å¦æä½ 叿"
-"<literal>SchemaExport</literal>ä¸ºä½ ç<literal><set></literal>å建主"
-"é®ï¼ ä½ å¿
é¡»æææçåæ®µé½å£°æä¸º<literal>not-null=\"true\"</literal>ãï¼"
+#, no-c-format
+msgid "Sets have a primary key consisting of <literal><key></literal> and element columns. This can be less efficient for some types of collection element, particularly composite elements or large text or binary fields, as the database may not be able to index a complex primary key as efficiently. However, for one-to-many or many-to-many associations, particularly in the case of synthetic identifiers, it is likely to be just as efficient. If you want <literal>SchemaExport</literal> to actually create the primary key of a <literal><set></literal>, you must declare all columns as <literal>not-null=\"true\"</literal>."
+msgstr "éåï¼setsï¼ç主é®ç± <literal><key></literal> åå
¶ä»å
ç´ åæ®µææãå¯¹äºæäºå
ç´ ç±»åæ¥è¯´ï¼è¿å¾ä½æï¼ç¹å«æ¯ç»åå
ç´ æè
å¤§ææ¬ã大äºè¿å¶åæ®µï¼æ°æ®åºå¯è½æ æ³ææç坹夿ç主é®è¿è¡ç´¢å¼ãå¦ä¸æ¹é¢ï¼å¯¹äºä¸å¯¹å¤ãå¤å¯¹å¤å
³èï¼ç¹å«æ¯åæçæ è¯ç¬¦æ¥è¯´ï¼éåä¹å¯ä»¥è¾¾å°åæ ·ç髿æ§è½ãï¼ éæ³¨ï¼å¦æä½ 叿 <literal>SchemaExport</literal> ä¸ºä½ ç <literal><set></literal> å建主é®ï¼ä½ å¿
é¡»æææçåæ®µé½å£°æä¸º <literal>not-null=\"true\"</literal>ãï¼ "
#. Tag: para
-#: performance.xml:1073
-#, fuzzy, no-c-format
-msgid ""
-"<literal><idbag></literal> mappings define a surrogate key, so they "
-"are efficient to update. In fact, they are the best case."
-msgstr ""
-"<literal><idbag></literal>æ å°å®ä¹äºä»£çé®ï¼å æ¤å®æ»æ¯å¯ä»¥å¾é«æç被æ´"
-"æ°ãäºå®ä¸ï¼ <literal><idbag></literal>æ¥æçæå¥½çæ§è½è¡¨ç°ã"
+#, no-c-format
+msgid "<literal><idbag></literal> mappings define a surrogate key, so they are efficient to update. In fact, they are the best case."
+msgstr "<literal><idbag></literal> æ å°å®ä¹äºä»£çé®ï¼å æ¤å®æ»æ¯å¯ä»¥å¾é«æçè¢«æ´æ°ãäºå®ä¸ï¼<literal><idbag></literal> æ¥æçæå¥½çæ§è½è¡¨ç°ã "
#. Tag: para
-#: performance.xml:1078
-#, fuzzy, no-c-format
-msgid ""
-"Bags are the worst case since they permit duplicate element values and, as "
-"they have no index column, no primary key can be defined. Hibernate has no "
-"way of distinguishing between duplicate rows. Hibernate resolves this "
-"problem by completely removing in a single <literal>DELETE</literal> and "
-"recreating the collection whenever it changes. This can be inefficient."
-msgstr ""
-"Bagæ¯æå·®çãå 为bagå
许éå¤çå
ç´ å¼ï¼ä¹æ²¡æç´¢å¼å段ï¼å æ¤ä¸å¯è½å®ä¹ä¸»é®ã "
-"Hibernateæ æ³å¤æåºéå¤çè¡ãå½è¿ç§éåè¢«æ´æ¹æ¶ï¼Hibernateå°ä¼å
宿´å°ç§»é¤ "
-"ï¼éè¿ä¸ä¸ª(in a single <literal>DELETE</literal>)ï¼æ´ä¸ªéåï¼ç¶ååéæ°å建æ´"
-"个éåã å æ¤Bagæ¯é叏使çã"
+#, no-c-format
+msgid "Bags are the worst case since they permit duplicate element values and, as they have no index column, no primary key can be defined. Hibernate has no way of distinguishing between duplicate rows. Hibernate resolves this problem by completely removing in a single <literal>DELETE</literal> and recreating the collection whenever it changes. This can be inefficient."
+msgstr "Bag æ¯æå·®çãå 为 bag å
许éå¤çå
ç´ å¼ï¼ä¹æ²¡æç´¢å¼å段ï¼å æ¤ä¸å¯è½å®ä¹ä¸»é®ã Hibernate æ æ³å¤æåºéå¤çè¡ãå½è¿ç§éåè¢«æ´æ¹æ¶ï¼Hibernate å°ä¼å
宿´å°ç§»é¤ ï¼éè¿ä¸ä¸ªï¼in a single <literal>DELETE</literal>ï¼ï¼æ´ä¸ªéåï¼ç¶ååéæ°å建æ´ä¸ªéåãå æ¤ Bag æ¯é叏使çã "
#. Tag: para
-#: performance.xml:1086
-#, fuzzy, no-c-format
-msgid ""
-"For a one-to-many association, the \"primary key\" may not be the physical "
-"primary key of the database table. Even in this case, the above "
-"classification is still useful. It reflects how Hibernate \"locates\" "
-"individual rows of the collection."
-msgstr ""
-"请注æï¼å¯¹äºä¸å¯¹å¤å
³èæ¥è¯´ï¼â主é®âå¾å¯è½å¹¶ä¸æ¯æ°æ®åºè¡¨çç©ç主é®ã ä½å°±ç®å¨æ¤"
-"æ
åµä¸ï¼ä¸é¢çåç±»ä»ç¶æ¯æç¨çãï¼å®ä»ç¶åæ äºHibernateå¨éåçåæ°æ®è¡ä¸æ¯å¦"
-"ä½è¿è¡âå®ä½âçãï¼"
+#, no-c-format
+msgid "For a one-to-many association, the \"primary key\" may not be the physical primary key of the database table. Even in this case, the above classification is still useful. It reflects how Hibernate \"locates\" individual rows of the collection."
+msgstr "请注æï¼å¯¹äºä¸å¯¹å¤å
³èæ¥è¯´ï¼â主é®âå¾å¯è½å¹¶ä¸æ¯æ°æ®åºè¡¨çç©ç主é®ãä½å°±ç®å¨æ¤æ
åµä¸ï¼ä¸é¢çåç±»ä»ç¶æ¯æç¨çãï¼å®ä»ç¶åæ äº Hibernate å¨éåçåæ°æ®è¡ä¸æ¯å¦ä½è¿è¡âå®ä½âçãï¼ "
#. Tag: title
-#: performance.xml:1096
#, no-c-format
-msgid ""
-"Lists, maps, idbags and sets are the most efficient collections to update"
-msgstr "Lists, maps åsetsç¨äºæ´æ°æçæé«"
+msgid "Lists, maps, idbags and sets are the most efficient collections to update"
+msgstr "Listsï¼maps å sets ç¨äºæ´æ°æçæé«"
#. Tag: para
-#: performance.xml:1098
-#, fuzzy, no-c-format
-msgid ""
-"From the discussion above, it should be clear that indexed collections and "
-"sets allow the most efficient operation in terms of adding, removing and "
-"updating elements."
-msgstr ""
-"æ ¹æ®æä»¬ä¸é¢çè®¨è®ºï¼æ¾ç¶æåºéåç±»åå大夿°seté½å¯ä»¥å¨å¢å ãå é¤ãä¿®æ¹å
ç´ ä¸"
-"æ¥ææå¥½çæ§è½ã"
+#, no-c-format
+msgid "From the discussion above, it should be clear that indexed collections and sets allow the most efficient operation in terms of adding, removing and updating elements."
+msgstr "æ ¹æ®æä»¬ä¸é¢çè®¨è®ºï¼æ¾ç¶æåºéåç±»åå大夿° set é½å¯ä»¥å¨å¢å ãå é¤ãä¿®æ¹å
ç´ ä¸æ¥ææå¥½çæ§è½ã "
#. Tag: para
-#: performance.xml:1104
-#, fuzzy, no-c-format
-msgid ""
-"There is, arguably, one more advantage that indexed collections have over "
-"sets for many-to-many associations or collections of values. Because of the "
-"structure of a <literal>Set</literal>, Hibernate does not <literal>UPDATE</"
-"literal> a row when an element is \"changed\". Changes to a <literal>Set</"
-"literal> always work via <literal>INSERT</literal> and <literal>DELETE</"
-"literal> of individual rows. Once again, this consideration does not apply "
-"to one-to-many associations."
-msgstr ""
-"å¯è®ºè¯çæ¯å¯¹äºå¤å¯¹å¤å
³èã弿°æ®éåèè¨ï¼æåºéåç±»æ¯éå(set)æä¸ä¸ªå¥½å¤ãå "
-"为<literal>Set</literal>çå
å¨ç»æï¼ å¦æâæ¹åâäºä¸ä¸ªå
ç´ ï¼Hibernateå¹¶ä¸ä¼"
-"<literal>æ´æ°ï¼UPDATEï¼</literal>è¿ä¸è¡ã 对äº<literal>Set</literal>æ¥è¯´ï¼åª"
-"æå¨<literal>æå
¥ï¼INSERTï¼</literal>å<literal>å é¤ï¼DELETEï¼</literal> æä½"
-"æ¶âæ¹åâæææã忬¡å¼ºè°ï¼è¿æ®µè®¨è®ºå¯¹âä¸å¯¹å¤å
³èâå¹¶ä¸éç¨ã"
+#, no-c-format
+msgid "There is, arguably, one more advantage that indexed collections have over sets for many-to-many associations or collections of values. Because of the structure of a <literal>Set</literal>, Hibernate does not <literal>UPDATE</literal> a row when an element is \"changed\". Changes to a <literal>Set</literal> always work via <literal>INSERT</literal> and <literal>DELETE</literal> of individual rows. Once again, this consideration does not apply to one-to-many associations."
+msgstr "å¯è®ºè¯çæ¯å¯¹äºå¤å¯¹å¤å
³èã弿°æ®éåèè¨ï¼æåºéåç±»æ¯éåï¼setï¼æä¸ä¸ªå¥½å¤ãå 为 <literal>Set</literal> çå
å¨ç»æï¼ å¦æâæ¹åâäºä¸ä¸ªå
ç´ ï¼Hibernate å¹¶ä¸ä¼<literal>æ´æ°ï¼UPDATEï¼</literal>è¿ä¸è¡ãå¯¹äº <literal>Set</literal> æ¥è¯´ï¼åªæå¨<literal>æå
¥ï¼INSERTï¼</literal>å<literal>å é¤ï¼DELETEï¼</literal> æä½æ¶âæ¹åâæææã忬¡å¼ºè°ï¼è¿æ®µè®¨è®ºå¯¹âä¸å¯¹å¤å
³èâå¹¶ä¸éç¨ã "
#. Tag: para
-#: performance.xml:1113
-#, fuzzy, no-c-format
-msgid ""
-"After observing that arrays cannot be lazy, you can conclude that lists, "
-"maps and idbags are the most performant (non-inverse) collection types, with "
-"sets not far behind. You can expect sets to be the most common kind of "
-"collection in Hibernate applications. This is because the \"set\" semantics "
-"are most natural in the relational model."
-msgstr ""
-"注æå°æ°ç»æ æ³å»¶è¿è½½å
¥ï¼æä»¬å¯ä»¥å¾åºç»è®ºï¼list, mapåidbagsæ¯æé«æçï¼éå"
-"åï¼éåç±»åï¼setåç´§éå
¶åã å¨Hibernateä¸ï¼setåºè¯¥æ¶æéç¨çéåç±»åï¼è¿æ¶"
-"å 为âsetâçè¯ä¹å¨å
³ç³»æ¨¡å䏿¯æèªç¶çã"
+#, no-c-format
+msgid "After observing that arrays cannot be lazy, you can conclude that lists, maps and idbags are the most performant (non-inverse) collection types, with sets not far behind. You can expect sets to be the most common kind of collection in Hibernate applications. This is because the \"set\" semantics are most natural in the relational model."
+msgstr "注æå°æ°ç»æ æ³å»¶è¿è½½å
¥ï¼æä»¬å¯ä»¥å¾åºç»è®ºï¼listï¼map å idbags æ¯æé«æçï¼éååï¼éåç±»åï¼set åç´§éå
¶åã å¨ Hibernate ä¸ï¼set åºè¯¥æ¶æéç¨çéåç±»åï¼è¿æ¶å 为âsetâçè¯ä¹å¨å
³ç³»æ¨¡å䏿¯æèªç¶çã "
#. Tag: para
-#: performance.xml:1121
-#, fuzzy, no-c-format
-msgid ""
-"However, in well-designed Hibernate domain models, most collections are in "
-"fact one-to-many associations with <literal>inverse=\"true\"</literal>. For "
-"these associations, the update is handled by the many-to-one end of the "
-"association, and so considerations of collection update performance simply "
-"do not apply."
-msgstr ""
-"使¯ï¼å¨è®¾è®¡è¯å¥½çHibernateé¢å模åä¸ï¼æä»¬é常å¯ä»¥çå°æ´å¤çéåäºå®ä¸æ¯å¸¦æ"
-"<literal>inverse=\"true\"</literal> çä¸å¯¹å¤çå
³èã对äºè¿äºå
³èï¼æ´æ°æä½å°"
-"ä¼å¨å¤å¯¹ä¸çè¿ä¸ç«¯è¿è¡å¤çãå æ¤å¯¹äºæ¤ç±»æ
åµï¼æ éèèå
¶éåçæ´æ°æ§è½ã"
+#, no-c-format
+msgid "However, in well-designed Hibernate domain models, most collections are in fact one-to-many associations with <literal>inverse=\"true\"</literal>. For these associations, the update is handled by the many-to-one end of the association, and so considerations of collection update performance simply do not apply."
+msgstr "使¯ï¼å¨è®¾è®¡è¯å¥½ç Hibernate é¢å模åä¸ï¼æä»¬é常å¯ä»¥çå°æ´å¤çéåäºå®ä¸æ¯å¸¦æ <literal>inverse=\"true\"</literal> çä¸å¯¹å¤çå
³èã对äºè¿äºå
³èï¼æ´æ°æä½å°ä¼å¨å¤å¯¹ä¸çè¿ä¸ç«¯è¿è¡å¤çãå æ¤å¯¹äºæ¤ç±»æ
åµï¼æ éèèå
¶éåçæ´æ°æ§è½ã "
#. Tag: title
-#: performance.xml:1131
#, no-c-format
msgid "Bags and lists are the most efficient inverse collections"
-msgstr "Bagålistæ¯ååéåç±»ä¸æçæé«ç"
+msgstr "Bag å list æ¯ååéåç±»ä¸æçæé«ç"
#. Tag: para
-#: performance.xml:1133
-#, fuzzy, no-c-format
-msgid ""
-"There is a particular case, however, in which bags, and also lists, are much "
-"more performant than sets. For a collection with <literal>inverse=\"true\"</"
-"literal>, the standard bidirectional one-to-many relationship idiom, for "
-"example, we can add elements to a bag or list without needing to initialize "
-"(fetch) the bag elements. This is because, unlike a <literal>set</literal>, "
-"<literal>Collection.add()</literal> or <literal>Collection.addAll()</"
-"literal> must always return true for a bag or <literal>List</literal>. This "
-"can make the following common code much faster:"
-msgstr ""
-"卿bagæè¿æ°´æ²ä¹åï¼ä½ å¿
é¡»äºè§£ï¼å¨ä¸ç§æ
åµä¸ï¼bagçæ§è½(å
æ¬list)è¦æ¯seté«å¾"
-"å¤ï¼ å¯¹äºææäº<literal>inverse=\"true\"</literal>çéåç±»ï¼æ¯å¦è¯´ï¼æ åçå"
-"åçä¸å¯¹å¤å
³èï¼ï¼ æä»¬å¯ä»¥å¨æªåå§å(fetch)å
å
ç´ çæ
åµä¸ç´æ¥åbagælistæ·»å "
-"æ°å
ç´ ï¼ è¿æ¯å 为<literal>Collection.add()</literal>)æè
<literal>Collection."
-"addAll()</literal> æ¹æ³ 对bagæè
Listæ»æ¯è¿åtrueï¼è¿ç¹ä¸ä¸Setä¸åï¼ãå æ¤å¯¹"
-"äºä¸é¢çç¸åä»£ç æ¥è¯´ï¼é度ä¼å¿«å¾å¤ã"
-
-#. Tag: programlisting
-#: performance.xml:1143
#, no-c-format
-msgid ""
-"<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
-"Child c = new Child();\n"
-"c.setParent(p);\n"
-"p.getChildren().add(c); //no need to fetch the collection!\n"
-"sess.flush();]]>"
-msgstr ""
+msgid "There is a particular case, however, in which bags, and also lists, are much more performant than sets. For a collection with <literal>inverse=\"true\"</literal>, the standard bidirectional one-to-many relationship idiom, for example, we can add elements to a bag or list without needing to initialize (fetch) the bag elements. This is because, unlike a <literal>set</literal>, <literal>Collection.add()</literal> or <literal>Collection.addAll()</literal> must always return true for a bag or <literal>List</literal>. This can make the following common code much faster:"
+msgstr "卿 bag æè¿æ°´æ²ä¹åï¼ä½ å¿
é¡»äºè§£ï¼å¨ä¸ç§æ
åµä¸ï¼bag çæ§è½ï¼å
æ¬listï¼è¦æ¯ set é«å¾å¤ï¼å¯¹äºææäº <literal>inverse=\"true\"</literal> çéåç±»ï¼æ¯å¦è¯´ï¼æ åçååçä¸å¯¹å¤å
³èï¼ï¼æä»¬å¯ä»¥å¨æªåå§åï¼fetchï¼å
å
ç´ çæ
åµä¸ç´æ¥å bag æ list æ·»å æ°å
ç´ ï¼ è¿æ¯å 为 <literal>Collection.add()</literal>ï¼æè
<literal>Collection.addAll()</literal> æ¹æ³å¯¹ bag æè
List æ»æ¯è¿å trueï¼è¿ç¹ä¸ä¸ Set ä¸åï¼ãå æ¤å¯¹äºä¸é¢çç¸åä»£ç æ¥è¯´ï¼é度ä¼å¿«å¾å¤ã "
#. Tag: title
-#: performance.xml:1148
#, no-c-format
msgid "One shot delete"
msgstr "䏿¬¡æ§å é¤ï¼One shot deleteï¼"
#. Tag: para
-#: performance.xml:1150
-#, fuzzy, no-c-format
-msgid ""
-"Deleting collection elements one by one can sometimes be extremely "
-"inefficient. Hibernate knows not to do that in the case of an newly-empty "
-"collection (if you called <literal>list.clear()</literal>, for example). In "
-"this case, Hibernate will issue a single <literal>DELETE</literal>."
-msgstr ""
-"å¶å°çï¼é个å é¤éåç±»ä¸çå
ç´ æ¯ç¸å½ä½æçãHibernate并没é£ä¹ç¬¨ï¼ å¦æä½ æ³è¦"
-"ææ´ä¸ªéåé½å é¤ï¼æ¯å¦è¯´è°ç¨list.clear()ï¼ï¼Hibernateåªéè¦ä¸ä¸ªDELETEå°±æå®"
-"äºã"
+#, no-c-format
+msgid "Deleting collection elements one by one can sometimes be extremely inefficient. Hibernate knows not to do that in the case of an newly-empty collection (if you called <literal>list.clear()</literal>, for example). In this case, Hibernate will issue a single <literal>DELETE</literal>."
+msgstr "å¶å°çï¼é个å é¤éåç±»ä¸çå
ç´ æ¯ç¸å½ä½æçãHibernate 并没é£ä¹ç¬¨ï¼å¦æä½ æ³è¦ææ´ä¸ªéåé½å é¤ï¼æ¯å¦è¯´è°ç¨ list.clear()ï¼ï¼Hibernate åªéè¦ä¸ä¸ª DELETE å°±æå®äºã "
#. Tag: para
-#: performance.xml:1157
-#, fuzzy, no-c-format
-msgid ""
-"Suppose you added a single element to a collection of size twenty and then "
-"remove two elements. Hibernate will issue one <literal>INSERT</literal> "
-"statement and two <literal>DELETE</literal> statements, unless the "
-"collection is a bag. This is certainly desirable."
-msgstr ""
-"å设æä»¬å¨ä¸ä¸ªé¿åº¦ä¸º20çéåç±»ä¸æ°å¢å äºä¸ä¸ªå
ç´ ï¼ç¶ååå é¤ä¸¤ä¸ªã Hibernate"
-"ä¼å®æä¸æ¡<literal>INSERT</literal>è¯å¥å两æ¡<literal>DELETE</literal>è¯å¥"
-"ï¼é¤ééåç±»æ¯ä¸ä¸ªbag)ã è¿å½ç¶æ¯æ¾èæè§çã"
+#, no-c-format
+msgid "Suppose you added a single element to a collection of size twenty and then remove two elements. Hibernate will issue one <literal>INSERT</literal> statement and two <literal>DELETE</literal> statements, unless the collection is a bag. This is certainly desirable."
+msgstr "å设æä»¬å¨ä¸ä¸ªé¿åº¦ä¸º20çéåç±»ä¸æ°å¢å äºä¸ä¸ªå
ç´ ï¼ç¶ååå é¤ä¸¤ä¸ªãHibernate ä¼å®æä¸æ¡ <literal>INSERT</literal> è¯å¥åä¸¤æ¡ <literal>DELETE</literal> è¯å¥ï¼é¤ééåç±»æ¯ä¸ä¸ª bagï¼ãè¿å½ç¶æ¯ä»¤äººæ»¡æçã "
#. Tag: para
-#: performance.xml:1163
#, no-c-format
-msgid ""
-"However, suppose that we remove eighteen elements, leaving two and then add "
-"thee new elements. There are two possible ways to proceed"
-msgstr ""
-"使¯ï¼å设æä»¬å é¤äº18ä¸ªæ°æ®ï¼åªå©ä¸2个ï¼ç¶åæ°å¢3个ãåæä¸¤ç§å¤çæ¹å¼ï¼"
+msgid "However, suppose that we remove eighteen elements, leaving two and then add thee new elements. There are two possible ways to proceed"
+msgstr "使¯ï¼å设æä»¬å é¤äº 18 ä¸ªæ°æ®ï¼åªå©ä¸ 2 个ï¼ç¶åæ°å¢ 3 个ãåæä¸¤ç§å¤çæ¹å¼ï¼"
#. Tag: para
-#: performance.xml:1170
#, no-c-format
msgid "delete eighteen rows one by one and then insert three rows"
-msgstr "éä¸çå é¤è¿18ä¸ªæ°æ®ï¼åæ°å¢ä¸ä¸ªï¼"
+msgstr "éä¸çå é¤è¿ 18 ä¸ªæ°æ®ï¼åæ°å¢ä¸ä¸ªï¼"
#. Tag: para
-#: performance.xml:1173
-#, fuzzy, no-c-format
-msgid ""
-"remove the whole collection in one SQL <literal>DELETE</literal> and insert "
-"all five current elements one by one"
-msgstr "å 餿´ä¸ªéåç±»ï¼åªç¨ä¸å¥DELETEè¯å¥ï¼ï¼ç¶åå¢å 5ä¸ªæ°æ®ã"
+#, no-c-format
+msgid "remove the whole collection in one SQL <literal>DELETE</literal> and insert all five current elements one by one"
+msgstr "å 餿´ä¸ªéåç±»ï¼åªç¨ä¸å¥ DELETE è¯å¥ï¼ï¼ç¶åé䏿·»å 5 ä¸ªæ°æ®ã"
#. Tag: para
-#: performance.xml:1178
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate cannot know that the second option is probably quicker. It would "
-"probably be undesirable for Hibernate to be that intuitive as such behavior "
-"might confuse database triggers, etc."
-msgstr ""
-"Hibernateè¿æ²¡é£ä¹èªæï¼ç¥é第äºç§éæ©å¯è½ä¼æ¯è¾å¿«ã ï¼ä¹è®¸è®©Hibernateä¸è¿ä¹èª"
-"æä¹æ¯å¥½äºï¼å¦åå¯è½ä¼å¼åæå¤çâæ°æ®åºè§¦åå¨âä¹ç±»çé®é¢ãï¼"
+#, no-c-format
+msgid "Hibernate cannot know that the second option is probably quicker. It would probably be undesirable for Hibernate to be that intuitive as such behavior might confuse database triggers, etc."
+msgstr "Hibernate è¿æ²¡é£ä¹èªæï¼ç¥é第äºç§éæ©å¯è½ä¼æ¯è¾å¿«ãï¼ä¹è®¸è®© Hibernate ä¸è¿ä¹èªæä¹æ¯å¥½äºï¼å¦åå¯è½ä¼å¼åæå¤çâæ°æ®åºè§¦åå¨âä¹ç±»çé®é¢ãï¼"
#. Tag: para
-#: performance.xml:1184
-#, fuzzy, no-c-format
-msgid ""
-"Fortunately, you can force this behavior (i.e. the second strategy) at any "
-"time by discarding (i.e. dereferencing) the original collection and "
-"returning a newly instantiated collection with all the current elements."
-msgstr ""
-"幸è¿çæ¯ï¼ä½ å¯ä»¥å¼ºå¶ä½¿ç¨ç¬¬äºç§çç¥ãä½ éè¦åæ¶åæ¥çæ´ä¸ªéåç±»ï¼è§£é¤å
¶å¼"
-"ç¨ï¼ï¼ ç¶ååè¿åä¸ä¸ªæ°çå®ä¾åçéåç±»ï¼åªå
å«éè¦çå
ç´ ãæäºæ¶åè¿æ¯é常æ"
-"ç¨çã"
+#, no-c-format
+msgid "Fortunately, you can force this behavior (i.e. the second strategy) at any time by discarding (i.e. dereferencing) the original collection and returning a newly instantiated collection with all the current elements."
+msgstr "幸è¿çæ¯ï¼ä½ å¯ä»¥å¼ºå¶ä½¿ç¨ç¬¬äºç§çç¥ãä½ éè¦åæ¶åæ¥çæ´ä¸ªéåç±»ï¼è§£é¤å
¶å¼ç¨ï¼ï¼ç¶ååè¿åä¸ä¸ªæ°çå®ä¾åçéåç±»ï¼åªå
å«éè¦çå
ç´ ãæäºæ¶åè¿æ¯é常æç¨çã "
#. Tag: para
-#: performance.xml:1190
-#, fuzzy, no-c-format
-msgid ""
-"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
-"\"</literal>."
-msgstr ""
-"æ¾ç¶ï¼ä¸æ¬¡æ§å é¤å¹¶ä¸éç¨äºè¢«æ å°ä¸º<literal>inverse=\"true\"</literal>çéåã"
+#, no-c-format
+msgid "One-shot-delete does not apply to collections mapped <literal>inverse=\"true\"</literal>."
+msgstr "æ¾ç¶ï¼ä¸æ¬¡æ§å é¤å¹¶ä¸éç¨äºè¢«æ å°ä¸º <literal>inverse=\"true\"</literal> çéåã "
#. Tag: title
-#: performance.xml:1199
#, no-c-format
msgid "Monitoring performance"
msgstr "çæµæ§è½ï¼Monitoring performanceï¼"
#. Tag: para
-#: performance.xml:1201
#, no-c-format
-msgid ""
-"Optimization is not much use without monitoring and access to performance "
-"numbers. Hibernate provides a full range of figures about its internal "
-"operations. Statistics in Hibernate are available per "
-"<literal>SessionFactory</literal>."
-msgstr ""
-"没æçæµåæ§è½åæ°èè¿è¡ä¼åæ¯æ¯«æ æä¹çãHibernate为å
¶å
鍿使ä¾äºä¸ç³»åç"
-"示æå¾ï¼å æ¤å¯ä»¥ä» æ¯ä¸ª<literal>SessionFactory</literal>æåå
¶ç»è®¡æ°æ®ã"
+msgid "Optimization is not much use without monitoring and access to performance numbers. Hibernate provides a full range of figures about its internal operations. Statistics in Hibernate are available per <literal>SessionFactory</literal>."
+msgstr "没æçæµåæ§è½åæ°èè¿è¡ä¼åæ¯æ¯«æ æä¹çãHibernate 为å
¶å
鍿使ä¾äºä¸ç³»åç示æå¾ï¼å æ¤å¯ä»¥ä» æ¯ä¸ª <literal>SessionFactory</literal> æåå
¶ç»è®¡æ°æ®ã"
#. Tag: title
-#: performance.xml:1208
#, no-c-format
msgid "Monitoring a SessionFactory"
-msgstr "çæµSessionFactory"
+msgstr "çæµ SessionFactory"
#. Tag: para
-#: performance.xml:1210
#, no-c-format
-msgid ""
-"You can access <literal>SessionFactory</literal> metrics in two ways. Your "
-"first option is to call <literal>sessionFactory.getStatistics()</literal> "
-"and read or display the <literal>Statistics</literal> yourself."
-msgstr ""
-"ä½ å¯ä»¥æä¸¤ç§æ¹å¼è®¿é®<literal>SessionFactory</literal>çæ°æ®è®°å½ï¼ç¬¬ä¸ç§å°±æ¯èª"
-"å·±ç´æ¥è°ç¨ <literal>sessionFactory.getStatistics()</literal>æ¹æ³è¯»åãæ¾ç¤º"
-"<literal>ç»è®¡</literal>æ°æ®ã"
+msgid "You can access <literal>SessionFactory</literal> metrics in two ways. Your first option is to call <literal>sessionFactory.getStatistics()</literal> and read or display the <literal>Statistics</literal> yourself."
+msgstr "ä½ å¯ä»¥æä¸¤ç§æ¹å¼è®¿é® <literal>SessionFactory</literal> çæ°æ®è®°å½ï¼ç¬¬ä¸ç§å°±æ¯èªå·±ç´æ¥è°ç¨ <literal>sessionFactory.getStatistics()</literal> æ¹æ³è¯»åãæ¾ç¤º<literal>ç»è®¡</literal>æ°æ®ã"
#. Tag: para
-#: performance.xml:1216
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate can also use JMX to publish metrics if you enable the "
-"<literal>StatisticsService</literal> MBean. You can enable a single MBean "
-"for all your <literal>SessionFactory</literal> or one per factory. See the "
-"following code for minimalistic configuration examples:"
-msgstr ""
-"æ¤å¤ï¼å¦æä½ æå¼<literal>StatisticsService</literal> MBeané项ï¼é£ä¹Hibernate"
-"åå¯ä»¥ä½¿ç¨JMXææ¯ åå¸å
¶æ°æ®è®°å½ãä½ å¯ä»¥è®©åºç¨ä¸ææç"
-"<literal>SessionFactory</literal>åæ¶å
±äº«ä¸ä¸ªMBeanï¼ä¹å¯ä»¥æ¯ä¸ª SessionFactory"
-"åé
ä¸ä¸ªMBeanãä¸é¢ç代ç 峿¯å
¶æ¼ç¤ºä»£ç ï¼"
-
-#. Tag: programlisting
-#: performance.xml:1223
#, no-c-format
-msgid ""
-"<![CDATA[// MBean service registration for a specific SessionFactory\n"
-"Hashtable tb = new Hashtable();\n"
-"tb.put(\"type\", \"statistics\");\n"
-"tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
-"ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
-"\n"
-"StatisticsService stats = new StatisticsService(); // MBean implementation\n"
-"stats.setSessionFactory(sessionFactory); // Bind the stats to a "
-"SessionFactory\n"
-"server.registerMBean(stats, on); // Register the Mbean on the server]]>"
-msgstr ""
+msgid "Hibernate can also use JMX to publish metrics if you enable the <literal>StatisticsService</literal> MBean. You can enable a single MBean for all your <literal>SessionFactory</literal> or one per factory. See the following code for minimalistic configuration examples:"
+msgstr "æ¤å¤ï¼å¦æä½ æå¼ <literal>StatisticsService</literal> MBean é项ï¼é£ä¹ Hibernate åå¯ä»¥ä½¿ç¨ JMX ææ¯ åå¸å
¶æ°æ®è®°å½ãä½ å¯ä»¥è®©åºç¨ä¸ææç <literal>SessionFactory</literal> åæ¶å
±äº«ä¸ä¸ª MBeanï¼ä¹å¯ä»¥æ¯ä¸ª SessionFactory åé
ä¸ä¸ª MBeanãä¸é¢ç代ç 峿¯å
¶æ¼ç¤ºä»£ç ï¼ "
-#. Tag: programlisting
-#: performance.xml:1226
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[// MBean service registration for all SessionFactory's\n"
-"Hashtable tb = new Hashtable();\n"
-"tb.put(\"type\", \"statistics\");\n"
-"tb.put(\"sessionFactory\", \"all\");\n"
-"ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
-"\n"
-"StatisticsService stats = new StatisticsService(); // MBean implementation\n"
-"server.registerMBean(stats, on); // Register the MBean on the server]]>"
-msgstr ""
+msgid "You can activate and deactivate the monitoring for a <literal>SessionFactory</literal>:"
+msgstr "ä½ å¯ä»¥éè¿ä»¥ä¸æ¹æ³æå¼æå
³é <literal>SessionFactory</literal> ççæµåè½ï¼ "
#. Tag: para
-#: performance.xml:1233
-#, fuzzy, no-c-format
-msgid ""
-"You can activate and deactivate the monitoring for a "
-"<literal>SessionFactory</literal>:"
-msgstr ""
-"ä½ å¯ä»¥éè¿ä»¥ä¸æ¹æ³æå¼æå
³é<literal>SessionFactory</literal>ççæµåè½ï¼"
+#, no-c-format
+msgid "at configuration time, set <literal>hibernate.generate_statistics</literal> to <literal>false</literal>"
+msgstr "å¨é
ç½®æé´ï¼å° <literal>hibernate.generate_statistics</literal> 设置为 <literal>true</literal> æ <literal>false</literal>ï¼"
#. Tag: para
-#: performance.xml:1238
#, no-c-format
-msgid ""
-"at configuration time, set <literal>hibernate.generate_statistics</literal> "
-"to <literal>false</literal>"
-msgstr ""
-"å¨é
ç½®æé´ï¼å°<literal>hibernate.generate_statistics</literal>设置为"
-"<literal>true</literal>æ<literal>false</literal>ï¼"
+msgid "at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
+msgstr "å¨è¿è¡æé´ï¼åå¯ä»¥å¯ä»¥éè¿ <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> æ <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
#. Tag: para
-#: performance.xml:1245
#, no-c-format
-msgid ""
-"at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> "
-"or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
-msgstr ""
-"å¨è¿è¡æé´ï¼åå¯ä»¥å¯ä»¥éè¿<literal>sf.getStatistics().setStatisticsEnabled"
-"(true)</literal> æ<literal>hibernateStatsBean.setStatisticsEnabled(true)</"
-"literal>"
+msgid "Statistics can be reset programmatically using the <literal>clear()</literal> method. A summary can be sent to a logger (info level) using the <literal>logSummary()</literal> method."
+msgstr "ä½ ä¹å¯ä»¥å¨ç¨åºä¸è°ç¨ <literal>clear()</literal> æ¹æ³éç½®ç»è®¡æ°æ®ï¼è°ç¨ <literal>logSummary()</literal> 卿¥å¿ä¸è®°å½ï¼info 级å«ï¼å
¶æ»ç»ã "
-#. Tag: para
-#: performance.xml:1252
-#, fuzzy, no-c-format
-msgid ""
-"Statistics can be reset programmatically using the <literal>clear()</"
-"literal> method. A summary can be sent to a logger (info level) using the "
-"<literal>logSummary()</literal> method."
-msgstr ""
-"ä½ ä¹å¯ä»¥å¨ç¨åºä¸è°ç¨<literal>clear()</literal>æ¹æ³éç½®ç»è®¡æ°æ®ï¼è°ç¨"
-"<literal>logSummary()</literal> 卿¥å¿ä¸è®°å½ï¼info级å«ï¼å
¶æ»ç»ã"
-
#. Tag: title
-#: performance.xml:1261
#, no-c-format
msgid "Metrics"
msgstr "æ°æ®è®°å½ï¼Metricsï¼"
#. Tag: para
-#: performance.xml:1263
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate provides a number of metrics, from basic information to more "
-"specialized information that is only relevant in certain scenarios. All "
-"available counters are described in the <literal>Statistics</literal> "
-"interface API, in three categories:"
-msgstr ""
-"Hibernateæä¾äºä¸ç³»åæ°æ®è®°å½ï¼å
¶è®°å½çå
容å
æ¬ä»æåºæ¬çä¿¡æ¯å°ä¸å
·ä½åºæ¯çç¹"
-"æ®ä¿¡æ¯ãææçæµéå¼é½å¯ä»¥ç± <literal>Statistics</literal>æ¥å£è¿è¡è®¿é®ï¼ä¸»è¦"
-"å为ä¸ç±»ï¼"
+#, no-c-format
+msgid "Hibernate provides a number of metrics, from basic information to more specialized information that is only relevant in certain scenarios. All available counters are described in the <literal>Statistics</literal> interface API, in three categories:"
+msgstr "Hibernate æä¾äºä¸ç³»åæ°æ®è®°å½ï¼å
¶è®°å½çå
容å
æ¬ä»æåºæ¬çä¿¡æ¯å°ä¸å
·ä½åºæ¯çç¹æ®ä¿¡æ¯ãææçæµéå¼é½å¯ä»¥ç± <literal>Statistics</literal> æ¥å£ API è¿è¡è®¿é®ï¼ä¸»è¦å为ä¸ç±»ï¼"
#. Tag: para
-#: performance.xml:1270
#, no-c-format
-msgid ""
-"Metrics related to the general <literal>Session</literal> usage, such as "
-"number of open sessions, retrieved JDBC connections, etc."
-msgstr ""
-"使ç¨<literal>Session</literal>çæ®éæ°æ®è®°å½ï¼ä¾å¦æå¼çSessionç个æ°ãåå¾ç"
-"JDBCçè¿æ¥æ°çï¼"
+msgid "Metrics related to the general <literal>Session</literal> usage, such as number of open sessions, retrieved JDBC connections, etc."
+msgstr "ä½¿ç¨ <literal>Session</literal> çæ®éæ°æ®è®°å½ï¼ä¾å¦æå¼ç Session ç个æ°ãåå¾ç JDBC çè¿æ¥æ°çï¼"
#. Tag: para
-#: performance.xml:1276
-#, fuzzy, no-c-format
-msgid ""
-"Metrics related to the entities, collections, queries, and caches as a whole "
-"(aka global metrics)."
-msgstr "å®ä½ãéåãæ¥è¯¢ãç¼åçå
容çç»ä¸æ°æ®è®°å½"
+#, no-c-format
+msgid "Metrics related to the entities, collections, queries, and caches as a whole (aka global metrics)."
+msgstr "å®ä½ãéåãæ¥è¯¢ãç¼åçå
容çç»ä¸æ°æ®è®°å½ã"
#. Tag: para
-#: performance.xml:1282
#, no-c-format
-msgid ""
-"Detailed metrics related to a particular entity, collection, query or cache "
-"region."
+msgid "Detailed metrics related to a particular entity, collection, query or cache region."
msgstr "åå
·ä½å®ä½ãéåãæ¥è¯¢ãç¼åç¸å
³çè¯¦ç»æ°æ®è®°å½"
#. Tag: para
-#: performance.xml:1289
-#, fuzzy, no-c-format
-msgid ""
-"For example, you can check the cache hit, miss, and put ratio of entities, "
-"collections and queries, and the average time a query needs. Be aware that "
-"the number of milliseconds is subject to approximation in Java. Hibernate is "
-"tied to the JVM precision and on some platforms this might only be accurate "
-"to 10 seconds."
-msgstr ""
-"ä¾å¦ï¼ä½ å¯ä»¥æ£æ¥ç¼åçå½ä¸æå次æ°ï¼ç¼åçå½ä¸å¤±è´¥æ¬¡æ°ï¼å®ä½ãéååæ¥è¯¢ç使"
-"ç¨æ¦çï¼æ¥è¯¢ç平忶é´çã请注æ Java䏿¶é´çè¿ä¼¼ç²¾åº¦æ¯æ¯«ç§ãHibernateçæ°æ®"
-"精度åå
·ä½çJVMæå
³ï¼å¨æäºå¹³å°ä¸å
¶ç²¾åº¦çè³åªè½ç²¾ç¡®å°10ç§ã"
+#, no-c-format
+msgid "For example, you can check the cache hit, miss, and put ratio of entities, collections and queries, and the average time a query needs. Be aware that the number of milliseconds is subject to approximation in Java. Hibernate is tied to the JVM precision and on some platforms this might only be accurate to 10 seconds."
+msgstr "ä¾å¦ï¼ä½ å¯ä»¥æ£æ¥ç¼åçå½ä¸æå次æ°ï¼ç¼åçå½ä¸å¤±è´¥æ¬¡æ°ï¼å®ä½ãéååæ¥è¯¢çä½¿ç¨æ¦çï¼æ¥è¯¢ç平忶é´çã请注æ Java 䏿¶é´çè¿ä¼¼ç²¾åº¦æ¯æ¯«ç§ãHibernate çæ°æ®ç²¾åº¦åå
·ä½ç JVM æå
³ï¼å¨æäºå¹³å°ä¸å
¶ç²¾åº¦çè³åªè½ç²¾ç¡®å° 10 ç§ã "
#. Tag: para
-#: performance.xml:1296
-#, fuzzy, no-c-format
-msgid ""
-"Simple getters are used to access the global metrics (i.e. not tied to a "
-"particular entity, collection, cache region, etc.). You can access the "
-"metrics of a particular entity, collection or cache region through its name, "
-"and through its HQL or SQL representation for queries. Please refer to the "
-"<literal>Statistics</literal>, <literal>EntityStatistics</literal>, "
-"<literal>CollectionStatistics</literal>, "
-"<literal>SecondLevelCacheStatistics</literal>, and <literal>QueryStatistics</"
-"literal> API Javadoc for more information. The following code is a simple "
-"example:"
-msgstr ""
-"ä½ å¯ä»¥ç´æ¥ä½¿ç¨getteræ¹æ³å¾å°å
¨å±æ°æ®è®°å½ï¼ä¾å¦ï¼åå
·ä½çå®ä½ãéåãç¼ååºæ "
-"å
³çæ°æ®ï¼ï¼ä½ ä¹å¯ä»¥å¨å
·ä½æ¥è¯¢ä¸éè¿æ è®°å®ä½åã æHQLãSQLè¯å¥å¾å°æå®ä½çæ°"
-"æ®è®°å½ã请åè<literal>Statistics</literal>ã<literal>EntityStatistics</"
-"literal>ã <literal>CollectionStatistics</literal>ã"
-"<literal>SecondLevelCacheStatistics</literal>ã å<literal>QueryStatistics</"
-"literal>çAPIææ¡£ä»¥æåæ´å¤ä¿¡æ¯ãä¸é¢ç代ç åæ¯ä¸ªç®åçä¾åï¼"
-
-#. Tag: programlisting
-#: performance.xml:1306
#, no-c-format
-msgid ""
-"<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics();\n"
-"\n"
-"double queryCacheHitCount = stats.getQueryCacheHitCount();\n"
-"double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
-"double queryCacheHitRatio =\n"
-" queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
-"\n"
-"log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
-"\n"
-"EntityStatistics entityStats =\n"
-" stats.getEntityStatistics( Cat.class.getName() );\n"
-"long changes =\n"
-" entityStats.getInsertCount()\n"
-" + entityStats.getUpdateCount()\n"
-" + entityStats.getDeleteCount();\n"
-"log.info(Cat.class.getName() + \" changed \" + changes + \"times\" );]]>"
-msgstr ""
+msgid "Simple getters are used to access the global metrics (i.e. not tied to a particular entity, collection, cache region, etc.). You can access the metrics of a particular entity, collection or cache region through its name, and through its HQL or SQL representation for queries. Please refer to the <literal>Statistics</literal>, <literal>EntityStatistics</literal>, <literal>CollectionStatistics</literal>, <literal>SecondLevelCacheStatistics</literal>, and <literal>QueryStatistics</literal> API Javadoc for more information. The following code is a simple example:"
+msgstr "ä½ å¯ä»¥ç´æ¥ä½¿ç¨ getter æ¹æ³å¾å°å
¨å±æ°æ®è®°å½ï¼ä¾å¦ï¼åå
·ä½çå®ä½ãéåãç¼ååºæ å
³çæ°æ®ï¼ï¼ä½ ä¹å¯ä»¥å¨å
·ä½æ¥è¯¢ä¸éè¿æ è®°å®ä½åã æ HQLãSQL è¯å¥å¾å°æå®ä½çæ°æ®è®°å½ã请åè <literal>Statistics</literal>ã<literal>EntityStatistics</literal>ã<literal>CollectionStatistics</literal>ã<literal>SecondLevelCacheStatistics</literal> å <literal>QueryStatistics</literal> ç API ææ¡£ä»¥æåæ´å¤ä¿¡æ¯ãä¸é¢ç代ç åæ¯ä¸ªç®åçä¾åï¼ "
#. Tag: para
-#: performance.xml:1308
-#, fuzzy, no-c-format
-msgid ""
-"You can work on all entities, collections, queries and region caches, by "
-"retrieving the list of names of entities, collections, queries and region "
-"caches using the following methods: <literal>getQueries()</literal>, "
-"<literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</"
-"literal>, and <literal>getSecondLevelCacheRegionNames()</literal>."
-msgstr ""
-"å¦æä½ æ³å¾å°ææå®ä½ãéåãæ¥è¯¢åç¼ååºçæ°æ®ï¼ä½ å¯ä»¥éè¿ä»¥ä¸æ¹æ³è·å¾å®ä½ã"
-"éåãæ¥è¯¢åç¼ååºåè¡¨ï¼ <literal>getQueries()</literal>ã"
-"<literal>getEntityNames()</literal>ã <literal>getCollectionRoleNames()</"
-"literal>å <literal>getSecondLevelCacheRegionNames()</literal>ã"
+#, no-c-format
+msgid "You can work on all entities, collections, queries and region caches, by retrieving the list of names of entities, collections, queries and region caches using the following methods: <literal>getQueries()</literal>, <literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</literal>, and <literal>getSecondLevelCacheRegionNames()</literal>."
+msgstr "å¦æä½ æ³å¾å°ææå®ä½ãéåãæ¥è¯¢åç¼ååºçæ°æ®ï¼ä½ å¯ä»¥éè¿ä»¥ä¸æ¹æ³è·å¾å®ä½ãéåãæ¥è¯¢åç¼ååºå表ï¼<literal>getQueries()</literal>ã<literal>getEntityNames()</literal>ã<literal>getCollectionRoleNames()</literal> å <literal>getSecondLevelCacheRegionNames()</literal>ã"
#~ msgid ""
-#~ "where <literal>CatImpl</literal> implements the interface <literal>Cat</"
-#~ "literal> and <literal>DomesticCatImpl</literal> implements the interface "
-#~ "<literal>DomesticCat</literal>. Then proxies for instances of "
-#~ "<literal>Cat</literal> and <literal>DomesticCat</literal> may be returned "
-#~ "by <literal>load()</literal> or <literal>iterate()</literal>. (Note that "
-#~ "<literal>list()</literal> does not usually return proxies.)"
+#~ "<![CDATA[s = sessions.openSession();\n"
+#~ "Transaction tx = s.beginTransaction();\n"
+#~ " \n"
+#~ "User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n"
+#~ " .setString(\"userName\", userName).uniqueResult();\n"
+#~ "Map permissions = u.getPermissions();\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "s.close();\n"
+#~ "\n"
+#~ "Integer accessLevel = (Integer) permissions.get(\"accounts\"); // "
+#~ "Error!]]>"
#~ msgstr ""
-#~ "è¿é<literal>CatImpl</literal>å®ç°äº<literal>Cat</literal>æ¥å£ï¼ "
-#~ "<literal>DomesticCatImpl</literal>å®ç°<literal>DomesticCat</literal>æ¥"
-#~ "å£ã å¨<literal>load()</literal>ã<literal>iterate()</literal>æ¹æ³ä¸å°±ä¼è¿"
-#~ "å <literal>Cat</literal>å<literal>DomesticCat</literal>ç代ç对象ã (注"
-#~ "æ<literal>list()</literal>å¹¶ä¸ä¼è¿å代ç对象ã)"
-
+#~ "<![CDATA[s = sessions.openSession();\n"
+#~ "Transaction tx = s.beginTransaction();\n"
+#~ " \n"
+#~ "User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n"
+#~ " .setString(\"userName\", userName).uniqueResult();\n"
+#~ "Map permissions = u.getPermissions();\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "s.close();\n"
+#~ "\n"
+#~ "Integer accessLevel = (Integer) permissions.get(\"accounts\"); // "
+#~ "Error!]]>"
#~ msgid ""
-#~ "We've already spent quite some time talking about collections. In this "
-#~ "section we will highlight a couple more issues about how collections "
-#~ "behave at runtime."
+#~ "<![CDATA[<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set]]>"
#~ msgstr ""
-#~ "å颿们已ç»å¯¹éåè¿è¡äºè¶³å¤çè®¨è®ºãæ¬æ®µä¸ï¼æä»¬å°çé讲述éåå¨è¿è¡æ¶çäº"
-#~ "å®ã"
-
+#~ "<![CDATA[<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set]]>"
#~ msgid ""
-#~ "TODO: This doesn't make sense: In the first case, we retrieve and use the "
-#~ "MBean directly. In the second one, we must give the JNDI name in which "
-#~ "the session factory is held before using it. Use "
-#~ "<literal>hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\")</"
-#~ "literal>"
+#~ "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
#~ msgstr ""
-#~ "TODOï¼ä»éè¦è¯´æçæ¯ï¼å¨ç¬¬ä¸ä¸ªä¾åä¸ï¼æä»¬ç´æ¥å¾å°å使ç¨MBeanï¼èå¨ç¬¬äºä¸ª"
-#~ "ä¾åä¸ï¼å¨ä½¿ç¨MBeanä¹å æä»¬åéè¦ç»åºSessionFactoryçJNDIåï¼ä½¿ç¨"
-#~ "<literal>hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\")</"
-#~ "literal> å¾å°SessionFactoryï¼ç¶åå°MBeanä¿åäºå
¶ä¸ã"
+#~ "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
+#~ msgid ""
+#~ "<![CDATA[User user = (User) session.createCriteria(User.class)\n"
+#~ " .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "<![CDATA[User user = (User) session.createCriteria(User.class)\n"
+#~ " .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // instantiate a "
+#~ "proxy (does not hit the db)\n"
+#~ "if ( cat.isDomesticCat() ) { // hit the db to initialize "
+#~ "the proxy\n"
+#~ " DomesticCat dc = (DomesticCat) cat; // Error!\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // instantiate a "
+#~ "proxy (does not hit the db)\n"
+#~ "if ( cat.isDomesticCat() ) { // hit the db to initialize "
+#~ "the proxy\n"
+#~ " DomesticCat dc = (DomesticCat) cat; // Error!\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // "
+#~ "instantiate a Cat proxy\n"
+#~ "DomesticCat dc = \n"
+#~ " (DomesticCat) session.load(DomesticCat.class, id); // acquire "
+#~ "new DomesticCat proxy!\n"
+#~ "System.out.println(cat==dc); // false]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // "
+#~ "instantiate a Cat proxy\n"
+#~ "DomesticCat dc = \n"
+#~ " (DomesticCat) session.load(DomesticCat.class, id); // acquire "
+#~ "new DomesticCat proxy!\n"
+#~ "System.out.println(cat==dc); // false]]>"
+#~ msgid ""
+#~ "<![CDATA[cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0]]>"
+#~ msgstr ""
+#~ "<![CDATA[cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
+#~ "Iterator iter = session.createQuery(\"from CatImpl as cat where cat."
+#~ "name='fritz'\").iterate();\n"
+#~ "Cat fritz = (Cat) iter.next();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
+#~ "Iterator iter = session.createQuery(\"from CatImpl as cat where cat."
+#~ "name='fritz'\").iterate();\n"
+#~ "Cat fritz = (Cat) iter.next();]]>"
+#~ msgid ""
+#~ "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" )."
+#~ "list().get(0) ).intValue()]]>"
+#~ msgstr ""
+#~ "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" )."
+#~ "list().get(0) ).intValue()]]>"
+#~ msgid ""
+#~ "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
+#~ "setMaxResults(10).list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
+#~ "setMaxResults(10).list();]]>"
+#~ msgid "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+#~ msgstr "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Document\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
+#~ " <property name=\"summary\" not-null=\"true\" length=\"200\" lazy="
+#~ "\"true\"/>\n"
+#~ " <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true"
+#~ "\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Document\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
+#~ " <property name=\"summary\" not-null=\"true\" length=\"200\" lazy="
+#~ "\"true\"/>\n"
+#~ " <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true"
+#~ "\"/>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
+#~ " <taskdef name=\"instrument\" classname=\"org.hibernate.tool."
+#~ "instrument.InstrumentTask\">\n"
+#~ " <classpath path=\"${jar.path}\"/>\n"
+#~ " <classpath path=\"${classes.dir}\"/>\n"
+#~ " <classpath refid=\"lib.class.path\"/>\n"
+#~ " </taskdef>\n"
+#~ "\n"
+#~ " <instrument verbose=\"true\">\n"
+#~ " <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
+#~ " <include name=\"*.class\"/>\n"
+#~ " </fileset>\n"
+#~ " </instrument>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
+#~ " <taskdef name=\"instrument\" classname=\"org.hibernate.tool."
+#~ "instrument.InstrumentTask\">\n"
+#~ " <classpath path=\"${jar.path}\"/>\n"
+#~ " <classpath path=\"${classes.dir}\"/>\n"
+#~ " <classpath refid=\"lib.class.path\"/>\n"
+#~ " </taskdef>\n"
+#~ "\n"
+#~ " <instrument verbose=\"true\">\n"
+#~ " <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
+#~ " <include name=\"*.class\"/>\n"
+#~ " </fileset>\n"
+#~ " </instrument>\n"
+#~ "</target>]]>"
+#~ msgid "<entry>yes</entry>"
+#~ msgstr "<entry>yes</entry>"
+#~ msgid ""
+#~ "<![CDATA[<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Cat\" .... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"kittens\" ... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Cat\" .... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"kittens\" ... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\")."
+#~ "scroll(); //a huge result set\n"
+#~ "while ( cats.next() ) {\n"
+#~ " Cat cat = (Cat) cats.get(0);\n"
+#~ " doSomethingWithACat(cat);\n"
+#~ " sess.evict(cat);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\")."
+#~ "scroll(); //a huge result set\n"
+#~ "while ( cats.next() ) {\n"
+#~ " Cat cat = (Cat) cats.get(0);\n"
+#~ " doSomethingWithACat(cat);\n"
+#~ " sess.evict(cat);\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular "
+#~ "Cat\n"
+#~ "sessionFactory.evict(Cat.class); //evict all Cats\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a "
+#~ "particular collection of kittens\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten "
+#~ "collections]]>"
+#~ msgstr ""
+#~ "<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular "
+#~ "Cat\n"
+#~ "sessionFactory.evict(Cat.class); //evict all Cats\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a "
+#~ "particular collection of kittens\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten "
+#~ "collections]]>"
+#~ msgid ""
+#~ "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();]]>"
+#~ msgid ""
+#~ "<![CDATA[hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true]]>"
+#~ msgstr ""
+#~ "<![CDATA[hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true]]>"
+#~ msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
+#~ msgstr "<![CDATA[hibernate.cache.use_query_cache true]]>"
+#~ msgid ""
+#~ "<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog."
+#~ "blogger = :blogger\")\n"
+#~ " .setEntity(\"blogger\", blogger)\n"
+#~ " .setMaxResults(15)\n"
+#~ " .setCacheable(true)\n"
+#~ " .setCacheRegion(\"frontpages\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog."
+#~ "blogger = :blogger\")\n"
+#~ " .setEntity(\"blogger\", blogger)\n"
+#~ " .setMaxResults(15)\n"
+#~ " .setCacheable(true)\n"
+#~ " .setCacheRegion(\"frontpages\")\n"
+#~ " .list();]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
+#~ "Child c = new Child();\n"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c); //no need to fetch the collection!\n"
+#~ "sess.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
+#~ "Child c = new Child();\n"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c); //no need to fetch the collection!\n"
+#~ "sess.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[// MBean service registration for a specific SessionFactory\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "stats.setSessionFactory(sessionFactory); // Bind the stats to a "
+#~ "SessionFactory\n"
+#~ "server.registerMBean(stats, on); // Register the Mbean on the server]]>"
+#~ msgstr ""
+#~ "<![CDATA[// MBean service registration for a specific SessionFactory\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "stats.setSessionFactory(sessionFactory); // Bind the stats to a "
+#~ "SessionFactory\n"
+#~ "server.registerMBean(stats, on); // Register the Mbean on the server]]>"
+#~ msgid ""
+#~ "<![CDATA[// MBean service registration for all SessionFactory's\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"all\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "server.registerMBean(stats, on); // Register the MBean on the server]]>"
+#~ msgstr ""
+#~ "<![CDATA[// MBean service registration for all SessionFactory's\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"all\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "server.registerMBean(stats, on); // Register the MBean on the server]]>"
+#~ msgid ""
+#~ "<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics"
+#~ "();\n"
+#~ "\n"
+#~ "double queryCacheHitCount = stats.getQueryCacheHitCount();\n"
+#~ "double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
+#~ "double queryCacheHitRatio =\n"
+#~ " queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
+#~ "\n"
+#~ "log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
+#~ "\n"
+#~ "EntityStatistics entityStats =\n"
+#~ " stats.getEntityStatistics( Cat.class.getName() );\n"
+#~ "long changes =\n"
+#~ " entityStats.getInsertCount()\n"
+#~ " + entityStats.getUpdateCount()\n"
+#~ " + entityStats.getDeleteCount();\n"
+#~ "log.info(Cat.class.getName() + \" changed \" + changes + \"times\" );]]>"
+#~ msgstr ""
+#~ "<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics"
+#~ "();\n"
+#~ "\n"
+#~ "double queryCacheHitCount = stats.getQueryCacheHitCount();\n"
+#~ "double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
+#~ "double queryCacheHitRatio =\n"
+#~ " queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
+#~ "\n"
+#~ "log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
+#~ "\n"
+#~ "EntityStatistics entityStats =\n"
+#~ " stats.getEntityStatistics( Cat.class.getName() );\n"
+#~ "long changes =\n"
+#~ " entityStats.getInsertCount()\n"
+#~ " + entityStats.getUpdateCount()\n"
+#~ " + entityStats.getDeleteCount();\n"
+#~ "log.info(Cat.class.getName() + \" changed \" + changes + \"times\" );]]>"
-#~ msgid "yes"
-#~ msgstr "yes"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,24 +1,27 @@
+# translation of persistent_classes.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: persistent_classes\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"PO-Revision-Date: 2009-12-07 09:36+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: persistent_classes.xml:29
#, no-c-format
msgid "Persistent Classes"
-msgstr "æä¹
åç±»(Persistent Classes)"
+msgstr "æä¹
åç±»ï¼Persistent Classesï¼"
#. Tag: para
-#: persistent_classes.xml:31
-#, fuzzy, no-c-format
+#, 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 "
@@ -26,13 +29,12 @@
"in the persistent state. For example, an instance can instead be transient "
"or detached."
msgstr ""
-"å¨åºç¨ç¨åºä¸ï¼ç¨æ¥å®ç°ä¸å¡é®é¢å®ä½çï¼å¦ï¼å¨çµååå¡åºç¨ç¨åºä¸çCustomerå"
-"Orderï¼ ç±»å°±æ¯æä¹
åç±»ãä¸è½è®¤ä¸ºææçæä¹
åç±»çå®ä¾é½æ¯æä¹
çç¶æââä¸ä¸ªå®ä¾"
-"çç¶æä¹å¯è½ æ¯ç¬æ¶çæè±ç®¡çã"
+"å¨åºç¨ç¨åºä¸ï¼ç¨æ¥å®ç°ä¸å¡é®é¢å®ä½çï¼å¦ï¼å¨çµååå¡åºç¨ç¨åºä¸ç Customer å "
+"Orderï¼ç±»å°±æ¯æä¹
åç±»ãä¸è½è®¤ä¸ºææçæä¹
åç±»çå®ä¾é½æ¯æä¹
çç¶æ - ä¸ä¸ªå®ä¾"
+"çç¶æä¹å¯è½æ¯ç¬æ¶çæè±ç®¡çã"
#. Tag: para
-#: persistent_classes.xml:38
-#, fuzzy, no-c-format
+#, 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 "
@@ -40,126 +42,37 @@
"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>å®ä¾çæ åç»æã"
+"妿è¿äºæä¹
åç±»éµå¾ªä¸äºç®åçè§åï¼Hibernate è½å¤å·¥ä½å¾æ´å¥½ï¼è¿äºè§åä¹è¢«ç§°"
+"ä½ç®åä¼ ç» Java 对象ï¼POJO:Plain Old Java Objectï¼ç¼ç¨æ¨¡åã使¯è¿äºè§åå¹¶ä¸"
+"æ¯å¿
éçã å®é
ä¸ï¼Hibernate3 对äºä½ çæä¹
åç±»å ä¹ä¸åä»»ä½è®¾æ³ãä½ å¯ä»¥ç¨å
¶ä»"
+"çæ¹æ³æ¥è¡¨è¾¾é¢å模åï¼æ¯å¦ï¼ä½¿ç¨ <literal>Map</literal> å®ä¾çæ åç»æã"
#. Tag: title
-#: persistent_classes.xml:47
#, no-c-format
msgid "A simple POJO example"
-msgstr "ä¸ä¸ªç®åçPOJOä¾å"
+msgstr "ä¸ä¸ªç®åç POJO ä¾å"
#. Tag: para
-#: persistent_classes.xml:49
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Most Java applications require a persistent class representing felines. For "
"example:"
-msgstr "大夿°Javaç¨åºéè¦ç¨ä¸ä¸ªæä¹
åç±»æ¥è¡¨ç¤ºç«ç§å¨ç©ã"
+msgstr "大夿° Java ç¨åºéè¦ç¨ä¸ä¸ªæä¹
åç±»æ¥è¡¨ç¤ºç«ç§å¨ç©ãä¾å¦ï¼"
-#. Tag: programlisting
-#: persistent_classes.xml:53
-#, no-c-format
-msgid ""
-"<![CDATA[package eg;\n"
-"import java.util.Set;\n"
-"import java.util.Date;\n"
-"\n"
-"public class Cat {\n"
-" private Long id; // identifier\n"
-"\n"
-" private Date birthdate;\n"
-" private Color color;\n"
-" private char sex;\n"
-" private float weight;\n"
-" private int litterId;\n"
-"\n"
-" private Cat mother;\n"
-" private Set kittens = new HashSet();\n"
-"\n"
-" private void setId(Long id) {\n"
-" this.id=id;\n"
-" }\n"
-" public Long getId() {\n"
-" return id;\n"
-" }\n"
-"\n"
-" void setBirthdate(Date date) {\n"
-" birthdate = date;\n"
-" }\n"
-" public Date getBirthdate() {\n"
-" return birthdate;\n"
-" }\n"
-"\n"
-" void setWeight(float weight) {\n"
-" this.weight = weight;\n"
-" }\n"
-" public float getWeight() {\n"
-" return weight;\n"
-" }\n"
-"\n"
-" public Color getColor() {\n"
-" return color;\n"
-" }\n"
-" void setColor(Color color) {\n"
-" this.color = color;\n"
-" }\n"
-"\n"
-" void setSex(char sex) {\n"
-" this.sex=sex;\n"
-" }\n"
-" public char getSex() {\n"
-" return sex;\n"
-" }\n"
-"\n"
-" void setLitterId(int id) {\n"
-" this.litterId = id;\n"
-" }\n"
-" public int getLitterId() {\n"
-" return litterId;\n"
-" }\n"
-"\n"
-" void setMother(Cat mother) {\n"
-" this.mother = mother;\n"
-" }\n"
-" public Cat getMother() {\n"
-" return mother;\n"
-" }\n"
-" void setKittens(Set kittens) {\n"
-" this.kittens = kittens;\n"
-" }\n"
-" public Set getKittens() {\n"
-" return kittens;\n"
-" }\n"
-" \n"
-" // addKitten not needed by Hibernate\n"
-" public void addKitten(Cat kitten) {\n"
-" kitten.setMother(this);\n"
-" kitten.setLitterId( kittens.size() ); \n"
-" kittens.add(kitten);\n"
-" }\n"
-"}]]>"
-msgstr ""
-
#. Tag: para
-#: persistent_classes.xml:55
#, no-c-format
msgid ""
"The four main rules of persistent classes are explored in more detail in the "
"following sections."
-msgstr ""
+msgstr "å¨åç»çç« èéæä»¬å°ä»ç»æä¹
æ§ç±»ç 4 个主è¦è§åçæ´å¤ç»èã"
#. Tag: title
-#: persistent_classes.xml:61
#, no-c-format
msgid "Implement a no-argument constructor"
msgstr "å®ç°ä¸ä¸ªé»è®¤çï¼å³æ åæ°çï¼æé æ¹æ³ï¼constructorï¼"
#. Tag: para
-#: persistent_classes.xml:63
-#, fuzzy, no-c-format
+#, 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 "
@@ -168,21 +81,19 @@
"<emphasis>package</emphasis> visibility for runtime proxy generation in "
"Hibernate."
msgstr ""
-"<literal>Cat</literal>æä¸ä¸ªæ åæ°çæé æ¹æ³ãææçæä¹
åç±»é½å¿
é¡»æä¸ä¸ª é»è®¤"
-"çæé æ¹æ³ï¼å¯ä»¥ä¸æ¯publicçï¼ï¼è¿æ ·çè¯Hibernateå°±å¯ä»¥ä½¿ç¨ "
-"<literal>Constructor.newInstance()</literal>æ¥å®ä¾åå®ä»¬ã æä»¬å¼ºç建议ï¼å¨"
-"Hibernateä¸ï¼ä¸ºäºè¿è¡æä»£çççæï¼æé æ¹æ³è³å°æ¯ <emphasis>å
(package)</"
+"<literal>Cat</literal> æä¸ä¸ªæ åæ°çæé æ¹æ³ãææçæä¹
åç±»é½å¿
é¡»æä¸ä¸ªé»è®¤"
+"çæé æ¹æ³ï¼å¯ä»¥ä¸æ¯ public çï¼ï¼è¿æ ·çè¯ Hibernate å°±å¯ä»¥ä½¿ç¨ "
+"<literal>Constructor.newInstance(ï¼</literal>æ¥å®ä¾åå®ä»¬ã æä»¬å¼ºç建议ï¼å¨ "
+"Hibernate ä¸ï¼ä¸ºäºè¿è¡æä»£çççæï¼æé æ¹æ³è³å°æ¯<emphasis>å
ï¼packageï¼</"
"emphasis>å
å¯è§çã"
#. Tag: title
-#: persistent_classes.xml:73
#, no-c-format
msgid "Provide an identifier property (optional)"
msgstr "æä¾ä¸ä¸ªæ è¯å±æ§ï¼identifier propertyï¼ï¼å¯éï¼"
#. Tag: para
-#: persistent_classes.xml:75
-#, fuzzy, no-c-format
+#, 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 "
@@ -192,94 +103,85 @@
"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>ã ï¼å¦æä½ çéçæ°æ®åºè¡¨æèå主é®ï¼ä½ çè³å¯ä»¥ç¨ä¸ä¸ªç¨æ·èªå®ä¹"
-"çç±»ï¼è¯¥ç±»æ¥æè¿äºç±»å ç屿§ãåè§åé¢çå
³äºèåæ è¯ç¬¦çç« èãï¼"
+"<literal>Cat</literal> æä¸ä¸ªå±æ§å«å <literal>id</literal>ãè¿ä¸ªå±æ§æ å°æ°æ®"
+"åºè¡¨ç主 é®å段ãè¿ä¸ªå±æ§å¯ä»¥å«ä»»ä½ååï¼å
¶ç±»åå¯ä»¥æ¯ä»»ä½çåå§ç±»åãåå§ç±»å"
+"çå
è£
ç±»åã <literal>java.lang.String</literal> æè
æ¯ <literal>java.util."
+"Date</literal>ãï¼å¦æä½ çéçæ°æ®åºè¡¨æèå主é®ï¼ä½ çè³å¯ä»¥ç¨ä¸ä¸ªç¨æ·èªå®ä¹"
+"çç±»ï¼è¯¥ç±»æ¥æè¿äºç±»åç屿§ãåè§åé¢çå
³äºèåæ è¯ç¬¦çç« èãï¼"
#. Tag: para
-#: persistent_classes.xml:84
#, 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å
鍿¥è¿½è¸ªå¯¹è±¡çè¯å«ã 使¯æä»¬"
-"并䏿¨èè¿æ ·åã"
+"æ è¯ç¬¦å±æ§æ¯å¯éçãå¯ä»¥ä¸ç¨ç®¡å®ï¼è®© Hibernate å
鍿¥è¿½è¸ªå¯¹è±¡çè¯å«ã 使¯æ"
+"们并䏿¨èè¿æ ·åã"
#. Tag: para
-#: persistent_classes.xml:89
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"In fact, some functionality is available only to classes that declare an "
"identifier property:"
-msgstr "å®é
ä¸ï¼ä¸äºåè½åªå¯¹é£äºå£°æäºæ è¯ç¬¦å±æ§ç类起ä½ç¨ï¼"
+msgstr "å®é
ä¸ï¼ä¸äºåè½åªå¯¹é£äºå£°æäºæ è¯ç¬¦å±æ§ç类起ä½ç¨ï¼ "
#. Tag: para
-#: persistent_classes.xml:96
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Transitive reattachment for detached objects (cascade update or cascade "
-"merge) - see"
+"merge) - see <xref linkend=\"objectstate-transitive\" />"
msgstr ""
-"æç®¡å¯¹è±¡çä¼ ææ§åè¿æ¥ï¼çº§èæ´æ°æçº§èåå¹¶ï¼ ââåé
<xref linkend="
+"æç®¡å¯¹è±¡çä¼ ææ§åè¿æ¥ï¼çº§èæ´æ°æçº§èåå¹¶ï¼ â åé
<xref linkend="
"\"objectstate-transitive\"/>"
-#. Tag: literal
-#: persistent_classes.xml:103
+#. Tag: para
#, no-c-format
-msgid "Session.saveOrUpdate()"
-msgstr "Session.saveOrUpdate()"
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr "<literal>Session.saveOrUpdate()</literal>"
-#. Tag: literal
-#: persistent_classes.xml:108
+#. Tag: para
#, no-c-format
-msgid "Session.merge()"
-msgstr "Session.merge()"
+msgid "<literal>Session.merge()</literal>"
+msgstr "<literal>Session.merge()</literal>"
#. Tag: para
-#: persistent_classes.xml:113
-#, fuzzy, no-c-format
+#, 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 ""
-"æä»¬å»ºè®®ä½ 对æä¹
å类声æå½åä¸è´çæ è¯å±æ§ãæä»¬è¿å»ºè®®ä½ 使ç¨ä¸ 个å¯ä»¥ä¸ºç©ºï¼ä¹"
-"å°±æ¯è¯´ï¼ä¸æ¯åå§ç±»åï¼çç±»åã"
+"æä»¬å»ºè®®ä½ 对æä¹
å类声æå½åä¸è´çæ è¯å±æ§ãæä»¬è¿å»ºè®®ä½ 使ç¨ä¸ä¸ªå¯ä»¥ä¸ºç©ºï¼ä¹"
+"å°±æ¯è¯´ï¼ä¸æ¯åå§ç±»åï¼çç±»åã "
#. Tag: title
-#: persistent_classes.xml:120
#, no-c-format
msgid "Prefer non-final classes (optional)"
-msgstr "使ç¨éfinalçç±» (å¯é)"
+msgstr "使ç¨éfinalçç±»ï¼å¯éï¼"
#. Tag: para
-#: persistent_classes.xml:121
#, 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çæ¥å£ã"
+"<emphasis>代çï¼proxiesï¼</emphasis>æ¯ Hibernate çä¸ä¸ªéè¦çåè½ï¼å®ä¾èµçæ¡"
+"ä»¶æ¯ï¼æä¹
åç±»æè
æ¯é final çï¼æè
æ¯å®ç°äºä¸ä¸ªæææ¹æ³é½å£°æä¸º public çæ¥"
+"å£ã"
#. Tag: para
-#: persistent_classes.xml:126
-#, fuzzy, no-c-format
+#, 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>ç±»ï¼ä½æ¯"
-"ä½ ä¸è½ä½¿ç¨ä»£çæ¥å»¶è¿å
³èå è½½ï¼è¿ä¼éå¶ä½ è¿è¡æ§è½ä¼åçéæ©ã"
+"ä½ å¯ä»¥ç¨ Hibernate æä¹
åä¸ä¸ªæ²¡æå®ç°ä»»ä½æ¥å£ç <literal>final</literal> ç±»ï¼"
+"使¯ä½ ä¸è½ä½¿ç¨ä»£çæ¥å»¶è¿å
³èå è½½ï¼è¿ä¼éå¶ä½ è¿è¡æ§è½ä¼åçéæ©ã "
#. Tag: para
-#: persistent_classes.xml:131
#, no-c-format
msgid ""
"You should also avoid declaring <literal>public final</literal> methods on "
@@ -287,19 +189,18 @@
"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> æ¥æç¡®å°ç¦ç¨ä»£çã"
+"ä½ ä¹åºè¯¥é¿å
å¨é final ç±»ä¸å£°æ <literal>public final</literal> çæ¹æ³ã妿"
+"ä½ æ³ä½¿ç¨ä¸ä¸ªæ <literal>public final</literal> æ¹æ³çç±»ï¼ä½ å¿
é¡»éè¿è®¾ç½® "
+"<literal>lazy=\"false\"</literal> æ¥æç¡®å°ç¦ç¨ä»£çã "
#. Tag: title
-#: persistent_classes.xml:139
#, no-c-format
msgid "Declare accessors and mutators for persistent fields (optional)"
-msgstr "为æä¹
ååæ®µå£°æè®¿é®å¨(accessors)忝å¦å¯åçæ å¿(mutators)(å¯é)"
+msgstr ""
+"为æä¹
ååæ®µå£°æè®¿é®å¨ï¼accessorsï¼åæ¯å¦å¯åçæ å¿ï¼mutatorsï¼ï¼å¯éï¼"
#. Tag: para
-#: persistent_classes.xml:141
-#, fuzzy, no-c-format
+#, 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 "
@@ -309,95 +210,71 @@
"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>è¿ç§å½¢å¼çæ¹æ³åã 妿éè¦ï¼ä½ å¯ä»¥å¯¹æ"
-"äºç¹å®å±æ§å®è¡ç´æ¥å段访é®ã"
+"<literal>Cat</literal> 为å®çæææä¹
ååæ®µå£°æäºè®¿é®æ¹æ³ãå¾å¤å
¶ä» ORM å·¥å
·"
+"ç´æ¥å¯¹å®ä¾åéè¿è¡æä¹
åãæä»¬ç¸ä¿¡ï¼å¨å
³ç³»æ°æ®åº schema åç±»çå
鍿°æ®ç»æä¹"
+"é´å¼å
¥é´æ¥å±ï¼åæä¸º\"éç´æ¥\"ï¼indirectionï¼ä¼å¥½ä¸äºãé»è®¤æ
åµä¸ Hibernate "
+"æä¹
å JavaBeans 飿 ¼ç屿§ï¼è®¤å¯ <literal>getFoo</literal>ï¼"
+"<literal>isFoo</literal> å <literal>setFoo</literal> è¿ç§å½¢å¼çæ¹æ³åã妿"
+"éè¦ï¼ä½ å¯ä»¥å¯¹æäºç¹å®å±æ§å®è¡ç´æ¥å段访é®ã "
#. Tag: para
-#: persistent_classes.xml:151
#, 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æ¹æ³å¯¹ ç屿§è¿è¡æä¹
åã"
+"屿§<emphasis>ä¸éè¦</emphasis>è¦å£°æä¸º public çãHibernate å¯ä»¥æä¹
åä¸ä¸ª"
+"æ <literal>default</literal>ã<literal>protected</literal> æ "
+"<literal>private</literal> ç get/set æ¹æ³å¯¹ç屿§è¿è¡æä¹
åã"
#. Tag: title
-#: persistent_classes.xml:162
#, no-c-format
msgid "Implementing inheritance"
msgstr "å®ç°ç»§æ¿ï¼Inheritanceï¼"
#. Tag: para
-#: persistent_classes.xml:164
-#, fuzzy, no-c-format
+#, 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>ç»§æ¿äºæ è¯å±"
-"æ§ã"
+"åç±»ä¹å¿
é¡»éµå®ç¬¬ä¸æ¡åç¬¬äºæ¡è§åãå®ä»è¶
ç±» <literal>Cat</literal> ç»§æ¿äºæ è¯"
+"屿§ãä¾å¦ï¼"
-#. Tag: programlisting
-#: persistent_classes.xml:169
-#, no-c-format
-msgid ""
-"<![CDATA[package eg;\n"
-"\n"
-"public class DomesticCat extends Cat {\n"
-" private String name;\n"
-"\n"
-" public String getName() {\n"
-" return name;\n"
-" }\n"
-" protected void setName(String name) {\n"
-" this.name=name;\n"
-" }\n"
-"}]]>"
-msgstr ""
-
#. Tag: title
-#: persistent_classes.xml:173
#, no-c-format
msgid ""
"Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
-msgstr "å®ç°<literal>equals()</literal>å<literal>hashCode()</literal>"
+msgstr ""
+"å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼"
#. Tag: para
-#: persistent_classes.xml:175
-#, fuzzy, no-c-format
+#, 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>æ¹æ³ï¼"
+"()</literal> æ¹æ³ï¼ "
#. Tag: para
-#: persistent_classes.xml:181
-#, fuzzy, no-c-format
+#, 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>ä¸ï¼å½è¡¨ç¤ºå¤å¼å
³èæ¶ï¼æ¨èè¿ä¹åï¼"
+"æ³ææä¹
ç±»çå®ä¾æ¾å
¥ <literal>Set</literal> ä¸ï¼å½è¡¨ç¤ºå¤å¼å
³èæ¶ï¼æ¨èè¿ä¹"
+"åï¼ï¼<emphasis>èä¸</emphasis>"
#. Tag: para
-#: persistent_classes.xml:188
#, no-c-format
msgid "intend to use reattachment of detached instances"
msgstr "æ³éç¨è±ç®¡å®ä¾"
#. Tag: para
-#: persistent_classes.xml:194
-#, fuzzy, no-c-format
+#, 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 "
@@ -405,14 +282,13 @@
"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>ã"
+"Hibernate ä¿è¯ï¼ä»
å¨ç¹å®ä¼è¯èå´å
ï¼æä¹
åæ è¯ï¼æ°æ®åºçè¡ï¼å Java æ è¯æ¯ç"
+"ä»·çãå æ¤ï¼ä¸æ¦æä»¬æ··åäºä»ä¸åä¼è¯ä¸è·åçå®ä¾ï¼å¦æå¸æ <literal>Set</"
+"literal> ææç¡®çè¯ä¹ï¼å°±å¿
é¡»å®ç° <literal>equals()</literal> å "
+"<literal>hashCode()</literal>ã "
#. Tag: para
-#: persistent_classes.xml:202
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The most obvious way is to implement <literal>equals()</literal>/"
"<literal>hashCode()</literal> by comparing the identifier value of both "
@@ -429,20 +305,20 @@
"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对象çä»·çè¯ä¹é®é¢ã"
+"å®ç° <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
-#: persistent_classes.xml:216
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"It is recommended that you implement <literal>equals()</literal> and "
"<literal>hashCode()</literal> using <emphasis>Business key equality</"
@@ -451,74 +327,42 @@
"that would identify our instance in the real world (a <emphasis>natural</"
"emphasis> candidate key):"
msgstr ""
-"æä»¬å»ºè®®ä½¿ç¨<emphasis>ä¸å¡é®å¼ç¸ç(Business key equality)</emphasis>æ¥å®ç°"
+"æä»¬å»ºè®®ä½¿ç¨<emphasis>ä¸å¡é®å¼ç¸çï¼Business key equalityï¼</emphasis>æ¥å®ç° "
"<literal>equals()</literal> å <literal>hashCode()</literal>ãä¸å¡é®å¼ç¸çç"
-"æææ¯ï¼<literal>equals()</literal>æ¹æ³ ä»
ä»
æ¯è¾å½¢æä¸å¡é®ç屿§ï¼å®è½å¨ç°å®"
+"æææ¯ï¼<literal>equals()</literal> æ¹æ³ä»
ä»
æ¯è¾å½¢æä¸å¡é®ç屿§ï¼å®è½å¨ç°å®"
"ä¸çéæ è¯æä»¬çå®ä¾ï¼æ¯ä¸ä¸ª<emphasis>èªç¶ç</emphasis>åéç ï¼ã"
-#. Tag: programlisting
-#: persistent_classes.xml:224
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[public class Cat {\n"
-"\n"
-" ...\n"
-" public boolean equals(Object other) {\n"
-" if (this == other) return true;\n"
-" if ( !(other instanceof Cat) ) return false;\n"
-"\n"
-" final Cat cat = (Cat) other;\n"
-"\n"
-" if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
-" if ( !cat.getMother().equals( getMother() ) ) return false;\n"
-"\n"
-" return true;\n"
-" }\n"
-"\n"
-" public int hashCode() {\n"
-" int result;\n"
-" result = getMother().hashCode();\n"
-" result = 29 * result + getLitterId();\n"
-" return result;\n"
-" }\n"
-"\n"
-"}]]>"
-msgstr ""
-
-#. Tag: para
-#: persistent_classes.xml:226
-#, 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 "
+"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\"/>ï¼ã 对ä¸å¡é®èè¨ï¼ä¸å¯åæå¯ä¸ç屿§æ¯ä¸éçéæ©ã"
+"注æï¼ä¸å¡é®ä¸å¿
åæ°æ®åºç主é®é£æ ·åºå®ä¸åï¼åè§ <xref linkend="
+"\"transactions-basics-identity\"/>ï¼ã对ä¸å¡é®èè¨ï¼ä¸å¯åæå¯ä¸ç屿§æ¯ä¸é"
+"çéæ©ã "
#. Tag: title
-#: persistent_classes.xml:236
#, no-c-format
msgid "Dynamic models"
-msgstr "å¨ææ¨¡å(Dynamic models)"
+msgstr "å¨ææ¨¡åï¼Dynamic modelsï¼"
#. Tag: title
-#: persistent_classes.xml:239
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
-#. Tag: emphasis
-#: persistent_classes.xml:241
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid ""
-"The following features are currently considered experimental and may change "
-"in the near future."
-msgstr "注æï¼ä»¥ä¸ç¹æ§å¨å½åå¤äºè¯éªé¶æ®µï¼å°æ¥å¯è½ä¼æååã"
+"<emphasis>The following features are currently considered experimental and "
+"may change in the near future.</emphasis>"
+msgstr ""
+"<emphasis>注æï¼ä»¥ä¸ç¹æ§å¨å½åå¤äºè¯éªé¶æ®µï¼å°æ¥å¯è½ä¼æååã</emphasis>"
#. Tag: para
-#: persistent_classes.xml:246
-#, fuzzy, no-c-format
+#, 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 "
@@ -526,128 +370,57 @@
"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çæ æ¨¡åé£ æ ·çå®ä½è¡¨ç¤ºã使ç¨è¿ç§æ¹æ³ï¼ä½ ä¸ç¨åæä¹
åç±»ï¼"
-"åªåæ å°æä»¶å°±è¡äºã"
+"è¿è¡æçæä¹
åå®ä½æ²¡æå¿
è¦ä¸å®è¡¨ç¤ºä¸ºå POJO ç±»æ JavaBean å¯¹è±¡é£æ ·çå½¢å¼ã"
+"Hibernate 乿¯æå¨ææ¨¡å ï¼å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç "
+"<literal>Map</literal>ï¼å象 DOM4J çæ æ¨¡å飿 ·çå®ä½è¡¨ç¤ºã使ç¨è¿ç§æ¹æ³ï¼ä½ ä¸"
+"ç¨åæä¹
åç±»ï¼åªåæ å°æä»¶å°±è¡äºã "
#. Tag: para
-#: persistent_classes.xml:254
-#, fuzzy, no-c-format
+#, 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\"/>)."
+"option (see <xref linkend=\"configuration-optional-properties\" />)."
msgstr ""
-"Hibernateé»è®¤å·¥ä½å¨æ®éPOJO模å¼ãä½ å¯ä»¥ä½¿ç¨é
ç½®é项"
-"<literal>default_entity_mode</literal>ï¼ å¯¹ç¹å®ç<literal>SessionFactory</"
-"literal>ï¼è®¾ç½®ä¸ä¸ªé»è®¤çå®ä½è¡¨ç¤ºæ¨¡å¼ã ï¼åè§<xref linkend=\"configuration-"
-"optional-properties\"/>ãï¼"
+"Hibernate é»è®¤å·¥ä½å¨æ®é POJO 模å¼ãä½ å¯ä»¥ä½¿ç¨é
ç½®é项 "
+"<literal>default_entity_mode</literal>ï¼ å¯¹ç¹å®ç <literal>SessionFactory</"
+"literal>ï¼è®¾ç½®ä¸ä¸ªé»è®¤çå®ä½è¡¨ç¤ºæ¨¡å¼ãï¼åè§ <xref linkend=\"configuration-"
+"optional-properties\"/>ï¼ "
#. Tag: para
-#: persistent_classes.xml:261
-#, fuzzy, no-c-format
+#, 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>æ¥ä»£æ¿ä¸ä¸ªç±»åï¼æä½ä¸ºä¸ç§éå±ï¼ã"
+"ä¸é¢æ¯ç¨ <literal>Map</literal> æ¥è¡¨ç¤ºçä¾åãé¦å
ï¼å¨æ å°æä»¶ä¸ï¼è¦å£°æ "
+"<literal>entity-name</literal> æ¥ä»£æ¿ä¸ä¸ªç±»åï¼æä½ä¸ºä¸ç§éå±ï¼ã "
-#. Tag: programlisting
-#: persistent_classes.xml:267
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-"\n"
-" <class entity-name=\"Customer\">\n"
-"\n"
-" <id name=\"id\"\n"
-" type=\"long\"\n"
-" column=\"ID\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-"\n"
-" <property name=\"name\"\n"
-" column=\"NAME\"\n"
-" type=\"string\"/>\n"
-"\n"
-" <property name=\"address\"\n"
-" column=\"ADDRESS\"\n"
-" type=\"string\"/>\n"
-"\n"
-" <many-to-one name=\"organization\"\n"
-" column=\"ORGANIZATION_ID\"\n"
-" class=\"Organization\"/>\n"
-"\n"
-" <bag name=\"orders\"\n"
-" inverse=\"true\"\n"
-" lazy=\"false\"\n"
-" cascade=\"all\">\n"
-" <key column=\"CUSTOMER_ID\"/>\n"
-" <one-to-many class=\"Order\"/>\n"
-" </bag>\n"
-"\n"
-" </class>\n"
-" \n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
-#. Tag: para
-#: persistent_classes.xml:269
-#, fuzzy, 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ä¹å¤ï¼ä¹å¯ä»¥ "
-"æ¯ä¸ä¸ªå¨æçå®ä½ã"
+"注æï¼è½ç¶æ¯ç¨ç®æ ç±»åæ¥å£°æå
³èçï¼ä½æ¯å
³èçç®æ ç±»åé¤äºæ¯ POJO ä¹å¤ï¼ä¹å¯"
+"以æ¯ä¸ä¸ªå¨æçå®ä½ã "
#. Tag: para
-#: persistent_classes.xml:276
-#, fuzzy, no-c-format
+#, 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>ã"
+"å¨ä½¿ç¨ <literal>dynamic-map</literal> 为 <literal>SessionFactory</literal> 设"
+"ç½®äºé»è®¤çå®ä½æ¨¡å¼ä¹åï¼å¯ä»¥å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç "
+"<literal>Map</literal>ï¼"
-#. Tag: programlisting
-#: persistent_classes.xml:282
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[Session s = openSession();\n"
-"Transaction tx = s.beginTransaction();\n"
-"Session s = openSession();\n"
-"\n"
-"// Create a customer\n"
-"Map david = new HashMap();\n"
-"david.put(\"name\", \"David\");\n"
-"\n"
-"// Create an organization\n"
-"Map foobar = new HashMap();\n"
-"foobar.put(\"name\", \"Foobar Inc.\");\n"
-"\n"
-"// Link both\n"
-"david.put(\"organization\", foobar);\n"
-"\n"
-"// Save both\n"
-"s.save(\"Customer\", david);\n"
-"s.save(\"Organization\", foobar);\n"
-"\n"
-"tx.commit();\n"
-"s.close();]]>"
-msgstr ""
-
-#. Tag: para
-#: persistent_classes.xml:284
-#, fuzzy, 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 "
@@ -656,40 +429,20 @@
"implementation on top later on."
msgstr ""
"卿æ å°ç好夿¯ï¼ååæéè¦çæ¶é´å°äºï¼å 为ååä¸éè¦å®ç°å®ä½ç±»ãç¶èï¼ä½ æ "
-"æ³è¿è¡ ç¼è¯æçç±»åæ£æ¥ï¼å¹¶å¯è½ç±æ¤ä¼å¤çå¾å¤çè¿è¡æå¼å¸¸ãå¹¸äºæäºHibernate"
-"æ å°ï¼å®ä½¿å¾æ° æ®åºçschemaè½å®¹æçè§æ ¼åååçåï¼å¹¶å
许ç¨å卿¤ä¹ä¸æ·»å åé"
-"çé¢å模åå®ç°ã"
+"æ³è¿è¡ç¼è¯æçç±»åæ£æ¥ï¼å¹¶å¯è½ç±æ¤ä¼å¤çå¾å¤çè¿è¡æå¼å¸¸ãå¹¸äºæäº Hibernate "
+"æ å°ï¼å®ä½¿å¾æ°æ®åºç schema è½å®¹æçè§æ ¼åååçåï¼å¹¶å
许ç¨å卿¤ä¹ä¸æ·»å å"
+"éçé¢å模åå®ç°ã "
#. Tag: para
-#: persistent_classes.xml:292
#, no-c-format
msgid ""
"Entity representation modes can also be set on a per <literal>Session</"
"literal> basis:"
-msgstr "å®ä½è¡¨ç¤ºæ¨¡å¼ä¹è½å¨æ¯ä¸ª<literal>Session</literal>çåºç¡ä¸è®¾ç½®ï¼"
+msgstr "å®ä½è¡¨ç¤ºæ¨¡å¼ä¹è½å¨æ¯ä¸ª <literal>Session</literal> çåºç¡ä¸è®¾ç½®ï¼"
-#. Tag: programlisting
-#: persistent_classes.xml:297
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode.MAP);\n"
-"\n"
-"// Create a customer\n"
-"Map david = new HashMap();\n"
-"david.put(\"name\", \"David\");\n"
-"dynamicSession.save(\"Customer\", david);\n"
-"...\n"
-"dynamicSession.flush();\n"
-"dynamicSession.close()\n"
-"...\n"
-"// Continue on pojoSession\n"
-"]]>"
-msgstr ""
-
-#. Tag: para
-#: persistent_classes.xml:300
-#, fuzzy, 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</"
@@ -699,30 +452,27 @@
"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>ï¼åæ ·çï¼æäºå¡åè¿æ¥"
-"çå¤ç 交ç»åæ¥çå·¥ä½åå
ã"
+"请注æï¼ç¨ <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
-#: persistent_classes.xml:310
#, no-c-format
msgid ""
"More information about the XML representation capabilities can be found in "
-"<xref linkend=\"xml\"/>."
-msgstr "å
³äºXML表示è½åçæ´å¤ä¿¡æ¯å¯ä»¥å¨<xref linkend=\"xml\"/>䏿¾å°ã"
+"<xref linkend=\"xml\" />."
+msgstr "å
³äº XML 表示è½åçæ´å¤ä¿¡æ¯å¯ä»¥å¨ <xref linkend=\"xml\"/> 䏿¾å°ã "
#. Tag: title
-#: persistent_classes.xml:318
#, no-c-format
msgid "Tuplizers"
-msgstr "å
ç»çææ å°(Tuplizers)"
+msgstr "å
ç»çææ å°ï¼Tuplizersï¼"
#. Tag: para
-#: persistent_classes.xml:320
-#, fuzzy, no-c-format
+#, 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 "
@@ -736,16 +486,16 @@
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>忝é对ç»ä»¶çã"
+"æ®è¢«è®¤ä¸ºå
¶æ¯ä¸ç§æ°æ®ç»æï¼\"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
-#: persistent_classes.xml:330
#, no-c-format
msgid ""
"There are two high-level types of Tuplizers, represented by the <literal>org."
@@ -755,10 +505,13 @@
"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
-#: persistent_classes.xml:338
-#, fuzzy, no-c-format
+#, 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."
@@ -769,61 +522,19 @@
"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ä¾åï¼"
+"ç¨æ·ä¹å¯ä»¥æå
¥å
¶èªå®ä¹ç 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: programlisting
-#: persistent_classes.xml:347
-#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping>\n"
-" <class entity-name=\"Customer\">\n"
-" <!--\n"
-" Override the dynamic-map entity-mode\n"
-" tuplizer for the customer entity\n"
-" -->\n"
-" <tuplizer entity-mode=\"dynamic-map\"\n"
-" class=\"CustomMapTuplizerImpl\"/>\n"
-"\n"
-" <id name=\"id\" type=\"long\" column=\"ID\">\n"
-" <generator class=\"sequence\"/>\n"
-" </id>\n"
-"\n"
-" <!-- other properties -->\n"
-" ...\n"
-" </class>\n"
-"</hibernate-mapping>\n"
-"\n"
-"\n"
-"public class CustomMapTuplizerImpl\n"
-" extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"
-" // override the buildInstantiator() method to plug in our custom map...\n"
-" protected final Instantiator buildInstantiator(\n"
-" org.hibernate.mapping.PersistentClass mappingInfo) {\n"
-" return new CustomMapInstantiator( mappingInfo );\n"
-" }\n"
-"\n"
-" private static final class CustomMapInstantiator\n"
-" extends org.hibernate.tuple.DynamicMapInstantitor {\n"
-" // override the generateMap() method to return our custom map...\n"
-" protected final Map generateMap() {\n"
-" return new CustomMap();\n"
-" }\n"
-" }\n"
-"}]]>"
-msgstr ""
-
#. Tag: title
-#: persistent_classes.xml:353
#, no-c-format
msgid "EntityNameResolvers"
-msgstr ""
+msgstr "EntityNameResolvers"
#. Tag: para
-#: persistent_classes.xml:355
#, no-c-format
msgid ""
"The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
@@ -840,158 +551,35 @@
"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: programlisting
-#: persistent_classes.xml:367
-#, no-c-format
-msgid ""
-"/**\n"
-" * A very trivial JDK Proxy InvocationHandler implementation where we proxy "
-"an interface as\n"
-" * the domain model and simply store persistent state in an internal Map. "
-"This is an extremely\n"
-" * trivial example meant only for illustration.\n"
-" */\n"
-"public final class DataProxyHandler implements InvocationHandler {\n"
-" private String entityName;\n"
-" private HashMap data = new HashMap();\n"
-"\n"
-" public DataProxyHandler(String entityName, Serializable id) {\n"
-" this.entityName = entityName;\n"
-" data.put( \"Id\", id );\n"
-" }\n"
-"\n"
-" public Object invoke(Object proxy, Method method, Object[] args) "
-"throws Throwable {\n"
-" String methodName = method.getName();\n"
-" if ( methodName.startsWith( \"set\" ) ) {\n"
-" String propertyName = methodName.substring( 3 );\n"
-" data.put( propertyName, args[0] );\n"
-" }\n"
-" else if ( methodName.startsWith( \"get\" ) ) {\n"
-" String propertyName = methodName.substring( 3 );\n"
-" return data.get( propertyName );\n"
-" }\n"
-" else if ( \"toString\".equals( methodName ) ) {\n"
-" return entityName + \"#\" + data.get( \"Id\" );\n"
-" }\n"
-" else if ( \"hashCode\".equals( methodName ) ) {\n"
-" return new Integer( this.hashCode() );\n"
-" }\n"
-" return null;\n"
-" }\n"
-"\n"
-" public String getEntityName() {\n"
-" return entityName;\n"
-" }\n"
-"\n"
-" public HashMap getData() {\n"
-" return data;\n"
-" }\n"
-"}\n"
-"\n"
-"/**\n"
-" *\n"
-" */\n"
-"public class ProxyHelper {\n"
-" public static String extractEntityName(Object object) {\n"
-" // Our custom java.lang.reflect.Proxy instances actually bundle\n"
-" // their appropriate entity name, so we simply extract it from "
-"there\n"
-" // if this represents one of our proxies; otherwise, we return null\n"
-" if ( Proxy.isProxyClass( object.getClass() ) ) {\n"
-" InvocationHandler handler = Proxy.getInvocationHandler"
-"( object );\n"
-" if ( DataProxyHandler.class.isAssignableFrom( handler.getClass"
-"() ) ) {\n"
-" DataProxyHandler myHandler = ( DataProxyHandler ) handler;\n"
-" return myHandler.getEntityName();\n"
-" }\n"
-" }\n"
-" return null;\n"
-" }\n"
-"\n"
-" // various other utility methods ....\n"
-"\n"
-"}\n"
-"\n"
-"/**\n"
-" * The EntityNameResolver implementation.\n"
-" * IMPL NOTE : An EntityNameResolver really defines a strategy for how "
-"entity names should be\n"
-" * resolved. Since this particular impl can handle resolution for all of "
-"our entities we want to\n"
-" * take advantage of the fact that SessionFactoryImpl keeps these in a Set "
-"so that we only ever\n"
-" * have one instance registered. Why? Well, when it comes time to resolve "
-"an entity name,\n"
-" * Hibernate must iterate over all the registered resolvers. So keeping "
-"that number down\n"
-" * helps that process be as speedy as possible. Hence the equals and "
-"hashCode impls\n"
-" */\n"
-"public class MyEntityNameResolver implements EntityNameResolver {\n"
-" public static final MyEntityNameResolver INSTANCE = new "
-"MyEntityNameResolver();\n"
-"\n"
-" public String resolveEntityName(Object entity) {\n"
-" return ProxyHelper.extractEntityName( entity );\n"
-" }\n"
-"\n"
-" public boolean equals(Object obj) {\n"
-" return getClass().equals( obj.getClass() );\n"
-" }\n"
-"\n"
-" public int hashCode() {\n"
-" return getClass().hashCode();\n"
-" }\n"
-"}\n"
-"\n"
-"public class MyEntityTuplizer extends PojoEntityTuplizer {\n"
-" public MyEntityTuplizer(EntityMetamodel entityMetamodel, "
-"PersistentClass mappedEntity) {\n"
-" super( entityMetamodel, mappedEntity );\n"
-" }\n"
-"\n"
-" public EntityNameResolver[] getEntityNameResolvers() {\n"
-" return new EntityNameResolver[] { MyEntityNameResolver."
-"INSTANCE };\n"
-" }\n"
-"\n"
-" public String determineConcreteSubclassEntityName(Object entityInstance, "
-"SessionFactoryImplementor factory) {\n"
-" String entityName = ProxyHelper.extractEntityName"
-"( entityInstance );\n"
-" if ( entityName == null ) {\n"
-" entityName = super.determineConcreteSubclassEntityName"
-"( entityInstance, factory );\n"
-" }\n"
-" return entityName;\n"
-" }\n"
-"\n"
-" ...\n"
-"}"
-msgstr ""
-
#. Tag: para
-#: persistent_classes.xml:369
#, no-c-format
msgid ""
"In order to register an <interfacename>org.hibernate.EntityNameResolver</"
"interfacename> users must either:"
msgstr ""
+"ä¸ºäºæ³¨å <interfacename>org.hibernate.EntityNameResolver</interfacename>ï¼ç¨"
+"æ·å¿
é¡»ï¼"
#. Tag: para
-#: persistent_classes.xml:373
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
-"Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
-"link>, implementing the <methodname>getEntityNameResolvers</methodname> "
-"method."
+"Implement a custom Tupelizer implementing the "
+"<methodname>getEntityNameResolvers</methodname> method (see <xref linkend="
+"\"persistent-classes-tuplizers\" />)."
msgstr ""
+"å®ç°èªå®ä¹ç <xref linkend=\"persistent-classes-tuplizers\"/> å¹¶å®ç° "
+"<methodname>getEntityNameResolvers</methodname> æ¹æ³ã "
#. Tag: para
-#: persistent_classes.xml:379
#, no-c-format
msgid ""
"Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"
@@ -999,10 +587,718 @@
"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 "There are four main rules to follow here:"
-#~ msgstr "è¿éè¦éµå¾ªåæ¡ä¸»è¦çè§åï¼"
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ "\n"
+#~ " private Date birthdate;\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ " private int litterId;\n"
+#~ "\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens = new HashSet();\n"
+#~ "\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setLitterId(int id) {\n"
+#~ " this.litterId = id;\n"
+#~ " }\n"
+#~ " public int getLitterId() {\n"
+#~ " return litterId;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " \n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kitten.setMother(this);\n"
+#~ " kitten.setLitterId( kittens.size() ); \n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ "\n"
+#~ " private Date birthdate;\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ " private int litterId;\n"
+#~ "\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens = new HashSet();\n"
+#~ "\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setLitterId(int id) {\n"
+#~ " this.litterId = id;\n"
+#~ " }\n"
+#~ " public int getLitterId() {\n"
+#~ " return litterId;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " \n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kitten.setMother(this);\n"
+#~ " kitten.setLitterId( kittens.size() ); \n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "}]]>"
#~ msgid ""
-#~ "TODO: Document user-extension framework in the property and proxy packages"
-#~ msgstr "TODOï¼propertyåproxyå
éçç¨æ·æ©å±æ¡æ¶ææ¡£ã"
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "public class DomesticCat extends Cat {\n"
+#~ " private String name;\n"
+#~ "\n"
+#~ " public String getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " protected void setName(String name) {\n"
+#~ " this.name=name;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "public class DomesticCat extends Cat {\n"
+#~ " private String name;\n"
+#~ "\n"
+#~ " public String getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " protected void setName(String name) {\n"
+#~ " this.name=name;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public class Cat {\n"
+#~ "\n"
+#~ " ...\n"
+#~ " public boolean equals(Object other) {\n"
+#~ " if (this == other) return true;\n"
+#~ " if ( !(other instanceof Cat) ) return false;\n"
+#~ "\n"
+#~ " final Cat cat = (Cat) other;\n"
+#~ "\n"
+#~ " if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
+#~ " if ( !cat.getMother().equals( getMother() ) ) return false;\n"
+#~ "\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " int result;\n"
+#~ " result = getMother().hashCode();\n"
+#~ " result = 29 * result + getLitterId();\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class Cat {\n"
+#~ "\n"
+#~ " ...\n"
+#~ " public boolean equals(Object other) {\n"
+#~ " if (this == other) return true;\n"
+#~ " if ( !(other instanceof Cat) ) return false;\n"
+#~ "\n"
+#~ " final Cat cat = (Cat) other;\n"
+#~ "\n"
+#~ " if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
+#~ " if ( !cat.getMother().equals( getMother() ) ) return false;\n"
+#~ "\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " int result;\n"
+#~ " result = getMother().hashCode();\n"
+#~ " result = 29 * result + getLitterId();\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"id\"\n"
+#~ " type=\"long\"\n"
+#~ " column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <property name=\"address\"\n"
+#~ " column=\"ADDRESS\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <many-to-one name=\"organization\"\n"
+#~ " column=\"ORGANIZATION_ID\"\n"
+#~ " class=\"Organization\"/>\n"
+#~ "\n"
+#~ " <bag name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " lazy=\"false\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"CUSTOMER_ID\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ " \n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"id\"\n"
+#~ " type=\"long\"\n"
+#~ " column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <property name=\"address\"\n"
+#~ " column=\"ADDRESS\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <many-to-one name=\"organization\"\n"
+#~ " column=\"ORGANIZATION_ID\"\n"
+#~ " class=\"Organization\"/>\n"
+#~ "\n"
+#~ " <bag name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " lazy=\"false\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"CUSTOMER_ID\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ " \n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session s = openSession();\n"
+#~ "Transaction tx = s.beginTransaction();\n"
+#~ "Session s = openSession();\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "\n"
+#~ "// Create an organization\n"
+#~ "Map foobar = new HashMap();\n"
+#~ "foobar.put(\"name\", \"Foobar Inc.\");\n"
+#~ "\n"
+#~ "// Link both\n"
+#~ "david.put(\"organization\", foobar);\n"
+#~ "\n"
+#~ "// Save both\n"
+#~ "s.save(\"Customer\", david);\n"
+#~ "s.save(\"Organization\", foobar);\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "s.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session s = openSession();\n"
+#~ "Transaction tx = s.beginTransaction();\n"
+#~ "Session s = openSession();\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "\n"
+#~ "// Create an organization\n"
+#~ "Map foobar = new HashMap();\n"
+#~ "foobar.put(\"name\", \"Foobar Inc.\");\n"
+#~ "\n"
+#~ "// Link both\n"
+#~ "david.put(\"organization\", foobar);\n"
+#~ "\n"
+#~ "// Save both\n"
+#~ "s.save(\"Customer\", david);\n"
+#~ "s.save(\"Organization\", foobar);\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "s.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode."
+#~ "MAP);\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "dynamicSession.save(\"Customer\", david);\n"
+#~ "...\n"
+#~ "dynamicSession.flush();\n"
+#~ "dynamicSession.close()\n"
+#~ "...\n"
+#~ "// Continue on pojoSession\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode."
+#~ "MAP);\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "dynamicSession.save(\"Customer\", david);\n"
+#~ "...\n"
+#~ "dynamicSession.flush();\n"
+#~ "dynamicSession.close()\n"
+#~ "...\n"
+#~ "// Continue on pojoSession\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ " <!--\n"
+#~ " Override the dynamic-map entity-mode\n"
+#~ " tuplizer for the customer entity\n"
+#~ " -->\n"
+#~ " <tuplizer entity-mode=\"dynamic-map\"\n"
+#~ " class=\"CustomMapTuplizerImpl\"/>\n"
+#~ "\n"
+#~ " <id name=\"id\" type=\"long\" column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <!-- other properties -->\n"
+#~ " ...\n"
+#~ " </class>\n"
+#~ "</hibernate-mapping>\n"
+#~ "\n"
+#~ "\n"
+#~ "public class CustomMapTuplizerImpl\n"
+#~ " extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"
+#~ " // override the buildInstantiator() method to plug in our custom "
+#~ "map...\n"
+#~ " protected final Instantiator buildInstantiator(\n"
+#~ " org.hibernate.mapping.PersistentClass mappingInfo) {\n"
+#~ " return new CustomMapInstantiator( mappingInfo );\n"
+#~ " }\n"
+#~ "\n"
+#~ " private static final class CustomMapInstantiator\n"
+#~ " extends org.hibernate.tuple.DynamicMapInstantitor {\n"
+#~ " // override the generateMap() method to return our custom map...\n"
+#~ " protected final Map generateMap() {\n"
+#~ " return new CustomMap();\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ " <!--\n"
+#~ " Override the dynamic-map entity-mode\n"
+#~ " tuplizer for the customer entity\n"
+#~ " -->\n"
+#~ " <tuplizer entity-mode=\"dynamic-map\"\n"
+#~ " class=\"CustomMapTuplizerImpl\"/>\n"
+#~ "\n"
+#~ " <id name=\"id\" type=\"long\" column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <!-- other properties -->\n"
+#~ " ...\n"
+#~ " </class>\n"
+#~ "</hibernate-mapping>\n"
+#~ "\n"
+#~ "\n"
+#~ "public class CustomMapTuplizerImpl\n"
+#~ " extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"
+#~ " // override the buildInstantiator() method to plug in our custom "
+#~ "map...\n"
+#~ " protected final Instantiator buildInstantiator(\n"
+#~ " org.hibernate.mapping.PersistentClass mappingInfo) {\n"
+#~ " return new CustomMapInstantiator( mappingInfo );\n"
+#~ " }\n"
+#~ "\n"
+#~ " private static final class CustomMapInstantiator\n"
+#~ " extends org.hibernate.tuple.DynamicMapInstantitor {\n"
+#~ " // override the generateMap() method to return our custom map...\n"
+#~ " protected final Map generateMap() {\n"
+#~ " return new CustomMap();\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "/**\n"
+#~ " * A very trivial JDK Proxy InvocationHandler implementation where we "
+#~ "proxy an interface as\n"
+#~ " * the domain model and simply store persistent state in an internal "
+#~ "Map. This is an extremely\n"
+#~ " * trivial example meant only for illustration.\n"
+#~ " */\n"
+#~ "public final class DataProxyHandler implements InvocationHandler {\n"
+#~ " private String entityName;\n"
+#~ " private HashMap data = new HashMap();\n"
+#~ "\n"
+#~ " public DataProxyHandler(String entityName, Serializable id) {\n"
+#~ " this.entityName = entityName;\n"
+#~ " data.put( \"Id\", id );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Object invoke(Object proxy, Method method, Object[] args) "
+#~ "throws Throwable {\n"
+#~ " String methodName = method.getName();\n"
+#~ " if ( methodName.startsWith( \"set\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " data.put( propertyName, args[0] );\n"
+#~ " }\n"
+#~ " else if ( methodName.startsWith( \"get\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " return data.get( propertyName );\n"
+#~ " }\n"
+#~ " else if ( \"toString\".equals( methodName ) ) {\n"
+#~ " return entityName + \"#\" + data.get( \"Id\" );\n"
+#~ " }\n"
+#~ " else if ( \"hashCode\".equals( methodName ) ) {\n"
+#~ " return new Integer( this.hashCode() );\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String getEntityName() {\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public HashMap getData() {\n"
+#~ " return data;\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " *\n"
+#~ " */\n"
+#~ "public class ProxyHelper {\n"
+#~ " public static String extractEntityName(Object object) {\n"
+#~ " // Our custom java.lang.reflect.Proxy instances actually bundle\n"
+#~ " // their appropriate entity name, so we simply extract it from "
+#~ "there\n"
+#~ " // if this represents one of our proxies; otherwise, we return "
+#~ "null\n"
+#~ " if ( Proxy.isProxyClass( object.getClass() ) ) {\n"
+#~ " InvocationHandler handler = Proxy.getInvocationHandler"
+#~ "( object );\n"
+#~ " if ( DataProxyHandler.class.isAssignableFrom( handler.getClass"
+#~ "() ) ) {\n"
+#~ " DataProxyHandler myHandler = ( DataProxyHandler ) "
+#~ "handler;\n"
+#~ " return myHandler.getEntityName();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " // various other utility methods ....\n"
+#~ "\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * The EntityNameResolver implementation.\n"
+#~ " * IMPL NOTE : An EntityNameResolver really defines a strategy for how "
+#~ "entity names should be\n"
+#~ " * resolved. Since this particular impl can handle resolution for all of "
+#~ "our entities we want to\n"
+#~ " * take advantage of the fact that SessionFactoryImpl keeps these in a "
+#~ "Set so that we only ever\n"
+#~ " * have one instance registered. Why? Well, when it comes time to "
+#~ "resolve an entity name,\n"
+#~ " * Hibernate must iterate over all the registered resolvers. So keeping "
+#~ "that number down\n"
+#~ " * helps that process be as speedy as possible. Hence the equals and "
+#~ "hashCode impls\n"
+#~ " */\n"
+#~ "public class MyEntityNameResolver implements EntityNameResolver {\n"
+#~ " public static final MyEntityNameResolver INSTANCE = new "
+#~ "MyEntityNameResolver();\n"
+#~ "\n"
+#~ " public String resolveEntityName(Object entity) {\n"
+#~ " return ProxyHelper.extractEntityName( entity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean equals(Object obj) {\n"
+#~ " return getClass().equals( obj.getClass() );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " return getClass().hashCode();\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "public class MyEntityTuplizer extends PojoEntityTuplizer {\n"
+#~ " public MyEntityTuplizer(EntityMetamodel entityMetamodel, "
+#~ "PersistentClass mappedEntity) {\n"
+#~ " super( entityMetamodel, mappedEntity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public EntityNameResolver[] getEntityNameResolvers() {\n"
+#~ " return new EntityNameResolver[] { MyEntityNameResolver."
+#~ "INSTANCE };\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String determineConcreteSubclassEntityName(Object "
+#~ "entityInstance, SessionFactoryImplementor factory) {\n"
+#~ " String entityName = ProxyHelper.extractEntityName"
+#~ "( entityInstance );\n"
+#~ " if ( entityName == null ) {\n"
+#~ " entityName = super.determineConcreteSubclassEntityName"
+#~ "( entityInstance, factory );\n"
+#~ " }\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " ...\n"
+#~ "}"
+#~ msgstr ""
+#~ "/**\n"
+#~ " * A very trivial JDK Proxy InvocationHandler implementation where we "
+#~ "proxy an interface as\n"
+#~ " * the domain model and simply store persistent state in an internal "
+#~ "Map. This is an extremely\n"
+#~ " * trivial example meant only for illustration.\n"
+#~ " */\n"
+#~ "public final class DataProxyHandler implements InvocationHandler {\n"
+#~ " private String entityName;\n"
+#~ " private HashMap data = new HashMap();\n"
+#~ "\n"
+#~ " public DataProxyHandler(String entityName, Serializable id) {\n"
+#~ " this.entityName = entityName;\n"
+#~ " data.put( \"Id\", id );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Object invoke(Object proxy, Method method, Object[] args) "
+#~ "throws Throwable {\n"
+#~ " String methodName = method.getName();\n"
+#~ " if ( methodName.startsWith( \"set\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " data.put( propertyName, args[0] );\n"
+#~ " }\n"
+#~ " else if ( methodName.startsWith( \"get\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " return data.get( propertyName );\n"
+#~ " }\n"
+#~ " else if ( \"toString\".equals( methodName ) ) {\n"
+#~ " return entityName + \"#\" + data.get( \"Id\" );\n"
+#~ " }\n"
+#~ " else if ( \"hashCode\".equals( methodName ) ) {\n"
+#~ " return new Integer( this.hashCode() );\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String getEntityName() {\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public HashMap getData() {\n"
+#~ " return data;\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " *\n"
+#~ " */\n"
+#~ "public class ProxyHelper {\n"
+#~ " public static String extractEntityName(Object object) {\n"
+#~ " // Our custom java.lang.reflect.Proxy instances actually bundle\n"
+#~ " // their appropriate entity name, so we simply extract it from "
+#~ "there\n"
+#~ " // if this represents one of our proxies; otherwise, we return "
+#~ "null\n"
+#~ " if ( Proxy.isProxyClass( object.getClass() ) ) {\n"
+#~ " InvocationHandler handler = Proxy.getInvocationHandler"
+#~ "( object );\n"
+#~ " if ( DataProxyHandler.class.isAssignableFrom( handler.getClass"
+#~ "() ) ) {\n"
+#~ " DataProxyHandler myHandler = ( DataProxyHandler ) "
+#~ "handler;\n"
+#~ " return myHandler.getEntityName();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " // various other utility methods ....\n"
+#~ "\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * The EntityNameResolver implementation.\n"
+#~ " * IMPL NOTE : An EntityNameResolver really defines a strategy for how "
+#~ "entity names should be\n"
+#~ " * resolved. Since this particular impl can handle resolution for all of "
+#~ "our entities we want to\n"
+#~ " * take advantage of the fact that SessionFactoryImpl keeps these in a "
+#~ "Set so that we only ever\n"
+#~ " * have one instance registered. Why? Well, when it comes time to "
+#~ "resolve an entity name,\n"
+#~ " * Hibernate must iterate over all the registered resolvers. So keeping "
+#~ "that number down\n"
+#~ " * helps that process be as speedy as possible. Hence the equals and "
+#~ "hashCode impls\n"
+#~ " */\n"
+#~ "public class MyEntityNameResolver implements EntityNameResolver {\n"
+#~ " public static final MyEntityNameResolver INSTANCE = new "
+#~ "MyEntityNameResolver();\n"
+#~ "\n"
+#~ " public String resolveEntityName(Object entity) {\n"
+#~ " return ProxyHelper.extractEntityName( entity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean equals(Object obj) {\n"
+#~ " return getClass().equals( obj.getClass() );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " return getClass().hashCode();\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "public class MyEntityTuplizer extends PojoEntityTuplizer {\n"
+#~ " public MyEntityTuplizer(EntityMetamodel entityMetamodel, "
+#~ "PersistentClass mappedEntity) {\n"
+#~ " super( entityMetamodel, mappedEntity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public EntityNameResolver[] getEntityNameResolvers() {\n"
+#~ " return new EntityNameResolver[] { MyEntityNameResolver."
+#~ "INSTANCE };\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String determineConcreteSubclassEntityName(Object "
+#~ "entityInstance, SessionFactoryImplementor factory) {\n"
+#~ " String entityName = ProxyHelper.extractEntityName"
+#~ "( entityInstance );\n"
+#~ " if ( entityName == null ) {\n"
+#~ " entityName = super.determineConcreteSubclassEntityName"
+#~ "( entityInstance, factory );\n"
+#~ " }\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " ...\n"
+#~ "}"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/portability.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/portability.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/portability.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,234 +1,141 @@
-# Language zh-CN translations for Branch package.
-# Automatically generated, 2009.
-#
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: Branch 3_3\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-23 18:41+0000\n"
-"PO-Revision-Date: 2009-06-16 18:47+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"PO-Revision-Date: 2010-01-11 10:57+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: portability.xml:26
#, no-c-format
msgid "Database Portability Considerations"
-msgstr ""
+msgstr "æ°æ®åºç§»æ¤æ§èé"
#. Tag: title
-#: portability.xml:29
#, no-c-format
msgid "Portability Basics"
-msgstr ""
+msgstr "ç§»æ¤æ§åºç¡"
#. Tag: para
-#: portability.xml:31
#, 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 ""
+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
-#: portability.xml:42
#, no-c-format
msgid "Dialect"
-msgstr ""
+msgstr "Dialect"
#. Tag: para
-#: portability.xml:44
#, 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 ""
+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
-#: portability.xml:55
#, no-c-format
msgid "Dialect resolution"
-msgstr ""
+msgstr "æ¹è¨ç使ç¨"
#. Tag: para
-#: portability.xml:57
#, 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 ""
+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
-#: portability.xml:64
#, 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 ""
+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
-#: portability.xml:72
#, 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><![CDATA[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 ""
+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>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 被认为æ¯âéç¬æ¶çâï¼ä¹å°±æ¯ä¸å¯æ¢å¤çï¼è¿æ¥é®é¢ä¸æç¤ºç«å³ç»æ¢è§£æãææå
¶ä»çå¼å¸¸é½å¯¼è´è¦åååºå¹¶ä½¿ç¨ä¸ä¸ä¸ªè§£æè
ã\""
#. Tag: para
-#: portability.xml:85
#, 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 ""
+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
-#: portability.xml:98
#, no-c-format
msgid "Identifier generation"
-msgstr ""
+msgstr "æ è¯ç¬¦ççæ"
#. Tag: para
-#: portability.xml:100
#, 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. <note> <para> Hibernate was changed slightly once the implication "
-"of this was better understood so that the insert is delayed in cases where "
-"that is feasible. </para> </note> The underlying issue is that the actual "
-"semanctics of the application itself changes in these cases."
-msgstr ""
+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. The underlying issue is that the semantics of the application itself changes in these cases."
+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 è¯å¥èä¸ç®¡å½åçäºå¡æ§è¯ä¹ãåºå±çé®é¢æ¯åºç¨ç¨åºçè¯ä¹å¨è¿äºæ
åµä¸èªè!
º«ä¹ä¼åçæ¹åã"
#. Tag: para
-#: portability.xml:125
#, 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. <note> <para> There are "
-"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
-"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
-"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
-"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
-"listitem> </itemizedlist> </para> </note> 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 ""
+msgid "Hibernate has been improved so that the insert is delayed in cases where that is feasible."
+msgstr "Hibernate å·²ç»è¿è¡äºæ¹è¿ï¼æä»¥å¨å¯è¡æ¶è¿ç§æå
¥ä¼è¢«å»¶è¿ã"
+#. 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> æ è¯ç¬¦çæå¨ï¼å®ä»¥å¾ä¸åçæ¹å¼å®ç°ç§»æ¤æ§ã"
+
+#. Tag: para
+#, no-c-format
+msgid "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+msgstr "ç¹å«æ¯ä¸¤ä¸ªæç»ç <emphasis>enhanced</emphasis> çæå¨ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+msgstr "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+
+#. Tag: para
+#, no-c-format
+msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+
+#. Tag: para
+#, 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ï¼çæ°æ®åºä¸çåºåè¡ä¸ºã"
+
#. Tag: title
-#: portability.xml:154
#, no-c-format
msgid "Database functions"
-msgstr ""
+msgstr "æ°æ®åºå½æ°"
#. Tag: para
-#: portability.xml:157
#, 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 a new area in Hibernate and as such it is not as mature as the overall Hibernate experience."
+msgstr "è¿æ¯ Hibernate çä¸ä¸ªæ°çé¢åï¼ææ¶è¿ä¸å¦ Hibernate æ»ä½é£ä¹æçã"
#. Tag: para
-#: portability.xml:164
#, 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 a delegate which "
-"knows how to render that particular function, perhaps even using a totally "
-"different physical function call."
-msgstr ""
+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 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
-#: portability.xml:170
#, 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 ""
+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
-#: portability.xml:177
#, 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 ""
+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
-#: portability.xml:187
#, no-c-format
msgid "Type mappings"
-msgstr ""
+msgstr "ç±»åæ å°"
#. Tag: para
-#: portability.xml:189
#, no-c-format
msgid "This section scheduled for completion at a later date..."
-msgstr ""
+msgstr "æ¬èå
容仿ªå®æ..."
+
Deleted: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/preface.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/preface.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/preface.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,195 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-16 18:47+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Tag: title
-#: preface.xml:29
-#, no-c-format
-msgid "Preface"
-msgstr "åè¨"
-
-#. Tag: para
-#: preface.xml:31
-#, 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çå
³ç³»æ¨¡åæ°æ®ç»æä¸å»ã"
-
-#. Tag: para
-#: preface.xml:39
-#, fuzzy, 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å¤"
-"çæ°æ®çæ¶é´ã"
-
-#. Tag: para
-#: preface.xml:46
-#, fuzzy, 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代ç ï¼å¹¶ä¸å¸®ä½ æç»æéä»è¡¨æ ¼å¼ç"
-"表示形å¼è½¬æ¢å°ä¸ç³»åç对象å»ã"
-
-#. Tag: para
-#: preface.xml:56
-#, no-c-format
-msgid ""
-"If you are new to Hibernate and Object/Relational Mapping or even Java, "
-"please follow these steps:"
-msgstr ""
-"å¦æä½ å¯¹Hibernateå对象/å
³ç³»æ°æ®åºæ å°è¿æ¯ä¸ªæ°æï¼æè
çè³å¯¹Javaä¹ä¸çæï¼è¯·"
-"æç
§ä¸é¢çæ¥éª¤æ¥å¦ä¹ ã"
-
-#. Tag: para
-#: preface.xml:63
-#, 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
-#: preface.xml:71
-#, no-c-format
-msgid ""
-"Read <xref linkend=\"architecture\"/> to understand the environments where "
-"Hibernate can be used."
-msgstr "é
读<xref linkend=\"architecture\"/>æ¥çè§£Hibernateå¯ä»¥ä½¿ç¨çç¯å¢ã"
-
-#. Tag: para
-#: preface.xml:77
-#, fuzzy, 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>src/hibernate.properties</literal>,æå®å
¶ä¸ä½ çæ°æ®åºçä¿¡æ¯ãè¿å
¥å½"
-"令è¡ï¼åæ¢å°ä½ çåè¡å
çç®å½ï¼è¾å
¥<literal>ant eg</literal>(使ç¨äºAntï¼ï¼æè
"
-"å¨Windowsæä½ç³»ç»ä¸ä½¿ç¨<literal>build eg</literal>ã"
-
-#. Tag: para
-#: preface.xml:88
-#, 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\"></ulink> and "
-"download the example application from <biblioref linkend=\"biblio-JPwH\"></"
-"biblioref>."
-msgstr "æè¿ä»½åèææ¡£ä½ä¸ºä½ å¦ä¹ ç主è¦ä¿¡æ¯æ¥æºã"
-
-#. Tag: para
-#: preface.xml:98
-#, no-c-format
-msgid "FAQs are answered on the Hibernate website."
-msgstr "å¨Hibernate çç½ç«ä¸å¯ä»¥æ¾å°ç»å¸¸æé®çé®é¢ä¸è§£ç(FAQ)ã"
-
-#. Tag: para
-#: preface.xml:103
-#, fuzzy, no-c-format
-msgid ""
-"Links to third party demos, examples, and tutorials are maintained on the "
-"Hibernate website."
-msgstr "å¨Hibernateç½ç«ä¸è¿æç¬¬ä¸æ¹çæ¼ç¤ºã示ä¾åæç¨ç龿¥ã"
-
-#. Tag: para
-#: preface.xml:109
-#, 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ç½ç«çâ社åº(Community Area)âæ¯è®¨è®ºå
³äºè®¾è®¡æ¨¡å¼ä»¥åå¾å¤æ´åæ¹æ¡"
-"(Tomcat, JBoss AS, Struts, EJB,çç)ç好尿¹ã"
-
-#. Tag: para
-#: preface.xml:117
-#, fuzzy, 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æå
´è¶£ï¼è¯·å å
¥å¼åè
ç"
-"é®ä»¶å表ãï¼Hibernateç½ç«ä¸çç¨æ·è®ºåæä¸ä¸ªä¸æçé¢ï¼JavaEye乿Hibernate䏿"
-"çé¢,æ¨å¯ä»¥å¨é£é交æµé®é¢ä¸ç»éªãï¼"
-
-#. Tag: para
-#: preface.xml:125
-#, 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æ¯ä¸ä¸ªä¸ä¸ç弿¾æºä»£ç 项ç®"
-"(Professional Open Source project)ï¼ä¹æ¯JBoss Enterprise Middleware System"
-"(JEMS),JBossä¼ä¸çº§ä¸é´ä»¶ç³»ç»çä¸ä¸ªæ ¸å¿ç»ä»¶ã"
-
-#. Tag: title
-#: preface.xml:133
-#, no-c-format
-msgid "Feedback"
-msgstr ""
-
-#. Tag: para
-#: preface.xml:134
-#, no-c-format
-msgid ""
-"Use <ulink url=\"http://opensource.atlassian.com/projects/hibernate"
-"\">Hibernate JIRA</ulink> to report errors or request enhacements to this "
-"documentation."
-msgstr ""
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,754 +1,728 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"PO-Revision-Date: 2009-12-07 20:31+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: query_criteria.xml:29
#, no-c-format
msgid "Criteria Queries"
-msgstr "æ¡ä»¶æ¥è¯¢(Criteria Queries)"
+msgstr "æ¡ä»¶æ¥è¯¢ï¼Criteria Queriesï¼"
#. Tag: para
-#: query_criteria.xml:31
#, no-c-format
msgid "Hibernate features an intuitive, extensible criteria query API."
-msgstr "å
·æä¸ä¸ªç´è§çã坿©å±çæ¡ä»¶æ¥è¯¢APIæ¯Hibernateçç¹è²ã"
+msgstr "å
·æä¸ä¸ªç´è§çã坿©å±çæ¡ä»¶æ¥è¯¢ API æ¯ Hibernate çç¹è²ã"
#. Tag: title
-#: query_criteria.xml:36
#, no-c-format
msgid "Creating a <literal>Criteria</literal> instance"
-msgstr "å建ä¸ä¸ª<literal>Criteria</literal> å®ä¾"
+msgstr "å建ä¸ä¸ª <literal>Criteria</literal> å®ä¾"
#. Tag: para
-#: query_criteria.xml:38
#, 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: programlisting
-#: query_criteria.xml:44
-#, no-c-format
-msgid ""
-"<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
-"crit.setMaxResults(50);\n"
-"List cats = crit.list();]]>"
-msgstr ""
-
#. Tag: title
-#: query_criteria.xml:49
#, no-c-format
msgid "Narrowing the result set"
msgstr "éå¶ç»æéå
容"
#. Tag: para
-#: query_criteria.xml:51
#, 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: programlisting
-#: query_criteria.xml:59
-#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-" .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
-" .list();]]>"
-msgstr ""
-
#. Tag: para
-#: query_criteria.xml:61
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Restrictions can be grouped logically."
-msgstr "约æå¯ä»¥æé»è¾åç»ã"
+msgstr "约æå¯ä»¥æé»è¾åç»ã "
-#. Tag: programlisting
-#: query_criteria.xml:65
-#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-" .add( Restrictions.or(\n"
-" Restrictions.eq( \"age\", new Integer(0) ),\n"
-" Restrictions.isNull(\"age\")\n"
-" ) )\n"
-" .list();]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_criteria.xml:67
-#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", \"Pk"
-"\" } ) )\n"
-" .add( Restrictions.disjunction()\n"
-" .add( Restrictions.isNull(\"age\") )\n"
-" .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
-" .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
-" .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
-" ) )\n"
-" .list();]]>"
-msgstr ""
-
#. Tag: para
-#: query_criteria.xml:69
-#, fuzzy, 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ã"
-
-#. Tag: programlisting
-#: query_criteria.xml:74
#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)\", "
-"\"Fritz%\", Hibernate.STRING) )\n"
-" .list();]]>"
-msgstr ""
+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
-#: query_criteria.xml:76
#, no-c-format
-msgid ""
-"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
-"of the queried entity."
-msgstr "<literal>{alias}</literal>å ä½ç¬¦åºå½è¢«æ¿æ¢ä¸ºè¢«æ¥è¯¢å®ä½çåå«åã"
+msgid "The <literal>{alias}</literal> placeholder with be replaced by the row alias of the queried entity."
+msgstr "<literal>{alias}</literal> å ä½ç¬¦åºå½è¢«æ¿æ¢ä¸ºè¢«æ¥è¯¢å®ä½çåå«åã"
#. Tag: para
-#: query_criteria.xml:81
-#, fuzzy, 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>ã"
-
-#. Tag: programlisting
-#: query_criteria.xml:87
#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"Property age = Property.forName(\"age\");\n"
-"List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.disjunction()\n"
-" .add( age.isNull() )\n"
-" .add( age.eq( new Integer(0) ) )\n"
-" .add( age.eq( new Integer(1) ) )\n"
-" .add( age.eq( new Integer(2) ) )\n"
-" ) )\n"
-" .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi\", "
-"\"Pk\" } ) )\n"
-" .list();]]>"
-msgstr ""
+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
-#: query_criteria.xml:92
#, no-c-format
msgid "Ordering the results"
msgstr "ç»æéæåº"
#. Tag: para
-#: query_criteria.xml:94
-#, fuzzy, no-c-format
-msgid ""
-"You can order the results using <literal>org.hibernate.criterion.Order</"
-"literal>."
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨<literal>org.hibernate.criterion.Order</literal>æ¥ä¸ºæ¥è¯¢ç»ææåºã"
-
-#. Tag: programlisting
-#: query_criteria.xml:98
#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.like(\"name\", \"F%\")\n"
-" .addOrder( Order.asc(\"name\") )\n"
-" .addOrder( Order.desc(\"age\") )\n"
-" .setMaxResults(50)\n"
-" .list();]]>"
-msgstr ""
+msgid "You can order the results using <literal>org.hibernate.criterion.Order</literal>."
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>org.hibernate.criterion.Order</literal> æ¥ä¸ºæ¥è¯¢ç»ææåºã "
-#. Tag: programlisting
-#: query_criteria.xml:100
-#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Property.forName(\"name\").like(\"F%\") )\n"
-" .addOrder( Property.forName(\"name\").asc() )\n"
-" .addOrder( Property.forName(\"age\").desc() )\n"
-" .setMaxResults(50)\n"
-" .list();]]>"
-msgstr ""
-
#. Tag: title
-#: query_criteria.xml:105
#, no-c-format
msgid "Associations"
msgstr "å
³è"
#. Tag: para
-#: query_criteria.xml:107
#, no-c-format
-msgid ""
-"By navigating associations using <literal>createCriteria()</literal> you can "
-"specify constraints upon related entities:"
-msgstr ""
+msgid "By navigating associations using <literal>createCriteria()</literal> you can specify constraints upon related entities:"
+msgstr "éè¿ä½¿ç¨ <literal>createCriteria()</literal> 对å
³èè¿è¡å¯¼èªï¼ä½ å¯ä»¥æå®ç¸å
³å®ä½ç约æã"
-#. Tag: programlisting
-#: query_criteria.xml:112
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.like(\"name\", \"F%\") )\n"
-" .createCriteria(\"kittens\")\n"
-" .add( Restrictions.like(\"name\", \"F%\") )\n"
-" .list();]]>"
-msgstr ""
+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
-#: query_criteria.xml:114
-#, fuzzy, 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> éåä¸"
-"çå
ç´ ã"
-
-#. Tag: para
-#: query_criteria.xml:120
-#, fuzzy, no-c-format
-msgid ""
-"There is also an alternate form that is useful in certain circumstances:"
-msgstr "æ¥ä¸æ¥ï¼æ¿æ¢å½¢æå¨æäºæ
åµä¸ä¹æ¯å¾æç¨çã"
-
-#. Tag: programlisting
-#: query_criteria.xml:124
#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .createAlias(\"kittens\", \"kt\")\n"
-" .createAlias(\"mate\", \"mt\")\n"
-" .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
-" .list();]]>"
-msgstr ""
+msgid "There is also an alternate form that is useful in certain circumstances:"
+msgstr "æ¥ä¸æ¥ï¼æ¿æ¢å½¢æå¨æäºæ
åµä¸ä¹æ¯å¾æç¨çã "
#. Tag: para
-#: query_criteria.xml:126
#, 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
-#: query_criteria.xml:131
-#, fuzzy, 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>ã"
-
-#. Tag: programlisting
-#: query_criteria.xml:138
#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .createCriteria(\"kittens\", \"kt\")\n"
-" .add( Restrictions.eq(\"name\", \"F%\") )\n"
-" .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
-" .list();\n"
-"Iterator iter = cats.iterator();\n"
-"while ( iter.hasNext() ) {\n"
-" Map map = (Map) iter.next();\n"
-" Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
-" Cat kitten = (Cat) map.get(\"kt\");\n"
-"}]]>"
-msgstr ""
+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: title
-#: query_criteria.xml:143
#, no-c-format
msgid "Dynamic association fetching"
msgstr "卿å
³èæå"
#. Tag: para
-#: query_criteria.xml:145
-#, fuzzy, no-c-format
-msgid ""
-"You can specify association fetching semantics at runtime using "
-"<literal>setFetchMode()</literal>."
-msgstr ""
-"ä½ å¯ä»¥ä½¿ç¨<literal>setFetchMode()</literal>å¨è¿è¡æ¶å®ä¹å¨æå
³èæåçè¯ä¹ã"
-
-#. Tag: programlisting
-#: query_criteria.xml:150
#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-" .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-" .setFetchMode(\"mate\", FetchMode.EAGER)\n"
-" .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
-" .list();]]>"
-msgstr ""
+msgid "You can specify association fetching semantics at runtime using <literal>setFetchMode()</literal>."
+msgstr "ä½ å¯ä»¥ä½¿ç¨ <literal>setFetchMode()</literal> å¨è¿è¡æ¶å®ä¹å¨æå
³èæåçè¯ä¹ã "
#. Tag: para
-#: query_criteria.xml:152
#, 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\"/>å¯ä»¥è·å¾æ´å¤ä¿¡æ¯ã"
+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
-#: query_criteria.xml:160
#, no-c-format
msgid "Example queries"
msgstr "æ¥è¯¢ç¤ºä¾"
#. Tag: para
-#: query_criteria.xml:162
#, 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: programlisting
-#: query_criteria.xml:167
-#, no-c-format
-msgid ""
-"<![CDATA[Cat cat = new Cat();\n"
-"cat.setSex('F');\n"
-"cat.setColor(Color.BLACK);\n"
-"List results = session.createCriteria(Cat.class)\n"
-" .add( Example.create(cat) )\n"
-" .list();]]>"
-msgstr ""
-
#. Tag: para
-#: query_criteria.xml:169
#, no-c-format
-msgid ""
-"Version properties, identifiers and associations are ignored. By default, "
-"null valued properties are excluded."
-msgstr "çæ¬å±æ§ãæ è¯ç¬¦åå
³è被忽ç¥ãé»è®¤æ
åµä¸å¼ä¸ºnullç屿§å°è¢«æé¤ã"
+msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded."
+msgstr "çæ¬å±æ§ãæ è¯ç¬¦åå
³è被忽ç¥ãé»è®¤æ
åµä¸å¼ä¸º null ç屿§å°è¢«æé¤ã"
#. Tag: para
-#: query_criteria.xml:174
#, no-c-format
msgid "You can adjust how the <literal>Example</literal> is applied."
-msgstr "ä½ å¯ä»¥èªè¡è°æ´<literal>Example</literal>ä½¿ä¹æ´å®ç¨ã"
+msgstr "ä½ å¯ä»¥èªè¡è°æ´ <literal>Example</literal> ä½¿ä¹æ´å®ç¨ã"
-#. Tag: programlisting
-#: query_criteria.xml:178
-#, no-c-format
-msgid ""
-"<![CDATA[Example example = Example.create(cat)\n"
-" .excludeZeroes() //exclude zero valued properties\n"
-" .excludeProperty(\"color\") //exclude the property named \"color\"\n"
-" .ignoreCase() //perform case insensitive string "
-"comparisons\n"
-" .enableLike(); //use like for string comparisons\n"
-"List results = session.createCriteria(Cat.class)\n"
-" .add(example)\n"
-" .list();]]>"
-msgstr ""
-
#. Tag: para
-#: query_criteria.xml:180
#, no-c-format
msgid "You can even use examples to place criteria upon associated objects."
-msgstr "ä½ çè³å¯ä»¥ä½¿ç¨exampleså¨å
³èå¯¹è±¡ä¸æ¾ç½®æ¡ä»¶ã"
+msgstr "ä½ çè³å¯ä»¥ä½¿ç¨ examples å¨å
³èå¯¹è±¡ä¸æ¾ç½®æ¡ä»¶ã"
-#. Tag: programlisting
-#: query_criteria.xml:184
-#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .add( Example.create(cat) )\n"
-" .createCriteria(\"mate\")\n"
-" .add( Example.create( cat.getMate() ) )\n"
-" .list();]]>"
-msgstr ""
-
#. Tag: title
-#: query_criteria.xml:189
#, no-c-format
msgid "Projections, aggregation and grouping"
-msgstr "æå½±(Projections)ãèåï¼aggregationï¼ååç»ï¼groupingï¼"
+msgstr "æå½±ï¼Projectionsï¼ãèåï¼aggregationï¼ååç»ï¼groupingï¼"
#. Tag: para
-#: query_criteria.xml:190
-#, fuzzy, 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>åºç¨æå½±å°ä¸ä¸ªæ¥è¯¢ã"
+#, 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> åºç¨æå½±å°ä¸ä¸ªæ¥è¯¢ã "
-#. Tag: programlisting
-#: query_criteria.xml:196
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .setProjection( Projections.rowCount() )\n"
-" .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
-" .list();]]>"
-msgstr ""
+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: programlisting
-#: query_criteria.xml:198
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .setProjection( Projections.projectionList()\n"
-" .add( Projections.rowCount() )\n"
-" .add( Projections.avg(\"weight\") )\n"
-" .add( Projections.max(\"weight\") )\n"
-" .add( Projections.groupProperty(\"color\") )\n"
-" )\n"
-" .list();]]>"
-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
-#: query_criteria.xml:200
#, 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 "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
-#: query_criteria.xml:206
-#, fuzzy, 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 ""
-"ä½ å¯ä»¥éæ©æä¸ä¸ªå«åææ´¾ç»ä¸ä¸ªæå½±ï¼è¿æ ·å¯ä»¥ä½¿æå½±å¼è¢«çº¦æææåºæå¼ç¨ãä¸é¢"
-"æ¯ä¸¤ç§ä¸åçå®ç°æ¹å¼ï¼"
+#, no-c-format
+msgid "You can also use <literal>Property.forName()</literal> to express projections:"
+msgstr "ä½ ä¹å¯ä»¥ä½¿ç¨ <literal>Property.forName()</literal> æ¥è¡¨ç¤ºæå½±ï¼"
-#. Tag: programlisting
-#: query_criteria.xml:212
+#. Tag: title
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .setProjection( Projections.alias( Projections.groupProperty(\"color\"), "
-"\"colr\" ) )\n"
-" .addOrder( Order.asc(\"colr\") )\n"
-" .list();]]>"
-msgstr ""
+msgid "Detached queries and subqueries"
+msgstr "离线ï¼detachedï¼æ¥è¯¢ååæ¥è¯¢"
-#. Tag: programlisting
-#: query_criteria.xml:214
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
-" .addOrder( Order.asc(\"colr\") )\n"
-" .list();]]>"
-msgstr ""
+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
-#: query_criteria.xml:216
#, 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 "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: programlisting
-#: query_criteria.xml:223
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .setProjection( Projections.projectionList()\n"
-" .add( Projections.rowCount(), \"catCountByColor\" )\n"
-" .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
-" .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
-" .add( Projections.groupProperty(\"color\"), \"color\" )\n"
-" )\n"
-" .addOrder( Order.desc(\"catCountByColor\") )\n"
-" .addOrder( Order.desc(\"avgWeight\") )\n"
-" .list();]]>"
-msgstr ""
+msgid "Correlated subqueries are also possible:"
+msgstr "çè³ç¸äºå
³èçåæ¥è¯¢ä¹æ¯æå¯è½çï¼ "
-#. Tag: programlisting
-#: query_criteria.xml:225
+#. Tag: title
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
-" .createAlias(\"kittens\", \"kit\")\n"
-" .setProjection( Projections.projectionList()\n"
-" .add( Projections.property(\"cat.name\"), \"catName\" )\n"
-" .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
-" )\n"
-" .addOrder( Order.asc(\"catName\") )\n"
-" .addOrder( Order.asc(\"kitName\") )\n"
-" .list();]]>"
-msgstr ""
+msgid "Queries by natural identifier"
+msgstr "æ ¹æ®èªç¶æ è¯æ¥è¯¢ï¼Queries by natural identifierï¼"
#. Tag: para
-#: query_criteria.xml:227
#, no-c-format
-msgid ""
-"You can also use <literal>Property.forName()</literal> to express "
-"projections:"
-msgstr "ä½ ä¹å¯ä»¥ä½¿ç¨<literal>Property.forName()</literal>æ¥è¡¨ç¤ºæå½±ï¼"
+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: programlisting
-#: query_criteria.xml:231
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .setProjection( Property.forName(\"name\") )\n"
-" .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
-" .list();]]>"
-msgstr ""
+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: programlisting
-#: query_criteria.xml:233
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List results = session.createCriteria(Cat.class)\n"
-" .setProjection( Projections.projectionList()\n"
-" .add( Projections.rowCount().as(\"catCountByColor\") )\n"
-" .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
-" .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
-" .add( Property.forName(\"color\").group().as(\"color\" )\n"
-" )\n"
-" .addOrder( Order.desc(\"catCountByColor\") )\n"
-" .addOrder( Order.desc(\"avgWeight\") )\n"
-" .list();]]>"
-msgstr ""
+msgid "This functionality is not intended for use with entities with <emphasis>mutable</emphasis> natural keys."
+msgstr "注æ,æ¤åè½å¯¹å
·æ<emphasis>mutable</emphasis>èªç¶é®ç entity å¹¶ä¸éç¨ã "
-#. Tag: title
-#: query_criteria.xml:238
+#. Tag: para
#, no-c-format
-msgid "Detached queries and subqueries"
-msgstr "离线(detached)æ¥è¯¢ååæ¥è¯¢"
+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> æ¥ä½¿ç¨æ´å 髿çç¼åç®æ³ã "
-#. Tag: para
-#: query_criteria.xml:239
-#, fuzzy, 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>æ¥æ§è¡å®ã"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();]]>"
+#~ msgstr ""
+#~ "Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();"
-#. Tag: programlisting
-#: query_criteria.xml:244
-#, no-c-format
-msgid ""
-"<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
-" .add( Property.forName(\"sex\").eq('F') );\n"
-" \n"
-"Session session = ....;\n"
-"Transaction txn = session.beginTransaction();\n"
-"List results = query.getExecutableCriteria(session).setMaxResults(100).list"
-"();\n"
-"txn.commit();\n"
-"session.close();]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();"
-#. Tag: para
-#: query_criteria.xml:246
-#, fuzzy, 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>è·å¾ã"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();"
-#. Tag: programlisting
-#: query_criteria.xml:252
-#, no-c-format
-msgid ""
-"<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
-" .setProjection( Property.forName(\"weight\").avg() );\n"
-"session.createCriteria(Cat.class)\n"
-" .add( Property.forName(\"weight\").gt(avgWeight) )\n"
-" .list();]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();"
-#. Tag: programlisting
-#: query_criteria.xml:254
-#, no-c-format
-msgid ""
-"<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
-" .setProjection( Property.forName(\"weight\") );\n"
-"session.createCriteria(Cat.class)\n"
-" .add( Subqueries.geAll(\"weight\", weights) )\n"
-" .list();]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", Hibernate.STRING) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", \n"
+#~ " Hibernate.STRING) )\n"
+#~ " .list();"
-#. Tag: para
-#: query_criteria.xml:256
-#, fuzzy, no-c-format
-msgid "Correlated subqueries are also possible:"
-msgstr "çè³ç¸äºå
³èçåæ¥è¯¢ä¹æ¯æå¯è½çï¼"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();"
-#. Tag: programlisting
-#: query_criteria.xml:260
-#, no-c-format
-msgid ""
-"<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat."
-"class, \"cat2\")\n"
-" .setProjection( Property.forName(\"weight\").avg() )\n"
-" .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
-"session.createCriteria(Cat.class, \"cat\")\n"
-" .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
-" .list();]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
-#. Tag: title
-#: query_criteria.xml:269
-#, no-c-format
-msgid "Queries by natural identifier"
-msgstr "æ ¹æ®èªç¶æ è¯æ¥è¯¢(Queries by natural identifier)"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
-#. Tag: para
-#: query_criteria.xml:271
-#, fuzzy, 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对è¿ç§ç¨ä¾æä¾"
-"äºç¹å«è§çº¦ã"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();"
-#. Tag: para
-#: query_criteria.xml:279
-#, fuzzy, 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>æ¥æ å°èªç¶"
-"é®ï¼ç¶åæå¼ç¬¬äºçº§ç¼åã"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();"
-#. Tag: programlisting
-#: query_criteria.xml:284
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"User\">\n"
-" <cache usage=\"read-write\"/>\n"
-" <id name=\"id\">\n"
-" <generator class=\"increment\"/>\n"
-" </id>\n"
-" <natural-id>\n"
-" <property name=\"name\"/>\n"
-" <property name=\"org\"/>\n"
-" </natural-id>\n"
-" <property name=\"password\"/>\n"
-"</class>]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}"
-#. Tag: para
-#: query_criteria.xml:286
-#, fuzzy, no-c-format
-msgid ""
-"This functionality is not intended for use with entities with "
-"<emphasis>mutable</emphasis> natural keys."
-msgstr "注æ,æ¤åè½å¯¹å
·æ<emphasis>mutable</emphasis>èªç¶é®çentityå¹¶ä¸éç¨ã"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();"
-#. Tag: para
-#: query_criteria.xml:291
-#, fuzzy, 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>æ¥ä½¿ç¨æ´å 髿çç¼"
-"åç®æ³ã"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();"
-#. Tag: programlisting
-#: query_criteria.xml:297
-#, no-c-format
-msgid ""
-"<![CDATA[session.createCriteria(User.class)\n"
-" .add( Restrictions.naturalId()\n"
-" .set(\"name\", \"gavin\")\n"
-" .set(\"org\", \"hb\") \n"
-" ).setCacheable(true)\n"
-" .uniqueResult();]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();"
+#, fuzzy
#~ msgid ""
-#~ "You may easily specify constraints upon related entities by navigating "
-#~ "associations using <literal>createCriteria()</literal>."
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();]]>"
#~ msgstr ""
-#~ "ä½ å¯ä»¥ä½¿ç¨<literal>createCriteria()</literal>é常容æçå¨äºç¸å
³èçå®ä½é´"
-#~ "å»ºç« çº¦æã"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();"
-#~ msgid "Next, enable the Hibernate query cache."
-#~ msgstr "ç¶åï¼æå¼Hibernate æ¥è¯¢ç¼åã"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat."
+#~ "class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeight) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat."
+#~ "class, \"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, "
+#~ "\"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeightForSex) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();"
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,42 +1,42 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"PO-Revision-Date: 2009-12-07 21:13+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: query_hql.xml:29
#, no-c-format
msgid "HQL: The Hibernate Query Language"
-msgstr "HQL: Hibernateæ¥è¯¢è¯è¨"
+msgstr "HQL: Hibernate æ¥è¯¢è¯è¨"
#. Tag: para
-#: query_hql.xml:31
-#, fuzzy, no-c-format
+#, 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æ¯é常ææè¯ç被设计为å®å
¨é¢åå¯¹è±¡çæ¥è¯¢ï¼å®å¯ä»¥çè§£"
-"å¦ç»§æ¿ã夿 åå
³èä¹ç±»çæ¦å¿µã"
+"Hibernate é
å¤äºä¸ç§éå¸¸å¼ºå¤§çæ¥è¯¢è¯è¨ï¼è¿ç§è¯è¨çä¸å»å¾å SQLã使¯ä¸è¦è¢«è¯"
+"æ³ç»æä¸çç¸ä¼¼æè¿·æï¼HQL æ¯é常ææè¯ç被设计为å®å
¨é¢åå¯¹è±¡çæ¥è¯¢ï¼å®å¯ä»¥ç"
+"è§£å¦ç»§æ¿ã夿åå
³èä¹ç±»çæ¦å¿µã "
#. Tag: title
-#: query_hql.xml:38
#, no-c-format
msgid "Case Sensitivity"
msgstr "大å°åæææ§é®é¢"
#. Tag: para
-#: query_hql.xml:40
-#, fuzzy, no-c-format
+#, 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</"
@@ -44,257 +44,157 @@
"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</"
+"é¤äº 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>ã"
+"<literal>foo.BARSET</literal>ã "
#. Tag: para
-#: query_hql.xml:51
-#, fuzzy, no-c-format
+#, 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è¯å¥ä¸çæ¶å使ç¨å¤§åå
³é®å"
-"æ¯è¾é¾çã"
+"æ¬æåä¸ç HQL å
³é®åå°ä½¿ç¨å°å忝ãå¾å¤ç¨æ·åç°ä½¿ç¨å®å
¨å¤§åçå
³é®åä¼ä½¿æ¥è¯¢"
+"è¯å¥çå¯è¯»æ§æ´å¼ºï¼ä½æä»¬åç°ï¼å½ææ¥è¯¢è¯å¥åµå
¥å° Java è¯å¥ä¸çæ¶å使ç¨å¤§åå
³"
+"é®åæ¯è¾é¾çã"
#. Tag: title
-#: query_hql.xml:59
#, no-c-format
msgid "The from clause"
-msgstr "fromåå¥"
+msgstr "from åå¥"
#. Tag: para
-#: query_hql.xml:61
#, no-c-format
msgid "The simplest possible Hibernate query is of the form:"
-msgstr "Hibernate䏿ç®åçæ¥è¯¢è¯å¥çå½¢å¼å¦ä¸ï¼"
+msgstr "Hibernate 䏿ç®åçæ¥è¯¢è¯å¥çå½¢å¼å¦ä¸ï¼"
-#. Tag: programlisting
-#: query_hql.xml:65
-#, no-c-format
-msgid "<![CDATA[from eg.Cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:67
-#, fuzzy, no-c-format
+#, 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>ï¼èªå¨å¼å
¥ï¼ æ¯ç¼ºççæ
åµã æ"
-"以æä»¬å ä¹åªä½¿ç¨å¦ä¸çç®ååæ³ï¼"
+"该åå¥ç®åçè¿å <literal>eg.Cat</literal> ç±»çææå®ä¾ãé常æä»¬ä¸éè¦ä½¿ç¨ç±»"
+"çå
¨éå®åï¼å 为 <literal>auto-import</literal>ï¼èªå¨å¼å
¥ï¼æ¯ç¼ºççæ
åµãæ"
+"以æä»¬å ä¹åªä½¿ç¨å¦ä¸çç®ååæ³ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:73
-#, no-c-format
-msgid "<![CDATA[from Cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:75
#, 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>ãä¾å¦ï¼"
-#. Tag: programlisting
-#: query_hql.xml:81 query_hql.xml:396
-#, no-c-format
-msgid "<![CDATA[from Cat as cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:83
-#, fuzzy, no-c-format
+#, 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> æ¯å¯é"
-"çï¼æä»¬ä¹å¯ä»¥è¿æ ·å:"
+"è¿ä¸ªè¯å¥æå«å <literal>cat</literal> æå®ç»ç±»<literal>Cat</literal> çå®ä¾ï¼"
+"è¿æ ·æä»¬å°±å¯ä»¥å¨éåçæ¥è¯¢ä¸ä½¿ç¨æ¤å«åäºãå
³é®å <literal>as</literal> æ¯å¯é"
+"çï¼æä»¬ä¹å¯ä»¥è¿æ ·åï¼ "
-#. Tag: programlisting
-#: query_hql.xml:89
-#, no-c-format
-msgid "<![CDATA[from Cat cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:91
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Multiple classes can appear, resulting in a cartesian product or \"cross\" "
"join."
msgstr ""
-"åå¥ä¸å¯ä»¥åæ¶åºç°å¤ä¸ªç±», å
¶æ¥è¯¢ç»ææ¯äº§çä¸ä¸ªç¬å¡å¿ç§¯æäº§ç跨表çè¿æ¥ã"
+"åå¥ä¸å¯ä»¥åæ¶åºç°å¤ä¸ªç±»ï¼å
¶æ¥è¯¢ç»ææ¯äº§çä¸ä¸ªç¬å¡å¿ç§¯æäº§ç跨表çè¿æ¥ã "
-#. Tag: programlisting
-#: query_hql.xml:95
-#, no-c-format
-msgid "<![CDATA[from Formula, Parameter]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:96
-#, no-c-format
-msgid "<![CDATA[from Formula as form, Parameter as param]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:98
-#, fuzzy, no-c-format
+#, 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>)ã"
+"æ¥è¯¢è¯å¥ä¸å«åçå¼å¤´é¨åå°å被认为æ¯å®è·µä¸çå¥½ä¹ æ¯ï¼è¿æ ·åä¸ Java åéçå½å"
+"æ åä¿æäºä¸è´ï¼æ¯å¦ï¼<literal>domesticCat</literal>ï¼ã "
#. Tag: title
-#: query_hql.xml:107
#, no-c-format
msgid "Associations and joins"
-msgstr "å
³è(Association)ä¸è¿æ¥(Join)"
+msgstr "å
³èï¼Associationï¼ä¸è¿æ¥ï¼Joinï¼"
#. Tag: para
-#: query_hql.xml:109
-#, fuzzy, no-c-format
+#, 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>ã"
+"æä»¬ä¹å¯ä»¥ä¸ºç¸å
³èçå®ä½çè³æ¯å¯¹ä¸ä¸ªéåä¸çå
¨é¨å
ç´ æå®ä¸ä¸ªå«åï¼è¿æ¶è¦ä½¿ç¨"
+"å
³é®å <literal>join</literal>ã "
-#. Tag: programlisting
-#: query_hql.xml:114
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[from Cat as cat\n"
-" inner join cat.mate as mate\n"
-" left outer join cat.kittens as kitten]]>"
-msgstr ""
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr "忝æçè¿æ¥ç±»åæ¯ä» ANSI SQL ä¸åé´æ¥çï¼"
-#. Tag: programlisting
-#: query_hql.xml:116
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
-msgstr ""
+msgid "<literal>inner join</literal>"
+msgstr "<literal>inner join</literal>"
-#. Tag: programlisting
-#: query_hql.xml:118
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[from Formula form full join form.parameter param]]>"
-msgstr ""
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>left outer join</literal>"
#. Tag: para
-#: query_hql.xml:120
-#, fuzzy, no-c-format
-msgid "The supported join types are borrowed from ANSI SQL:"
-msgstr "忝æçè¿æ¥ç±»åæ¯ä»ANSI SQLä¸åé´æ¥çã"
-
-#. Tag: literal
-#: query_hql.xml:127
#, no-c-format
-msgid "inner join"
-msgstr "<literal>inner join</literal>ï¼å
è¿æ¥ï¼"
+msgid "<literal>right outer join</literal>"
+msgstr "<literal>right outer join</literal>"
-#. Tag: literal
-#: query_hql.xml:132
-#, no-c-format
-msgid "left outer join"
-msgstr "<literal>left outer join</literal>ï¼å·¦å¤è¿æ¥ï¼"
-
-#. Tag: literal
-#: query_hql.xml:137
-#, no-c-format
-msgid "right outer join"
-msgstr "<literal>right outer join</literal>ï¼å³å¤è¿æ¥ï¼"
-
#. Tag: para
-#: query_hql.xml:141
#, no-c-format
msgid "<literal>full join</literal> (not usually useful)"
-msgstr "<literal>full join</literal> (å
¨è¿æ¥ï¼å¹¶ä¸å¸¸ç¨)"
+msgstr "<literal>full join</literal>ï¼å
¨è¿æ¥ï¼å¹¶ä¸å¸¸ç¨ï¼"
#. Tag: para
-#: query_hql.xml:147
#, 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>inner join</literal>ï¼<literal>left outer join</literal> 以å "
"<literal>right outer join</literal> å¯ä»¥ç®åã"
-#. Tag: programlisting
-#: query_hql.xml:152
-#, no-c-format
-msgid ""
-"<![CDATA[from Cat as cat\n"
-" join cat.mate as mate\n"
-" left join cat.kittens as kitten]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:154
#, no-c-format
msgid ""
"You may supply extra join conditions using the HQL <literal>with</literal> "
"keyword."
-msgstr "éè¿HQLç<literal>with</literal>å
³é®åï¼ä½ å¯ä»¥æä¾é¢å¤çjoinæ¡ä»¶ã"
-
-#. Tag: programlisting
-#: query_hql.xml:159
-#, no-c-format
-msgid ""
-"<![CDATA[from Cat as cat\n"
-" left join cat.kittens as kitten\n"
-" with kitten.bodyWeight > 10.0]]>"
msgstr ""
+"éè¿ HQL ç <literal>with</literal> å
³é®åï¼ä½ å¯ä»¥æä¾é¢å¤ç join æ¡ä»¶ã"
#. Tag: para
-#: query_hql.xml:161
-#, fuzzy, no-c-format
+#, 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 "
+"and collections. See <xref linkend=\"performance-fetching\" /> for more "
"information."
msgstr ""
-"è¿æï¼ä¸ä¸ª\"fetch\"è¿æ¥å
许ä»
ä»
使ç¨ä¸ä¸ªéæ©è¯å¥å°±å°ç¸å
³èç对象æä¸ç»å¼çéå"
-"éçä»ä»¬çç¶å¯¹è±¡çåå§åè被åå§åï¼è¿ç§æ¹æ³å¨ä½¿ç¨å°éåçæ
åµä¸å°¤å
¶æç¨ï¼å¯¹"
-"äºå
³èåéåæ¥è¯´ï¼å®ææç代æ¿äºæ å°æä»¶ä¸çå¤èæ¥ ä¸å»¶è¿å£°æï¼lazy "
-"declarationsï¼. æ¥ç <xref linkend=\"performance-fetching\"/> 以è·å¾çå¤çä¿¡"
+"è¿æï¼ä¸ä¸ª \"fetch\" è¿æ¥å
许ä»
ä»
使ç¨ä¸ä¸ªéæ©è¯å¥å°±å°ç¸å
³èç对象æä¸ç»å¼çé"
+"åéçä»ä»¬çç¶å¯¹è±¡çåå§åè被åå§åï¼è¿ç§æ¹æ³å¨ä½¿ç¨å°éåçæ
åµä¸å°¤å
¶æç¨ï¼"
+"对äºå
³èåéåæ¥è¯´ï¼å®ææç代æ¿äºæ å°æä»¶ä¸çå¤èæ¥ä¸å»¶è¿å£°æï¼lazy "
+"declarationsï¼ãæ¥ç <xref linkend=\"performance-fetching\" /> 以è·å¾çå¤çä¿¡"
"æ¯ã"
-#. Tag: programlisting
-#: query_hql.xml:169
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[from Cat as cat\n"
-" inner join fetch cat.mate\n"
-" left join fetch cat.kittens]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:171
-#, fuzzy, 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 "
@@ -302,24 +202,13 @@
"The only reason you might need an alias is if you are recursively join "
"fetching a further collection:"
msgstr ""
-"ä¸ä¸ªfetchè¿æ¥é常ä¸éè¦è¢«æå®å«å, å 为ç¸å
³èç对象ä¸åºå½è¢«ç¨å¨ "
-"<literal>where</literal> åå¥ (æå
¶å®ä»»ä½åå¥)ä¸ãåæ¶ï¼ç¸å
³èç对象 å¹¶ä¸å¨æ¥"
-"询çç»æä¸ç´æ¥è¿åï¼ä½å¯ä»¥éè¿ä»ä»¬çç¶å¯¹è±¡æ¥è®¿é®å°ä»ä»¬ã"
+"ä¸ä¸ª fetch è¿æ¥é常ä¸éè¦è¢«æå®å«åï¼å 为ç¸å
³èç对象ä¸åºå½è¢«ç¨å¨ "
+"<literal>where</literal> åå¥ï¼æå
¶å®ä»»ä½åå¥ï¼ä¸ãåæ¶ï¼ç¸å
³èç对象并ä¸å¨æ¥"
+"询çç»æä¸ç´æ¥è¿åï¼ä½å¯ä»¥éè¿ä»ä»¬çç¶å¯¹è±¡æ¥è®¿é®å°ä»ä»¬ã "
-#. Tag: programlisting
-#: query_hql.xml:179
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[from Cat as cat\n"
-" inner join fetch cat.mate\n"
-" left join fetch cat.kittens child\n"
-" left join fetch child.kittens]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:181
-#, fuzzy, 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 "
@@ -335,20 +224,19 @@
"<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>æ¯æ²¡ææä¹çã"
+"åè¥ä½¿ç¨ <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
-#: query_hql.xml:196
-#, fuzzy, no-c-format
+#, 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 "
@@ -356,52 +244,34 @@
"properties</literal>."
msgstr ""
"å¦æä½ ä½¿ç¨å±æ§çº§å«çå»¶è¿è·åï¼lazy fetchingï¼ï¼è¿æ¯éè¿éæ°ç¼ååèç å®ç°"
-"çï¼ï¼å¯ä»¥ä½¿ç¨ <literal>fetch all properties</literal> æ¥å¼ºå¶Hibernateç«å³å"
-"å¾é£äºåæ¬éè¦å»¶è¿å è½½ç屿§ï¼å¨ç¬¬ä¸ä¸ªæ¥è¯¢ä¸ï¼ã"
+"çï¼ï¼å¯ä»¥ä½¿ç¨ <literal>fetch all properties</literal> æ¥å¼ºå¶ Hibernate ç«å³"
+"åå¾é£äºåæ¬éè¦å»¶è¿å è½½ç屿§ï¼å¨ç¬¬ä¸ä¸ªæ¥è¯¢ä¸ï¼ã "
-#. Tag: programlisting
-#: query_hql.xml:202
-#, no-c-format
-msgid "<![CDATA[from Document fetch all properties order by name]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:203
-#, no-c-format
-msgid ""
-"<![CDATA[from Document doc fetch all properties where lower(doc.name) like '%"
-"cats%']]>"
-msgstr ""
-
#. Tag: title
-#: query_hql.xml:208
#, no-c-format
msgid "Forms of join syntax"
msgstr "join è¯æ³çå½¢å¼"
#. Tag: para
-#: query_hql.xml:210
#, no-c-format
msgid ""
"HQL supports two forms of association joining: <literal>implicit</literal> "
"and <literal>explicit</literal>."
msgstr ""
-"HQLæ¯æä¸¤ç§å
³èjoinçå½¢å¼ï¼<literal>implicit(éå¼)</literal> ä¸"
+"HQL æ¯æä¸¤ç§å
³è join çå½¢å¼ï¼<literal>implicitï¼éå¼ï¼</literal> ä¸ "
"<literal>explicitï¼æ¾å¼ï¼</literal>ã"
#. Tag: para
-#: query_hql.xml:214
-#, fuzzy, no-c-format
+#, 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å
³é®åãè¿æ¯å»ºè®®ä½¿ç¨çæ¹å¼ã"
+"ä¸ä¸èä¸ç»åºçæ¥è¯¢é½æ¯ä½¿ç¨ <literal>explicitï¼æ¾å¼ï¼</literal>å½¢å¼çï¼å
¶ä¸ "
+"form åå¥ä¸æç¡®ç»åºäº join å
³é®åãè¿æ¯å»ºè®®ä½¿ç¨çæ¹å¼ã "
#. Tag: para
-#: query_hql.xml:219
#, no-c-format
msgid ""
"The <literal>implicit</literal> form does not use the join keyword. Instead, "
@@ -409,55 +279,41 @@
"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çæ¹å¼åºç°ã"
+"<literal>implicitï¼éå¼ï¼</literal>å½¢å¼ä¸ä½¿ç¨ join å
³é®åãå
³è使ç¨\"ç¹å·\"æ¥"
+"è¿è¡âå¼ç¨âã<literal>implicit</literal> join å¯ä»¥å¨ä»»ä½ HQL åå¥ä¸åºç°ã"
+"<literal>implicit</literal> join 卿ç»ç SQL è¯å¥ä¸ä»¥ inner join çæ¹å¼åº"
+"ç°ã"
-#. Tag: programlisting
-#: query_hql.xml:226
-#, no-c-format
-msgid "<![CDATA[from Cat as cat where cat.mate.name like '%s%']]>"
-msgstr ""
-
#. Tag: title
-#: query_hql.xml:230
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Referring to identifier property"
-msgstr "Refering to identifier property"
+msgstr "å¼ç¨ identifier 屿§ "
#. Tag: para
-#: query_hql.xml:232
-#, fuzzy, no-c-format
+#, no-c-format
msgid "There are 2 ways to refer to an entity's identifier property:"
-msgstr ""
-"There are, generally speaking, 2 ways to refer to an entity's identifier "
-"property:"
+msgstr "é常æä¸¤ç§æ¹æ³æ¥å¼ç¨å®ä½ç identifier 屿§ï¼ "
#. Tag: para
-#: query_hql.xml:237
-#, fuzzy, no-c-format
+#, 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 ""
-"The special property (lowercase) <literal>id</literal> may be used to "
-"reference the identifier property of an entity <emphasis>provided that "
-"entity does not define a non-identifier property named id</emphasis>."
+"ç¹æ®å±æ§ï¼lowercaseï¼<literal>id</literal> å¯ä»¥ç¨æ¥å¼ç¨å®ä½ç identifier å±"
+"æ§ <emphasis>å设è¿ä¸ªå®ä½æ²¡æå®ä¹ç¨ non-identifier 屿§å½åç id</"
+"emphasis>ã "
#. Tag: para
-#: query_hql.xml:244
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"If the entity defines a named identifier property, you can use that property "
"name."
-msgstr ""
-"If the entity defines a named identifier property, you may use that property "
-"name."
+msgstr "妿è¿ä¸ªå®ä½å®ä¹äº identifier 屿§ï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åã "
#. Tag: para
-#: query_hql.xml:250
-#, fuzzy, no-c-format
+#, 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 "
@@ -465,15 +321,12 @@
"the special <literal>id</literal> property can be used to reference the "
"identifier property."
msgstr ""
-"References to composite identifier properties follow the same naming rules. "
-"If the entity has a non-identifier property named id, the composite "
-"identifier property can only be referenced by its defined named; otherwise, "
-"the special <literal>id</literal> property can be used to rerference the "
-"identifier property."
+"对ç»å identifier 屿§çå¼ç¨éµå¾ªç¸åçå½åè§åã妿å®ä½æä¸ä¸ª non-"
+"identifier 屿§å½åç idï¼è¿ä¸ªç»å identifier 屿§åªè½ç¨èªå·±å®ä¹çå忥å¼"
+"ç¨ï¼å¦åï¼ç¹æ® <literal>id</literal> 屿§å¯ä»¥ç¨æ¥å¼ç¨ identifier 屿§ã "
#. Tag: para
-#: query_hql.xml:258
-#, fuzzy, no-c-format
+#, 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> "
@@ -481,277 +334,146 @@
"ramification of that decision was that non-identifier properties named "
"<literal>id</literal> could never be referenced in Hibernate queries."
msgstr ""
-"Note: this has changed significantly starting in version 3.2.2. In previous "
-"versions, <literal>id</literal><emphasis>always</emphasis> referred to the "
-"identifier property no matter what its actual name. A ramification of that "
-"decision was that non-identifier properties named <literal>id</literal> "
-"could never be referenced in Hibernate queries."
+"注æï¼ä» 3.2.2 çæ¬å¼å§ï¼è¿å·²ç»æ¹åäºå¾å¤ãå¨åé¢ççæ¬éï¼ä¸ç®¡å®é
çååï¼"
+"<literal>id</literal> <emphasis>æ»æ¯</emphasis>æå identifier 屿§ï¼èç¨ "
+"non-identifier 屿§å½åç <literal>id</literal> 就仿¥ä¸å¨ Hibernate æ¥è¯¢éå¼"
+"ç¨ã "
#. Tag: title
-#: query_hql.xml:269
#, no-c-format
msgid "The select clause"
-msgstr "selectåå¥"
+msgstr "select åå¥"
#. Tag: para
-#: query_hql.xml:271
-#, fuzzy, no-c-format
+#, 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> åå¥éæ©å°åªäºå¯¹è±¡ä¸å±æ§è¿ åå°æ¥è¯¢ç»æéä¸. èèå¦"
-"䏿
åµ:"
+"<literal>select</literal> åå¥éæ©å°åªäºå¯¹è±¡ä¸å±æ§è¿åå°æ¥è¯¢ç»æéä¸ãèèå¦"
+"䏿
åµï¼"
-#. Tag: programlisting
-#: query_hql.xml:276
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select mate\n"
-"from Cat as cat\n"
-" inner join cat.mate as mate]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:278
-#, fuzzy, 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>mate</literal>s of other <literal>Cat</literal>sãï¼å
¶ä»"
-"ç«çé
å¶ï¼ å®é
ä¸, ä½ å¯ä»¥æ´ç®æ´çç¨ä»¥ä¸çæ¥è¯¢è¯å¥è¡¨è¾¾ç¸åçå«ä¹:"
+"该è¯å¥å°éæ©å
¶å® <literal>Cat</literal> ç <literal>mate</literal>ï¼å
¶ä»ç«ç"
+"é
å¶ï¼ãå®é
ä¸ï¼ä½ å¯ä»¥æ´ç®æ´çç¨ä»¥ä¸çæ¥è¯¢è¯å¥è¡¨è¾¾ç¸åçå«ä¹ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:283
-#, no-c-format
-msgid "<![CDATA[select cat.mate from Cat cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:285
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Queries can return properties of any value type including properties of "
"component type:"
msgstr ""
-"æ¥è¯¢è¯å¥å¯ä»¥è¿åå¼ä¸ºä»»ä½ç±»åç屿§ï¼å
æ¬è¿åç±»å为æç§ç»ä»¶(Component)ç屿§:"
+"æ¥è¯¢è¯å¥å¯ä»¥è¿åå¼ä¸ºä»»ä½ç±»åç屿§ï¼å
æ¬è¿åç±»å为æç§ç»ä»¶ï¼Componentï¼çå±"
+"æ§ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:289
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select cat.name from DomesticCat cat\n"
-"where cat.name like 'fri%']]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:291
-#, no-c-format
-msgid "<![CDATA[select cust.name.firstName from Customer as cust]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:293
-#, fuzzy, no-c-format
-msgid ""
"Queries can return multiple objects and/or properties as an array of type "
"<literal>Object[]</literal>:"
msgstr ""
-"æ¥è¯¢è¯å¥å¯ä»¥è¿åå¤ä¸ªå¯¹è±¡åï¼æï¼å±æ§ï¼åæ¾å¨ <literal>Object[]</literal>éå"
-"ä¸,"
+"æ¥è¯¢è¯å¥å¯ä»¥è¿åå¤ä¸ªå¯¹è±¡åï¼æï¼å±æ§ï¼åæ¾å¨ <literal>Object[]</literal> éå"
+"ä¸ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:298
-#, no-c-format
-msgid ""
-"<![CDATA[select mother, offspr, mate.name\n"
-"from DomesticCat as mother\n"
-" inner join mother.mate as mate\n"
-" left outer join mother.kittens as offspr]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:300
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Or as a <literal>List</literal>:"
-msgstr "æåæ¾å¨ä¸ä¸ª<literal>List</literal>对象ä¸,"
+msgstr "æåæ¾å¨ä¸ä¸ª <literal>List</literal> 对象ä¸ï¼"
-#. Tag: programlisting
-#: query_hql.xml:304
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select new list(mother, offspr, mate.name)\n"
-"from DomesticCat as mother\n"
-" inner join mother.mate as mate\n"
-" left outer join mother.kittens as offspr]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:306
-#, fuzzy, 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>æä¸ä¸ªåéçæé 彿°."
-
-#. Tag: programlisting
-#: query_hql.xml:310
-#, no-c-format
-msgid ""
-"<![CDATA[select new Family(mother, mate, offspr)\n"
-"from DomesticCat as mother\n"
-" join mother.mate as mate\n"
-" left join mother.kittens as offspr]]>"
msgstr ""
+"å设类 <literal>Family</literal> æä¸ä¸ªåéçæé 彿° - ä½ä¸ºå®é
çç±»åå®å
¨ç "
+"Java 对象ï¼"
#. Tag: para
-#: query_hql.xml:313
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"You can assign aliases to selected expressions using <literal>as</literal>:"
-msgstr "ä½ å¯ä»¥ä½¿ç¨å
³é®å<literal>as</literal>ç»âè¢«éæ©äºç表达å¼âææ´¾å«å:"
+msgstr "ä½ å¯ä»¥ä½¿ç¨å
³é®å <literal>as</literal> ç»âè¢«éæ©äºç表达å¼âææ´¾å«åï¼ "
-#. Tag: programlisting
-#: query_hql.xml:317
-#, no-c-format
-msgid ""
-"<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as "
-"n\n"
-"from Cat cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:319
#, no-c-format
msgid ""
"This is most useful when used together with <literal>select new map</"
"literal>:"
-msgstr "è¿ç§åæ³å¨ä¸åå¥<literal>select new map</literal>ä¸èµ·ä½¿ç¨æ¶ææç¨:"
+msgstr "è¿ç§åæ³å¨ä¸åå¥ <literal>select new map</literal> ä¸èµ·ä½¿ç¨æ¶ææç¨ï¼"
-#. Tag: programlisting
-#: query_hql.xml:323
-#, no-c-format
-msgid ""
-"<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, "
-"count(*) as n )\n"
-"from Cat cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:325
#, no-c-format
msgid ""
"This query returns a <literal>Map</literal> from aliases to selected values."
msgstr ""
-"该æ¥è¯¢è¿åäºä¸ä¸ª<literal>Map</literal>ç对象ï¼å
容æ¯å«åä¸è¢«éæ©çå¼ç»æçå-"
-"弿 å°ã"
+"该æ¥è¯¢è¿åäºä¸ä¸ª <literal>Map</literal> ç对象ï¼å
容æ¯å«åä¸è¢«éæ©çå¼ç»æç"
+"å-弿 å°ã"
#. Tag: title
-#: query_hql.xml:332
#, no-c-format
msgid "Aggregate functions"
msgstr "èé彿°"
#. Tag: para
-#: query_hql.xml:334
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"HQL queries can even return the results of aggregate functions on properties:"
-msgstr "HQLæ¥è¯¢çè³å¯ä»¥è¿åä½ç¨äºå±æ§ä¹ä¸çèé彿°ç计ç®ç»æ:"
+msgstr "HQL æ¥è¯¢çè³å¯ä»¥è¿åä½ç¨äºå±æ§ä¹ä¸çèé彿°ç计ç®ç»æï¼ "
-#. Tag: programlisting
-#: query_hql.xml:338
-#, no-c-format
-msgid ""
-"<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count"
-"(cat)\n"
-"from Cat cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:349
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The supported aggregate functions are:"
-msgstr "忝æçèé彿°å¦ä¸ï¼"
+msgstr "忝æçèé彿°å¦ä¸ï¼ "
-#. Tag: literal
-#: query_hql.xml:356
+#. Tag: para
#, no-c-format
-msgid "avg(...), sum(...), min(...), max(...)"
-msgstr "avg(...), sum(...), min(...), max(...)"
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
-#. Tag: literal
-#: query_hql.xml:361
+#. Tag: para
#, no-c-format
-msgid "count(*)"
-msgstr "count(*)"
+msgid "<literal>count(*)</literal>"
+msgstr "<literal>count(*)</literal>"
-#. Tag: literal
-#: query_hql.xml:366
+#. Tag: para
#, no-c-format
-msgid "count(...), count(distinct ...), count(all...)"
-msgstr "count(...), count(distinct ...), count(all...)"
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
#. Tag: para
-#: query_hql.xml:371
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"You can use arithmetic operators, concatenation, and recognized SQL "
"functions in the select clause:"
-msgstr "ä½ å¯ä»¥å¨éæ©åå¥ä¸ä½¿ç¨æ°å¦æä½ç¬¦ãè¿æ¥ä»¥åç»è¿éªè¯çSQL彿°ï¼"
+msgstr "ä½ å¯ä»¥å¨éæ©åå¥ä¸ä½¿ç¨æ°å¦æä½ç¬¦ãè¿æ¥ä»¥åç»è¿éªè¯ç SQL 彿°ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:376
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select cat.weight + sum(kitten.weight)\n"
-"from Cat cat\n"
-" join cat.kittens kitten\n"
-"group by cat.id, cat.weight]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:378
-#, no-c-format
-msgid ""
-"<![CDATA[select firstName||' '||initial||' '||upper(lastName) from Person]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:380
-#, fuzzy, 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ç¸åçè¯ä¹."
+"å
³é®å <literal>distinct</literal> ä¸ <literal>all</literal> ä¹å¯ä»¥ä½¿ç¨ï¼å®ä»¬"
+"å
·æä¸ SQL ç¸åçè¯ä¹ã "
-#. Tag: programlisting
-#: query_hql.xml:385
-#, no-c-format
-msgid ""
-"<![CDATA[select distinct cat.name from Cat cat\n"
-"\n"
-"select count(distinct cat.name), count(cat) from Cat cat]]>"
-msgstr ""
-
#. Tag: title
-#: query_hql.xml:390
#, no-c-format
msgid "Polymorphic queries"
msgstr "夿æ¥è¯¢"
#. Tag: para
-#: query_hql.xml:392
#, no-c-format
msgid "A query like:"
-msgstr "ä¸ä¸ªå¦ä¸çæ¥è¯¢è¯å¥:"
+msgstr "ä¸ä¸ªå¦ä¸çæ¥è¯¢è¯å¥ï¼"
#. Tag: para
-#: query_hql.xml:398
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"returns instances not only of <literal>Cat</literal>, but also of subclasses "
"like <literal>DomesticCat</literal>. Hibernate queries can name "
@@ -760,281 +482,173 @@
"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 ç±»ææ¥å£. æ¥è¯¢ä¼è¿åç»§æ¿äºè¯¥ç±»çæææä¹
ååç±» çå®ä¾æè¿"
-"å声æäºè¯¥æ¥å£çæææä¹
åç±»çå®ä¾ãä¸é¢çæ¥è¯¢è¯å¥è¿åææç被æä¹
åç对象ï¼"
+"ä¸ä»
è¿å <literal>Cat</literal> ç±»çå®ä¾ï¼ä¹åæ¶è¿ååç±» "
+"<literal>DomesticCat</literal> çå®ä¾ãHibernate å¯ä»¥å¨ <literal>from</"
+"literal> åå¥ä¸æå®<emphasis>ä»»ä½</emphasis> Java ç±»ææ¥å£ãæ¥è¯¢ä¼è¿åç»§æ¿äº"
+"è¯¥ç±»çæææä¹
ååç±»çå®ä¾æè¿å声æäºè¯¥æ¥å£çæææä¹
åç±»çå®ä¾ãä¸é¢çæ¥è¯¢"
+"è¯å¥è¿åææç被æä¹
åçå¯¹è±¡ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:406
-#, no-c-format
-msgid "<![CDATA[from java.lang.Object o]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:408
#, no-c-format
msgid ""
"The interface <literal>Named</literal> might be implemented by various "
"persistent classes:"
-msgstr "æ¥å£<literal>Named</literal> å¯è½è¢«åç§åæ ·çæä¹
å类声æï¼"
+msgstr "æ¥å£ <literal>Named</literal> å¯è½è¢«åç§åæ ·çæä¹
å类声æï¼"
-#. Tag: programlisting
-#: query_hql.xml:413
-#, no-c-format
-msgid "<![CDATA[from Named n, Named m where n.name = m.name]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:415
-#, fuzzy, no-c-format
+#, 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>æ¹æ³.)"
+"注æï¼æåç两个æ¥è¯¢å°éè¦è¶
è¿ä¸ä¸ªç SQL <literal>SELECT</literal>ãè¿è¡¨æ "
+"<literal>order by</literal> å奿²¡æå¯¹æ´ä¸ªç»æéè¿è¡æ£ç¡®çæåºãï¼è¿ä¹è¯´æä½ "
+"ä¸è½å¯¹è¿æ ·çæ¥è¯¢ä½¿ç¨ <literal>Query.scroll()</literal> æ¹æ³ãï¼"
#. Tag: title
-#: query_hql.xml:424
#, no-c-format
msgid "The where clause"
-msgstr "whereåå¥"
+msgstr "where åå¥"
#. Tag: para
-#: query_hql.xml:426
-#, fuzzy, no-c-format
+#, 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>åå¥å
è®¸ä½ å°è¿åçå®ä¾å表çèå´ç¼©å°. å¦ææ²¡ææå®å«"
-"åï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åæ¥ç´æ¥å¼ç¨å±æ§:"
+"<literal>where</literal> åå¥å
è®¸ä½ å°è¿åçå®ä¾å表çèå´ç¼©å°ãå¦ææ²¡ææå®å«"
+"åï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åæ¥ç´æ¥å¼ç¨å±æ§ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:431
-#, no-c-format
-msgid "<![CDATA[from Cat where name='Fritz']]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:433
#, no-c-format
msgid "If there is an alias, use a qualified property name:"
-msgstr "å¦æææ´¾äºå«åï¼éè¦ä½¿ç¨å®æ´ç屿§å:"
+msgstr "å¦æææ´¾äºå«åï¼éè¦ä½¿ç¨å®æ´ç屿§åï¼"
-#. Tag: programlisting
-#: query_hql.xml:437
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
msgstr ""
+"è¿åå为ï¼å±æ§ name çäºï¼'Fritz' ç <literal>Cat</literal> ç±»çå®ä¾ã "
#. Tag: para
-#: query_hql.xml:439
-#, fuzzy, no-c-format
-msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
-msgstr "è¿åå为ï¼å±æ§nameçäºï¼'Fritz'ç<literal>Cat</literal>ç±»çå®ä¾ã"
+#, no-c-format
+msgid "The following query:"
+msgstr "ä¸é¢çæ¥è¯¢ï¼"
#. Tag: para
-#: query_hql.xml:443
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
-"The following query: <programlisting><![CDATA[select foo\n"
-"from Foo foo, Bar bar\n"
-"where foo.startDate = bar.date]]></programlisting> 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:"
+"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>åå¥é常ç强大ï¼èèå¦ä¸æ
åµï¼"
+"å°è¿åæææ»¡è¶³ä¸é¢æ¡ä»¶ç <literal>Foo</literal> ç±»çå®ä¾ï¼ åå¨å¦ä¸ç "
+"<literal>bar</literal> çä¸ä¸ªå®ä¾ï¼å
¶ <literal>date</literal> 屿§çäº "
+"<literal>Foo</literal> ç <literal>startDate</literal> 屿§ãå¤åè·¯å¾è¡¨è¾¾å¼ä½¿"
+"å¾ <literal>where</literal> åå¥é常ç强大ï¼èèå¦ä¸æ
åµï¼ "
-#. Tag: programlisting
-#: query_hql.xml:454
-#, no-c-format
-msgid "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:456
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"This query translates to an SQL query with a table (inner) join. For example:"
msgstr ""
-"该æ¥è¯¢å°è¢«ç¿»è¯æä¸ºä¸ä¸ªå«æè¡¨è¿æ¥ï¼å
è¿æ¥ï¼çSQLæ¥è¯¢ãå¦æä½ æç®ååè¿æ ·çæ¥è¯¢"
-"è¯å¥"
+"该æ¥è¯¢å°è¢«ç¿»è¯æä¸ºä¸ä¸ªå«æè¡¨è¿æ¥ï¼å
è¿æ¥ï¼ç SQL æ¥è¯¢ãå¦æä½ æç®ååè¿æ ·çæ¥"
+"询è¯å¥ï¼"
-#. Tag: programlisting
-#: query_hql.xml:461
-#, no-c-format
-msgid ""
-"<![CDATA[from Foo foo\n"
-"where foo.bar.baz.customer.address.city is not null]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:463
-#, fuzzy, no-c-format
+#, no-c-format
msgid "would result in a query that would require four table joins in SQL."
-msgstr "å¨SQLä¸ï¼ä½ 为达æ¤ç®çå°éè¦è¿è¡ä¸ä¸ªåè¡¨è¿æ¥çæ¥è¯¢ã"
+msgstr "å¨ SQL ä¸ï¼ä½ 为达æ¤ç®çå°éè¦è¿è¡ä¸ä¸ªåè¡¨è¿æ¥çæ¥è¯¢ã "
#. Tag: para
-#: query_hql.xml:467
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The <literal>=</literal> operator can be used to compare not only "
"properties, but also instances:"
msgstr ""
-"<literal>=</literal>è¿ç®ç¬¦ä¸ä»
å¯ä»¥è¢«ç¨æ¥æ¯è¾å±æ§çå¼ï¼ä¹å¯ä»¥ç¨æ¥æ¯è¾å®ä¾ï¼"
+"<literal>=</literal> è¿ç®ç¬¦ä¸ä»
å¯ä»¥è¢«ç¨æ¥æ¯è¾å±æ§çå¼ï¼ä¹å¯ä»¥ç¨æ¥æ¯è¾å®ä¾ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:472
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:474
-#, no-c-format
msgid ""
-"<![CDATA[select cat, mate\n"
-"from Cat cat, Cat mate\n"
-"where cat.mate = mate]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:476
-#, 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."
+"identifier-property\" /> for more information."
msgstr ""
-"ç¹æ®å±æ§ï¼å°åï¼<literal>id</literal>å¯ä»¥ç¨æ¥è¡¨ç¤ºä¸ä¸ªå¯¹è±¡çå¯ä¸çæ è¯ç¬¦ãï¼ä½ "
-"ä¹å¯ä»¥ä½¿ç¨è¯¥å¯¹è±¡ç屿§åãï¼"
+"ç¹æ®å±æ§ï¼å°åï¼<literal>id</literal> å¯ä»¥ç¨æ¥è¡¨ç¤ºä¸ä¸ªå¯¹è±¡çå¯ä¸çæ è¯ç¬¦ã详"
+"æ
请åè <xref linkend=\"queryhql-identifier-property\" />ã"
-#. Tag: programlisting
-#: query_hql.xml:482
-#, no-c-format
-msgid ""
-"<![CDATA[from Cat as cat where cat.id = 123\n"
-"\n"
-"from Cat as cat where cat.mate.id = 69]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:484
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The second query is efficient and does not require a table join."
-msgstr "第äºä¸ªæ¥è¯¢æ¯ææçãæ¤æ¶ä¸éè¦è¿è¡è¡¨è¿æ¥ï¼"
+msgstr "第äºä¸ªæ¥è¯¢æ¯ææçãæ¤æ¶ä¸éè¦è¿è¡è¡¨è¿æ¥ã"
#. Tag: para
-#: query_hql.xml:488
-#, fuzzy, no-c-format
+#, 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>屿§ç»"
-"æã"
+"åæ ·ä¹å¯ä»¥ä½¿ç¨å¤åæ è¯ç¬¦ãæ¯å¦ <literal>Person</literal> ç±»æä¸ä¸ªå¤åæ è¯ç¬¦ï¼"
+"å®ç± <literal>country</literal> 屿§ä¸ <literal>medicareNumber</literal> 屿§"
+"ç»æï¼"
-#. Tag: programlisting
-#: query_hql.xml:494
-#, no-c-format
-msgid ""
-"<![CDATA[from bank.Person person\n"
-"where person.id.country = 'AU'\n"
-" and person.id.medicareNumber = 123456]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:496
-#, no-c-format
-msgid ""
-"<![CDATA[from bank.Account account\n"
-"where account.owner.id.country = 'AU'\n"
-" and account.owner.id.medicareNumber = 123456]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:498
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Once again, the second query does not require a table join."
-msgstr "第äºä¸ªæ¥è¯¢ä¹ä¸éè¦è¿è¡è¡¨è¿æ¥ã"
+msgstr "第äºä¸ªæ¥è¯¢ä¹ä¸éè¦è¿è¡è¡¨è¿æ¥ã "
#. Tag: para
-#: query_hql.xml:502
#, no-c-format
msgid ""
-"See <xref linkend=\"queryhql-identifier-property\"/> for more information "
+"See <xref linkend=\"queryhql-identifier-property\" /> for more information "
"regarding referencing identifier properties)"
msgstr ""
+"å
³äºå¼ç¨æ è¯ç¬¦å±æ§çæ´å¤ä¿¡æ¯ï¼è¯·åè <xref linkend=\"queryhql-identifier-"
+"property\" />ã"
#. Tag: para
-#: query_hql.xml:507
-#, fuzzy, no-c-format
+#, 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ç±»çååå°"
-"被转æ¢ä¸ºè¯¥ç±»çé´å«å¼ã"
+"åæ ·çï¼ç¹æ®å±æ§ <literal>class</literal> å¨è¿è¡å¤ææä¹
åçæ
åµä¸è¢«ç¨æ¥åå"
+"ä¸ä¸ªå®ä¾çé´å«å¼ï¼discriminator valueï¼ãä¸ä¸ªåµå
¥å° where åå¥ä¸ç Java ç±»ç"
+"ååå°è¢«è½¬æ¢ä¸ºè¯¥ç±»çé´å«å¼ã "
-#. Tag: programlisting
-#: query_hql.xml:513
-#, no-c-format
-msgid "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:515
-#, fuzzy, no-c-format
+#, 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 "
+"component types. See <xref linkend=\"queryhql-components\" /> for more "
"information."
msgstr ""
-"ä½ ä¹å¯ä»¥å£°æä¸ä¸ªå±æ§çç±»åæ¯ç»ä»¶æè
å¤åç¨æ·ç±»åï¼ä»¥åç±ç»ä»¶ææçç»ä»¶ç"
-"çï¼ãæ°¸è¿ä¸è¦å°è¯ä½¿ç¨ä»¥ç»ä»¶ç±»åæ¥ç»å°¾çè·¯å¾è¡¨è¾¾å¼ï¼path-expressionï¼ ï¼ä¸æ¤"
-"ç¸åï¼ä½ åºå½ä½¿ç¨ç»ä»¶çä¸ä¸ªå±æ§æ¥ç»å°¾ï¼ã 䏾便¥è¯´ï¼å¦æ<literal>store.owner</"
-"literal>嫿ä¸ä¸ªå
å«äºç»ä»¶çå®ä½<literal>address</literal>"
+"ä½ ä¹å¯ä»¥ä½¿ç¨ç»ä»¶æè
å¤åç¨æ·ç±»åï¼ä»¥åç»ä»¶ç±»åç屿§ã详æ
请åè <xref "
+"linkend=\"queryhql-components\" />ã"
#. Tag: para
-#: query_hql.xml:520
-#, fuzzy, no-c-format
+#, 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>ï¼ã"
+"ä¸ä¸ªâä»»æâç±»åæä¸¤ä¸ªç¹æ®ç屿§ <literal>id</literal> å <literal>class</"
+"literal>ï¼æ¥å
许æä»¬æç
§ä¸é¢çæ¹å¼è¡¨è¾¾ä¸ä¸ªè¿æ¥ï¼<literal>AuditLog.item</"
+"literal> æ¯ä¸ä¸ªå±æ§ï¼è¯¥å±æ§è¢«æ å°ä¸º <literal><any></literal>ï¼ã "
-#. Tag: programlisting
-#: query_hql.xml:526
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[from AuditLog log, Payment payment\n"
-"where log.item.class = 'Payment' and log.item.id = payment.id]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:528
-#, fuzzy, 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."
@@ -1043,49 +657,43 @@
"<literal>payment.class</literal> å°æ¶åå°å®å
¨ä¸åçæ°æ®åºä¸çåã"
#. Tag: title
-#: query_hql.xml:536
#, no-c-format
msgid "Expressions"
msgstr "表达å¼"
#. Tag: para
-#: query_hql.xml:538
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Expressions used in the <literal>where</literal> clause include the "
"following:"
msgstr ""
-"å¨<literal>where</literal>åå¥ä¸å
许使ç¨ç表达å¼å
æ¬ å¤§å¤æ°ä½ å¯ä»¥å¨SQL使ç¨ç"
-"表达å¼ç§ç±»:"
+"å¨ <literal>where</literal> åå¥ä¸å
许使ç¨ç表达å¼å
æ¬ å¤§å¤æ°ä½ å¯ä»¥å¨ SQL 使"
+"ç¨ç表达å¼ç§ç±»ï¼ "
#. Tag: para
-#: query_hql.xml:545
-#, fuzzy, no-c-format
+#, no-c-format
msgid "mathematical operators: <literal>+, -, *, /</literal>"
-msgstr "æ°å¦è¿ç®ç¬¦<literal>+, -, *, /</literal>"
+msgstr "æ°å¦è¿ç®ç¬¦ <literal>+ï¼-ï¼*ï¼/</literal> "
#. Tag: para
-#: query_hql.xml:550
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"binary comparison operators: <literal>=, >=, <=, <>, !=, like</"
"literal>"
-msgstr "äºè¿å¶æ¯è¾è¿ç®ç¬¦<literal>=, >=, <=, <>, !=, like</literal>"
+msgstr ""
+"äºè¿å¶æ¯è¾è¿ç®ç¬¦ <literal>=, >=, <=, <>, !=, like</literal> "
#. Tag: para
-#: query_hql.xml:555
#, no-c-format
msgid "logical operations <literal>and, or, not</literal>"
-msgstr "é»è¾è¿ç®ç¬¦<literal>and, or, not</literal>"
+msgstr "é»è¾è¿ç®ç¬¦ <literal>andï¼orï¼not</literal>"
#. Tag: para
-#: query_hql.xml:560
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Parentheses <literal>( )</literal> that indicates grouping"
-msgstr "Parentheses <literal>( )</literal>, indicating grouping"
+msgstr "æ¬å· <literal>( )</literal>ï¼è¡¨ç¤ºåç» "
#. Tag: para
-#: query_hql.xml:565
#, no-c-format
msgid ""
"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
@@ -1099,65 +707,59 @@
"<literal>member of</literal> and <literal>not member of</literal>"
#. Tag: para
-#: query_hql.xml:578
#, no-c-format
msgid ""
"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
msgstr ""
-"\"ç®åç\" case, <literal>case ... when ... then ... else ... end</literal>,"
-"å \"æç´¢\" case, <literal>case when ... then ... else ... end</literal>"
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
#. Tag: para
-#: query_hql.xml:584
#, no-c-format
msgid ""
"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
"</literal>"
msgstr ""
-"åç¬¦ä¸²è¿æ¥ç¬¦<literal>...||...</literal> or <literal>concat(...,...)</literal>"
+"åç¬¦ä¸²è¿æ¥ç¬¦ <literal>...||...</literal> or <literal>concat(...,...)</"
+"literal>"
#. Tag: para
-#: query_hql.xml:589
-#, fuzzy, no-c-format
+#, 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>, "
+"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
"<literal>current_timestamp()</literal>"
#. Tag: para
-#: query_hql.xml:595
-#, fuzzy, no-c-format
+#, 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>,"
+"<literal>second(...)</literal>ã<literal>minute(...)</literal>ã<literal>hour"
+"(...)</literal>ã<literal>day(...)</literal>ã<literal>month(...)</literal> "
+"å <literal>year(...)</literal>"
#. Tag: para
-#: query_hql.xml:602
#, 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>"
+"EJB-QL 3.0 å®ä¹çä»»ä½åè½ææä½ç¬¦ï¼<literal>substring(), trim(), lower(), "
+"upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
#. Tag: para
-#: query_hql.xml:608
#, no-c-format
msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
msgstr "<literal>coalesce()</literal> å <literal>nullif()</literal>"
#. Tag: para
-#: query_hql.xml:613
#, no-c-format
msgid ""
"<literal>str()</literal> for converting numeric or temporal values to a "
@@ -1165,7 +767,6 @@
msgstr "<literal>str()</literal> ææ°åæè
æ¶é´å¼è½¬æ¢ä¸ºå¯è¯»çå符串"
#. Tag: para
-#: query_hql.xml:619
#, no-c-format
msgid ""
"<literal>cast(... as ...)</literal>, where the second argument is the name "
@@ -1173,21 +774,19 @@
"<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> 被åºå±æ°æ®åºæ¯æ"
+"<literal>cast(... as ...)</literal>ï¼å
¶ç¬¬äºä¸ªåæ°æ¯æ Hibernate ç±»åçååï¼"
+"以å <literal>extract(... from ...)</literal>ï¼åªè¦ ANSI <literal>cast()</"
+"literal> å <literal>extract()</literal> 被åºå±æ°æ®åºæ¯æ"
#. Tag: para
-#: query_hql.xml:627
#, no-c-format
msgid ""
"the HQL <literal>index()</literal> function, that applies to aliases of a "
"joined indexed collection"
-msgstr "HQL <literal>index()</literal> 彿°ï¼ä½ç¨äºjoinçæåºéåçå«åã"
+msgstr "HQL <literal>index()</literal> 彿°ï¼ä½ç¨äº join çæåºéåçå«åã"
#. Tag: para
-#: query_hql.xml:633
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"HQL functions that take collection-valued path expressions: <literal>size(), "
"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
@@ -1195,40 +794,36 @@
"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>ã"
+"HQL 彿°ï¼æéåä½ä¸ºåæ°ï¼<literal>size(), minelement(), maxelement(), "
+"minindex(), maxindex()</literal>ï¼è¿æç¹å«ç <literal>elements()</literal> "
+"å <literal>indices</literal> 彿°ï¼å¯ä»¥ä¸æ°éè¯å 以éå®ï¼<literal>some, "
+"all, exists, any, in</literal>ã "
#. Tag: para
-#: query_hql.xml:641
-#, fuzzy, no-c-format
+#, 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>"
+"任使°æ®åºæ¯æç SQL æ é彿°ï¼æ¯å¦ <literal>sign()</literal>, <literal>trunc"
+"()</literal>, <literal>rtrim()</literal>, <literal>sin()</literal> "
#. Tag: para
-#: query_hql.xml:647
#, no-c-format
msgid "JDBC-style positional parameters <literal>?</literal>"
-msgstr "JDBC飿 ¼çåæ°ä¼ å
¥ <literal>?</literal>"
+msgstr "JDBC 飿 ¼çåæ°ä¼ å
¥ <literal>?</literal>"
#. Tag: para
-#: query_hql.xml:652
-#, fuzzy, no-c-format
+#, 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>"
+"å½ååæ° <literal>:name</literal>ï¼<literal>:start_date</literal>ï¼<literal>:"
+"x1</literal> "
#. Tag: para
-#: query_hql.xml:657
#, no-c-format
msgid ""
"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
@@ -1238,7 +833,6 @@
"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
#. Tag: para
-#: query_hql.xml:663
#, no-c-format
msgid ""
"Java <literal>public static final</literal> constants <literal>eg.Color."
@@ -1248,117 +842,58 @@
"TABBY</literal>"
#. Tag: para
-#: query_hql.xml:669
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<literal>in</literal> and <literal>between</literal> can be used as follows:"
msgstr ""
-"å
³é®å<literal>in</literal>ä¸<literal>between</literal>坿å¦ä¸æ¹æ³ä½¿ç¨:"
+"å
³é®å <literal>in</literal> ä¸ <literal>between</literal> 坿å¦ä¸æ¹æ³ä½¿"
+"ç¨ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:673
-#, no-c-format
-msgid "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:675
-#, no-c-format
-msgid ""
-"<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:677
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The negated forms can be written as follows:"
-msgstr "èä¸å¦å®çæ ¼å¼ä¹å¯ä»¥å¦ä¸ä¹¦åï¼"
+msgstr "èä¸å¦å®çæ ¼å¼ä¹å¯ä»¥å¦ä¸ä¹¦åï¼ "
-#. Tag: programlisting
-#: query_hql.xml:681
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:683
-#, no-c-format
msgid ""
-"<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )]]"
-">"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:685
-#, fuzzy, 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)."
+"åæ ·ï¼åå¥ <literal>is null</literal> ä¸ <literal>is not null</literal> å¯ä»¥"
+"è¢«ç¨æ¥æµè¯ç©ºå¼ï¼nullï¼ã "
#. Tag: para
-#: query_hql.xml:690
-#, fuzzy, no-c-format
+#, 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ï¼å¯ä»¥å¨å
¶ä»è¡¨è¾¾å¼ä¸è½»æ¾ç使ç¨:"
+"å¨ Hibernate é
ç½®æä»¶ä¸å£°æ HQLâæ¥è¯¢æ¿ä»£ï¼query substitutionsï¼âä¹åï¼å¸å°è¡¨"
+"è¾¾å¼ï¼Booleansï¼å¯ä»¥å¨å
¶ä»è¡¨è¾¾å¼ä¸è½»æ¾ç使ç¨ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:695
-#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false 0</"
-"property>]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:697
#, 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>:"
+"ç³»ç»å°è¯¥ HQL 转æ¢ä¸º SQL è¯å¥æ¶ï¼è¯¥è®¾ç½®è¡¨æå°ç¨å符 <literal>1</literal> å "
+"<literal>0</literal> æ¥å代å
³é®å <literal>true</literal> å <literal>false</"
+"literal>ï¼"
-#. Tag: programlisting
-#: query_hql.xml:702
-#, no-c-format
-msgid "<![CDATA[from Cat cat where cat.alive = true]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:704
-#, fuzzy, no-c-format
+#, 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>æµè¯ä¸ä¸ªéåç大å°ã"
+"ä½ å¯ä»¥ç¨ç¹æ®å±æ§ <literal>size</literal>ï¼ææ¯ç¹æ®å½æ° <literal>size()</"
+"literal> æµè¯ä¸ä¸ªéåç大å°ã "
-#. Tag: programlisting
-#: query_hql.xml:709
-#, no-c-format
-msgid "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:711
-#, no-c-format
-msgid "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:713
-#, fuzzy, no-c-format
+#, 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. "
@@ -1366,364 +901,155 @@
"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>彿°æ¥ å¼ç¨å°"
-"ä¸ä¸ªåºæ¬æ°æ®ç±»åçéå䏿å°ä¸æå¤§çå
ç´ ã"
+"对äºç´¢å¼äºï¼æåºï¼çéåï¼ä½ å¯ä»¥ä½¿ç¨ <literal>minindex</literal> ä¸ "
+"<literal>maxindex</literal> 彿°æ¥å¼ç¨å°æå°ä¸æå¤§çç´¢å¼åºæ°ãåçï¼ä½ å¯ä»¥ä½¿"
+"ç¨ <literal>minelement</literal> ä¸ <literal>maxelement</literal> 彿°æ¥å¼ç¨"
+"å°ä¸ä¸ªåºæ¬æ°æ®ç±»åçéå䏿å°ä¸æå¤§çå
ç´ ãä¾å¦ï¼"
-#. Tag: programlisting
-#: query_hql.xml:721
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:723
-#, no-c-format
-msgid "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:725
-#, no-c-format
-msgid "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:727
-#, fuzzy, 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>"
+"å¨ä¼ éä¸ä¸ªéåçç´¢å¼éæè
æ¯å
ç´ éï¼<literal>elements</literal> ä¸ "
+"<literal>indices</literal> 彿°ï¼æè
ä¼ éä¸ä¸ªåæ¥è¯¢çç»æçæ¶åï¼å¯ä»¥ä½¿ç¨ "
+"SQL 彿° <literal>any, someï¼all, exists, in</literal>ï¼"
-#. Tag: programlisting
-#: query_hql.xml:733
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select mother from Cat as mother, Cat as kit\n"
-"where kit in elements(foo.kittens)]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:735
-#, no-c-format
-msgid ""
-"<![CDATA[select p from NameList list, Person p\n"
-"where p.name = some elements(list.names)]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:737
-#, no-c-format
-msgid "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:739
-#, no-c-format
-msgid "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:741
-#, no-c-format
-msgid "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:743
-#, fuzzy, 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åå¥ä¸ä½¿ç¨ã"
+"注æï¼å¨ 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
-#: query_hql.xml:750
-#, fuzzy, no-c-format
+#, 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åå¥ä¸ï¼ï¼"
+"ä¸ä¸ªè¢«ç´¢å¼è¿çï¼æåºçï¼éåçå
ç´ ï¼arraysï¼listsï¼mapsï¼å¯ä»¥å¨å
¶ä»ç´¢å¼ä¸è¢«å¼"
+"ç¨ï¼åªè½å¨ where åå¥ä¸ï¼ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:755
+#. Tag: para
#, no-c-format
-msgid "<![CDATA[from Order order where order.items[0].id = 1234]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:757
-#, no-c-format
msgid ""
-"<![CDATA[select person from Person person, Calendar calendar\n"
-"where calendar.holidays['national day'] = person.birthDay\n"
-" and person.nationality.calendar = calendar]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:759
-#, no-c-format
-msgid ""
-"<![CDATA[select item from Item item, Order order\n"
-"where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11]]"
-">"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:761
-#, no-c-format
-msgid ""
-"<![CDATA[select item from Item item, Order order\n"
-"where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:763
-#, fuzzy, no-c-format
-msgid ""
"The expression inside <literal>[]</literal> can even be an arithmetic "
"expression:"
-msgstr "å¨<literal>[]</literal>ä¸ç表达å¼çè³å¯ä»¥æ¯ä¸ä¸ªç®æ°è¡¨è¾¾å¼ã"
+msgstr "å¨ <literal>[]</literal> ä¸ç表达å¼çè³å¯ä»¥æ¯ä¸ä¸ªç®æ°è¡¨è¾¾å¼ï¼"
-#. Tag: programlisting
-#: query_hql.xml:767
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select item from Item item, Order order\n"
-"where order.items[ size(order.items) - 1 ] = item]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:769
-#, fuzzy, 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>彿°ï¼"
+"对äºä¸ä¸ªä¸å¯¹å¤çå
³èï¼one-to-many associationï¼ææ¯å¼çéåä¸çå
ç´ ï¼HQL 乿"
+"ä¾å
建ç <literal>index()</literal> 彿°ã"
-#. Tag: programlisting
-#: query_hql.xml:774
-#, no-c-format
-msgid ""
-"<![CDATA[select item, index(item) from Order order\n"
-" join order.items item\n"
-"where index(item) < 5]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:776
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Scalar SQL functions supported by the underlying database can be used:"
-msgstr "妿åºå±æ°æ®åºæ¯ææ éçSQL彿°ï¼å®ä»¬ä¹å¯ä»¥è¢«ä½¿ç¨"
+msgstr "妿åºå±æ°æ®åºæ¯ææ éç SQL 彿°ï¼å®ä»¬ä¹å¯ä»¥è¢«ä½¿ç¨ï¼"
-#. Tag: programlisting
-#: query_hql.xml:780
-#, no-c-format
-msgid "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:782
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Consider how much longer and less readable the following query would be in "
"SQL:"
msgstr ""
-"å¦æä½ è¿ä¸è½å¯¹ææçè¿äºæ·±ä¿¡ä¸çï¼æ³æ³ä¸é¢çæ¥è¯¢ãå¦æä½¿ç¨SQLï¼è¯å¥é¿åº¦ä¼å¢é¿"
-"å¤å°ï¼å¯è¯»æ§ä¼ä¸éå¤å°ï¼"
+"å¦æä½ è¿ä¸è½å¯¹ææçè¿äºæ·±ä¿¡ä¸çï¼æ³æ³ä¸é¢çæ¥è¯¢ãå¦æä½¿ç¨ SQLï¼è¯å¥é¿åº¦ä¼å¢"
+"é¿å¤å°ï¼å¯è¯»æ§ä¼ä¸éå¤å°ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:787
-#, no-c-format
-msgid ""
-"<![CDATA[select cust\n"
-"from Product prod,\n"
-" Store store\n"
-" inner join store.customers cust\n"
-"where prod.name = 'widget'\n"
-" and store.location.name in ( 'Melbourne', 'Sydney' )\n"
-" and prod = all elements(cust.currentOrder.lineItems)]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:789
#, no-c-format
msgid "<emphasis>Hint:</emphasis> something like"
-msgstr "<emphasis>æç¤º:</emphasis> ä¼åå¦ä¸çè¯å¥"
+msgstr "<emphasis>æç¤ºï¼</emphasis> ä¼åå¦ä¸çè¯å¥"
-#. Tag: programlisting
-#: query_hql.xml:793
-#, no-c-format
-msgid ""
-"<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust."
-"current_order\n"
-"FROM customers cust,\n"
-" stores store,\n"
-" locations loc,\n"
-" store_customers sc,\n"
-" product prod\n"
-"WHERE prod.name = 'widget'\n"
-" AND store.loc_id = loc.id\n"
-" AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
-" AND sc.store_id = store.id\n"
-" AND sc.cust_id = cust.id\n"
-" AND prod.id = ALL(\n"
-" SELECT item.prod_id\n"
-" FROM line_items item, orders o\n"
-" WHERE item.order_id = o.id\n"
-" AND cust.current_order = o.id\n"
-" )]]>"
-msgstr ""
-
#. Tag: title
-#: query_hql.xml:798
#, no-c-format
msgid "The order by clause"
-msgstr "order byåå¥"
+msgstr "order by åå¥"
#. Tag: para
-#: query_hql.xml:800
-#, fuzzy, no-c-format
+#, 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ï¼è¿è¡æåºï¼"
+"æ¥è¯¢è¿åçå表ï¼listï¼å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶ï¼componentsï¼ä¸çä»»ä½å±æ§"
+"ï¼propertyï¼è¿è¡æåºï¼ "
-#. Tag: programlisting
-#: query_hql.xml:804
-#, no-c-format
-msgid ""
-"<![CDATA[from DomesticCat cat\n"
-"order by cat.name asc, cat.weight desc, cat.birthdate]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:806
#, 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>å
³é®åææäºæç
§ååºæé"
-"åºè¿è¡æåº."
+"å¯éç <literal>asc</literal> æ <literal>desc</literal> å
³é®åææäºæç
§ååº"
+"æéåºè¿è¡æåºã"
#. Tag: title
-#: query_hql.xml:813
#, no-c-format
msgid "The group by clause"
-msgstr "group byåå¥"
+msgstr "group by åå¥"
#. Tag: para
-#: query_hql.xml:815
-#, fuzzy, no-c-format
+#, 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ï¼è¿è¡åç»ï¼"
+"ä¸ä¸ªè¿åèéå¼ï¼aggregate valuesï¼çæ¥è¯¢å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶"
+"ï¼componentsï¼ä¸çä»»ä½å±æ§ï¼propertyï¼è¿è¡åç»ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:819
-#, no-c-format
-msgid ""
-"<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
-"from Cat cat\n"
-"group by cat.color]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:821
-#, no-c-format
-msgid ""
-"<![CDATA[select foo.id, avg(name), max(name)\n"
-"from Foo foo join foo.names name\n"
-"group by foo.id]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:823
#, no-c-format
msgid "A <literal>having</literal> clause is also allowed."
-msgstr "<literal>having</literal>åå¥å¨è¿éä¹å
许使ç¨."
+msgstr "<literal>having</literal> åå¥å¨è¿éä¹å
许使ç¨ã"
-#. Tag: programlisting
-#: query_hql.xml:827
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
-"from Cat cat\n"
-"group by cat.color\n"
-"having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:829
-#, fuzzy, 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> åå¥ä¸ã"
+"妿åºå±çæ°æ®åºæ¯æçè¯ï¼ä¾å¦ä¸è½å¨ MySQL ä¸ä½¿ç¨ï¼ï¼SQL çä¸è¬å½æ°ä¸èé彿°"
+"ä¹å¯ä»¥åºç°å¨ <literal>having</literal> ä¸ <literal>order by</literal> åå¥"
+"ä¸ã "
-#. Tag: programlisting
-#: query_hql.xml:835
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select cat\n"
-"from Cat cat\n"
-" join cat.kittens kitten\n"
-"group by cat.id, cat.name, cat.other, cat.properties\n"
-"having avg(kitten.weight) > 100\n"
-"order by count(kitten) asc, sum(kitten.weight) desc]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:837
-#, fuzzy, 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)ãä½ å¿
é¡»æç¡®çååºææçéèé屿§ã"
+"注æ <literal>group by</literal> åå¥ä¸ <literal>order by</literal> åå¥ä¸é½"
+"ä¸è½å
å«ç®æ¯è¡¨è¾¾å¼ï¼arithmetic expressionsï¼ãä¹è¦æ³¨æ Hibernate ç®åä¸ä¼æ©"
+"å± group çå®ä½ï¼å æ¤ä½ ä¸è½å <literal>group by cat</literal>ï¼é¤é "
+"<literal>cat</literal> çææå±æ§é½ä¸æ¯èéçï¼non-aggregatedï¼ãä½ å¿
é¡»æç¡®ç"
+"ååºææçéèé屿§ã "
#. Tag: title
-#: query_hql.xml:849
#, no-c-format
msgid "Subqueries"
msgstr "åæ¥è¯¢"
#. Tag: para
-#: query_hql.xml:851
#, no-c-format
msgid ""
"For databases that support subselects, Hibernate supports subqueries within "
@@ -1731,83 +1057,32 @@
"aggregate function call). Even correlated subqueries (subqueries that refer "
"to an alias in the outer query) are allowed."
msgstr ""
-"å¯¹äºæ¯æåæ¥è¯¢çæ°æ®åºï¼Hibernateæ¯æå¨æ¥è¯¢ä¸ä½¿ç¨åæ¥è¯¢ãä¸ä¸ªåæ¥è¯¢å¿
é¡»è¢«åæ¬"
-"å·å
å´èµ·æ¥ï¼ç»å¸¸æ¯SQLèé彿°ç忬å·ï¼ã çè³ç¸äºå
³èçåæ¥è¯¢ï¼å¼ç¨å°å¤é¨æ¥"
-"询ä¸çå«åçåæ¥è¯¢ï¼ä¹æ¯å
许çã"
+"å¯¹äºæ¯æåæ¥è¯¢çæ°æ®åºï¼Hibernate æ¯æå¨æ¥è¯¢ä¸ä½¿ç¨åæ¥è¯¢ãä¸ä¸ªåæ¥è¯¢å¿
须被å"
+"æ¬å·å
å´èµ·æ¥ï¼ç»å¸¸æ¯ SQL èé彿°ç忬å·ï¼ãçè³ç¸äºå
³èçåæ¥è¯¢ï¼å¼ç¨å°å¤é¨"
+"æ¥è¯¢ä¸çå«åçåæ¥è¯¢ï¼ä¹æ¯å
许çã"
-#. Tag: programlisting
-#: query_hql.xml:857
-#, no-c-format
-msgid ""
-"<![CDATA[from Cat as fatcat\n"
-"where fatcat.weight > (\n"
-" select avg(cat.weight) from DomesticCat cat\n"
-")]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:859
-#, no-c-format
-msgid ""
-"<![CDATA[from DomesticCat as cat\n"
-"where cat.name = some (\n"
-" select name.nickName from Name as name\n"
-")]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:861
-#, no-c-format
-msgid ""
-"<![CDATA[from Cat as cat\n"
-"where not exists (\n"
-" from Cat as mate where mate.mate = cat\n"
-")]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:863
-#, no-c-format
-msgid ""
-"<![CDATA[from DomesticCat as cat\n"
-"where cat.name not in (\n"
-" select name.nickName from Name as name\n"
-")]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:865
-#, no-c-format
-msgid ""
-"<![CDATA[select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
-"from Cat as cat]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:867
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Note that HQL subqueries can occur only in the select or where clauses."
-msgstr "注æï¼HQLèªæ¥è¯¢åªå¯ä»¥å¨selectæè
whereåå¥ä¸åºç°ã"
+msgstr "注æï¼HQL èªæ¥è¯¢åªå¯ä»¥å¨ select æè
where åå¥ä¸åºç°ã "
#. Tag: para
-#: query_hql.xml:871
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"Note that subqueries can also utilize <literal>row value constructor</"
-"literal> syntax. See <xref linkend=\"queryhql-tuple\"/> for more information."
+"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
+"information."
msgstr ""
-"Note that subqueries can also utilize <literal>row value constructor</"
-"literal> syntax. See <xref linkend=\"queryhql-tuple\"/> for more details."
+"注æåæ¥è¯¢ä¹å¯ä»¥å©ç¨ <literal>row value constructor</literal> è¯æ³ã请åè "
+"<xref linkend=\"queryhql-tuple\" /> æ¥è·å¾è¯¦æ
ã "
#. Tag: title
-#: query_hql.xml:879
#, no-c-format
msgid "HQL examples"
-msgstr "HQL示ä¾"
+msgstr "HQL ç¤ºä¾ "
#. Tag: para
-#: query_hql.xml:881
-#, fuzzy, no-c-format
+#, 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 "
@@ -1815,13 +1090,12 @@
"projects. Please note that most queries you will write will be much simpler "
"than the following examples."
msgstr ""
-"Hibernateæ¥è¯¢å¯ä»¥é常ç强大ä¸å¤æãå®é
ä¸ï¼Hibernateçä¸ä¸ªä¸»è¦åç¹å°±æ¯æ¥è¯¢è¯"
-"å¥çå¨åãè¿éæä¸äºä¾åï¼å®ä»¬ä¸æå¨æè¿ç ä¸ä¸ªé¡¹ç®ä¸ä½¿ç¨çæ¥è¯¢é常ç¸ä¼¼ã注æ"
-"ä½ è½ç¨å°ç大夿°æ¥è¯¢æ¯è¿äºè¦ç®åçå¤ï¼"
+"Hibernate æ¥è¯¢å¯ä»¥é常ç强大ä¸å¤æãå®é
ä¸ï¼Hibernate çä¸ä¸ªä¸»è¦åç¹å°±æ¯æ¥è¯¢"
+"è¯å¥çå¨åãè¿éæä¸äºä¾åï¼å®ä»¬ä¸æå¨æè¿çä¸ä¸ªé¡¹ç®ä¸ä½¿ç¨çæ¥è¯¢é常ç¸ä¼¼ã注"
+"æä½ è½ç¨å°ç大夿°æ¥è¯¢æ¯è¿äºè¦ç®åçå¤ã"
#. Tag: para
-#: query_hql.xml:887
-#, fuzzy, no-c-format
+#, 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 "
@@ -1832,37 +1106,12 @@
"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> åºè¡¨ã"
+"è¿å订åç idï¼æ¡ç®çæ°é忻价å¼ï¼è¿å弿ç
§æ»ä»·å¼çç»æè¿è¡æåºã为äºå³å®ä»·"
+"æ ¼ï¼æ¥è¯¢ä½¿ç¨äºå½åç®å½ãä½ä¸ºè½¬æ¢ç»æç SQL æ¥è¯¢ï¼ä½¿ç¨äº<literal>ORDER</"
+"literal>ï¼<literal>ORDER_LINE</literal>ï¼<literal>PRODUCT</literal>ï¼"
+"<literal>CATALOG</literal> å <literal>PRICE</literal> åºè¡¨ã"
-#. Tag: programlisting
-#: query_hql.xml:896
-#, no-c-format
-msgid ""
-"<![CDATA[select order.id, sum(price.amount), count(item)\n"
-"from Order as order\n"
-" join order.lineItems as item\n"
-" join item.product as product,\n"
-" Catalog as catalog\n"
-" join catalog.prices as price\n"
-"where order.paid = false\n"
-" and order.customer = :customer\n"
-" and price.product = product\n"
-" and catalog.effectiveDate < sysdate\n"
-" and catalog.effectiveDate >= all (\n"
-" select cat.effectiveDate\n"
-" from Catalog as cat\n"
-" where cat.effectiveDate < sysdate\n"
-" )\n"
-"group by order\n"
-"having sum(price.amount) > :minAmount\n"
-"order by sum(price.amount) desc]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:898
#, no-c-format
msgid ""
"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
@@ -1871,27 +1120,7 @@
"è¿ç®ç´æ¯ä¸ä¸ªæªç©ï¼å®é
ä¸ï¼å¨ç°å®çæ´»ä¸ï¼æå¹¶ä¸çè¡·äºåæ¥è¯¢ï¼æä»¥æçæ¥è¯¢è¯å¥"
"çèµ·æ¥æ´åè¿ä¸ªï¼"
-#. Tag: programlisting
-#: query_hql.xml:903
-#, no-c-format
-msgid ""
-"<![CDATA[select order.id, sum(price.amount), count(item)\n"
-"from Order as order\n"
-" join order.lineItems as item\n"
-" join item.product as product,\n"
-" Catalog as catalog\n"
-" join catalog.prices as price\n"
-"where order.paid = false\n"
-" and order.customer = :customer\n"
-" and price.product = product\n"
-" and catalog = :currentCatalog\n"
-"group by order\n"
-"having sum(price.amount) > :minAmount\n"
-"order by sum(price.amount) desc]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:905
#, no-c-format
msgid ""
"The next query counts the number of payments in each status, excluding all "
@@ -1901,59 +1130,22 @@
"<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>ã"
+"ä¸é¢ä¸ä¸ªæ¥è¯¢è®¡ç®æ¯ä¸ç§ç¶æä¸çæ¯ä»çæ°ç®ï¼é¤å»ææå¤äº "
+"<literal>AWAITING_APPROVAL</literal> ç¶æçæ¯ä»ï¼å 为å¨è¯¥ç¶æä¸ å½åçç¨æ·ä½"
+"åºäºç¶æçææ°æ¹åã该æ¥è¯¢è¢«è½¬æ¢æå«æä¸¤ä¸ªå
è¿æ¥ä»¥åä¸ä¸ªç¸å
³èçåéæ©ç SQL "
+"æ¥è¯¢ï¼è¯¥æ¥è¯¢ä½¿ç¨äºè¡¨ <literal>PAYMENT</literal>ï¼<literal>PAYMENT_STATUS</"
+"literal> 以å <literal>PAYMENT_STATUS_CHANGE</literal>ã"
-#. Tag: programlisting
-#: query_hql.xml:913
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select count(payment), status.name\n"
-"from Payment as payment\n"
-" join payment.currentStatus as status\n"
-" join payment.statusChanges as statusChange\n"
-"where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
-" or (\n"
-" statusChange.timeStamp = (\n"
-" select max(change.timeStamp)\n"
-" from PaymentStatusChange change\n"
-" where change.payment = payment\n"
-" )\n"
-" and statusChange.user <> :currentUser\n"
-" )\n"
-"group by status.name, status.sortOrder\n"
-"order by status.sortOrder]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:915
-#, fuzzy, 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ï¼, ä¹¦åæ¥è¯¢è¯å¥å°æ´å ç®å."
+"å¦æææ <literal>statusChanges</literal> å®ä¾éæ å°ä¸ºä¸ä¸ªå表ï¼listï¼è䏿¯"
+"ä¸ä¸ªéåï¼setï¼ï¼ä¹¦åæ¥è¯¢è¯å¥å°æ´å ç®åã "
-#. Tag: programlisting
-#: query_hql.xml:920
-#, no-c-format
-msgid ""
-"<![CDATA[select count(payment), status.name\n"
-"from Payment as payment\n"
-" join payment.currentStatus as status\n"
-"where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
-" or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :"
-"currentUser\n"
-"group by status.name, status.sortOrder\n"
-"order by status.sortOrder]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:922
#, no-c-format
msgid ""
"The next query uses the MS SQL Server <literal>isNull()</literal> function "
@@ -1964,305 +1156,142 @@
"<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æ¥"
-"询ã"
+"ä¸é¢ä¸ä¸ªæ¥è¯¢ä½¿ç¨äº 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: programlisting
-#: query_hql.xml:931
-#, no-c-format
-msgid ""
-"<![CDATA[select account, payment\n"
-"from Account as account\n"
-" left outer join account.payments as payment\n"
-"where :currentUser in elements(account.holder.users)\n"
-" and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
-"PaymentStatus.UNPAID)\n"
-"order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:933
#, no-c-format
msgid ""
"For some databases, we would need to do away with the (correlated) subselect."
msgstr "对äºä¸äºæ°æ®åºï¼æä»¬éè¦å¼ç¨ï¼ç¸å
³çï¼åéæ©ã"
-#. Tag: programlisting
-#: query_hql.xml:937
-#, no-c-format
-msgid ""
-"<![CDATA[select account, payment\n"
-"from Account as account\n"
-" join account.holder.users as user\n"
-" left outer join account.payments as payment\n"
-"where :currentUser = user\n"
-" and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
-"PaymentStatus.UNPAID)\n"
-"order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
-msgstr ""
-
#. Tag: title
-#: query_hql.xml:942
#, no-c-format
msgid "Bulk update and delete"
-msgstr "æ¹éçUPDATEåDELETE"
+msgstr "æ¹éç UPDATE å DELETE"
#. Tag: para
-#: query_hql.xml:944
-#, fuzzy, no-c-format
+#, 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."
+"\"batch-direct\" /> for more information."
msgstr ""
-"HQLç°å¨æ¯æ <literal>update</literal>, <literal>delete</literal> å "
-"<literal>insert ... select ...</literal>è¯å¥. æ¥é
<xref linkend=\"batch-"
-"direct\"/> 以è·å¾æ´å¤ä¿¡æ¯ã"
+"HQL ç°å¨æ¯æ <literal>update</literal>ï¼<literal>delete</literal> å "
+"<literal>insert ... select ...</literal>è¯å¥ãæ¥é
<xref linkend=\"batch-"
+"direct\" /> 以è·å¾æ´å¤ä¿¡æ¯ã"
#. Tag: title
-#: query_hql.xml:952
#, no-c-format
msgid "Tips & Tricks"
msgstr "å°æå·§ & å°çªé¨"
#. Tag: para
-#: query_hql.xml:954
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can count the number of query results without returning them:"
-msgstr "ä½ å¯ä»¥ç»è®¡æ¥è¯¢ç»æçæ°ç®èä¸å¿
å®é
çè¿åä»ä»¬ï¼"
+msgstr "ä½ å¯ä»¥ç»è®¡æ¥è¯¢ç»æçæ°ç®èä¸å¿
å®é
çè¿åä»ä»¬ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:958
-#, no-c-format
-msgid ""
-"<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
-"iterate().next() ).intValue()]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:960
#, no-c-format
msgid "To order a result by the size of a collection, use the following query:"
msgstr "è¥æ³æ ¹æ®ä¸ä¸ªéåç大尿¥è¿è¡æåºï¼å¯ä»¥ä½¿ç¨å¦ä¸çè¯å¥ï¼"
-#. Tag: programlisting
-#: query_hql.xml:964
-#, no-c-format
-msgid ""
-"<![CDATA[select usr.id, usr.name\n"
-"from User as usr\n"
-" left join usr.messages as msg\n"
-"group by usr.id, usr.name\n"
-"order by count(msg)]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:966
#, 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ï¼æå®ä¸ä¸ªæ¡ä»¶:"
+"å¦æä½ çæ°æ®åºæ¯æåéæ©ï¼ä½ å¯ä»¥å¨ä½ çæ¥è¯¢ç where åå¥ä¸ä¸ºéæ©ç大å°"
+"ï¼selection sizeï¼æå®ä¸ä¸ªæ¡ä»¶ï¼"
-#. Tag: programlisting
-#: query_hql.xml:971
-#, no-c-format
-msgid "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:973
-#, fuzzy, no-c-format
+#, no-c-format
msgid "If your database does not support subselects, use the following query:"
-msgstr "å¦æä½ çæ°æ®åºä¸æ¯æåéæ©è¯å¥ï¼ä½¿ç¨ä¸é¢çæ¥è¯¢ï¼"
+msgstr "å¦æä½ çæ°æ®åºä¸æ¯æåéæ©è¯å¥ï¼ä½¿ç¨ä¸é¢çæ¥è¯¢ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:977
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[select usr.id, usr.name\n"
-"from User usr.name\n"
-" join usr.messages msg\n"
-"group by usr.id, usr.name\n"
-"having count(msg) >= 1]]>"
-msgstr ""
-
-#. Tag: para
-#: query_hql.xml:980
-#, fuzzy, 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> ç±»çå®ä¾, æä»¥è¿ç§æ
åµä¸ä½¿ç¨ä¸é¢çæ ¼å¼å°æ¯æå¸®å©ç:"
+"å 为å
è¿æ¥ï¼inner joinï¼çåå ï¼è¿ä¸ªè§£å³æ¹æ¡ä¸è½è¿å嫿é¶ä¸ªä¿¡æ¯ç "
+"<literal>User</literal> ç±»çå®ä¾ï¼æä»¥è¿ç§æ
åµä¸ä½¿ç¨ä¸é¢çæ ¼å¼å°æ¯æå¸®å©çï¼ "
-#. Tag: programlisting
-#: query_hql.xml:985
-#, no-c-format
-msgid ""
-"<![CDATA[select usr.id, usr.name\n"
-"from User as usr\n"
-" left join usr.messages as msg\n"
-"group by usr.id, usr.name\n"
-"having count(msg) = 0]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:987
#, no-c-format
msgid "Properties of a JavaBean can be bound to named query parameters:"
-msgstr "JavaBeanç屿§å¯ä»¥è¢«ç»å®å°ä¸ä¸ªå½åæ¥è¯¢ï¼named queryï¼çåæ°ä¸ï¼"
+msgstr "JavaBean ç屿§å¯ä»¥è¢«ç»å®å°ä¸ä¸ªå½åæ¥è¯¢ï¼named queryï¼çåæ°ä¸ï¼"
-#. Tag: programlisting
-#: query_hql.xml:991
-#, no-c-format
-msgid ""
-"<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name "
-"and foo.size=:size\");\n"
-"q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
-"List foos = q.list();]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:993
#, no-c-format
msgid ""
"Collections are pageable by using the <literal>Query</literal> interface "
"with a filter:"
msgstr ""
-"éè¿å°æ¥å£<literal>Query</literal>ä¸ä¸ä¸ªè¿æ»¤å¨ï¼filterï¼ä¸èµ·ä½¿ç¨ï¼éå"
+"éè¿å°æ¥å£ <literal>Query</literal> ä¸ä¸ä¸ªè¿æ»¤å¨ï¼filterï¼ä¸èµ·ä½¿ç¨ï¼éå"
"ï¼Collectionsï¼æ¯å¯ä»¥å页çï¼"
-#. Tag: programlisting
-#: query_hql.xml:997
-#, no-c-format
-msgid ""
-"<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial "
-"filter\n"
-"q.setMaxResults(PAGE_SIZE);\n"
-"q.setFirstResult(PAGE_SIZE * pageNumber);\n"
-"List page = q.list();]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:999
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Collection elements can be ordered or grouped using a query filter:"
msgstr ""
-"éè¿ä½¿ç¨æ¥è¯¢è¿æ»¤å¨ï¼query filterï¼å¯ä»¥å°éåï¼Collectionï¼çåç´ åç»ææåº:"
+"éè¿ä½¿ç¨æ¥è¯¢è¿æ»¤å¨ï¼query filterï¼å¯ä»¥å°éåï¼Collectionï¼çå
ç´ åç»ææåºï¼ "
-#. Tag: programlisting
-#: query_hql.xml:1003
-#, no-c-format
-msgid ""
-"<![CDATA[Collection orderedCollection = s.filter( collection, \"order by "
-"this.amount\" );\n"
-"Collection counts = s.filter( collection, \"select this.type, count(this) "
-"group by this.type\" );]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:1005
#, no-c-format
msgid "You can find the size of a collection without initializing it:"
msgstr "ä¸ç¨éè¿åå§åï¼ä½ å°±å¯ä»¥ç¥éä¸ä¸ªéåï¼Collectionï¼ç大å°ï¼"
-#. Tag: programlisting
-#: query_hql.xml:1009
-#, no-c-format
-msgid ""
-"<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
-"iterate().next() ).intValue();]]>"
-msgstr ""
-
#. Tag: title
-#: query_hql.xml:1014
#, no-c-format
msgid "Components"
-msgstr "translator-credits"
+msgstr "ç»ä»¶"
#. Tag: para
-#: query_hql.xml:1016
#, 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> åå¥éï¼ "
-#. Tag: programlisting
-#: query_hql.xml:1021 query_hql.xml:1067
-#, no-c-format
-msgid "<![CDATA[select p.name from Person p]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:1022
-#, no-c-format
-msgid "<![CDATA[select p.name.first from Person p]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:1024
#, 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> åå¥éï¼"
-#. Tag: programlisting
-#: query_hql.xml:1029
-#, no-c-format
-msgid "<![CDATA[from Person p where p.name = :name]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:1030
-#, no-c-format
-msgid "<![CDATA[from Person p where p.name.first = :firstName]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:1032
#, no-c-format
msgid "Components can also be used in the <literal>order by</literal> clause:"
-msgstr ""
+msgstr "ç»ä»¶ä¹å¯ä»¥ç¨å¨ <literal>order by</literal> åå¥éï¼"
-#. Tag: programlisting
-#: query_hql.xml:1036
-#, no-c-format
-msgid "<![CDATA[from Person p order by p.name]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:1037
-#, no-c-format
-msgid "<![CDATA[from Person p order by p.name.first]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:1039
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
-"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
-"value constructors</link>."
+"Another common use of components is in row value constructors (<xref linkend="
+"\"queryhql-tuple\" />)."
msgstr ""
+"ç»ä»¶çå¦å¤ä¸ä¸ªå¸¸è§ç¨æ³æ¯å¨ <xref linkend=\"queryhql-tuple\" /> è¡å¼ï¼row "
+"valueï¼æé 彿°éã"
#. Tag: title
-#: query_hql.xml:1045
#, no-c-format
msgid "Row value constructor syntax"
-msgstr ""
+msgstr "Row value æé 彿°è¯æ³"
#. Tag: para
-#: query_hql.xml:1047
#, no-c-format
msgid ""
"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
@@ -2271,71 +1300,974 @@
"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: programlisting
-#: query_hql.xml:1054
-#, no-c-format
-msgid ""
-"<![CDATA[from Person p where p.name.first='John' and p.name."
-"last='Jingleheimer-Schmidt']]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:1056
#, 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> è¯æ³ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:1061
-#, no-c-format
-msgid "<![CDATA[from Person p where p.name=('John', 'Jingleheimer-Schmidt')]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:1063
#, no-c-format
msgid ""
"It can also be useful to specify this in the <literal>select</literal> "
"clause:"
-msgstr ""
+msgstr "å¨ <literal>select</literal> åå¥éæå®è¿ä¸ªä¹æ¯å¾æç¨çï¼"
#. Tag: para
-#: query_hql.xml:1069
#, 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> è¯æ³ä¹å¾æç¨å¤ï¼ "
-#. Tag: programlisting
-#: query_hql.xml:1074
-#, no-c-format
-msgid ""
-"<![CDATA[from Cat as cat\n"
-"where not ( cat.name, cat.color ) in (\n"
-" select cat.name, cat.color from DomesticCat cat\n"
-")]]>"
-msgstr ""
-
#. Tag: para
-#: query_hql.xml:1076
#, 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ï¼ç顺åºã "
+#, fuzzy
+#~ msgid "<![CDATA[from eg.Cat]]>"
+#~ msgstr "from eg.Cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat]]>"
+#~ msgstr "from Cat as cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat]]>"
+#~ msgstr "from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula, Parameter]]>"
+#~ msgstr "from Formula, Parameter"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula as form, Parameter as param]]>"
+#~ msgstr "from Formula as form, Parameter as param"
+
+#, fuzzy
#~ msgid ""
-#~ "Most of the time, you will need to assign an <emphasis>alias</emphasis>, "
-#~ "since you will want to refer to the <literal>Cat</literal> in other parts "
-#~ "of the query."
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten]]>"
#~ msgstr ""
-#~ "大夿°æ
åµä¸, ä½ éè¦æå®ä¸ä¸ª<emphasis>å«å</emphasis>, åå æ¯ä½ å¯è½éè¦ å¨"
-#~ "æ¥è¯¢è¯å¥çå
¶å®é¨åå¼ç¨å°<literal>Cat</literal>"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten"
-#~ msgid "or as an actual typesafe Java object,"
-#~ msgstr "ä¹å¯è½ç´æ¥è¿åä¸ä¸ªå®é
çç±»åå®å
¨çJava对象,"
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
+#~ msgstr "from Cat as cat left join cat.mate.kittens as kittens"
+
+#, 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>ï¼å·¦å¤è¿æ¥ï¼"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " join cat.mate as mate\n"
+#~ " left join cat.kittens as kitten]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " join cat.mate as mate\n"
+#~ " left join cat.kittens as kitten"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Document fetch all properties order by name]]>"
+#~ msgstr "from Document fetch all properties order by name"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Document doc fetch all properties where lower(doc.name) "
+#~ "like '%cats%']]>"
+#~ msgstr ""
+#~ "from Document doc fetch all properties where lower(doc.name) like '%"
+#~ "cats%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.mate.name like '%s%']]>"
+#~ msgstr "from Cat as cat where cat.mate.name like '%s%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate]]>"
+#~ msgstr ""
+#~ "select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cat.mate from Cat cat]]>"
+#~ msgstr "select cat.mate from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%']]>"
+#~ msgstr ""
+#~ "select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cust.name.firstName from Customer as cust]]>"
+#~ msgstr "select cust.name.firstName from Customer as cust"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, "
+#~ "count(*) as n )\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n )\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count"
+#~ "(cat)\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
+#~ "from Cat cat"
+
+#~ msgid "count(*)"
+#~ msgstr "count(*)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight]]>"
+#~ msgstr ""
+#~ "select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select firstName||' '||initial||' '||upper(lastName) from "
+#~ "Person]]>"
+#~ msgstr "select firstName||' '||initial||' '||upper(lastName) from Person"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat]]>"
+#~ msgstr ""
+#~ "select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from java.lang.Object o]]>"
+#~ msgstr "from java.lang.Object o"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Named n, Named m where n.name = m.name]]>"
+#~ msgstr "from Named n, Named m where n.name = m.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat where name='Fritz']]>"
+#~ msgstr "from Cat where name='Fritz'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
+#~ msgstr "from Cat as cat where cat.name='Fritz'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date]]>"
+#~ msgstr ""
+#~ "select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
+#~ msgstr "from Cat cat where cat.mate.name is not null"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null]]>"
+#~ msgstr ""
+#~ "from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
+#~ msgstr "from Cat cat, Cat rival where cat.mate = rival.mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate]]>"
+#~ msgstr ""
+#~ "select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69]]>"
+#~ msgstr ""
+#~ "from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
+#~ msgstr "from Cat cat where cat.class = DomesticCat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id]]>"
+#~ msgstr ""
+#~ "from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name not between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', "
+#~ "'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.alive = true]]>"
+#~ msgstr "from Cat cat where cat.alive = true"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
+#~ msgstr "from Cat cat where cat.kittens.size > 0"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
+#~ msgstr "from Cat cat where size(cat.kittens) > 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]"
+#~ ">"
+#~ msgstr "from Calendar cal where maxelement(cal.holidays) > current_date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
+#~ msgstr "from Order order where maxindex(order.items) > 100"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
+#~ msgstr "from Order order where minelement(order.items) > 10000"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)]]>"
+#~ msgstr ""
+#~ "select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)]]>"
+#~ msgstr ""
+#~ "select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
+#~ msgstr "from Cat cat where exists elements(cat.kittens)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
+#~ msgstr "from Player p where 3 > all elements(p.scores)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
+#~ msgstr "from Show show where 'fizard' in indices(show.acts)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where order.items[0].id = 1234]]>"
+#~ msgstr "from Order order where order.items[0].id = 1234"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar]]>"
+#~ msgstr ""
+#~ "select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5]]>"
+#~ msgstr ""
+#~ "select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
+#~ msgstr "from DomesticCat cat where upper(cat.name) like 'FRI%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)]]>"
+#~ msgstr ""
+#~ "select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust."
+#~ "current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )]]>"
+#~ msgstr ""
+#~ "SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate]]>"
+#~ msgstr ""
+#~ "from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id]]>"
+#~ msgstr ""
+#~ "select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc]]>"
+#~ msgstr ""
+#~ "select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat]]>"
+#~ msgstr ""
+#~ "select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :"
+#~ "currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <"
+#~ "> :currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue()]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
+#~ msgstr "from User usr where size(usr.messages) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:"
+#~ "name and foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name and "
+#~ "foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial "
+#~ "filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createFilter( collection, \"\" ); // the trivial filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection orderedCollection = s.filter( collection, \"order by "
+#~ "this.amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );]]>"
+#~ msgstr ""
+#~ "Collection orderedCollection = s.filter( collection, \"order by this."
+#~ "amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue();]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue();"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name from Person p]]>"
+#~ msgstr "select p.name from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name.first from Person p]]>"
+#~ msgstr "select p.name.first from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name = :name]]>"
+#~ msgstr "from from Person p where p.name = :name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name.first = :firstName]]>"
+#~ msgstr "from from Person p where p.name.first = :firstName"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name]]>"
+#~ msgstr "from from Person p order by p.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name.first]]>"
+#~ msgstr "from from Person p order by p.name.first"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name.first='John' and p.name."
+#~ "last='Jingleheimer-Schmidt']]>"
+#~ msgstr ""
+#~ "from Person p where p.name.first='John' and p.name.last='Jingleheimer-"
+#~ "Schmidt'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name=('John', 'Jingleheimer-Schmidt')]]>"
+#~ msgstr "from Person p where p.name=('John', 'Jingleheimer-Schmidt')"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,1426 +1,1194 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"PO-Revision-Date: 2010-01-11 10:42+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: query_sql.xml:29
#, no-c-format
msgid "Native SQL"
-msgstr "Native SQLæ¥è¯¢"
+msgstr "Native SQL æ¥è¯¢"
#. Tag: para
-#: query_sql.xml:31
-#, fuzzy, 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åºç¨çéè·¯ä¸çéç¢ã"
+#, 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 åºç¨çéè·¯ä¸çéç¢ã "
#. Tag: para
-#: query_sql.xml:37
-#, fuzzy, 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æä½ï¼å
"
-"æ¬åå¨è¿ç¨ï¼"
+#, 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 æä½ï¼å
æ¬åå¨è¿ç¨ï¼ "
#. Tag: title
-#: query_sql.xml:41
#, no-c-format
msgid "Using a <literal>SQLQuery</literal>"
-msgstr "使ç¨<literal>SQLQuery</literal>"
+msgstr "ä½¿ç¨ <literal>SQLQuery</literal>"
#. Tag: para
-#: query_sql.xml:43
-#, fuzzy, 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è¿è¡æ¥è¯¢ã"
+#, 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 è¿è¡æ¥è¯¢ã "
#. Tag: title
-#: query_sql.xml:49
#, no-c-format
msgid "Scalar queries"
msgstr "æ éæ¥è¯¢ï¼Scalar queriesï¼"
#. Tag: para
-#: query_sql.xml:51
#, no-c-format
msgid "The most basic SQL query is to get a list of scalars (values)."
-msgstr "æåºæ¬çSQLæ¥è¯¢å°±æ¯è·å¾ä¸ä¸ªæ éï¼æ°å¼ï¼çå表ã"
+msgstr "æåºæ¬ç SQL æ¥è¯¢å°±æ¯è·å¾ä¸ä¸ªæ éï¼æ°å¼ï¼çå表ã"
-#. Tag: programlisting
-#: query_sql.xml:54
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
-"sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
-"]]>"
-msgstr ""
+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
-#: query_sql.xml:56
-#, fuzzy, 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æ¥å¤å®è¿åçæ éå¼çå®é
顺åºåç±»åã"
-
-#. Tag: para
-#: query_sql.xml:61
-#, fuzzy, 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>ã"
-
-#. Tag: programlisting
-#: query_sql.xml:65
#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
-" .addScalar(\"ID\", Hibernate.LONG)\n"
-" .addScalar(\"NAME\", Hibernate.STRING)\n"
-" .addScalar(\"BIRTHDATE\", Hibernate.DATE)\n"
-"]]>"
-msgstr ""
+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
-#: query_sql.xml:67 query_sql.xml:113 query_sql.xml:198 query_sql.xml:349
-#, fuzzy, no-c-format
+#, no-c-format
msgid "This query specified:"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"è¿ä¸ªæ¥è¯¢æå®äº:\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"è¿ä¸ªæ¥è¯¢æå®ï¼\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"è¿ä¸ªæ¥è¯¢ææï¼\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"è¿ä¸ªæ¥è¯¢æå®ï¼"
+msgstr "è¿ä¸ªæ¥è¯¢æå®ï¼"
#. Tag: para
-#: query_sql.xml:71 query_sql.xml:117 query_sql.xml:353
#, no-c-format
msgid "the SQL query string"
-msgstr "SQLæ¥è¯¢å符串"
+msgstr "SQL æ¥è¯¢å符串"
#. Tag: para
-#: query_sql.xml:75
#, no-c-format
msgid "the columns and types to return"
msgstr "è¦è¿åçåæ®µåç±»å"
#. Tag: para
-#: query_sql.xml:79
-#, fuzzy, 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>æ¥æ¥è¯¢çï¼å¯è½è·å¾è¶
è¿ååºçè¿"
-"ä¸ä¸ªå段ï¼ä¹ä»
ä»
ä¼è¿åè¿ä¸ä¸ªå段ã"
+#, 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> æ¥æ¥è¯¢çï¼å¯è½è·å¾è¶
è¿ååºçè¿ä¸ä¸ªå段ï¼ä¹ä»
ä»
ä¼è¿åè¿ä¸ä¸ªå段ã "
#. Tag: para
-#: query_sql.xml:87
#, 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: programlisting
-#: query_sql.xml:90
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
-" .addScalar(\"ID\", Hibernate.LONG)\n"
-" .addScalar(\"NAME\")\n"
-" .addScalar(\"BIRTHDATE\")\n"
-"]]>"
-msgstr ""
+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
-#: query_sql.xml:92
-#, fuzzy, 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çç±»åæ¯æç¡®æåºçã"
+#, 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> è°ç¨èªè¡å®ä¹ã "
-#. Tag: para
-#: query_sql.xml:96
-#, fuzzy, 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>è°ç¨èªè¡å®ä¹ã"
-
#. Tag: title
-#: query_sql.xml:104
#, no-c-format
msgid "Entity queries"
-msgstr "å®ä½æ¥è¯¢(Entity queries)"
+msgstr "å®ä½æ¥è¯¢ï¼Entity queriesï¼"
#. Tag: para
-#: query_sql.xml:106
#, 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: programlisting
-#: query_sql.xml:111
-#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat.class);\n"
-"sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity(Cat."
-"class);\n"
-"]]>"
-msgstr ""
-
#. Tag: para
-#: query_sql.xml:121
#, no-c-format
msgid "the entity returned by the query"
msgstr "è¦è¿åçå®ä½"
#. Tag: para
-#: query_sql.xml:125
#, 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
-#: query_sql.xml:129
#, 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: programlisting
-#: query_sql.xml:137
-#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS"
-"\").addEntity(Cat.class);\n"
-"]]>"
-msgstr ""
-
#. Tag: para
-#: query_sql.xml:139
#, no-c-format
msgid "This will allow cat.getDog() to function properly."
-msgstr "è¿æ ·cat.getDog()å°±è½æ£å¸¸è¿ä½ã"
+msgstr "è¿æ · cat.getDog() å°±è½æ£å¸¸è¿ä½ã"
#. Tag: title
-#: query_sql.xml:143
#, no-c-format
msgid "Handling associations and collections"
-msgstr "å¤çå
³èåéåç±»(Handling associations and collections)"
+msgstr "å¤çå
³èåéåç±»ï¼Handling associations and collectionsï¼"
#. Tag: para
-#: query_sql.xml:145
#, 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: programlisting
-#: query_sql.xml:150
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, "
-"D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID\")\n"
-" .addEntity(\"cat\", Cat.class)\n"
-" .addJoin(\"cat.dog\");\n"
-"]]>"
-msgstr ""
+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
-#: query_sql.xml:152
-#, fuzzy, 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>çä¸å¯¹å¤å
³èã"
-
-#. Tag: programlisting
-#: query_sql.xml:160
#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, "
-"CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID\")\n"
-" .addEntity(\"cat\", Cat.class)\n"
-" .addJoin(\"cat.dogs\");\n"
-"]]>"
-msgstr ""
+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: para
-#: query_sql.xml:162
-#, fuzzy, 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æ¥è¯¢æè½åå°çæå¤§å¯è½äºãä¸é¢çé®é¢å³å°åºç°ï¼è¿åå¤ä¸ªåæ ·ç±»åçå®ä½"
-"æä¹åï¼æè
é»è®¤çå«å/åæ®µä¸å¤åæä¹åï¼"
-
#. Tag: title
-#: query_sql.xml:170
#, no-c-format
msgid "Returning multiple entities"
-msgstr "è¿åå¤ä¸ªå®ä½(Returning multiple entities)"
+msgstr "è¿åå¤ä¸ªå®ä½ï¼Returning multiple entitiesï¼"
#. Tag: para
-#: query_sql.xml:172
-#, fuzzy, 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æ¥"
-"è¯¢è¿æ¥äºå¤ä¸ªè¡¨ï¼åä¸ä¸ªå段åå¯è½å¨å¤ä¸ªè¡¨ä¸åºç°å¤æ¬¡ï¼è¿å°±ä¼é æé®é¢ã"
+#, 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 æ¥è¯¢è¿æ¥äºå¤ä¸ªè¡¨ï¼åä¸ä¸ªå段åå¯è½å¨å¤ä¸ªè¡¨ä¸åºç°å¤æ¬¡ï¼è¿å°±ä¼é æé®é¢ã "
#. Tag: para
-#: query_sql.xml:177
#, 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: programlisting
-#: query_sql.xml:180
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE c."
-"MOTHER_ID = c.ID\")\n"
-" .addEntity(\"cat\", Cat.class)\n"
-" .addEntity(\"mother\", Cat.class)\n"
-"]]>"
-msgstr ""
+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
-#: query_sql.xml:184
-#, fuzzy, 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\"ï¼ä¸å¹é
ï¼è¿å°±"
-"ä¼é æå¤±è´¥ã"
-
-#. Tag: para
-#: query_sql.xml:193
#, no-c-format
msgid "The following form is not vulnerable to column name duplication:"
msgstr "ä¸é¢çå½¢å¼å¯ä»¥è§£å³å段åéå¤ï¼"
-#. Tag: programlisting
-#: query_sql.xml:196
-#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, CATS "
-"m WHERE c.MOTHER_ID = c.ID\")\n"
-" .addEntity(\"cat\", Cat.class)\n"
-" .addEntity(\"mother\", Cat.class)\n"
-"]]>"
-msgstr ""
-
#. Tag: para
-#: query_sql.xml:202
#, no-c-format
-msgid ""
-"the SQL query string, with placeholders for Hibernate to inject column "
-"aliases"
-msgstr "SQLæ¥è¯¢è¯å¥ï¼å
¶ä¸å
å«å ä½éæ¥è®©Hibernate注å°å段å«å"
+msgid "the SQL query string, with placeholders for Hibernate to inject column aliases"
+msgstr "SQL æ¥è¯¢è¯å¥ï¼å
¶ä¸å
å«å ä½éæ¥è®© Hibernate 注å°å段å«å"
#. Tag: para
-#: query_sql.xml:207
#, no-c-format
msgid "the entities returned by the query"
msgstr "æ¥è¯¢è¿åçå®ä½"
#. Tag: para
-#: query_sql.xml:211
-#, fuzzy, 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åå¥ä¸ä½¿ç¨å±æ§å«åã"
-
-#. Tag: programlisting
-#: query_sql.xml:220
#, no-c-format
-msgid ""
-"<![CDATA[String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
-" \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother.*} "
-"\" +\n"
-" \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
-"\n"
-"List loggedCats = sess.createSQLQuery(sql)\n"
-" .addEntity(\"cat\", Cat.class)\n"
-" .addEntity(\"mother\", Cat.class).list()\n"
-"]]>"
-msgstr ""
+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
-#: query_sql.xml:223
#, no-c-format
msgid "Alias and property references"
-msgstr "å«åå屿§å¼ç¨(Alias and property references)"
+msgstr "å«åå屿§å¼ç¨ï¼Alias and property referencesï¼"
#. Tag: para
-#: query_sql.xml:225
-#, fuzzy, 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"
-"注å°åéçå«åã"
+#, 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 注å
¥åéçå«åã "
#. Tag: para
-#: query_sql.xml:230
-#, fuzzy, 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 ""
-"ä¸è¡¨ååºäºä½¿ç¨å«å注å°åæ°çä¸åå¯è½æ§ã注æï¼ä¸é¢ç»æä¸çå«ååªæ¯ç¤ºä¾ï¼å®ç¨"
-"æ¶æ¯ä¸ªå«åéè¦å¯ä¸å¹¶ä¸ä¸åçååã"
+#, 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 "ä¸è¡¨ååºäºä½¿ç¨å«å注å°åæ°çä¸åå¯è½æ§ã注æï¼ä¸é¢ç»æä¸çå«ååªæ¯ç¤ºä¾ï¼å®ç¨æ¶æ¯ä¸ªå«åéè¦å¯ä¸å¹¶ä¸ä¸åçååã "
#. Tag: title
-#: query_sql.xml:236
#, no-c-format
msgid "Alias injection names"
-msgstr "å«å注å°(alias injection names)"
+msgstr "å«å注å°ï¼alias injection namesï¼"
#. Tag: entry
-#: query_sql.xml:247
#, no-c-format
msgid "Description"
msgstr "æè¿°"
#. Tag: entry
-#: query_sql.xml:249
#, no-c-format
msgid "Syntax"
msgstr "è¯æ³"
#. Tag: entry
-#: query_sql.xml:251
#, no-c-format
msgid "Example"
msgstr "示ä¾"
#. Tag: entry
-#: query_sql.xml:257
#, no-c-format
msgid "A simple property"
msgstr "ç®å屿§"
-#. Tag: literal
-#: query_sql.xml:259
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].[propertyname]"
-msgstr "{[aliasname].[propertyname]"
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "<literal>{[aliasname].[propertyname]</literal>"
-#. Tag: literal
-#: query_sql.xml:261
+#. Tag: entry
#, no-c-format
-msgid "A_NAME as {item.name}"
-msgstr "A_NAME as {item.name}"
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>A_NAME as {item.name}</literal>"
#. Tag: entry
-#: query_sql.xml:265
#, no-c-format
msgid "A composite property"
msgstr "å¤å屿§"
-#. Tag: literal
-#: query_sql.xml:267
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].[componentname].[propertyname]}"
-msgstr "{[aliasname].[componentname].[propertyname]}"
+msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
-#. Tag: literal
-#: query_sql.xml:269
+#. Tag: entry
#, no-c-format
-msgid "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}"
-msgstr "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}"
+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
-#: query_sql.xml:274
#, no-c-format
msgid "Discriminator of an entity"
-msgstr "å®ä½è¾¨å«å¨(Discriminator of an entity)"
+msgstr "å®ä½è¾¨å«å¨ï¼Discriminator of an entityï¼"
-#. Tag: literal
-#: query_sql.xml:276
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].class}"
-msgstr "{[aliasname].class}"
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{[aliasname].class}</literal>"
-#. Tag: literal
-#: query_sql.xml:278
+#. Tag: entry
#, no-c-format
-msgid "DISC as {item.class}"
-msgstr "DISC as {item.class}"
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>DISC as {item.class}</literal>"
#. Tag: entry
-#: query_sql.xml:282
#, no-c-format
msgid "All properties of an entity"
msgstr "å®ä½çææå±æ§"
-#. Tag: literal
-#: query_sql.xml:284 query_sql.xml:332
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].*}"
-msgstr "{[aliasname].*}"
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{[aliasname].*}</literal>"
-#. Tag: literal
-#: query_sql.xml:286
+#. Tag: entry
#, no-c-format
-msgid "{item.*}"
-msgstr "{item.*}"
+msgid "<literal>{item.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
#. Tag: entry
-#: query_sql.xml:290
#, no-c-format
msgid "A collection key"
-msgstr "éåé®(collection key)"
+msgstr "éåé®ï¼collection keyï¼"
-#. Tag: literal
-#: query_sql.xml:292
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].key}"
-msgstr "{[aliasname].key}"
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{[aliasname].key}</literal>"
-#. Tag: literal
-#: query_sql.xml:294
+#. Tag: entry
#, no-c-format
-msgid "ORGID as {coll.key}"
-msgstr "ORGID as {coll.key}"
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>ORGID as {coll.key}</literal>"
#. Tag: entry
-#: query_sql.xml:298
#, no-c-format
msgid "The id of an collection"
-msgstr "éåid"
+msgstr "éå id"
-#. Tag: literal
-#: query_sql.xml:300
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].id}"
-msgstr "{[aliasname].id}"
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{[aliasname].id}</literal>"
-#. Tag: literal
-#: query_sql.xml:302
+#. Tag: entry
#, no-c-format
-msgid "EMPID as {coll.id}"
-msgstr "EMPID as {coll.id}"
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>EMPID as {coll.id}</literal>"
#. Tag: entry
-#: query_sql.xml:306
#, no-c-format
msgid "The element of an collection"
msgstr "éåå
ç´ "
-#. Tag: literal
-#: query_sql.xml:308
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].element}"
-msgstr "{[aliasname].element}"
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{[aliasname].element}</literal>"
-#. Tag: literal
-#: query_sql.xml:310
+#. Tag: entry
#, no-c-format
-msgid "XID as {coll.element}"
-msgstr "XID as {coll.element}"
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>XID as {coll.element}</literal>"
#. Tag: entry
-#: query_sql.xml:314
-#, fuzzy, no-c-format
+#, no-c-format
msgid "property of the element in the collection"
-msgstr "éåå
ç´ ç屿§"
+msgstr "éåå
ç´ ç屿§ "
-#. Tag: literal
-#: query_sql.xml:316
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].element.[propertyname]}"
-msgstr "{[aliasname].element.[propertyname]}"
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
-#. Tag: literal
-#: query_sql.xml:318
+#. Tag: entry
#, no-c-format
-msgid "NAME as {coll.element.name}"
-msgstr "NAME as {coll.element.name}"
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr "<literal>NAME as {coll.element.name}</literal>"
#. Tag: entry
-#: query_sql.xml:322
#, no-c-format
msgid "All properties of the element in the collection"
msgstr "éåå
ç´ çææå±æ§"
-#. Tag: literal
-#: query_sql.xml:324
+#. Tag: entry
#, no-c-format
-msgid "{[aliasname].element.*}"
-msgstr "{[aliasname].element.*}"
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{[aliasname].element.*}</literal>"
-#. Tag: literal
-#: query_sql.xml:326
+#. Tag: entry
#, no-c-format
-msgid "{coll.element.*}"
-msgstr "{coll.element.*}"
+msgid "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
#. Tag: entry
-#: query_sql.xml:330
#, no-c-format
msgid "All properties of the the collection"
msgstr "éåçææå±æ§"
-#. Tag: literal
-#: query_sql.xml:334
+#. Tag: entry
#, no-c-format
-msgid "{coll.*}"
-msgstr "{coll.*}"
+msgid "<literal>{coll.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
#. Tag: title
-#: query_sql.xml:343
#, no-c-format
msgid "Returning non-managed entities"
-msgstr "è¿åéå管å®ä½(Returning non-managed entities)"
+msgstr "è¿åéå管å®ä½ï¼Returning non-managed entitiesï¼"
#. Tag: para
-#: query_sql.xml:345
-#, fuzzy, 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管ççå®ä½ã"
-
-#. Tag: programlisting
-#: query_sql.xml:347
#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
-" .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
-msgstr ""
+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
-#: query_sql.xml:357
#, no-c-format
msgid "a result transformer"
-msgstr "ç»æè½¬æ¢å¨(result transformer)"
+msgstr "ç»æè½¬æ¢å¨ï¼result transformerï¼"
#. Tag: para
-#: query_sql.xml:361
#, 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
-#: query_sql.xml:368
#, no-c-format
msgid "Handling inheritance"
msgstr "å¤çç»§æ¿ï¼Handling inheritanceï¼"
#. Tag: para
-#: query_sql.xml:370
-#, fuzzy, 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æ¥è¯¢åè¥å
¶æ¥è¯¢ç»æå®ä½æ¯ç»§æ¿æ ä¸çä¸é¨åï¼å®å¿
é¡»å
å«åºç±»åææåç±»çæ"
-"æå±æ§ã"
+#, 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 æ¥è¯¢åè¥å
¶æ¥è¯¢ç»æå®ä½æ¯ç»§æ¿æ ä¸çä¸é¨åï¼å®å¿
é¡»å
å«åºç±»åææåç±»çææå±æ§ã "
#. Tag: title
-#: query_sql.xml:376
#, no-c-format
msgid "Parameters"
msgstr "åæ°ï¼Parametersï¼"
#. Tag: para
-#: query_sql.xml:378
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Native SQL queries support positional as well as named parameters:"
-msgstr "åçæ¥è¯¢æ¯æä½ç½®åæ°åå½ååæ°ï¼"
+msgstr "åçæ¥è¯¢æ¯æä½ç½®åæ°åå½ååæ°ï¼ "
-#. Tag: programlisting
-#: query_sql.xml:381
-#, no-c-format
-msgid ""
-"<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME "
-"like ?\").addEntity(Cat.class);\n"
-"List pusList = query.setString(0, \"Pus%\").list();\n"
-" \n"
-"query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
-"addEntity(Cat.class);\n"
-"List pusList = query.setString(\"name\", \"Pus%\").list(); ]]>"
-msgstr ""
-
#. Tag: title
-#: query_sql.xml:389
#, no-c-format
msgid "Named SQL queries"
-msgstr "å½åSQLæ¥è¯¢"
+msgstr "å½å SQL æ¥è¯¢"
#. Tag: para
-#: query_sql.xml:391
-#, fuzzy, 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>æ¹æ³."
-
-#. Tag: programlisting
-#: query_sql.xml:396
#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"persons\">\n"
-" <return alias=\"person\" class=\"eg.Person\"/>\n"
-" SELECT person.NAME AS {person.name},\n"
-" person.AGE AS {person.age},\n"
-" person.SEX AS {person.sex}\n"
-" FROM PERSON person\n"
-" WHERE person.NAME LIKE :namePattern\n"
-"</sql-query>]]>"
-msgstr ""
+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: programlisting
-#: query_sql.xml:398
-#, no-c-format
-msgid ""
-"<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"
-" .setString(\"namePattern\", namePattern)\n"
-" .setMaxResults(50)\n"
-" .list();]]>"
-msgstr ""
-
#. Tag: para
-#: query_sql.xml:400
-#, fuzzy, 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> å
ç´ æ¯ç¨æ¥è¿æ¥å
³è以åå°æ¥è¯¢å®ä¹ä¸ºé¢å
åå§åå个éåçã"
-
-#. Tag: programlisting
-#: query_sql.xml:404
#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"personsWith\">\n"
-" <return alias=\"person\" class=\"eg.Person\"/>\n"
-" <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
-" SELECT person.NAME AS {person.name},\n"
-" person.AGE AS {person.age},\n"
-" person.SEX AS {person.sex},\n"
-" address.STREET AS {address.street},\n"
-" address.CITY AS {address.city},\n"
-" address.STATE AS {address.state},\n"
-" address.ZIP AS {address.zip}\n"
-" FROM PERSON person\n"
-" JOIN ADDRESS address\n"
-" ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
-" WHERE person.NAME LIKE :namePattern\n"
-"</sql-query>]]>"
-msgstr ""
+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
-#: query_sql.xml:406
#, 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: programlisting
-#: query_sql.xml:410
-#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"mySqlQuery\">\n"
-" <return-scalar column=\"name\" type=\"string\"/>\n"
-" <return-scalar column=\"age\" type=\"long\"/>\n"
-" SELECT p.NAME AS name,\n"
-" p.AGE AS age,\n"
-" FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
-"</sql-query>]]>"
-msgstr ""
-
#. Tag: para
-#: query_sql.xml:412
-#, fuzzy, 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æ¥è®¿é®ã(æ¤å¤åæå³åçãåæä¸ºï¼You can externalize the "
-"resultset mapping informations in a <literal><resultset></literal> "
-"element to either reuse them accross several named queries or through the "
-"<literal>setResultSetMapping()</literal> API.)"
-
-#. Tag: programlisting
-#: query_sql.xml:417
#, no-c-format
-msgid ""
-"<![CDATA[<resultset name=\"personAddress\">\n"
-" <return alias=\"person\" class=\"eg.Person\"/>\n"
-" <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
-"</resultset>\n"
-"\n"
-"<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
-" SELECT person.NAME AS {person.name},\n"
-" person.AGE AS {person.age},\n"
-" person.SEX AS {person.sex},\n"
-" address.STREET AS {address.street},\n"
-" address.CITY AS {address.city},\n"
-" address.STATE AS {address.state},\n"
-" address.ZIP AS {address.zip}\n"
-" FROM PERSON person\n"
-" JOIN ADDRESS address\n"
-" ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
-" WHERE person.NAME LIKE :namePattern\n"
-"</sql-query>]]>"
-msgstr ""
+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
-#: query_sql.xml:419
-#, fuzzy, no-c-format
-msgid ""
-"You can, alternatively, use the resultset mapping information in your hbm "
-"files directly in java code."
-msgstr "å¦å¤,ä½ å¯ä»¥å¨java代ç ä¸ç´æ¥ä½¿ç¨hbmæä»¶ä¸çç»æéå®ä¹ä¿¡æ¯ã"
-
-#. Tag: programlisting
-#: query_sql.xml:422
#, no-c-format
-msgid ""
-"<![CDATA[List cats = sess.createSQLQuery(\n"
-" \"select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten."
-"mother = cat.id\"\n"
-" )\n"
-" .setResultSetMapping(\"catAndKitten\")\n"
-" .list();]]>"
-msgstr ""
+msgid "You can, alternatively, use the resultset mapping information in your hbm files directly in java code."
+msgstr "å¦å¤ï¼ä½ å¯ä»¥å¨ java 代ç ä¸ç´æ¥ä½¿ç¨ hbm æä»¶ä¸çç»æéå®ä¹ä¿¡æ¯ã "
#. Tag: title
-#: query_sql.xml:425
#, no-c-format
msgid "Using return-property to explicitly specify column/alias names"
-msgstr "使ç¨return-propertyæ¥æç¡®å°æå®å段/å«å"
+msgstr "ä½¿ç¨ return-property æ¥æç¡®å°æå®å段ï¼å«å"
#. Tag: para
-#: query_sql.xml:428
-#, fuzzy, 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注å
¥å®èªå·±çå«"
-"å."
-
-#. Tag: programlisting
-#: query_sql.xml:433
#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"mySqlQuery\">\n"
-" <return alias=\"person\" class=\"eg.Person\">\n"
-" <return-property name=\"name\" column=\"myName\"/>\n"
-" <return-property name=\"age\" column=\"myAge\"/>\n"
-" <return-property name=\"sex\" column=\"mySex\"/>\n"
-" </return>\n"
-" SELECT person.NAME AS myName,\n"
-" person.AGE AS myAge,\n"
-" person.SEX AS mySex,\n"
-" FROM PERSON person WHERE person.NAME LIKE :name\n"
-"</sql-query>\n"
-"]]>"
-msgstr ""
+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
-#: query_sql.xml:435
-#, fuzzy, 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>-è¯æ³ä¸è½ç»ç²åº¦æ§å¶å¤ä¸ªå段çéå¶"
-
-#. Tag: programlisting
-#: query_sql.xml:440
#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
-" <return alias=\"emp\" class=\"Employment\">\n"
-" <return-property name=\"salary\">\n"
-" <return-column name=\"VALUE\"/>\n"
-" <return-column name=\"CURRENCY\"/>\n"
-" </return-property>\n"
-" <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
-" </return>\n"
-" SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
-" STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
-" REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
-" FROM EMPLOYMENT\n"
-" WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
-" ORDER BY STARTDATE ASC\n"
-"</sql-query>]]>"
-msgstr ""
+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
-#: query_sql.xml:442
-#, fuzzy, 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>çæ³¨å
¥è¯æ³. å
è®¸ç¨æ·æ¥éæ©å¦ä½å¼ç¨å段以å屿§."
+#, 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> çæ³¨å
¥è¯æ³ãå
è®¸ç¨æ·æ¥éæ©å¦ä½å¼ç¨å段以å屿§ã "
#. Tag: para
-#: query_sql.xml:447
#, 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
-#: query_sql.xml:453
#, no-c-format
msgid "Using stored procedures for querying"
msgstr "使ç¨åå¨è¿ç¨æ¥æ¥è¯¢"
#. Tag: para
-#: query_sql.xml:455
-#, fuzzy, 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åæ´é«çæ¬çåå¨è¿ç¨ä¾å."
-
-#. Tag: programlisting
-#: query_sql.xml:461
#, no-c-format
-msgid ""
-"<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"
-" RETURN SYS_REFCURSOR\n"
-"AS\n"
-" st_cursor SYS_REFCURSOR;\n"
-"BEGIN\n"
-" OPEN st_cursor FOR\n"
-" SELECT EMPLOYEE, EMPLOYER,\n"
-" STARTDATE, ENDDATE,\n"
-" REGIONCODE, EID, VALUE, CURRENCY\n"
-" FROM EMPLOYMENT;\n"
-" RETURN st_cursor;\n"
-" END;]]>"
-msgstr ""
+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
-#: query_sql.xml:463
#, no-c-format
msgid "To use this query in Hibernate you need to map it via a named query."
-msgstr "å¨Hibernateéè¦è¦ä½¿ç¨è¿ä¸ªæ¥è¯¢,ä½ éè¦éè¿å½åæ¥è¯¢æ¥æ å°å®."
+msgstr "å¨ Hibernate éè¦è¦ä½¿ç¨è¿ä¸ªæ¥è¯¢ï¼ä½ éè¦éè¿å½åæ¥è¯¢æ¥æ å°å®ã"
-#. Tag: programlisting
-#: query_sql.xml:466
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
-" <return alias=\"emp\" class=\"Employment\">\n"
-" <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
-" <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
-" <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
-" <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
-" <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n"
-" <return-property name=\"id\" column=\"EID\"/>\n"
-" <return-property name=\"salary\">\n"
-" <return-column name=\"VALUE\"/>\n"
-" <return-column name=\"CURRENCY\"/>\n"
-" </return-property>\n"
-" </return>\n"
-" { ? = call selectAllEmployments() }\n"
-"</sql-query>]]>"
-msgstr ""
+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: para
-#: query_sql.xml:468
-#, fuzzy, 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>"
-
#. Tag: title
-#: query_sql.xml:473
#, no-c-format
msgid "Rules/limitations for using stored procedures"
msgstr "使ç¨åå¨è¿ç¨çè§ååéå¶"
#. Tag: para
-#: query_sql.xml:475
-#, fuzzy, 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>æ¥æ§è¡ä»ä»¬.è¿äºè§åé对äºä¸åçæ°æ®åº.å ä¸ºæ°æ®åº æä¾åæåç§ä¸åçå"
-"å¨è¿ç¨è¯æ³åè¯ä¹."
+#, 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> æ¥æ§è¡ä»ä»¬ãè¿äºè§åé对äºä¸åçæ°æ®åºãå ä¸ºæ°æ®åºæä¾åæåç§ä¸åçåå¨è¿ç¨è¯æ³åè¯ä¹ã "
#. Tag: para
-#: query_sql.xml:482
-#, fuzzy, no-c-format
-msgid ""
-"Stored procedure queries cannot be paged with <literal>setFirstResult()/"
-"setMaxResults()</literal>."
-msgstr ""
-"对åå¨è¿ç¨è¿è¡çæ¥è¯¢æ æ³ä½¿ç¨<literal>setFirstResult()/setMaxResults()</"
-"literal>è¿è¡å页ã"
+#, no-c-format
+msgid "Stored procedure queries cannot be paged with <literal>setFirstResult()/setMaxResults()</literal>."
+msgstr "对åå¨è¿ç¨è¿è¡çæ¥è¯¢æ æ³ä½¿ç¨ <literal>setFirstResult()/setMaxResults()</literal> è¿è¡å页ã "
#. Tag: para
-#: query_sql.xml:485
-#, fuzzy, 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>.åçè°ç¨è¯æ³ä¸è¢«æ¯æã"
+#, 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>ãåçè°ç¨è¯æ³ä¸è¢«æ¯æã "
#. Tag: para
-#: query_sql.xml:490
#, no-c-format
msgid "For Oracle the following rules apply:"
-msgstr "对äºOracleæå¦ä¸è§å:"
+msgstr "å¯¹äº Oracle æå¦ä¸è§åï¼"
#. Tag: para
-#: query_sql.xml:494
-#, fuzzy, 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"
-"çæåã"
+#, 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 çæåã "
#. Tag: para
-#: query_sql.xml:503
#, no-c-format
msgid "For Sybase or MS SQL server the following rules apply:"
-msgstr "对äºSybaseæè
MS SQL serveræå¦ä¸è§å:"
+msgstr "å¯¹äº Sybase æè
MS SQL server æå¦ä¸è§åï¼"
#. Tag: para
-#: query_sql.xml:507
-#, fuzzy, 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å°ååºç¬¬ä¸æ¡ç»æéä½ä¸ºå®çè¿åå¼ï¼ å
¶ä»å°è¢«ä¸¢å¼ã"
+#, 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 å°ååºç¬¬ä¸æ¡ç»æéä½ä¸ºå®çè¿åå¼ï¼å
¶ä»å°è¢«ä¸¢å¼ã "
#. Tag: para
-#: query_sql.xml:515
#, 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
-#: query_sql.xml:525
#, no-c-format
msgid "Custom SQL for create, update and delete"
-msgstr "å®å¶SQLç¨æ¥createï¼updateådelete"
+msgstr "å®å¶ SQL ç¨æ¥ createï¼update å delete"
#. Tag: para
-#: query_sql.xml:527
#, no-c-format
-msgid ""
-"Hibernate3 can use custom SQL statements for create, update, and delete "
-"operations. 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>, and <literal><sql-update></"
-"literal>éè½½äº è¿äºè¯å¥ã"
+msgid "Hibernate3 can use custom SQL statements for create, update, and delete operations. 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: programlisting
-#: query_sql.xml:535
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"increment\"/>\n"
-" </id>\n"
-" <property name=\"name\" not-null=\"true\"/>\n"
-" <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-"
-"insert>\n"
-" <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
-" <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
-"</class>]]>"
-msgstr ""
+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
-#: query_sql.xml:537
-#, fuzzy, 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ç´æ¥å¨ä½ çæ°æ®åºéæ§è¡ï¼æä»¥ä½ å¯ä»¥èªç±ç使ç¨ä½ 忬¢çä»»æè¯æ³ãä½å¦æä½ "
-"ä½¿ç¨æ°æ®åºç¹å®çè¯æ³ï¼ è¿å½ç¶ä¼éä½ä½ æ å°çå¯ç§»æ¤æ§ã"
+#, no-c-format
+msgid "Stored procedures are supported if the <literal>callable</literal> attribute is set:"
+msgstr "å¦æè®¾å® <literal>callable</literal>ï¼åè½å¤æ¯æåå¨è¿ç¨äºã"
#. Tag: para
-#: query_sql.xml:541
#, no-c-format
-msgid ""
-"Stored procedures are supported if the <literal>callable</literal> attribute "
-"is set:"
-msgstr "å¦æè®¾å®<literal>callable</literal>ï¼åè½å¤æ¯æåå¨è¿ç¨äºã"
+msgid "The order of the positional parameters is vital, as they must be in the same sequence as Hibernate expects them."
+msgstr "åæ°çä½ç½®é¡ºåºæ¯é常éè¦çï¼ä»ä»¬å¿
é¡»å Hibernate ææå¾
ç顺åºç¸åã "
-#. Tag: programlisting
-#: query_sql.xml:544
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"increment\"/>\n"
-" </id>\n"
-" <property name=\"name\" not-null=\"true\"/>\n"
-" <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-insert>\n"
-" <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-delete>\n"
-" <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-"
-"update>\n"
-"</class>]]>"
-msgstr ""
+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
-#: query_sql.xml:546
-#, fuzzy, no-c-format
-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
-#: query_sql.xml:549
-#, fuzzy, 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ã)"
-
-#. Tag: para
-#: query_sql.xml:556
-#, fuzzy, 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æä½çè¯å¥"
-"ç第ä¸ä¸ªåæ°æ³¨å为ä¸ä¸ªæ°å¼åè¾åºåæ°ã"
-
-#. Tag: programlisting
-#: query_sql.xml:562
#, no-c-format
-msgid ""
-"<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
-"VARCHAR2)\n"
-" RETURN NUMBER IS\n"
-"BEGIN\n"
-"\n"
-" update PERSON\n"
-" set\n"
-" NAME = uname,\n"
-" where\n"
-" ID = uid;\n"
-"\n"
-" return SQL%ROWCOUNT;\n"
-"\n"
-"END updatePerson;]]>"
-msgstr ""
+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
-#: query_sql.xml:566
#, no-c-format
msgid "Custom SQL for loading"
-msgstr "å®å¶è£
è½½SQL"
+msgstr "å®å¶è£
è½½ SQL"
#. Tag: para
-#: query_sql.xml:568
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can also declare your own SQL (or HQL) queries for entity loading:"
-msgstr "ä½ å¯è½éè¦å£°æä½ èªå·±çSQL(æHQL)æ¥è£
è½½å®ä½"
+msgstr "ä½ å¯è½éè¦å£°æä½ èªå·±ç SQLï¼æ HQLï¼æ¥è£
è½½å®ä½ï¼"
-#. Tag: programlisting
-#: query_sql.xml:571
-#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"person\">\n"
-" <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
-" SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
-" FROM PERSON\n"
-" WHERE ID=?\n"
-" FOR UPDATE\n"
-"</sql-query>]]>"
-msgstr ""
-
#. Tag: para
-#: query_sql.xml:573
-#, fuzzy, 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 "è¿åªæ¯ä¸ä¸ªåé¢è®¨è®ºè¿çå½åæ¥è¯¢å£°æï¼ä½ å¯ä»¥å¨ç±»æ å°éå¼ç¨è¿ä¸ªå½åæ¥è¯¢ã"
-
-#. Tag: programlisting
-#: query_sql.xml:576
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\">\n"
-" <id name=\"id\">\n"
-" <generator class=\"increment\"/>\n"
-" </id>\n"
-" <property name=\"name\" not-null=\"true\"/>\n"
-" <loader query-ref=\"person\"/>\n"
-"</class>]]>"
-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
-#: query_sql.xml:578
#, no-c-format
msgid "This even works with stored procedures."
msgstr "è¿ä¹å¯ä»¥ç¨äºåå¨è¿ç¨"
#. Tag: para
-#: query_sql.xml:580
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can even define a query for collection loading:"
-msgstr "ä½ çè³å¯ä»¥å®ä¸ä¸ªç¨äºéåè£
è½½çæ¥è¯¢:"
+msgstr "ä½ çè³å¯ä»¥å®ä¸ä¸ªç¨äºéåè£
è½½çæ¥è¯¢ï¼ "
-#. Tag: programlisting
-#: query_sql.xml:582
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
-" <key/>\n"
-" <one-to-many class=\"Employment\"/>\n"
-" <loader query-ref=\"employments\"/>\n"
-"</set>]]>"
-msgstr ""
+msgid "You can also define an entity loader that loads a collection by join fetching:"
+msgstr "ä½ çè³è¿å¯ä»¥å®ä¹ä¸ä¸ªå®ä½è£
è½½å¨ï¼å®éè¿è¿æ¥æåè£
è½½ä¸ä¸ªéåï¼ "
-#. Tag: programlisting
-#: query_sql.xml:584
-#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"employments\">\n"
-" <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
-" SELECT {emp.*}\n"
-" FROM EMPLOYMENT emp\n"
-" WHERE EMPLOYER = :id\n"
-" ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
-"</sql-query>]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();"
-#. Tag: para
-#: query_sql.xml:586
-#, fuzzy, no-c-format
-msgid ""
-"You can also define an entity loader that loads a collection by join "
-"fetching:"
-msgstr "ä½ çè³è¿å¯ä»¥å®ä¹ä¸ä¸ªå®ä½è£
è½½å¨ï¼å®éè¿è¿æ¥æåè£
è½½ä¸ä¸ªéå:"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)"
-#. Tag: programlisting
-#: query_sql.xml:589
-#, no-c-format
-msgid ""
-"<![CDATA[<sql-query name=\"person\">\n"
-" <return alias=\"pers\" class=\"Person\"/>\n"
-" <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
-" SELECT NAME AS {pers.*}, {emp.*}\n"
-" FROM PERSON pers\n"
-" LEFT OUTER JOIN EMPLOYMENT emp\n"
-" ON pers.ID = emp.PERSON_ID\n"
-" WHERE ID=?\n"
-"</sql-query>]]>"
-msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat."
+#~ "class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat.class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM "
+#~ "CATS\").addEntity(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS\")."
+#~ "addEntity(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, "
+#~ "D_ID, D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, D_NAME "
+#~ "FROM CATS c, DOGS d \n"
+#~ " WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, "
+#~ "CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, CAT_ID "
+#~ "FROM CATS c, DOGS d\n"
+#~ " WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE "
+#~ "c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE c."
+#~ "MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, "
+#~ "CATS m WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, CATS m "
+#~ "WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()"
+#~ msgid "{item.*}"
+#~ msgstr "{item.*}"
+#~ msgid "{coll.*}"
+#~ msgstr "{coll.*}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE "
+#~ "NAME like ?\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list(); ]]>"
+#~ msgstr ""
+#~ "Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like ?"
+#~ "\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/"
+#~ ">\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-"
+#~ "insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )"
+#~ "</sql-insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-"
+#~ "update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-"
+#~ "insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-"
+#~ "delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-"
+#~ "update>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</"
+#~ "sql-insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</"
+#~ "sql-delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}"
+#~ "</sql-update>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/"
+#~ ">\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>"
+
Deleted: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/quickstart.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/quickstart.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/quickstart.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,12 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/session_api.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/session_api.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/session_api.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,2125 +1,1343 @@
+# translation of session_api.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: session_api\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"PO-Revision-Date: 2009-12-04 14:00+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: session_api.xml:29
#, no-c-format
msgid "Working with objects"
msgstr "ä¸å¯¹è±¡å
±äº"
#. Tag: para
-#: session_api.xml:31
-#, fuzzy, 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åºç¨ä¸çæ°æ®ã"
+#, 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 åºç¨ä¸çæ°æ®ã "
#. Tag: para
-#: session_api.xml:40
#, 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
-#: session_api.xml:48
#, no-c-format
msgid "Hibernate object states"
-msgstr "Hibernateå¯¹è±¡ç¶æ(object states)"
+msgstr "Hibernate å¯¹è±¡ç¶æï¼object statesï¼"
#. Tag: para
-#: session_api.xml:50
#, no-c-format
msgid "Hibernate defines and supports the following object states:"
-msgstr "Hibernateå®ä¹å¹¶æ¯æä¸åå¯¹è±¡ç¶æ(state):"
+msgstr "Hibernate å®ä¹å¹¶æ¯æä¸åå¯¹è±¡ç¶æï¼stateï¼ï¼"
#. Tag: para
-#: session_api.xml:56
-#, fuzzy, 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è¯å¥)"
+#, 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è¯å¥ï¼ "
#. Tag: para
-#: session_api.xml:68
-#, fuzzy, 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>è¯å¥ã"
+#, 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> è¯å¥ã "
#. Tag: para
-#: session_api.xml:79
-#, fuzzy, 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)ã"
+#, 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ï¼ã "
#. Tag: para
-#: session_api.xml:93
-#, fuzzy, 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æ¹æ³ï¼ã"
+#, 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 æ¹æ³ï¼ã "
#. Tag: title
-#: session_api.xml:101
#, no-c-format
msgid "Making objects persistent"
msgstr "使对象æä¹
å"
#. Tag: para
-#: session_api.xml:103
#, no-c-format
-msgid ""
-"Newly instantiated instances of a 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>çã"
+msgid "Newly instantiated instances of a 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: programlisting
-#: session_api.xml:110
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[DomesticCat fritz = new DomesticCat();\n"
-"fritz.setColor(Color.GINGER);\n"
-"fritz.setSex('M');\n"
-"fritz.setName(\"Fritz\");\n"
-"Long generatedId = (Long) sess.save(fritz);]]>"
-msgstr ""
+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
-#: session_api.xml:112
-#, fuzzy, 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>ã"
+#, 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> è¯å¥ãè¿å¯¹äºé¿æè¿è¡çå¸¦ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¯å¾æç¨çã"
#. Tag: para
-#: session_api.xml:124
-#, fuzzy, 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> makes a transient instance persistent. However, "
-"it doesn't guarantee that the identifier value will be assigned to the "
-"persistent instance immediately, the assignment might happen at flush time. "
-"<literal>persist()</literal> also guarantees that it will not execute an "
-"<literal>INSERT</literal> statement if it is called outside of transaction "
-"boundaries. This is useful in long-running conversations with an extended "
-"Session/persistence context."
+#, 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 å°ç«å³æ§è¡ï¼ä¸ç®¡ä½ æ¯å¦å¨äºå¡å
é¨è¿æ¯å¤é¨ãè¿å¯¹äºé¿æè¿è¡çå¸¦ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¥è¯´ä¼åºç°é®é¢ã"
#. Tag: para
-#: session_api.xml:135
#, 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> 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."
+msgid "Alternatively, you can assign the identifier using an overloaded version of <literal>save()</literal>."
+msgstr "æ¤å¤ï¼ä½ å¯ä»¥ç¨ä¸ä¸ªéè½½çæ¬ç <literal>save()</literal> æ¹æ³ã "
#. Tag: para
-#: session_api.xml:145
-#, fuzzy, no-c-format
-msgid ""
-"Alternatively, you can assign the identifier using an overloaded version of "
-"<literal>save()</literal>."
-msgstr "æ¤å¤ï¼ä½ å¯ä»¥ç¨ä¸ä¸ªéè½½çæ¬ç<literal>save()</literal>æ¹æ³ã"
-
-#. Tag: programlisting
-#: session_api.xml:150
#, no-c-format
-msgid ""
-"<![CDATA[DomesticCat pk = new DomesticCat();\n"
-"pk.setColor(Color.TABBY);\n"
-"pk.setSex('F');\n"
-"pk.setName(\"PK\");\n"
-"pk.setKittens( new HashSet() );\n"
-"pk.addKitten(fritz);\n"
-"sess.save( pk, new Long(1234) );]]>"
-msgstr ""
+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
-#: session_api.xml:152
-#, fuzzy, 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>约æã"
+#, 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ï¼å°å¨æ¬ç« ç¨å讨论ã"
-#. Tag: para
-#: session_api.xml:162
-#, fuzzy, 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)å°å¨æ¬ç« ç¨å讨论ã"
-
#. Tag: title
-#: session_api.xml:173
#, no-c-format
msgid "Loading an object"
msgstr "è£
载对象"
#. Tag: para
-#: session_api.xml:175
-#, fuzzy, 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>"
-"çå¦ä¸ä¸ªåæ°æ¯æå®ç±»ç.classå¯¹è±¡ã æ¬æ¹æ³ä¼å建æå®ç±»çæä¹
åå®ä¾ï¼å¹¶ä»æ°æ®åº"
-"å è½½å
¶æ°æ®(state)ã"
-
-#. Tag: programlisting
-#: session_api.xml:182
#, no-c-format
-msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
-msgstr ""
+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: programlisting
-#: session_api.xml:184
-#, no-c-format
-msgid ""
-"<![CDATA[// you need to wrap primitive identifiers\n"
-"long id = 1234;\n"
-"DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
-"(id) );]]>"
-msgstr ""
-
#. Tag: para
-#: session_api.xml:186
#, no-c-format
msgid "Alternatively, you can load state into a given instance:"
-msgstr ""
-"æ¤å¤, ä½ å¯ä»¥ææ°æ®(state)å è½½å°æå®ç对象å®ä¾ä¸ï¼è¦çæè¯¥å®ä¾åæ¥çæ°æ®ï¼ã"
+msgstr "æ¤å¤ï¼ä½ å¯ä»¥ææ°æ®ï¼stateï¼å è½½å°æå®ç对象å®ä¾ä¸ï¼è¦çæè¯¥å®ä¾åæ¥çæ°æ®ï¼ã"
-#. Tag: programlisting
-#: session_api.xml:190
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[Cat cat = new DomesticCat();\n"
-"// load pk's state into cat\n"
-"sess.load( cat, new Long(pkId) );\n"
-"Set kittens = cat.getKittens();]]>"
-msgstr ""
+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
-#: session_api.xml:192
-#, fuzzy, 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>ï¼ é£ä¹ä½¿ç¨è¿ç§æ"
-"使¹å¼å
许å¤ä¸ªå¯¹è±¡è¢«ä¸æ¹è£
è½½ï¼å 为è¿åçæ¯ä»£çï¼æ é仿°æ®åºä¸æåææå¯¹è±¡ç"
-"æ°æ®ï¼ã"
+#, 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ã "
#. Tag: para
-#: session_api.xml:203
-#, fuzzy, 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ã"
-
-#. Tag: programlisting
-#: session_api.xml:209
#, no-c-format
-msgid ""
-"<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
-"if (cat==null) {\n"
-" cat = new Cat();\n"
-" sess.save(cat, id);\n"
-"}\n"
-"return cat;]]>"
-msgstr ""
+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
-#: session_api.xml:211
-#, fuzzy, 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ææ¡£ä»¥è·åæ´å¤ä¿¡æ¯ã"
-
-#. Tag: programlisting
-#: session_api.xml:216
#, no-c-format
-msgid "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
-msgstr ""
+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
-#: session_api.xml:218
-#, fuzzy, 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)ã"
+#, 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> æ¹æ³å¼ºè¿«è£
载对象åå®çéåãå¦æä½ ä½¿ç¨æ°æ®åºè§¦åå¨åè½æ¥å¤ç对象çæäºå±æ§ï¼è¿ä¸ªæ¹æ³å°±å¾æç¨äºã"
#. Tag: para
-#: session_api.xml:225
#, 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 "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: programlisting
-#: session_api.xml:231
-#, no-c-format
-msgid ""
-"<![CDATA[sess.save(cat);\n"
-"sess.flush(); //force the SQL INSERT\n"
-"sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
-msgstr ""
-
-#. Tag: para
-#: session_api.xml:233
-#, 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\"/>ä¸è§£éã"
-
#. Tag: title
-#: session_api.xml:243
#, no-c-format
msgid "Querying"
msgstr "æ¥è¯¢"
#. Tag: para
-#: session_api.xml:245
-#, fuzzy, 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)转åä¸ºå¯¹è±¡çæ¯æã"
+#, 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ï¼è½¬åä¸ºå¯¹è±¡çæ¯æã "
#. Tag: title
-#: session_api.xml:255
#, no-c-format
msgid "Executing queries"
msgstr "æ§è¡æ¥è¯¢"
#. Tag: para
-#: session_api.xml:257
#, 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: programlisting
-#: session_api.xml:264
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List cats = session.createQuery(\n"
-" \"from Cat as cat where cat.birthdate < ?\")\n"
-" .setDate(0, date)\n"
-" .list();\n"
-"\n"
-"List mothers = session.createQuery(\n"
-" \"select mother from Cat as cat join cat.mother as mother where cat.name "
-"= ?\")\n"
-" .setString(0, name)\n"
-" .list();\n"
-"\n"
-"List kittens = session.createQuery(\n"
-" \"from Cat as cat where cat.mother = ?\")\n"
-" .setEntity(0, pk)\n"
-" .list();\n"
-"\n"
-"Cat mother = (Cat) session.createQuery(\n"
-" \"select cat.mother from Cat as cat where cat = ?\")\n"
-" .setEntity(0, izi)\n"
-" .uniqueResult();]]\n"
-"\n"
-"Query mothersWithKittens = (Cat) session.createQuery(\n"
-" \"select mother from Cat as mother left join fetch mother.kittens\");\n"
-"Set uniqueMothers = new HashSet(mothersWithKittens.list());]]>"
-msgstr ""
+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: para
-#: session_api.xml:266
-#, fuzzy, 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>ã æ³¨æï¼ä½¿ç¨éåé¢å
æåçæ¥è¯¢å¾å¾ä¼è¿åå¤"
-"æ¬¡æ ¹å¯¹è±¡ï¼ä»ä»¬çéåç±»é½è¢«åå§åäºï¼ãä½ å¯ä»¥éè¿ä¸ä¸ªéåæ¥è¿æ»¤è¿äºéå¤å¯¹è±¡ã"
-
#. Tag: title
-#: session_api.xml:278
#, no-c-format
msgid "Iterating results"
-msgstr "è¿ä»£å¼è·åç»æ(Iterating results)"
+msgstr "è¿ä»£å¼è·åç»æï¼Iterating resultsï¼"
#. Tag: para
-#: session_api.xml:280
-#, fuzzy, 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è¯å¥å®ä¾åå®é
ç对象ã"
-
-#. Tag: programlisting
-#: session_api.xml:292
#, no-c-format
-msgid ""
-"<![CDATA[// fetch ids\n"
-"Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\")."
-"iterate();\n"
-"while ( iter.hasNext() ) {\n"
-" Qux qux = (Qux) iter.next(); // fetch the object\n"
-" // something we couldnt express in the query\n"
-" if ( qux.calculateComplicatedAlgorithm() ) {\n"
-" // delete the current instance\n"
-" iter.remove();\n"
-" // dont need to process the rest\n"
-" break;\n"
-" }\n"
-"}]]>"
-msgstr ""
+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
-#: session_api.xml:296
#, no-c-format
msgid "Queries that return tuples"
-msgstr "è¿åå
ç»(tuples)çæ¥è¯¢"
+msgstr "è¿åå
ç»ï¼tuplesï¼çæ¥è¯¢"
#. Tag: para
-#: session_api.xml:298
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
-"as an array:"
-msgstr ""
-"ï¼è¯æ³¨ï¼å
ç»(tuples)æä¸æ¡ç»æè¡å
å«å¤ä¸ªå¯¹è±¡ï¼ Hibernateæ¥è¯¢ææ¶è¿åå
ç»"
-"(tuples)ï¼æ¯ä¸ªå
ç»(tuples)以æ°ç»çå½¢å¼è¿å:"
-
-#. Tag: programlisting
-#: session_api.xml:303
#, no-c-format
-msgid ""
-"<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
-" \"select kitten, mother from Cat kitten join kitten.mother mother"
-"\")\n"
-" .list()\n"
-" .iterator();\n"
-"\n"
-"while ( kittensAndMothers.hasNext() ) {\n"
-" Object[] tuple = (Object[]) kittensAndMothers.next();\n"
-" Cat kitten = (Cat) tuple[0];\n"
-" Cat mother = (Cat) tuple[1];\n"
-" ....\n"
-"}]]>"
-msgstr ""
+msgid "Hibernate queries sometimes return tuples of objects. Each tuple is returned as an array:"
+msgstr "ï¼è¯æ³¨ï¼å
ç»ï¼tuplesï¼æä¸æ¡ç»æè¡å
å«å¤ä¸ªå¯¹è±¡ï¼ Hibernate æ¥è¯¢ææ¶è¿åå
ç»ï¼tuplesï¼ï¼æ¯ä¸ªå
ç»ï¼tuplesï¼ä»¥æ°ç»çå½¢å¼è¿å: "
#. Tag: title
-#: session_api.xml:308
#, no-c-format
msgid "Scalar results"
-msgstr "æ é(Scalar)ç»æ"
+msgstr "æ éï¼Scalarï¼ç»æ"
#. Tag: para
-#: session_api.xml:310
-#, fuzzy, 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)çå®ä½ï¼ã"
-
-#. Tag: programlisting
-#: session_api.xml:316
#, no-c-format
-msgid ""
-"<![CDATA[Iterator results = sess.createQuery(\n"
-" \"select cat.color, min(cat.birthdate), count(cat) from Cat cat \" "
-"+\n"
-" \"group by cat.color\")\n"
-" .list()\n"
-" .iterator();\n"
-"\n"
-"while ( results.hasNext() ) {\n"
-" Object[] row = (Object[]) results.next();\n"
-" Color type = (Color) row[0];\n"
-" Date oldest = (Date) row[1];\n"
-" Integer count = (Integer) row[2];\n"
-" .....\n"
-"}]]>"
-msgstr ""
+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
-#: session_api.xml:321
#, no-c-format
msgid "Bind parameters"
msgstr "ç»å®åæ°"
#. Tag: para
-#: session_api.xml:323
-#, fuzzy, 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)çä¼ç¹"
-"æ¯:"
+#, 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ï¼çä¼ç¹æ¯ï¼ "
#. Tag: para
-#: session_api.xml:333
#, no-c-format
-msgid ""
-"named parameters are insensitive to the order they occur in the query string"
-msgstr "å½ååæ°(named parameters)ä¸å
¶å¨æ¥è¯¢ä¸²ä¸åºç°çé¡ºåºæ å
³"
+msgid "named parameters are insensitive to the order they occur in the query string"
+msgstr "å½ååæ°ï¼named parametersï¼ä¸å
¶å¨æ¥è¯¢ä¸²ä¸åºç°çé¡ºåºæ å
³"
#. Tag: para
-#: session_api.xml:339
-#, fuzzy, no-c-format
+#, no-c-format
msgid "they can occur multiple times in the same query"
-msgstr "å®ä»¬å¯å¨å䏿¥è¯¢ä¸²ä¸å¤æ¬¡åºç°"
+msgstr "å®ä»¬å¯å¨å䏿¥è¯¢ä¸²ä¸å¤æ¬¡åºç° "
#. Tag: para
-#: session_api.xml:344
#, no-c-format
msgid "they are self-documenting"
msgstr "å®ä»¬æ¬èº«æ¯èªæè¯´æç"
-#. Tag: programlisting
-#: session_api.xml:350
-#, no-c-format
-msgid ""
-"<![CDATA[//named parameter (preferred)\n"
-"Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
-"\");\n"
-"q.setString(\"name\", \"Fritz\");\n"
-"Iterator cats = q.iterate();]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: session_api.xml:352
-#, no-c-format
-msgid ""
-"<![CDATA[//positional parameter\n"
-"Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
-"q.setString(0, \"Izi\");\n"
-"Iterator cats = q.iterate();]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: session_api.xml:354
-#, no-c-format
-msgid ""
-"<![CDATA[//named parameter list\n"
-"List names = new ArrayList();\n"
-"names.add(\"Izi\");\n"
-"names.add(\"Fritz\");\n"
-"Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:"
-"namesList)\");\n"
-"q.setParameterList(\"namesList\", names);\n"
-"List cats = q.list();]]>"
-msgstr ""
-
#. Tag: title
-#: session_api.xml:359
#, no-c-format
msgid "Pagination"
msgstr "å页"
#. Tag: para
-#: session_api.xml:361
-#, fuzzy, 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>æ¥å£æä¾çæ¹æ³:"
-
-#. Tag: programlisting
-#: session_api.xml:367
#, no-c-format
-msgid ""
-"<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
-"q.setFirstResult(20);\n"
-"q.setMaxResults(10);\n"
-"List cats = q.list();]]>"
-msgstr ""
+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
-#: session_api.xml:369
#, 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
-#: session_api.xml:377
#, no-c-format
msgid "Scrollable iteration"
-msgstr "坿»å¨éå(Scrollable iteration)"
+msgstr "坿»å¨éåï¼Scrollable iterationï¼"
#. Tag: para
-#: session_api.xml:379
-#, fuzzy, 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>ï¼å
è®¸ä½ å¨æ¥è¯¢ç»æä¸"
-"çµæ´»æ¸¸èµ°ã"
-
-#. Tag: programlisting
-#: session_api.xml:386
#, no-c-format
-msgid ""
-"<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from DomesticCat "
-"cat \" +\n"
-" \"order by cat.name\");\n"
-"ScrollableResults cats = q.scroll();\n"
-"if ( cats.first() ) {\n"
-"\n"
-" // find the first name on each page of an alphabetical list of cats by "
-"name\n"
-" firstNamesOfPages = new ArrayList();\n"
-" do {\n"
-" String name = cats.getString(0);\n"
-" firstNamesOfPages.add(name);\n"
-" }\n"
-" while ( cats.scroll(PAGE_SIZE) );\n"
-"\n"
-" // Now get the first page of cats\n"
-" pageOfCats = new ArrayList();\n"
-" cats.beforeFirst();\n"
-" int i=0;\n"
-" while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get"
-"(1) );\n"
-"\n"
-"}\n"
-"cats.close()]]>"
-msgstr ""
+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
-#: session_api.xml:388
-#, fuzzy, 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>"
+#, 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>ã "
#. Tag: title
-#: session_api.xml:397
#, no-c-format
msgid "Externalizing named queries"
-msgstr "å¤ç½®å½åæ¥è¯¢(Externalizing named queries)"
+msgstr "å¤ç½®å½åæ¥è¯¢ï¼Externalizing named queriesï¼"
#. Tag: para
-#: session_api.xml:399
-#, fuzzy, 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>å
裹起æ¥ãï¼"
-
-#. Tag: programlisting
-#: session_api.xml:405
#, no-c-format
-msgid ""
-"<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
-" from eg.DomesticCat as cat\n"
-" where cat.name = ?\n"
-" and cat.weight > ?\n"
-"] ]></query>]]>"
-msgstr ""
+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
-#: session_api.xml:407
#, no-c-format
msgid "Parameter binding and executing is done programatically:"
-msgstr "åæ°ç»å®åæ§è¡ä»¥ç¼ç¨æ¹å¼(programatically)宿ï¼"
+msgstr "åæ°ç»å®åæ§è¡ä»¥ç¼ç¨æ¹å¼ï¼programaticallyï¼å®æï¼"
-#. Tag: programlisting
-#: session_api.xml:411
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
-"q.setString(0, name);\n"
-"q.setInt(1, minWeight);\n"
-"List cats = q.list();]]>"
-msgstr ""
+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
-#: session_api.xml:413
-#, fuzzy, 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ç»ä¸"
-"管çï¼è¾¾å°è¿ç§»çç®çã"
+#, 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>ã "
-#. Tag: para
-#: session_api.xml:419
-#, fuzzy, 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>ã"
-
#. Tag: title
-#: session_api.xml:432
#, no-c-format
msgid "Filtering collections"
msgstr "è¿æ»¤éå"
#. Tag: para
-#: session_api.xml:433
-#, fuzzy, 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>æ¥å¼ç¨éåä¸çå½åå
"
-"ç´ ã"
-
-#. Tag: programlisting
-#: session_api.xml:439
#, no-c-format
-msgid ""
-"<![CDATA[Collection blackKittens = session.createFilter(\n"
-" pk.getKittens(), \n"
-" \"where this.color = ?\")\n"
-" .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
-" .list()\n"
-");]]>"
-msgstr ""
+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
-#: session_api.xml:441
-#, fuzzy, 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)âçéå«çå«ä¹ä¸ç¬¦ï¼ä¸è¿ä¸"
-"æä»¬æå¾
çè¡ä¸ºä¸è´ï¼ã"
+#, 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ï¼âçéå«çå«ä¹ä¸ç¬¦ï¼ä¸è¿ä¸æä»¬æå¾
çè¡ä¸ºä¸è´ï¼ã "
#. Tag: para
-#: session_api.xml:447
-#, fuzzy, 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)ä¸éå®äºåªè½è¿åéåå
ç´ æ¬èº«ã"
-
-#. Tag: programlisting
-#: session_api.xml:452
#, no-c-format
-msgid ""
-"<![CDATA[Collection blackKittenMates = session.createFilter(\n"
-" pk.getKittens(), \n"
-" \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
-" .list();]]>"
-msgstr ""
+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
-#: session_api.xml:454
-#, fuzzy, 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)乿¯ææä¹çãä¾å¦ï¼ç¨äºå è½½ä¸ä¸ªå¤§éåçåéï¼"
-
-#. Tag: programlisting
-#: session_api.xml:459
#, no-c-format
-msgid ""
-"<![CDATA[Collection tenKittens = session.createFilter(\n"
-" mother.getKittens(), \"\")\n"
-" .setFirstResult(0).setMaxResults(10)\n"
-" .list();]]>"
-msgstr ""
+msgid "Even an empty filter query is useful, e.g. to load a subset of elements in a large collection:"
+msgstr "å³ä½¿æ æ¡ä»¶çè¿æ»¤å¨ï¼filterï¼ä¹æ¯ææä¹çãä¾å¦ï¼ç¨äºå è½½ä¸ä¸ªå¤§éåçåéï¼ "
#. Tag: title
-#: session_api.xml:464
#, no-c-format
msgid "Criteria queries"
-msgstr "æ¡ä»¶æ¥è¯¢(Criteria queries)"
+msgstr "æ¡ä»¶æ¥è¯¢ï¼Criteria queriesï¼"
#. Tag: para
-#: session_api.xml:466
-#, fuzzy, 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ã"
-
-#. Tag: programlisting
-#: session_api.xml:472
#, no-c-format
-msgid ""
-"<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
-"crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
-"crit.setMaxResults(10);\n"
-"List cats = crit.list();]]>"
-msgstr ""
+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
-#: session_api.xml:474
#, 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\"/>ä¸è¯¦ç»è®¨è®ºã"
+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
-#: session_api.xml:482
#, no-c-format
msgid "Queries in native SQL"
-msgstr "使ç¨åçSQLçæ¥è¯¢"
+msgstr "使ç¨åç SQL çæ¥è¯¢"
#. Tag: para
-#: session_api.xml:484
-#, fuzzy, 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å«åç¨å¤§æ¬å·å
å´èµ·æ¥:"
-
-#. Tag: programlisting
-#: session_api.xml:492
#, no-c-format
-msgid ""
-"<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT {cat} "
-"WHERE ROWNUM<10\")\n"
-" .addEntity(\"cat\", Cat.class)\n"
-".list();]]>"
-msgstr ""
+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: programlisting
-#: session_api.xml:494
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[List cats = session.createSQLQuery(\n"
-" \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +\n"
-" \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... \" "
-"+\n"
-" \"FROM CAT {cat} WHERE ROWNUM<10\")\n"
-" .addEntity(\"cat\", Cat.class)\n"
-".list()]]>"
-msgstr ""
+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: para
-#: session_api.xml:496
-#, 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)çä¿¡æ¯ã"
-
#. Tag: title
-#: session_api.xml:507
#, no-c-format
msgid "Modifying persistent objects"
msgstr "ä¿®æ¹æä¹
对象"
#. Tag: para
-#: session_api.xml:509
-#, fuzzy, 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>å®ï¼ç¶åç´æ¥ä¿®æ¹å³å¯ï¼"
-
-#. Tag: programlisting
-#: session_api.xml:520
#, no-c-format
-msgid ""
-"<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long"
-"(69) );\n"
-"cat.setName(\"PK\");\n"
-"sess.flush(); // changes to cat are automatically detected and persisted]]>"
-msgstr ""
+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
-#: session_api.xml:522
-#, fuzzy, 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)å®ä¾ã"
+#, 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ï¼å®ä¾ã "
#. Tag: para
-#: session_api.xml:529
-#, 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æ¬èº«ä¸æä¾ç´æ¥æ§è¡<placeholder-1/>æ<placeholder-2/>è¯å¥ç"
-"APIã Hibernateæä¾çæ¯<placeholder-3/>æå¡ï¼ä½ ä¸å¿
èèè¦ä½¿ç¨ç<placeholder-"
-"4/>ã JDBCæ¯åºè²çæ§è¡SQLè¯å¥çAPIï¼ä»»ä½æ¶åè°ç¨<placeholder-5/>ä½ é½å¯ä»¥å¾å°"
-"ä¸ä¸ªJDBC <placeholder-6/>å¯¹è±¡ã æ¤å¤ï¼å¨èæºäºå¡å¤ç(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
-#: session_api.xml:546
#, no-c-format
msgid "Modifying detached objects"
-msgstr "ä¿®æ¹è±ç®¡(Detached)对象"
+msgstr "ä¿®æ¹è±ç®¡ï¼Detachedï¼å¯¹è±¡"
#. Tag: para
-#: session_api.xml:548
#, 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
-#: session_api.xml:555
#, 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: programlisting
-#: session_api.xml:561
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[// in the first session\n"
-"Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
-"Cat potentialMate = new Cat();\n"
-"firstSession.save(potentialMate);\n"
-"\n"
-"// in a higher layer of the application\n"
-"cat.setMate(potentialMate);\n"
-"\n"
-"// later, in a new session\n"
-"secondSession.update(cat); // update cat\n"
-"secondSession.update(mate); // update mate]]>"
-msgstr ""
+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
-#: session_api.xml:563
#, 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 "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
-#: session_api.xml:569
-#, fuzzy, 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)对象çæä½é¦"
-"å
被æ§è¡ã"
+#, 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
-#: session_api.xml:578
-#, 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 <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
-#: session_api.xml:585
-#, fuzzy, 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)ç对象å¿
é¡»æ¯æ²¡æä¿®æ¹è¿çï¼"
-
-#. Tag: programlisting
-#: session_api.xml:590
#, no-c-format
-msgid ""
-"<![CDATA[//just reassociate:\n"
-"sess.lock(fritz, LockMode.NONE);\n"
-"//do a version check, then reassociate:\n"
-"sess.lock(izi, LockMode.READ);\n"
-"//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
-"sess.lock(pk, LockMode.UPGRADE);]]>"
-msgstr ""
+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
-#: session_api.xml:592
-#, fuzzy, 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>çå¯ä¸ç¨éã"
-
-#. Tag: para
-#: session_api.xml:599
#, no-c-format
-msgid ""
-"Other models for long units of work are discussed in <xref linkend="
-"\"transactions-optimistic\"/>."
-msgstr ""
-"å
¶ä»ç¨äºé¿æ¶é´å·¥ä½åå
çæ¨¡åä¼å¨<xref linkend=\"transactions-optimistic\"/>ä¸"
-"讨论ã"
+msgid "Other models for long units of work are discussed in <xref linkend=\"transactions-optimistic\" />."
+msgstr "å
¶ä»ç¨äºé¿æ¶é´å·¥ä½åå
çæ¨¡åä¼å¨ <xref linkend=\"transactions-optimistic\"/> ä¸è®¨è®ºã "
#. Tag: title
-#: session_api.xml:606
#, no-c-format
msgid "Automatic state detection"
msgstr "èªå¨ç¶ææ£æµ"
#. Tag: para
-#: session_api.xml:608
#, 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: programlisting
-#: session_api.xml:615
-#, no-c-format
-msgid ""
-"<![CDATA[// in the first session\n"
-"Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
-"\n"
-"// in a higher tier of the application\n"
-"Cat mate = new Cat();\n"
-"cat.setMate(mate);\n"
-"\n"
-"// later, in a new session\n"
-"secondSession.saveOrUpdate(cat); // update existing state (cat has a non-"
-"null id)\n"
-"secondSession.saveOrUpdate(mate); // save the new instance (mate has a null "
-"id)]]>"
-msgstr ""
-
#. Tag: para
-#: session_api.xml:617
#, 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
-#: session_api.xml:625
#, 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
-#: session_api.xml:632
#, no-c-format
msgid "the application loads an object in the first session"
-msgstr "ç¨åºå¨ç¬¬ä¸ä¸ªsessionä¸å 载对象"
+msgstr "ç¨åºå¨ç¬¬ä¸ä¸ª session ä¸å 载对象"
#. Tag: para
-#: session_api.xml:637
#, no-c-format
msgid "the object is passed up to the UI tier"
msgstr "è¯¥å¯¹è±¡è¢«ä¼ éå°è¡¨ç°å±"
#. Tag: para
-#: session_api.xml:642
#, no-c-format
msgid "some modifications are made to the object"
msgstr "对象åçäºä¸äºæ¹å¨"
#. Tag: para
-#: session_api.xml:647
#, no-c-format
msgid "the object is passed back down to the business logic tier"
msgstr "该对象被è¿åå°ä¸å¡é»è¾å±"
#. Tag: para
-#: session_api.xml:652
#, no-c-format
-msgid ""
-"the application persists these modifications by calling <literal>update()</"
-"literal> in a second session"
-msgstr "ç¨åºè°ç¨ç¬¬äºä¸ªsessionç<literal>update()</literal>æ¹æ³æä¹
è¿äºæ¹å¨"
+msgid "the application persists these modifications by calling <literal>update()</literal> in a second session"
+msgstr "ç¨åºè°ç¨ç¬¬äºä¸ª session ç <literal>update()</literal> æ¹æ³æä¹
è¿äºæ¹å¨"
#. Tag: para
-#: session_api.xml:659
#, no-c-format
msgid "<literal>saveOrUpdate()</literal> does the following:"
-msgstr "<literal>saveOrUpdate()</literal>åä¸é¢çäº:"
+msgstr "<literal>saveOrUpdate()</literal> åä¸é¢çäºï¼"
#. Tag: para
-#: session_api.xml:665
#, no-c-format
msgid "if the object is already persistent in this session, do nothing"
-msgstr "å¦æå¯¹è±¡å·²ç»å¨æ¬session䏿ä¹
åäºï¼ä¸åä»»ä½äº"
+msgstr "å¦æå¯¹è±¡å·²ç»å¨æ¬ session 䏿ä¹
åäºï¼ä¸åä»»ä½äº"
#. Tag: para
-#: session_api.xml:670
#, 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
-#: session_api.xml:676
#, 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
-#: session_api.xml:681
#, 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
-#: session_api.xml:687
-#, fuzzy, 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>å®ã"
+#, 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> å®ã "
#. Tag: para
-#: session_api.xml:695
#, no-c-format
msgid "otherwise <literal>update()</literal> the object"
-msgstr "å¦å<literal>update()</literal> è¿ä¸ªå¯¹è±¡"
+msgstr "å¦å <literal>update()</literal> è¿ä¸ªå¯¹è±¡"
#. Tag: para
-#: session_api.xml:701
#, no-c-format
msgid "and <literal>merge()</literal> is very different:"
-msgstr "<literal>merge()</literal>å¯é常ä¸å:"
+msgstr "<literal>merge()</literal> å¯é常ä¸åï¼"
#. Tag: para
-#: session_api.xml:707
#, 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
-#: session_api.xml:714
#, 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
-#: session_api.xml:720
#, no-c-format
msgid "the persistent instance is returned"
msgstr "æåè¿å该æä¹
å®ä¾"
#. Tag: para
-#: session_api.xml:725
#, no-c-format
-msgid ""
-"the given instance does not become associated with the session, it remains "
-"detached"
-msgstr "ç¨æ·ç»åºçè¿ä¸ªå¯¹è±¡æ²¡æè¢«å
³èå°sessionä¸ï¼å®ä¾æ§æ¯è±ç®¡ç"
+msgid "the given instance does not become associated with the session, it remains detached"
+msgstr "ç¨æ·ç»åºçè¿ä¸ªå¯¹è±¡æ²¡æè¢«å
³èå° session ä¸ï¼å®ä¾æ§æ¯è±ç®¡ç"
#. Tag: title
-#: session_api.xml:735
#, no-c-format
msgid "Deleting persistent objects"
msgstr "å 餿ä¹
对象"
#. Tag: para
-#: session_api.xml:737
-#, fuzzy, 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)å®ä¾ã"
-
-#. Tag: programlisting
-#: session_api.xml:744
#, no-c-format
-msgid "<![CDATA[sess.delete(cat);]]>"
-msgstr ""
+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
-#: session_api.xml:746
-#, fuzzy, 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>约æå²çªã ä¾å¦"
-"ä½ å é¤äºç¶å¯¹è±¡ï¼ä½æ¯å¿è®°å é¤å©å们ã"
+#, 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> 约æå²çªãä¾å¦ä½ å é¤äºç¶å¯¹è±¡ï¼ä½æ¯å¿è®°å é¤å
¶å对象ã"
#. Tag: title
-#: session_api.xml:757
#, no-c-format
msgid "Replicating object between two different datastores"
msgstr "å¨ä¸¤ä¸ªä¸åæ°æ®åºé´å¤å¶å¯¹è±¡"
#. Tag: para
-#: session_api.xml:759
-#, fuzzy, 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)ï¼å°æä¹
å®ä¾ä»¥åå
¶å
³èçå®ä¾æä¹
å°"
-"ä¸åçæ°æ®åºä¸çæä½ã"
-
-#. Tag: programlisting
-#: session_api.xml:765
#, no-c-format
-msgid ""
-"<![CDATA[//retrieve a cat from one database\n"
-"Session session1 = factory1.openSession();\n"
-"Transaction tx1 = session1.beginTransaction();\n"
-"Cat cat = session1.get(Cat.class, catId);\n"
-"tx1.commit();\n"
-"session1.close();\n"
-"\n"
-"//reconcile with a second database\n"
-"Session session2 = factory2.openSession();\n"
-"Transaction tx2 = session2.beginTransaction();\n"
-"session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
-"tx2.commit();\n"
-"session2.close();]]>"
-msgstr ""
+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
-#: session_api.xml:767
-#, fuzzy, 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>å¦ä½å¤çã"
+#, 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> å¦ä½å¤çã "
#. Tag: para
-#: session_api.xml:774
-#, fuzzy, 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> - 忽ç¥å®"
+#, 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>ï¼å½æä¸ªç°ææ°æ®åºè®°å½å
·æç¸åæ è¯ç¬¦æ¶å¿½ç¥å®"
#. Tag: para
-#: session_api.xml:780
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
-"database row with the same identifier"
-msgstr "<literal>ReplicationMode.OVERWRITE</literal> - è¦çç¸åçè¡"
+#, no-c-format
+msgid "<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing database row with the same identifier"
+msgstr "<literal>ReplicationMode.OVERWRITE</literal>ï¼ç¨ç¸åçæ è¯ç¬¦è¦çç°ææ°æ®åºè®°å½"
#. Tag: para
-#: session_api.xml:786
-#, fuzzy, 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> - æåºå¼å¸¸"
+#, 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>ï¼å½æä¸ªç°ææ°æ®åºè®°å½å
·æç¸åæ è¯ç¬¦æ¶æåºå¼å¸¸"
#. Tag: para
-#: session_api.xml:792
-#, fuzzy, 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> - 妿å½åççæ¬è¾æ°ï¼åè¦"
-"çï¼å¦å忽ç¥"
+#, 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>ï¼å¦æå½åççæ¬è¾æ°ï¼åè¦çï¼å¦å忽ç¥"
#. Tag: para
-#: session_api.xml:800
#, 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
-#: session_api.xml:809
#, no-c-format
msgid "Flushing the Session"
-msgstr "Sessionå·åº(flush)"
+msgstr "Session å·åºï¼flushï¼"
#. Tag: para
-#: session_api.xml:811
-#, fuzzy, 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>ï¼"
-"é»è®¤ä¼å¨ä¸é¢çæ¶é´ç¹æ§è¡ï¼"
+#, 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>ï¼é»è®¤ä¼å¨ä¸é¢çæ¶é´ç¹æ§è¡ï¼ "
#. Tag: para
-#: session_api.xml:820
#, no-c-format
msgid "before some query executions"
msgstr "å¨æäºæ¥è¯¢æ§è¡ä¹å"
#. Tag: para
-#: session_api.xml:825
#, no-c-format
msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
-msgstr "å¨è°ç¨<literal>org.hibernate.Transaction.commit()</literal>çæ¶å"
+msgstr "å¨è°ç¨ <literal>org.hibernate.Transaction.commit()</literal> çæ¶å"
#. Tag: para
-#: session_api.xml:830
#, no-c-format
msgid "from <literal>Session.flush()</literal>"
-msgstr "å¨è°ç¨<literal>Session.flush()</literal>çæ¶å"
+msgstr "å¨è°ç¨ <literal>Session.flush()</literal> çæ¶å"
#. Tag: para
-#: session_api.xml:836
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The SQL statements are issued in the following order:"
-msgstr "æ¶åçSQLè¯å¥ä¼æç
§ä¸é¢ç顺åºååºæ§è¡ï¼"
+msgstr "æ¶åç SQL è¯å¥ä¼æç
§ä¸é¢ç顺åºååºæ§è¡ï¼ "
#. Tag: para
-#: session_api.xml:842
-#, fuzzy, 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>"
-"çæ¶é´é¡ºåº"
+#, 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> çæ¶é´é¡ºåº "
#. Tag: para
-#: session_api.xml:848
#, no-c-format
msgid "all entity updates"
msgstr "ææå¯¹å®ä½è¿è¡æ´æ°çè¯å¥"
#. Tag: para
-#: session_api.xml:853
#, no-c-format
msgid "all collection deletions"
msgstr "ææè¿è¡éåå é¤çè¯å¥"
#. Tag: para
-#: session_api.xml:858
#, no-c-format
msgid "all collection element deletions, updates and insertions"
msgstr "ææå¯¹éåå
ç´ è¿è¡å é¤ï¼æ´æ°æè
æå
¥çè¯å¥"
#. Tag: para
-#: session_api.xml:863
#, no-c-format
msgid "all collection insertions"
msgstr "ææè¿è¡éåæå
¥çè¯å¥"
#. Tag: para
-#: session_api.xml:868
-#, fuzzy, 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>çæ¶é´é¡ºåº"
+#, 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> çæ¶é´é¡ºåº "
#. Tag: para
-#: session_api.xml:875
-#, fuzzy, 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å°±ä¼è¢«æå
¥ãï¼"
+#, 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 å°±ä¼è¢«æå
¥ã"
#. Tag: para
-#: session_api.xml:880
-#, fuzzy, 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>ç»å¯¹ä¸ä¼è¿åå·²ç»å¤±æçæ°"
-"æ®ï¼ä¹ä¸ä¼è¿åéè¯¯æ°æ®ã"
+#, 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> ç»å¯¹ä¸ä¼è¿åå·²ç»å¤±æçæ°æ®ï¼ä¹ä¸ä¼è¿åéè¯¯æ°æ®ã "
#. Tag: para
-#: session_api.xml:888
-#, 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\"/>)."
-
-#. Tag: programlisting
-#: session_api.xml:898
#, no-c-format
-msgid ""
-"<![CDATA[sess = sf.openSession();\n"
-"Transaction tx = sess.beginTransaction();\n"
-"sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale state\n"
-"\n"
-"Cat izi = (Cat) sess.load(Cat.class, id);\n"
-"izi.setName(iznizi);\n"
-"\n"
-"// might return stale data\n"
-"sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
-"\n"
-"// change to izi is not flushed!\n"
-"...\n"
-"tx.commit(); // flush occurs\n"
-"sess.close();]]>"
-msgstr ""
+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
-#: session_api.xml:900
#, 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\"/>ä¸è®¨"
-"论ã"
+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
-#: session_api.xml:909
#, no-c-format
msgid "Transitive persistence"
-msgstr "ä¼ ææ§æä¹
å(transitive persistence)"
+msgstr "ä¼ ææ§æä¹
åï¼transitive persistenceï¼"
#. Tag: para
-#: session_api.xml:911
#, 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
-#: session_api.xml:917
-#, fuzzy, 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ä¼å¨æ°æ®åºä¸å é¤è¿ä¸ªå对象ã"
+#, 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 ä¼å¨æ°æ®åºä¸å é¤è¿ä¸ªå对象ã "
#. Tag: para
-#: session_api.xml:928
-#, fuzzy, 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>ççç¥ã"
+#, 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>ççç¥ã "
#. Tag: para
-#: session_api.xml:937
#, 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: programlisting
-#: session_api.xml:946
-#, no-c-format
-msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
-msgstr ""
-
#. Tag: para
-#: session_api.xml:948
#, no-c-format
msgid "Cascade styles my be combined:"
-msgstr "级è飿 ¼(cascade style)æ¯å¯ç»åç:"
+msgstr "级è飿 ¼ï¼cascade styleï¼æ¯å¯ç»åçï¼"
-#. Tag: programlisting
-#: session_api.xml:952
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
-msgstr ""
+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
-#: session_api.xml:954
-#, fuzzy, 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)ã"
-
-#. Tag: para
-#: session_api.xml:960
#, 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
-#: session_api.xml:967
#, no-c-format
msgid "Recommendations:"
-msgstr "建议:"
+msgstr "建议ï¼"
#. Tag: para
-#: session_api.xml:973
-#, fuzzy, 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>å
³ç³»ä¸æ¯è¾æ"
-"ç¨ã"
+#, 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> å
³ç³»ä¸æ¯è¾æç¨ã "
#. Tag: para
-#: session_api.xml:981
#, 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>èªå¨çå½å¨æç®¡çç对象(life cycle "
-"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
-#: session_api.xml:988
#, 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
-#: session_api.xml:996
#, 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
-#: session_api.xml:1002
-#, fuzzy, 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)æä½åç¡®è¯ä¹å¦ä¸ï¼"
+#, 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ï¼æä½åç¡®è¯ä¹å¦ä¸ï¼ "
#. Tag: para
-#: session_api.xml:1013
#, 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
-#: session_api.xml:1019
#, 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
-#: session_api.xml:1025
#, 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
-#: session_api.xml:1031
#, 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
-#: session_api.xml:1037
#, no-c-format
-msgid ""
-"If a parent is deleted, all children are passed to <literal>delete()</"
-"literal>"
-msgstr "妿ç¶å¯¹è±¡è¢«å é¤ï¼é£ä¹ææå对象ä¹ä¼è¢«<literal>delete()</literal>"
+msgid "If a parent is deleted, all children are passed to <literal>delete()</literal>"
+msgstr "妿ç¶å¯¹è±¡è¢«å é¤ï¼é£ä¹ææå对象ä¹ä¼è¢« <literal>delete()</literal>"
#. Tag: para
-#: session_api.xml:1042
#, 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
-#: session_api.xml:1051
-#, fuzzy, 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çæ¶åæä½ç¨å°ææå¯è§¦åç被å
³è对象ä¸çã"
+#, 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 çæ¶åæä½ç¨å°ææå¯è§¦åç被å
³è对象ä¸çã "
#. Tag: title
-#: session_api.xml:1063
#, no-c-format
msgid "Using metadata"
msgstr "使ç¨å
æ°æ®"
#. Tag: para
-#: session_api.xml:1065
-#, fuzzy, 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çå
æ°æ®æ¥äºè§£åªäºå¯¹è±¡åºè¯¥"
-"被æ·è´ï¼æ¯å¦ï¼å¯åçå¼ç±»åæ°æ®ï¼ï¼ é£äºä¸åºè¯¥ï¼ä¸å¯åçå¼ç±»åæ°æ®ï¼ä¹è®¸è¿ææ"
-"äºè¢«å
³èçå®ä½ï¼ã"
+#, 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 çå
æ°æ®æ¥äºè§£åªäºå¯¹è±¡åºè¯¥è¢«æ·è´ï¼æ¯å¦ï¼å¯åçå¼ç±»åæ°æ®ï¼ï¼é£äºä¸åºè¯¥ï¼ä¸å¯åçå¼ç±»åæ°æ®ï¼ä¹è®¸è¿ææäºè¢«å
³èçå®ä½ï¼ã "
#. Tag: para
-#: session_api.xml:1072
-#, fuzzy, 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>è·åå
æ°æ®æ¥å£çå®ä¾ã"
-
-#. Tag: programlisting
-#: session_api.xml:1079
#, no-c-format
-msgid ""
-"<![CDATA[Cat fritz = ......;\n"
-"ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
-"\n"
-"Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
-"String[] propertyNames = catMeta.getPropertyNames();\n"
-"Type[] propertyTypes = catMeta.getPropertyTypes();\n"
-"\n"
-"// get a Map of all properties which are not collections or associations\n"
-"Map namedValues = new HashMap();\n"
-"for ( int i=0; i<propertyNames.length; i++ ) {\n"
-" if ( !propertyTypes[i].isEntityType() && !propertyTypes[i]."
-"isCollectionType() ) {\n"
-" namedValues.put( propertyNames[i], propertyValues[i] );\n"
-" }\n"
-"}]]>"
-msgstr ""
+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 "UPDATE"
-#~ msgstr "UPDATE"
+#~ msgid ""
+#~ "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
+#~ "fritz.setColor(Color.GINGER);\n"
+#~ "fritz.setSex('M');\n"
+#~ "fritz.setName(\"Fritz\");\n"
+#~ "Long generatedId = (Long) sess.save(fritz);]]>"
+#~ msgstr ""
+#~ "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
+#~ "fritz.setColor(Color.GINGER);\n"
+#~ "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"
+#~ "pk.setSex('F');\n"
+#~ "pk.setName(\"PK\");\n"
+#~ "pk.setKittens( new HashSet() );\n"
+#~ "pk.addKitten(fritz);\n"
+#~ "sess.save( pk, new Long(1234) );]]>"
+#~ msgstr ""
+#~ "<![CDATA[DomesticCat pk = new DomesticCat();\n"
+#~ "pk.setColor(Color.TABBY);\n"
+#~ "pk.setSex('F');\n"
+#~ "pk.setName(\"PK\");\n"
+#~ "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"
+#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+#~ "(id) );]]>"
+#~ msgstr ""
+#~ "<![CDATA[// you need to wrap primitive identifiers\n"
+#~ "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"
+#~ "sess.load( cat, new Long(pkId) );\n"
+#~ "Set kittens = cat.getKittens();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = new DomesticCat();\n"
+#~ "// 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"
+#~ " cat = new Cat();\n"
+#~ " sess.save(cat, id);\n"
+#~ "}\n"
+#~ "return cat;]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
+#~ "if (cat==null) {\n"
+#~ " cat = new Cat();\n"
+#~ " 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"
+#~ "sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ " .setDate(0, date)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List mothers = session.createQuery(\n"
+#~ " \"select mother from Cat as cat join cat.mother as mother where cat."
+#~ "name = ?\")\n"
+#~ " .setString(0, name)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List kittens = session.createQuery(\n"
+#~ " \"from Cat as cat where cat.mother = ?\")\n"
+#~ " .setEntity(0, pk)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "Cat mother = (Cat) session.createQuery(\n"
+#~ " \"select cat.mother from Cat as cat where cat = ?\")\n"
+#~ " .setEntity(0, izi)\n"
+#~ " .uniqueResult();]]\n"
+#~ "\n"
+#~ "Query mothersWithKittens = (Cat) session.createQuery(\n"
+#~ " \"select mother from Cat as mother left join fetch mother.kittens"
+#~ "\");\n"
+#~ "Set uniqueMothers = new HashSet(mothersWithKittens.list());]]>"
+#~ msgstr ""
+#~ "<![CDATA[List cats = session.createQuery(\n"
+#~ " \"from Cat as cat where cat.birthdate < ?\")\n"
+#~ " .setDate(0, date)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List mothers = session.createQuery(\n"
+#~ " \"select mother from Cat as cat join cat.mother as mother where cat."
+#~ "name = ?\")\n"
+#~ " .setString(0, name)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List kittens = session.createQuery(\n"
+#~ " \"from Cat as cat where cat.mother = ?\")\n"
+#~ " .setEntity(0, pk)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "Cat mother = (Cat) session.createQuery(\n"
+#~ " \"select cat.mother from Cat as cat where cat = ?\")\n"
+#~ " .setEntity(0, izi)\n"
+#~ " .uniqueResult();]]\n"
+#~ "\n"
+#~ "Query mothersWithKittens = (Cat) session.createQuery(\n"
+#~ " \"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\")."
+#~ "iterate();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Qux qux = (Qux) iter.next(); // fetch the object\n"
+#~ " // something we couldnt express in the query\n"
+#~ " if ( qux.calculateComplicatedAlgorithm() ) {\n"
+#~ " // delete the current instance\n"
+#~ " iter.remove();\n"
+#~ " // dont need to process the rest\n"
+#~ " break;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// fetch ids\n"
+#~ "Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\")."
+#~ "iterate();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Qux qux = (Qux) iter.next(); // fetch the object\n"
+#~ " // something we couldnt express in the query\n"
+#~ " if ( qux.calculateComplicatedAlgorithm() ) {\n"
+#~ " // delete the current instance\n"
+#~ " iter.remove();\n"
+#~ " // dont need to process the rest\n"
+#~ " break;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
+#~ " \"select kitten, mother from Cat kitten join kitten.mother "
+#~ "mother\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( kittensAndMothers.hasNext() ) {\n"
+#~ " Object[] tuple = (Object[]) kittensAndMothers.next();\n"
+#~ " Cat kitten = (Cat) tuple[0];\n"
+#~ " Cat mother = (Cat) tuple[1];\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
+#~ " \"select kitten, mother from Cat kitten join kitten.mother "
+#~ "mother\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( kittensAndMothers.hasNext() ) {\n"
+#~ " Object[] tuple = (Object[]) kittensAndMothers.next();\n"
+#~ " Cat kitten = (Cat) tuple[0];\n"
+#~ " 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 "
+#~ "\" +\n"
+#~ " \"group by cat.color\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( results.hasNext() ) {\n"
+#~ " Object[] row = (Object[]) results.next();\n"
+#~ " Color type = (Color) row[0];\n"
+#~ " Date oldest = (Date) row[1];\n"
+#~ " Integer count = (Integer) row[2];\n"
+#~ " .....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Iterator results = sess.createQuery(\n"
+#~ " \"select cat.color, min(cat.birthdate), count(cat) from Cat cat "
+#~ "\" +\n"
+#~ " \"group by cat.color\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( results.hasNext() ) {\n"
+#~ " Object[] row = (Object[]) results.next();\n"
+#~ " Color type = (Color) row[0];\n"
+#~ " Date oldest = (Date) row[1];\n"
+#~ " Integer count = (Integer) row[2];\n"
+#~ " .....\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[//named parameter (preferred)\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
+#~ "\");\n"
+#~ "q.setString(\"name\", \"Fritz\");\n"
+#~ "Iterator cats = q.iterate();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//named parameter (preferred)\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
+#~ "\");\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"
+#~ "q.setString(0, \"Izi\");\n"
+#~ "Iterator cats = q.iterate();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//positional parameter\n"
+#~ "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"
+#~ "names.add(\"Izi\");\n"
+#~ "names.add(\"Fritz\");\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:"
+#~ "namesList)\");\n"
+#~ "q.setParameterList(\"namesList\", names);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//named parameter list\n"
+#~ "List names = new ArrayList();\n"
+#~ "names.add(\"Izi\");\n"
+#~ "names.add(\"Fritz\");\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:"
+#~ "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"
+#~ "q.setMaxResults(10);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+#~ "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"
+#~ " \"order by cat.name\");\n"
+#~ "ScrollableResults cats = q.scroll();\n"
+#~ "if ( cats.first() ) {\n"
+#~ "\n"
+#~ " // find the first name on each page of an alphabetical list of cats "
+#~ "by name\n"
+#~ " firstNamesOfPages = new ArrayList();\n"
+#~ " do {\n"
+#~ " String name = cats.getString(0);\n"
+#~ " firstNamesOfPages.add(name);\n"
+#~ " }\n"
+#~ " while ( cats.scroll(PAGE_SIZE) );\n"
+#~ "\n"
+#~ " // Now get the first page of cats\n"
+#~ " pageOfCats = new ArrayList();\n"
+#~ " cats.beforeFirst();\n"
+#~ " int i=0;\n"
+#~ " while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get"
+#~ "(1) );\n"
+#~ "\n"
+#~ "}\n"
+#~ "cats.close()]]>"
+#~ msgstr ""
+#~ "<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from "
+#~ "DomesticCat cat \" +\n"
+#~ " \"order by cat.name\");\n"
+#~ "ScrollableResults cats = q.scroll();\n"
+#~ "if ( cats.first() ) {\n"
+#~ "\n"
+#~ " // find the first name on each page of an alphabetical list of cats "
+#~ "by name\n"
+#~ " firstNamesOfPages = new ArrayList();\n"
+#~ " do {\n"
+#~ " String name = cats.getString(0);\n"
+#~ " firstNamesOfPages.add(name);\n"
+#~ " }\n"
+#~ " while ( cats.scroll(PAGE_SIZE) );\n"
+#~ "\n"
+#~ " // Now get the first page of cats\n"
+#~ " pageOfCats = new ArrayList();\n"
+#~ " cats.beforeFirst();\n"
+#~ " int i=0;\n"
+#~ " while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get"
+#~ "(1) );\n"
+#~ "\n"
+#~ "}\n"
+#~ "cats.close()]]>"
+#~ msgid ""
+#~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>]]>"
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();]]>"
+#~ msgid ""
+#~ "<![CDATA[Collection blackKittens = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"where this.color = ?\")\n"
+#~ " .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
+#~ " .list()\n"
+#~ ");]]>"
+#~ msgstr ""
+#~ "<![CDATA[Collection blackKittens = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"where this.color = ?\")\n"
+#~ " .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
+#~ " .list()\n"
+#~ ");]]>"
+#~ msgid ""
+#~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
+#~ " 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"
+#~ " .setFirstResult(0).setMaxResults(10)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Collection tenKittens = session.createFilter(\n"
+#~ " 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"
+#~ "crit.setMaxResults(10);\n"
+#~ "List cats = crit.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
+#~ "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"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT "
+#~ "{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"
+#~ " \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... "
+#~ "\" +\n"
+#~ " \"FROM CAT {cat} WHERE ROWNUM<10\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list()]]>"
+#~ msgstr ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\n"
+#~ " \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +\n"
+#~ " \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... "
+#~ "\" +\n"
+#~ " \"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"
+#~ "cat.setName(\"PK\");\n"
+#~ "sess.flush(); // changes to cat are automatically detected and "
+#~ "persisted]]>"
+#~ msgstr ""
+#~ "<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long"
+#~ "(69) );\n"
+#~ "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"
+#~ "Cat potentialMate = new Cat();\n"
+#~ "firstSession.save(potentialMate);\n"
+#~ "\n"
+#~ "// in a higher layer of the application\n"
+#~ "cat.setMate(potentialMate);\n"
+#~ "\n"
+#~ "// later, in a new session\n"
+#~ "secondSession.update(cat); // update cat\n"
+#~ "secondSession.update(mate); // update mate]]>"
+#~ msgstr ""
+#~ "<![CDATA[// in the first session\n"
+#~ "Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
+#~ "Cat potentialMate = new Cat();\n"
+#~ "firstSession.save(potentialMate);\n"
+#~ "\n"
+#~ "// in a higher layer of the application\n"
+#~ "cat.setMate(potentialMate);\n"
+#~ "\n"
+#~ "// 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"
+#~ "//do a version check, then reassociate:\n"
+#~ "sess.lock(izi, LockMode.READ);\n"
+#~ "//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
+#~ "sess.lock(pk, LockMode.UPGRADE);]]>"
+#~ msgstr ""
+#~ "<![CDATA[//just reassociate:\n"
+#~ "sess.lock(fritz, LockMode.NONE);\n"
+#~ "//do a version check, then reassociate:\n"
+#~ "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"
+#~ "\n"
+#~ "// in a higher tier of the application\n"
+#~ "Cat mate = new Cat();\n"
+#~ "cat.setMate(mate);\n"
+#~ "\n"
+#~ "// later, in a new session\n"
+#~ "secondSession.saveOrUpdate(cat); // update existing state (cat has a "
+#~ "non-null id)\n"
+#~ "secondSession.saveOrUpdate(mate); // save the new instance (mate has a "
+#~ "null id)]]>"
+#~ msgstr ""
+#~ "<![CDATA[// in the first session\n"
+#~ "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
+#~ "\n"
+#~ "// in a higher tier of the application\n"
+#~ "Cat mate = new Cat();\n"
+#~ "cat.setMate(mate);\n"
+#~ "\n"
+#~ "// later, in a new session\n"
+#~ "secondSession.saveOrUpdate(cat); // update existing state (cat has a "
+#~ "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"
+#~ "Transaction tx1 = session1.beginTransaction();\n"
+#~ "Cat cat = session1.get(Cat.class, catId);\n"
+#~ "tx1.commit();\n"
+#~ "session1.close();\n"
+#~ "\n"
+#~ "//reconcile with a second database\n"
+#~ "Session session2 = factory2.openSession();\n"
+#~ "Transaction tx2 = session2.beginTransaction();\n"
+#~ "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
+#~ "tx2.commit();\n"
+#~ "session2.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//retrieve a cat from one database\n"
+#~ "Session session1 = factory1.openSession();\n"
+#~ "Transaction tx1 = session1.beginTransaction();\n"
+#~ "Cat cat = session1.get(Cat.class, catId);\n"
+#~ "tx1.commit();\n"
+#~ "session1.close();\n"
+#~ "\n"
+#~ "//reconcile with a second database\n"
+#~ "Session session2 = factory2.openSession();\n"
+#~ "Transaction tx2 = session2.beginTransaction();\n"
+#~ "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
+#~ "tx2.commit();\n"
+#~ "session2.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[sess = sf.openSession();\n"
+#~ "Transaction tx = sess.beginTransaction();\n"
+#~ "sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale "
+#~ "state\n"
+#~ "\n"
+#~ "Cat izi = (Cat) sess.load(Cat.class, id);\n"
+#~ "izi.setName(iznizi);\n"
+#~ "\n"
+#~ "// might return stale data\n"
+#~ "sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
+#~ "\n"
+#~ "// change to izi is not flushed!\n"
+#~ "...\n"
+#~ "tx.commit(); // flush occurs\n"
+#~ "sess.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[sess = sf.openSession();\n"
+#~ "Transaction tx = sess.beginTransaction();\n"
+#~ "sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale "
+#~ "state\n"
+#~ "\n"
+#~ "Cat izi = (Cat) sess.load(Cat.class, id);\n"
+#~ "izi.setName(iznizi);\n"
+#~ "\n"
+#~ "// might return stale data\n"
+#~ "sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
+#~ "\n"
+#~ "// change to izi is not flushed!\n"
+#~ "...\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"
+#~ "\n"
+#~ "Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
+#~ "String[] propertyNames = catMeta.getPropertyNames();\n"
+#~ "Type[] propertyTypes = catMeta.getPropertyTypes();\n"
+#~ "\n"
+#~ "// get a Map of all properties which are not collections or associations\n"
+#~ "Map namedValues = new HashMap();\n"
+#~ "for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( !propertyTypes[i].isEntityType() && !propertyTypes[i]."
+#~ "isCollectionType() ) {\n"
+#~ " namedValues.put( propertyNames[i], propertyValues[i] );\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat fritz = ......;\n"
+#~ "ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
+#~ "\n"
+#~ "Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
+#~ "String[] propertyNames = catMeta.getPropertyNames();\n"
+#~ "Type[] propertyTypes = catMeta.getPropertyTypes();\n"
+#~ "\n"
+#~ "// get a Map of all properties which are not collections or associations\n"
+#~ "Map namedValues = new HashMap();\n"
+#~ "for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( !propertyTypes[i].isEntityType() && !propertyTypes[i]."
+#~ "isCollectionType() ) {\n"
+#~ " namedValues.put( propertyNames[i], propertyValues[i] );\n"
+#~ " }\n"
+#~ "}]]>"
-#~ msgid "DELETE"
-#~ msgstr "DELETE"
-
-#~ msgid "state management"
-#~ msgstr "ç¶æç®¡ç(state management)"
-
-#~ msgid "statements"
-#~ msgstr "è¯å¥(statements)"
-
-#~ msgid "Connection"
-#~ msgstr "session.connection()"
-
-#~ msgid "session.connection()"
-#~ msgstr "Connection"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,57 +1,57 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"PO-Revision-Date: 2009-12-04 15:04+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: toolset_guide.xml:29
#, no-c-format
msgid "Toolset Guide"
msgstr "å·¥å
·ç®±æå"
#. Tag: para
-#: toolset_guide.xml:31
-#, fuzzy, no-c-format
+#, 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å
³èç转æ¢ã"
+"å¯ä»¥éè¿ä¸ç³»å Eclipse æä»¶ãå½ä»¤è¡å·¥å
·å Ant 任塿¥è¿è¡ä¸ Hibernate å
³èç转"
+"æ¢ã "
#. Tag: para
-#: toolset_guide.xml:36
-#, fuzzy, no-c-format
+#, 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"
-"çæä»¶ï¼ç¨äºä¸ç°åæ°æ®åºçéåå·¥ç¨ã"
+"é¤äº Ant ä»»å¡å¤ï¼å½åç <emphasis>Hibernate Tools</emphasis> ä¹å
å«äº "
+"Eclipse IDE çæä»¶ï¼ç¨äºä¸ç°åæ°æ®åºçéåå·¥ç¨ã "
#. Tag: para
-#: toolset_guide.xml:42
-#, fuzzy, no-c-format
+#, 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ç¼è¾å¨"
-"æ¹ä¾¿å¾å¤ã"
+"<emphasis>Mapping Editor:</emphasis> Hibernate XML æ å°æä»¶çç¼è¾å¨ï¼æ¯æèªå¨"
+"宿åè¯æ³é«äº®ãå®ä¹æ¯æå¯¹ç±»åå屿§/åæ®µåçè¯ä¹èªå¨å®æï¼æ¯é常ç XML ç¼è¾"
+"卿¹ä¾¿å¾å¤ã "
#. Tag: para
-#: toolset_guide.xml:47
-#, fuzzy, no-c-format
+#, 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 "
@@ -59,13 +59,12 @@
"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䏿µè§ç»æã"
+"<emphasis>Console:</emphasis> Console æ¯ Eclipse çä¸ä¸ªæ°è§å¾ãé¤äºå¯¹ä½ ç "
+"console é
ç½®çæ ç¶æ¦è§ï¼ä½ è¿å¯ä»¥è·å¾å¯¹ä½ æä¹
åç±»åå
¶å
³èç交äºå¼è§å¾ã"
+"Console å
è®¸ä½ å¯¹æ°æ®åºæ§è¡ HQL æ¥è¯¢ï¼å¹¶ç´æ¥å¨ Eclipse 䏿µè§ç»æã "
#. Tag: para
-#: toolset_guide.xml:54
-#, fuzzy, no-c-format
+#, 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 "
@@ -73,442 +72,295 @@
"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 æ å°æä»¶ãååå·¥ç¨æ¯æå¯å®"
-"å¶ç模çã"
+"<emphasis>Development Wizards:</emphasis> å¨ Hibernate Eclipse tools ä¸è¿æä¾"
+"äºå 个å导ï¼ä½ å¯ä»¥ç¨å导快éçæ Hibernate é
ç½®æä»¶ï¼cfg.xmlï¼ï¼ä½ çè³è¿å¯ä»¥"
+"åç°åçæ°æ®åº schema ä¸ååå·¥ç¨åº POJO æºä»£ç ä¸ Hibernate æ å°æä»¶ãååå·¥ç¨"
+"æ¯æå¯å®å¶ç模çã "
#. Tag: para
-#: toolset_guide.xml:67
-#, fuzzy, no-c-format
+#, no-c-format
+msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+msgstr "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+
+#. Tag: para
+#, no-c-format
msgid ""
"Please refer to the <emphasis>Hibernate Tools</emphasis> package "
"documentation for more information."
msgstr ""
-"è¦å¾å°æ´å¤ä¿¡æ¯ï¼è¯·æ¥é
<emphasis>Hibernate Tools</emphasis> å
åå
¶ææ¡£ã"
+"è¦å¾å°æ´å¤ä¿¡æ¯ï¼è¯·æ¥é
<emphasis>Hibernate Tools</emphasis> å
åå
¶ææ¡£ã "
#. Tag: para
-#: toolset_guide.xml:72
-#, fuzzy, no-c-format
+#, 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>ã"
+"åæ¶ï¼Hibernate 主åè¡å
è¿é带äºä¸ä¸ªéæçå·¥å
·ï¼å®çè³å¯ä»¥å¨ Hibernateâå
"
+"é¨âå¿«éè¿è¡ï¼<emphasis>SchemaExport</emphasis> ï¼ä¹å°±æ¯ <literal>hbm2ddl</"
+"literal>ã "
#. Tag: title
-#: toolset_guide.xml:79
#, no-c-format
msgid "Automatic schema generation"
-msgstr "Schemaèªå¨çæï¼Automatic schema generationï¼"
+msgstr "Schema èªå¨çæï¼Automatic schema generationï¼"
#. Tag: para
-#: toolset_guide.xml:81
-#, fuzzy, no-c-format
+#, 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"
-"ä¹ä¼åæ¶çæã"
+"å¯ä»¥ä»ä½ çæ å°æä»¶ä½¿ç¨ä¸ä¸ª Hibernate å·¥å
·çæ DDLãçæç schema å
嫿坹å®ä½"
+"åéå类表ç宿´æ§å¼ç¨çº¦æï¼ä¸»é®åå¤é®ï¼ãæ¶åå°çæ 示符çæå¨æéç表å "
+"sequence ä¹ä¼åæ¶çæã "
#. Tag: para
-#: toolset_guide.xml:88
-#, fuzzy, no-c-format
+#, 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æ¯ä¸ä¾"
-"åºåé«åº¦ç¸å
³çã"
+"å¨ä½¿ç¨è¿ä¸ªå·¥å
·çæ¶åï¼ä½ <emphasis>å¿
é¡»</emphasis> éè¿ <literal>hibernate."
+"dialet</literal> 屿§æå®ä¸ä¸ª SQL<literal> æ¹è¨ï¼Dialetï¼</literal>ï¼å 为 "
+"DDL æ¯ä¸ä¾åºåé«åº¦ç¸å
³çã "
#. Tag: para
-#: toolset_guide.xml:94
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"First, you must customize your mapping files to improve the generated "
"schema. The next section covers schema customization."
-msgstr "é¦å
ï¼è¦å®å¶ä½ çæ å°æä»¶ï¼æ¥æ¹åçæçschemaã"
+msgstr ""
+"é¦å
ï¼è¦å®å¶ä½ çæ å°æä»¶ï¼æ¥æ¹åçæç schemaãä¸ç« å°æ¶µç schema å®å¶ã"
#. Tag: title
-#: toolset_guide.xml:99
#, no-c-format
msgid "Customizing the schema"
-msgstr "对schemaå®å¶å(Customizing the schema)"
+msgstr "对 schema å®å¶åï¼Customizing the schemaï¼"
#. Tag: para
-#: toolset_guide.xml:101
-#, fuzzy, no-c-format
+#, 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>屿§ãä½ å¯ä»¥éè¿è¿"
-"ä¸ªå±æ§è®¾ç½®å段çé¿åº¦ã精度ãå°æ°ç¹ä½æ°ã"
+"å¾å¤ Hibernate æ å°å
ç´ å®ä¹äºå¯éç <literal>length</literal>ã"
+"<literal>precision</literal> æè
<literal>scale</literal> 屿§ãä½ å¯ä»¥éè¿è¿"
+"ä¸ªå±æ§è®¾ç½®å段çé¿åº¦ã精度ãå°æ°ç¹ä½æ°ã "
-#. Tag: programlisting
-#: toolset_guide.xml:108
-#, no-c-format
-msgid "<![CDATA[<property name=\"zip\" length=\"5\"/>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: toolset_guide.xml:109
-#, no-c-format
-msgid "<![CDATA[<property name=\"balance\" precision=\"12\" scale=\"2\"/>]]>"
-msgstr ""
-
#. Tag: para
-#: toolset_guide.xml:111
-#, fuzzy, no-c-format
+#, 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>约æï¼ã"
+"æäº tag è¿æ¥å <literal>not-null</literal> 屿§ï¼ç¨æ¥å¨è¡¨å段ä¸çæ "
+"<literal>NOT NULL</literal> 约æï¼å <literal>unique</literal> 屿§ï¼ç¨æ¥å¨è¡¨"
+"åæ®µä¸çæ <literal>UNIQUE</literal> 约æï¼ã "
-#. Tag: programlisting
-#: toolset_guide.xml:117
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: toolset_guide.xml:119
-#, no-c-format
-msgid ""
-"<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
-"unique=\"true\"/>]]>"
-msgstr ""
-
-#. Tag: para
-#: toolset_guide.xml:121
-#, fuzzy, 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>被å½ä½è¿ä¸ªçº¦æçååï¼å®ä»¬åªæ¯å¨ç¨æ¥å¨æ å°æä»¶å
é¨"
-"ç¨ä½åºåçã"
+"<literal>unique-key</literal> 屿§å¯ä»¥å¯¹æç»çåæ®µæå®ä¸ä¸ªå¯ä¸é®çº¦æï¼unique "
+"key constraintï¼ãç®åï¼<literal>unique-key</literal> 屿§æå®çå¼å¨çæ DDL "
+"æ¶<emphasis>å¹¶ä¸ä¼</emphasis>被å½ä½è¿ä¸ªçº¦æçååï¼å®ä»¬åªæ¯å¨ç¨æ¥å¨æ å°æä»¶å
"
+"é¨ç¨ä½åºåçã "
-#. Tag: programlisting
-#: toolset_guide.xml:129
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<many-to-one name=\"org\" column=\"orgId\" unique-key="
-"\"OrgEmployeeId\"/>\n"
-"<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>]]>"
-msgstr ""
-
-#. Tag: para
-#: toolset_guide.xml:131
-#, fuzzy, 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ã"
+"<literal>index</literal> 屿§ä¼ç¨å¯¹åºçåæ®µï¼ä¸ä¸ªæå¤ä¸ªï¼çæä¸ä¸ª indexï¼å®æ"
+"åºäºè¿ä¸ª index çååã妿å¤ä¸ªå段对åºç index ååç¸åï¼å°±ä¼çæå
å«è¿äºå"
+"段ç indexã "
-#. Tag: programlisting
-#: toolset_guide.xml:137
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
-"<property name=\"firstName\" index=\"CustName\"/>]]>"
-msgstr ""
-
-#. Tag: para
-#: toolset_guide.xml:139
-#, fuzzy, 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>屿§å¯ä»¥ç¨æ¥è¦çä»»ä½çæçå¤é®çº¦æçååã"
+"<literal>foreign-key</literal> 屿§å¯ä»¥ç¨æ¥è¦çä»»ä½çæçå¤é®çº¦æçååã "
-#. Tag: programlisting
-#: toolset_guide.xml:144
-#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/"
-">]]>"
-msgstr ""
-
#. Tag: para
-#: toolset_guide.xml:146
#, 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>åå
ç´ ãè¿å¨å®ä¹è·¨è¶å¤å段"
-"çç±»åæ¶ç¹å«æç¨ã"
+"å¾å¤æ å°å
ç´ è¿æ¥å <literal><column></literal> åå
ç´ ãè¿å¨å®ä¹è·¨è¶å¤å"
+"段çç±»åæ¶ç¹å«æç¨ã"
-#. Tag: programlisting
-#: toolset_guide.xml:151
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
-" <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length=\"30\"/"
-">\n"
-" <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length=\"20\"/"
-">\n"
-" <column name=\"initial\"/>\n"
-"</property>]]>"
-msgstr ""
-
-#. Tag: para
-#: toolset_guide.xml:153
-#, fuzzy, 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>屿§ä¸ºå段æå®ä¸ä¸ªé»è®¤å¼ (å¨ä¿å被æ å°çç±»çæ°å®ä¾"
-"ä¹åï¼ä½ åºè¯¥å°åæ ·çå¼èµäºå¯¹åºç屿§)ã"
+"<literal>default</literal> 屿§ä¸ºå段æå®ä¸ä¸ªé»è®¤å¼ï¼å¨ä¿å被æ å°çç±»çæ°å®ä¾"
+"ä¹åï¼ä½ åºè¯¥å°åæ ·çå¼èµäºå¯¹åºç屿§ï¼ã"
-#. Tag: programlisting
-#: toolset_guide.xml:159
-#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
-" <column name=\"credits\" default=\"10\"/>\n"
-"</property>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: toolset_guide.xml:161
-#, no-c-format
-msgid ""
-"<![CDATA[<version name=\"version\" type=\"integer\" insert=\"false\">\n"
-" <column name=\"version\" default=\"0\"/>\n"
-"</property>]]>"
-msgstr ""
-
#. Tag: para
-#: toolset_guide.xml:163
#, 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æ°æ®ç±»åç"
-"æ å°ã"
+"<literal>sql-type</literal> 屿§å
è®¸ç¨æ·è¦çé»è®¤ç Hibernate ç±»åå° SQL æ°æ®"
+"ç±»åçæ å°ã"
-#. Tag: programlisting
-#: toolset_guide.xml:168
-#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"balance\" type=\"float\">\n"
-" <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
-"</property>]]>"
-msgstr ""
-
#. Tag: para
-#: toolset_guide.xml:170
#, no-c-format
msgid ""
"The <literal>check</literal> attribute allows you to specify a check "
"constraint."
-msgstr "<literal>check</literal>屿§å
è®¸ç¨æ·æå®ä¸ä¸ªçº¦ææ£æ¥ã"
+msgstr "<literal>check</literal> 屿§å
è®¸ç¨æ·æå®ä¸ä¸ªçº¦ææ£æ¥ã"
-#. Tag: programlisting
-#: toolset_guide.xml:174
-#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"foo\" type=\"integer\">\n"
-" <column name=\"foo\" check=\"foo > 10\"/>\n"
-"</property>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: toolset_guide.xml:176
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
-" ...\n"
-" <property name=\"bar\" type=\"float\"/>\n"
-"</class>]]>"
-msgstr ""
-
#. Tag: para
-#: toolset_guide.xml:179
#, no-c-format
msgid "The following table summarizes these optional attributes."
-msgstr ""
+msgstr "ä¸è¡¨æ»ç»äºè¿äºå¯é屿§ï¼"
#. Tag: title
-#: toolset_guide.xml:182
#, no-c-format
msgid "Summary"
-msgstr "Summary"
+msgstr "æ»ç»"
-#. Tag: entry
-#: toolset_guide.xml:189
+#. Tag: para
#, no-c-format
msgid "Attribute"
-msgstr "屿§(Attribute)"
+msgstr "屿§ï¼Attributeï¼"
-#. Tag: entry
-#: toolset_guide.xml:190
+#. Tag: para
#, no-c-format
msgid "Values"
msgstr "å¼ï¼Valuesï¼"
-#. Tag: entry
-#: toolset_guide.xml:191
+#. Tag: para
#, no-c-format
msgid "Interpretation"
msgstr "è§£éï¼Interpretationï¼"
-#. Tag: literal
-#: toolset_guide.xml:196
+#. Tag: para
#, no-c-format
-msgid "length"
-msgstr "length"
+msgid "<literal>length</literal>"
+msgstr "<literal>length</literal>"
-#. Tag: entry
-#: toolset_guide.xml:197 toolset_guide.xml:202 toolset_guide.xml:207
+#. Tag: para
#, no-c-format
msgid "number"
msgstr "æ°å"
-#. Tag: entry
-#: toolset_guide.xml:198
+#. Tag: para
#, no-c-format
msgid "column length"
msgstr "åæ®µé¿åº¦"
-#. Tag: literal
-#: toolset_guide.xml:201
+#. Tag: para
#, no-c-format
-msgid "precision"
-msgstr "precision"
+msgid "<literal>precision</literal>"
+msgstr "<literal>precision</literal>"
-#. Tag: entry
-#: toolset_guide.xml:203
+#. Tag: para
#, no-c-format
msgid "column decimal precision"
-msgstr "精度(decimal precision)"
+msgstr "精度ï¼decimal precisionï¼"
-#. Tag: literal
-#: toolset_guide.xml:206
+#. Tag: para
#, no-c-format
-msgid "scale"
-msgstr "scale"
+msgid "<literal>scale</literal>"
+msgstr "<literal>scale</literal>"
-#. Tag: entry
-#: toolset_guide.xml:208
+#. Tag: para
#, no-c-format
msgid "column decimal scale"
-msgstr "å°æ°ç¹ä½æ°(decimal scale)"
+msgstr "å°æ°ç¹ä½æ°ï¼decimal scaleï¼"
-#. Tag: literal
-#: toolset_guide.xml:211
+#. Tag: para
#, no-c-format
-msgid "not-null"
-msgstr "not-null"
+msgid "<literal>not-null</literal>"
+msgstr "<literal>not-null</literal>"
-#. Tag: literal
-#: toolset_guide.xml:212 toolset_guide.xml:217
+#. Tag: para
#, no-c-format
-msgid "true|false"
-msgstr "true|false"
+msgid "<literal>true|false</literal>"
+msgstr "<literal>true|false</literal>"
-#. Tag: entry
-#: toolset_guide.xml:213
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "specifies that the column should be non-nullable"
-msgstr "ææå段æ¯å¦åºè¯¥æ¯é空ç"
+msgstr "ææå段æ¯å¦åºè¯¥æ¯é空ç "
-#. Tag: literal
-#: toolset_guide.xml:216
+#. Tag: para
#, no-c-format
-msgid "unique"
-msgstr "unique"
+msgid "<literal>unique</literal>"
+msgstr "<literal>unique</literal>"
-#. Tag: entry
-#: toolset_guide.xml:218
+#. Tag: para
#, no-c-format
msgid "specifies that the column should have a unique constraint"
msgstr "æææ¯å¦è¯¥å段å
·ææä¸çº¦æ"
-#. Tag: literal
-#: toolset_guide.xml:221
+#. Tag: para
#, no-c-format
-msgid "index"
-msgstr "index"
+msgid "<literal>index</literal>"
+msgstr "<literal>index</literal>"
-#. Tag: literal
-#: toolset_guide.xml:222
+#. Tag: para
#, no-c-format
-msgid "index_name"
-msgstr "index_name"
+msgid "<literal>index_name</literal>"
+msgstr "<literal>index_name</literal>"
-#. Tag: entry
-#: toolset_guide.xml:223
+#. Tag: para
#, no-c-format
msgid "specifies the name of a (multi-column) index"
-msgstr "ææä¸ä¸ªï¼å¤å段ï¼çç´¢å¼(index)çåå"
+msgstr "ææä¸ä¸ªï¼å¤å段ï¼çç´¢å¼ï¼indexï¼çåå"
-#. Tag: literal
-#: toolset_guide.xml:226
+#. Tag: para
#, no-c-format
-msgid "unique-key"
-msgstr "unique-key"
+msgid "<literal>unique-key</literal>"
+msgstr "<literal>unique-key</literal>"
-#. Tag: literal
-#: toolset_guide.xml:227
+#. Tag: para
#, no-c-format
-msgid "unique_key_name"
-msgstr "unique_key_name"
+msgid "<literal>unique_key_name</literal>"
+msgstr "<literal>unique_key_name</literal>"
-#. Tag: entry
-#: toolset_guide.xml:228
+#. Tag: para
#, no-c-format
msgid "specifies the name of a multi-column unique constraint"
msgstr "ææå¤å段æä¸çº¦æçååï¼åè§ä¸é¢ç说æï¼"
-#. Tag: literal
-#: toolset_guide.xml:231
+#. Tag: para
#, no-c-format
-msgid "foreign-key"
-msgstr "foreign-key"
+msgid "<literal>foreign-key</literal>"
+msgstr "<literal>foreign-key</literal>"
-#. Tag: literal
-#: toolset_guide.xml:232
+#. Tag: para
#, no-c-format
-msgid "foreign_key_name"
-msgstr "foreign_key_name"
+msgid "<literal>foreign_key_name</literal>"
+msgstr "<literal>foreign_key_name</literal>"
-#. Tag: entry
-#: toolset_guide.xml:233
-#, fuzzy, no-c-format
+#. Tag: para
+#, 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-"
@@ -516,555 +368,393 @@
"to-many></literal> mapping element. Note that <literal>inverse=\"true\"</"
"literal> sides will not be considered by <literal>SchemaExport</literal>."
msgstr ""
-"ææä¸ä¸ªå¤é®çååï¼å®æ¯ä¸ºå
³èçæçï¼æè
<placeholder-1/>ï¼<placeholder-2/"
-">, <placeholder-3/>, æè
<placeholder-4/>æ å°å
ç´ ãæ³¨æ<placeholder-5/>å¨"
-"<placeholder-6/>æ¶ä¼è¢«å¿½ç¥ã"
+"ææä¸ä¸ªå¤é®çååï¼å®æ¯ä¸ºå
³èçæçï¼æè
æ¯ä¸º <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: literal
-#: toolset_guide.xml:243
+#. Tag: para
#, no-c-format
-msgid "sql-type"
-msgstr "sql-type"
+msgid "<literal>sql-type</literal>"
+msgstr "<literal>sql-type</literal>"
-#. Tag: literal
-#: toolset_guide.xml:244
+#. Tag: para
#, no-c-format
-msgid "SQL column type"
-msgstr "SQL åæ®µç±»å"
+msgid "<literal>SQL column type</literal>"
+msgstr "<literal>SQL column type</literal>"
-#. Tag: entry
-#: toolset_guide.xml:245
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid ""
"overrides the default column type (attribute of <literal><column></"
"literal> element only)"
-msgstr "è¦çé»è®¤çåæ®µç±»å(åªè½ç¨äº<placeholder-1/>屿§ï¼"
+msgstr "è¦çé»è®¤çåæ®µç±»åï¼åªè½ç¨äº <literal><column></literal> 屿§ï¼"
-#. Tag: literal
-#: toolset_guide.xml:251
+#. Tag: para
#, no-c-format
-msgid "default"
-msgstr "default"
+msgid "<literal>default</literal>"
+msgstr "<literal>default</literal>"
-#. Tag: entry
-#: toolset_guide.xml:252 toolset_guide.xml:259
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "SQL expression"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"SQL表达å¼\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"SQL 表达å¼"
+msgstr "SQL 表达å¼"
-#. Tag: entry
-#: toolset_guide.xml:253
+#. Tag: para
#, no-c-format
msgid "specify a default value for the column"
msgstr "ä¸ºåæ®µæå®é»è®¤å¼"
-#. Tag: literal
-#: toolset_guide.xml:258
+#. Tag: para
#, no-c-format
-msgid "check"
-msgstr "check"
+msgid "<literal>check</literal>"
+msgstr "<literal>check</literal>"
-#. Tag: entry
-#: toolset_guide.xml:260
+#. Tag: para
#, no-c-format
msgid "create an SQL check constraint on either column or table"
-msgstr "坹忮µæè¡¨å å
¥SQLçº¦ææ£æ¥"
+msgstr "坹忮µæè¡¨å å
¥ SQL çº¦ææ£æ¥"
#. Tag: para
-#: toolset_guide.xml:268
#, no-c-format
msgid ""
"The <literal><comment></literal> element allows you to specify "
"comments for the generated schema."
msgstr ""
-"<literal><comment></literal>å
ç´ å¯ä»¥è®©ä½ å¨çæçschemaä¸å å
¥æ³¨éã"
+"<literal><comment></literal> å
ç´ å¯ä»¥è®©ä½ å¨çæç schema ä¸å å
¥æ³¨éã"
-#. Tag: programlisting
-#: toolset_guide.xml:273
+#. Tag: para
#, no-c-format
msgid ""
-"<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
-" <comment>Current customers only</comment>\n"
-" ...\n"
-"</class>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: toolset_guide.xml:275
-#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"balance\">\n"
-" <column name=\"bal\">\n"
-" <comment>Balance in USD</comment>\n"
-" </column>\n"
-"</property>]]>"
-msgstr ""
-
-#. Tag: para
-#: toolset_guide.xml:277
-#, fuzzy, 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>è¯å¥(åè¥æ¯æçè¯)ã"
+"ç»ææ¯å¨çæç DDL ä¸å
å« <literal>comment on table</literal> æè
"
+"<literal>comment on column</literal> è¯å¥ï¼åè¥æ¯æçè¯ï¼ã "
#. Tag: title
-#: toolset_guide.xml:286
#, no-c-format
msgid "Running the tool"
msgstr "è¿è¡è¯¥å·¥å
·"
#. Tag: para
-#: toolset_guide.xml:288
#, 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è¯"
-"å¥ã"
+"<literal>SchemaExport</literal> å·¥å
·æ DDL èæ¬åå°æ åè¾åºï¼åæ¶/æè
æ§è¡ "
+"DDL è¯å¥ã"
#. Tag: para
-#: toolset_guide.xml:293
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The following table displays the <literal>SchemaExport</literal> command "
"line options"
-msgstr "<literal>SchemaExport</literal>å½ä»¤è¡é项"
+msgstr "ä¸è¡¨æ¾ç¤ºäº <literal>SchemaExport</literal> å½ä»¤è¡é项"
#. Tag: para
-#: toolset_guide.xml:295
#, 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>"
#. Tag: title
-#: toolset_guide.xml:301
#, no-c-format
msgid "<literal>SchemaExport</literal> Command Line Options"
-msgstr "<literal>SchemaExport</literal>å½ä»¤è¡é项"
+msgstr "<literal>SchemaExport</literal> å½ä»¤è¡é项"
-#. Tag: entry
-#: toolset_guide.xml:307 toolset_guide.xml:457 toolset_guide.xml:526
+#. Tag: para
#, no-c-format
msgid "Option"
msgstr "é项"
-#. Tag: entry
-#: toolset_guide.xml:308 toolset_guide.xml:395 toolset_guide.xml:458
-#: toolset_guide.xml:527
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "Description"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"说æ\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"说æ\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"说æ\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æè¿°"
+msgstr "æè¿°"
-#. Tag: literal
-#: toolset_guide.xml:313 toolset_guide.xml:463
+#. Tag: para
#, no-c-format
-msgid "--quiet"
-msgstr "--quiet"
+msgid "<literal>--quiet</literal>"
+msgstr "<literal>--quiet</literal>"
-#. Tag: entry
-#: toolset_guide.xml:314 toolset_guide.xml:464
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "do not output the script to stdout"
-msgstr "ä¸è¦æèæ¬è¾åºå°stdout"
+msgstr "ä¸è¦æèæ¬è¾åºå° stdout "
-#. Tag: literal
-#: toolset_guide.xml:317
+#. Tag: para
#, no-c-format
-msgid "--drop"
-msgstr "--drop"
+msgid "<literal>--drop</literal>"
+msgstr "<literal>--drop</literal>"
-#. Tag: entry
-#: toolset_guide.xml:318
+#. Tag: para
#, no-c-format
msgid "only drop the tables"
-msgstr "åªè¿è¡drop tablesçæ¥éª¤"
+msgstr "åªè¿è¡ drop tables çæ¥éª¤"
-#. Tag: literal
-#: toolset_guide.xml:321
+#. Tag: para
#, no-c-format
-msgid "--create"
-msgstr "--create"
+msgid "<literal>--create</literal>"
+msgstr "<literal>--create</literal>"
-#. Tag: entry
-#: toolset_guide.xml:322
+#. Tag: para
#, no-c-format
msgid "only create the tables"
msgstr "åªå建表"
-#. Tag: literal
-#: toolset_guide.xml:325 toolset_guide.xml:467
+#. Tag: para
#, no-c-format
-msgid "--text"
-msgstr "--text"
+msgid "<literal>--text</literal>"
+msgstr "<literal>--text</literal>"
-#. Tag: entry
-#: toolset_guide.xml:326
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "do not export to the database"
-msgstr "䏿§è¡å¨æ°æ®åºä¸è¿è¡çæ¥éª¤"
+msgstr "䏿§è¡å¨æ°æ®åºä¸è¿è¡çæ¥éª¤ "
-#. Tag: literal
-#: toolset_guide.xml:329
+#. Tag: para
#, no-c-format
-msgid "--output=my_schema.ddl"
-msgstr "--output=my_schema.ddl"
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>--output=my_schema.ddl</literal>"
-#. Tag: entry
-#: toolset_guide.xml:330
+#. Tag: para
#, no-c-format
msgid "output the ddl script to a file"
-msgstr "æè¾åºçddlèæ¬è¾åºå°ä¸ä¸ªæä»¶"
+msgstr "æè¾åºç ddl èæ¬è¾åºå°ä¸ä¸ªæä»¶"
-#. Tag: literal
-#: toolset_guide.xml:333 toolset_guide.xml:471 toolset_guide.xml:532
+#. Tag: para
#, no-c-format
-msgid "--naming=eg.MyNamingStrategy"
-msgstr "--naming=eg.MyNamingStrategy"
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
-#. Tag: entry
-#: toolset_guide.xml:334 toolset_guide.xml:472 toolset_guide.xml:533
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "select a <literal>NamingStrategy</literal>"
-msgstr "å¨<literal>hibernate.properties</literal>æä»¶ä¸"
+msgstr "éæ© <literal>NamingStrategy</literal>"
-#. Tag: literal
-#: toolset_guide.xml:337 toolset_guide.xml:479 toolset_guide.xml:540
+#. Tag: para
#, no-c-format
-msgid "--config=hibernate.cfg.xml"
-msgstr "--config=hibernate.cfg.xml"
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "<literal>--config=hibernate.cfg.xml</literal>"
-#. Tag: entry
-#: toolset_guide.xml:338
+#. Tag: para
#, no-c-format
msgid "read Hibernate configuration from an XML file"
-msgstr "ä»XMLæä»¶è¯»å
¥Hibernateé
ç½®"
+msgstr "ä» XML æä»¶è¯»å
¥ Hibernate é
ç½®"
-#. Tag: literal
-#: toolset_guide.xml:341 toolset_guide.xml:475 toolset_guide.xml:536
+#. Tag: para
#, no-c-format
-msgid "--properties=hibernate.properties"
-msgstr "--properties=hibernate.properties"
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "<literal>--properties=hibernate.properties</literal>"
-#. Tag: entry
-#: toolset_guide.xml:342 toolset_guide.xml:476 toolset_guide.xml:537
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "read database properties from a file"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"ä»æä»¶è¯»å
¥æ°æ®åºå±æ§\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"ä»æå®æä»¶è¯»å
¥æ°æ®åºå±æ§\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"仿件ä¸è¯»åæ°æ®åºå±æ§"
+msgstr "ä»æä»¶è¯»å
¥æ°æ®åºå±æ§"
-#. Tag: literal
-#: toolset_guide.xml:345
+#. Tag: para
#, no-c-format
-msgid "--format"
-msgstr "--format"
+msgid "<literal>--format</literal>"
+msgstr "<literal>--format</literal>"
-#. Tag: entry
-#: toolset_guide.xml:346
+#. Tag: para
#, no-c-format
msgid "format the generated SQL nicely in the script"
-msgstr "æèæ¬ä¸çSQLè¯å¥å¯¹é½åç¾å"
+msgstr "æèæ¬ä¸ç SQL è¯å¥å¯¹é½åç¾å"
-#. Tag: literal
-#: toolset_guide.xml:349
+#. Tag: para
#, no-c-format
-msgid "--delimiter=;"
-msgstr "--delimiter=;"
+msgid "<literal>--delimiter=;</literal>"
+msgstr "<literal>--delimiter=;</literal>"
-#. Tag: entry
-#: toolset_guide.xml:350
+#. Tag: para
#, no-c-format
msgid "set an end of line delimiter for the script"
msgstr "ä¸ºèæ¬è®¾ç½®è¡ç»æç¬¦"
#. Tag: para
-#: toolset_guide.xml:356
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can even embed <literal>SchemaExport</literal> in your application:"
-msgstr "ä½ çè³å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥<literal>SchemaExport</literal>å·¥å
·:"
+msgstr "ä½ çè³å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥ <literal>SchemaExport</literal> å·¥å
·ï¼ "
-#. Tag: programlisting
-#: toolset_guide.xml:360
-#, no-c-format
-msgid ""
-"<![CDATA[Configuration cfg = ....;\n"
-"new SchemaExport(cfg).create(false, true);]]>"
-msgstr ""
-
#. Tag: title
-#: toolset_guide.xml:365
#, no-c-format
msgid "Properties"
-msgstr "屿§(Properties)"
+msgstr "屿§ï¼Propertiesï¼"
#. Tag: para
-#: toolset_guide.xml:367
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Database properties can be specified:"
-msgstr "å¯ä»¥éè¿å¦ä¸æ¹å¼æå®æ°æ®åºå±æ§:"
+msgstr "å¯ä»¥éè¿å¦ä¸æ¹å¼æå®æ°æ®åºå±æ§ï¼ "
#. Tag: para
-#: toolset_guide.xml:373
#, no-c-format
msgid ""
"as system properties with <literal>-D</literal><emphasis><property></"
"emphasis>"
-msgstr "éè¿<literal>-D</literal><emphasis><property></emphasis>ç³»ç»åæ°"
+msgstr ""
+"éè¿ <literal>-D</literal><emphasis><property></emphasis> ç³»ç»åæ°"
#. Tag: para
-#: toolset_guide.xml:376
#, no-c-format
msgid "in <literal>hibernate.properties</literal>"
-msgstr "å¨<literal>hibernate.properties</literal>æä»¶ä¸"
+msgstr "å¨ <literal>hibernate.properties</literal> æä»¶ä¸"
#. Tag: para
-#: toolset_guide.xml:379
#, no-c-format
msgid "in a named properties file with <literal>--properties</literal>"
msgstr ""
-"ä½äºä¸ä¸ªå
¶å®ååçpropertiesæä»¶ä¸,ç¶åç¨ <literal>--properties</literal>åæ°"
-"æå®"
+"ä½äºä¸ä¸ªå
¶å®ååç properties æä»¶ä¸,ç¶åç¨ <literal>--properties</literal> "
+"åæ°æå®"
#. Tag: para
-#: toolset_guide.xml:383
#, no-c-format
msgid "The needed properties are:"
-msgstr "æéçåæ°å
æ¬:"
+msgstr "æéçåæ°å
æ¬ï¼"
#. Tag: title
-#: toolset_guide.xml:388
#, no-c-format
msgid "SchemaExport Connection Properties"
msgstr "SchemaExport è¿æ¥å±æ§"
-#. Tag: entry
-#: toolset_guide.xml:394
+#. Tag: para
#, no-c-format
msgid "Property Name"
msgstr "屿§å"
-#. Tag: literal
-#: toolset_guide.xml:400
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.driver_class"
-msgstr "hibernate.connection.driver_class"
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr "<literal>hibernate.connection.driver_class</literal>"
-#. Tag: entry
-#: toolset_guide.xml:401
+#. Tag: para
#, no-c-format
msgid "jdbc driver class"
msgstr "jdbc driver class"
-#. Tag: literal
-#: toolset_guide.xml:404
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.url"
-msgstr "hibernate.connection.url"
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "<literal>hibernate.connection.url</literal>"
-#. Tag: entry
-#: toolset_guide.xml:405
+#. Tag: para
#, no-c-format
msgid "jdbc url"
msgstr "jdbc url"
-#. Tag: literal
-#: toolset_guide.xml:408
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.username"
-msgstr "hibernate.connection.username"
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "<literal>hibernate.connection.username</literal>"
-#. Tag: entry
-#: toolset_guide.xml:409
+#. Tag: para
#, no-c-format
msgid "database user"
msgstr "database user"
-#. Tag: literal
-#: toolset_guide.xml:412
+#. Tag: para
#, no-c-format
-msgid "hibernate.connection.password"
-msgstr "hibernate.connection.password"
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "<literal>hibernate.connection.password</literal>"
-#. Tag: entry
-#: toolset_guide.xml:413
+#. Tag: para
#, no-c-format
msgid "user password"
msgstr "user password"
-#. Tag: literal
-#: toolset_guide.xml:416
+#. Tag: para
#, no-c-format
-msgid "hibernate.dialect"
-msgstr "hibernate.dialect"
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
-#. Tag: entry
-#: toolset_guide.xml:417
+#. Tag: para
#, no-c-format
msgid "dialect"
-msgstr "æ¹è¨(dialect)"
+msgstr "æ¹è¨ï¼dialectï¼"
#. Tag: title
-#: toolset_guide.xml:426
#, no-c-format
msgid "Using Ant"
-msgstr "使ç¨Ant(Using Ant)"
+msgstr "ä½¿ç¨ Antï¼Using Antï¼"
#. Tag: para
-#: toolset_guide.xml:428
#, no-c-format
msgid ""
"You can call <literal>SchemaExport</literal> from your Ant build script:"
-msgstr "ä½ å¯ä»¥å¨ä½ çAnt buildèæ¬ä¸è°ç¨<literal>SchemaExport</literal>:"
+msgstr "ä½ å¯ä»¥å¨ä½ ç Ant build èæ¬ä¸è°ç¨ <literal>SchemaExport</literal>ï¼"
-#. Tag: programlisting
-#: toolset_guide.xml:432
-#, no-c-format
-msgid ""
-"<![CDATA[<target name=\"schemaexport\">\n"
-" <taskdef name=\"schemaexport\"\n"
-" classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
-" classpathref=\"class.path\"/>\n"
-" \n"
-" <schemaexport\n"
-" properties=\"hibernate.properties\"\n"
-" quiet=\"no\"\n"
-" text=\"no\"\n"
-" drop=\"no\"\n"
-" delimiter=\";\"\n"
-" output=\"schema-export.sql\">\n"
-" <fileset dir=\"src\">\n"
-" <include name=\"**/*.hbm.xml\"/>\n"
-" </fileset>\n"
-" </schemaexport>\n"
-"</target>]]>"
-msgstr ""
-
#. Tag: title
-#: toolset_guide.xml:437
#, no-c-format
msgid "Incremental schema updates"
-msgstr "对schemaçå¢éæ´æ°(Incremental schema updates)"
+msgstr "对 schema çå¢éæ´æ°ï¼Incremental schema updatesï¼"
#. Tag: para
-#: toolset_guide.xml:439
-#, fuzzy, no-c-format
+#, 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驱å¨é½ææã"
+"<literal>SchemaUpdate</literal> å·¥å
·å¯¹å·²åå¨ç schema éç¨\"å¢é\"æ¹å¼è¿è¡æ´"
+"æ°ã注æ <literal>SchemaUpdate</literal> 严éä¾èµäº JDBC metadata APIï¼æä»¥å®"
+"å¹¶éå¯¹ææ JDBC 驱å¨é½ææã "
#. Tag: para
-#: toolset_guide.xml:445
#, 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>"
#. Tag: title
-#: toolset_guide.xml:451
#, no-c-format
msgid "<literal>SchemaUpdate</literal> Command Line Options"
-msgstr "<literal>SchemaUpdate</literal>å½ä»¤è¡é项"
+msgstr "<literal>SchemaUpdate</literal> å½ä»¤è¡é项"
-#. Tag: entry
-#: toolset_guide.xml:468
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "do not export the script to the database"
-msgstr "ä¸æèæ¬è¾åºå°æ°æ®åº"
+msgstr "ä¸æèæ¬è¾åºå°æ°æ®åº "
-#. Tag: entry
-#: toolset_guide.xml:480 toolset_guide.xml:541
-#, fuzzy, no-c-format
+#. Tag: para
+#, no-c-format
msgid "specify a <literal>.cfg.xml</literal> file"
-msgstr ""
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æå®ä¸ä¸ª <placeholder-1/>æä»¶\n"
-"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-"æå®ä¸ä¸ª<placeholder-1/>æä»¶"
+msgstr "æå®ä¸ä¸ª <literal>.cfg.xml</literal> æä»¶"
#. Tag: para
-#: toolset_guide.xml:486
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
-msgstr "ä½ å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥<literal>SchemaUpdate</literal>å·¥å
·:"
+msgstr "ä½ å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥ <literal>SchemaUpdate</literal> å·¥å
·ï¼ "
-#. Tag: programlisting
-#: toolset_guide.xml:490
-#, no-c-format
-msgid ""
-"<![CDATA[Configuration cfg = ....;\n"
-"new SchemaUpdate(cfg).execute(false);]]>"
-msgstr ""
-
#. Tag: title
-#: toolset_guide.xml:495
#, no-c-format
msgid "Using Ant for incremental schema updates"
-msgstr "ç¨Antæ¥å¢éæ´æ°schema(Using Ant for incremental schema updates)"
+msgstr "ç¨ Ant æ¥å¢éæ´æ° schemaï¼Using Ant for incremental schema updatesï¼"
#. Tag: para
-#: toolset_guide.xml:497
#, no-c-format
msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
-msgstr "ä½ å¯ä»¥å¨Antèæ¬ä¸è°ç¨<literal>SchemaUpdate</literal>ï¼"
+msgstr "ä½ å¯ä»¥å¨ Ant èæ¬ä¸è°ç¨ <literal>SchemaUpdate</literal>ï¼"
-#. Tag: programlisting
-#: toolset_guide.xml:501
-#, no-c-format
-msgid ""
-"<![CDATA[<target name=\"schemaupdate\">\n"
-" <taskdef name=\"schemaupdate\"\n"
-" classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
-" classpathref=\"class.path\"/>\n"
-" \n"
-" <schemaupdate\n"
-" properties=\"hibernate.properties\"\n"
-" quiet=\"no\">\n"
-" <fileset dir=\"src\">\n"
-" <include name=\"**/*.hbm.xml\"/>\n"
-" </fileset>\n"
-" </schemaupdate>\n"
-"</target>]]>"
-msgstr ""
-
#. Tag: title
-#: toolset_guide.xml:506
#, no-c-format
msgid "Schema validation"
msgstr "Schema æ ¡éª"
#. Tag: para
-#: toolset_guide.xml:508
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The <literal>SchemaValidator</literal> tool will validate that the existing "
"database schema \"matches\" your mapping documents. The "
@@ -1072,123 +762,384 @@
"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驱å¨é½éç¨ãè¿ä¸å·¥å
·å¨æµè¯çæ¶åç¹å«æç¨ã"
+"<literal>SchemaValidator</literal> å·¥å
·ä¼æ¯è¾æ°æ®åºç°ç¶æ¯å¦ä¸æ å°ææ¡£âå¹é
âã"
+"注æï¼<literal>SchemaValidator</literal> 严éä¾èµäº JDBC ç metadata APIï¼å "
+"æ¤ä¸æ¯å¯¹ææç JDBC 驱å¨é½éç¨ãè¿ä¸å·¥å
·å¨æµè¯çæ¶åç¹å«æç¨ã "
#. Tag: para
-#: toolset_guide.xml:514
#, 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>"
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaValidator</literal> command "
+"line options:"
+msgstr "ä¸è¡¨æ¾ç¤ºäº <literal>SchemaValidator</literal> å½ä»¤è¡åæ°ï¼"
+
#. Tag: title
-#: toolset_guide.xml:520
#, no-c-format
msgid "<literal>SchemaValidator</literal> Command Line Options"
-msgstr "<literal>SchemaValidator</literal>å½ä»¤è¡åæ°"
+msgstr "<literal>SchemaValidator</literal> å½ä»¤è¡åæ°"
#. Tag: para
-#: toolset_guide.xml:547
-#, fuzzy, no-c-format
+#, no-c-format
msgid "You can embed <literal>SchemaValidator</literal> in your application:"
-msgstr "ä½ å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥<literal>SchemaValidator</literal>ï¼"
+msgstr "ä½ å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥ <literal>SchemaValidator</literal>ï¼ "
-#. Tag: programlisting
-#: toolset_guide.xml:551
-#, no-c-format
-msgid ""
-"<![CDATA[Configuration cfg = ....;\n"
-"new SchemaValidator(cfg).validate();]]>"
-msgstr ""
-
#. Tag: title
-#: toolset_guide.xml:556
#, no-c-format
msgid "Using Ant for schema validation"
-msgstr "使ç¨Antè¿è¡schemaæ ¡éª"
+msgstr "ä½¿ç¨ Ant è¿è¡ schema æ ¡éª"
#. Tag: para
-#: toolset_guide.xml:558
#, no-c-format
msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
-msgstr "ä½ å¯ä»¥å¨Antèæ¬ä¸è°ç¨<literal>SchemaValidator</literal>:"
+msgstr "ä½ å¯ä»¥å¨ Ant èæ¬ä¸è°ç¨ <literal>SchemaValidator</literal>ï¼"
-#. Tag: programlisting
-#: toolset_guide.xml:562
-#, no-c-format
-msgid ""
-"<![CDATA[<target name=\"schemavalidate\">\n"
-" <taskdef name=\"schemavalidator\"\n"
-" classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
-" classpathref=\"class.path\"/>\n"
-" \n"
-" <schemavalidator\n"
-" properties=\"hibernate.properties\">\n"
-" <fileset dir=\"src\">\n"
-" <include name=\"**/*.hbm.xml\"/>\n"
-" </fileset>\n"
-" </schemavalidator>\n"
-"</target>]]>"
-msgstr ""
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"zip\" length=\"5\"/>]]>"
+#~ msgstr "<property name=\"zip\" length=\"5\"/>"
-#~ msgid "Ant Tasks:"
-#~ msgstr "Ant Tasks:"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" precision=\"12\" scale=\"2\"/>]]>"
+#~ msgstr "<property name=\"balance\" precision=\"12\" scale=\"2\"/>"
-#~ msgid "<one-to-one>"
-#~ msgstr "<one-to-one>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>"
-#~ msgid "<many-to-one>"
-#~ msgstr "<many-to-one>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>"
-#~ msgid "<key>"
-#~ msgstr "<key>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"org\" column=\"orgId\" unique-key="
+#~ "\"OrgEmployeeId\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"org\" column=\"orgId\" unique-key=\"OrgEmployeeId"
+#~ "\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>"
-#~ msgid "<many-to-many>"
-#~ msgstr "<many-to-many>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>"
-#~ msgid "inverse=\"true\""
-#~ msgstr "inverse=\"true\""
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar"
+#~ "\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/"
+#~ ">"
-#~ msgid "SchemaExport"
-#~ msgstr "SchemaExport"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length=\"30"
+#~ "\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length=\"20"
+#~ "\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"30\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"20\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>"
-#~ msgid "<column>"
-#~ msgstr "<column>"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>"
-#~ msgid "java -cp"
-#~ msgstr "java -cp"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>"
-#~ msgid "hibernate_classpaths"
-#~ msgstr "hibernate_classpaths"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>"
-#~ msgid "org.hibernate.tool.hbm2ddl.SchemaExport"
-#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaExport"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>"
-#~ msgid "options mapping_files"
-#~ msgstr "options mapping_files"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>"
-#~ msgid "NamingStrategy"
-#~ msgstr "NamingStrategy"
+#~ 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"
+
+#~ msgid "sql-type"
+#~ msgstr "sql-type"
+
+#~ msgid "default"
+#~ msgstr "default"
+
+#~ msgid "check"
+#~ msgstr "check"
+
#, fuzzy
-#~ msgid "select a <placeholder-1/>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>]]>"
#~ msgstr ""
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "éæ©ä¸ä¸ªå½åçç¥(<placeholder-1/>)\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "éæ©ä¸ä¸ªå½åçç¥ (<placeholder-1/>)\n"
-#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "éæ©ä¸ä¸ªå½åçç¥ (<placeholder-1/>)"
+#~ "<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>"
-#~ msgid "org.hibernate.tool.hbm2ddl.SchemaUpdate"
-#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaUpdate"
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>"
-#~ msgid ".cfg.xml"
-#~ msgstr ".cfg.xml"
+#~ msgid "--quiet"
+#~ msgstr "--quiet"
-#~ msgid "org.hibernate.tool.hbm2ddl.SchemaValidator"
-#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaValidator"
+#~ msgid "--drop"
+#~ msgstr "--drop"
+
+#~ msgid "--create"
+#~ msgstr "--create"
+
+#~ msgid "--text"
+#~ msgstr "--text"
+
+#~ msgid "--properties=hibernate.properties"
+#~ msgstr "--properties=hibernate.properties"
+
+#~ msgid "--format"
+#~ msgstr "--format"
+
+#~ msgid "--delimiter=;"
+#~ msgstr "--delimiter=;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaExport(cfg).create(false, true);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaExport(cfg).create(false, true);"
+
+#~ 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"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemavalidator>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/transactions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/transactions.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/transactions.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,1945 +1,922 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"PO-Revision-Date: 2010-01-11 10:41+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: transactions.xml:29
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Transactions and Concurrency"
-msgstr "äºå¡åå¹¶å"
+msgstr "äºå¡åå¹¶å "
#. Tag: para
-#: transactions.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"The most important point about Hibernate and concurrency control is that it "
-"is easy to understand. Hibernate directly uses JDBC connections and JTA "
-"resources without adding any additional locking behavior. It is recommended "
-"that you spend some time with the JDBC, ANSI, and transaction isolation "
-"specification of your database management system."
-msgstr ""
-"Hibernateçäºå¡åå¹¶åæ§å¶å¾å®¹æææ¡ãHibernateç´æ¥ä½¿ç¨JDBCè¿æ¥åJTAèµæºï¼ä¸æ·»"
-"å ä»»ä½éå éå® è¡ä¸ºãæä»¬å¼ºçæ¨èä½ è±ç¹æ¶é´äºè§£JDBCç¼ç¨ï¼ANSI SQLæ¥è¯¢è¯è¨åä½ "
-"ä½¿ç¨ çæ°æ®åºç³»ç»çäºå¡é离è§èã"
+#, no-c-format
+msgid "The most important point about Hibernate and concurrency control is that it is easy to understand. Hibernate directly uses JDBC connections and JTA resources without adding any additional locking behavior. It is recommended that you spend some time with the JDBC, ANSI, and transaction isolation specification of your database management system."
+msgstr "Hibernate çäºå¡åå¹¶åæ§å¶å¾å®¹æææ¡ãHibernate ç´æ¥ä½¿ç¨ JDBC è¿æ¥å JTA èµæºï¼ä¸æ·»å ä»»ä½éå éå®è¡ä¸ºãæä»¬å¼ºçæ¨èä½ è±ç¹æ¶é´äºè§£ JDBC ç¼ç¨ï¼ANSI SQL æ¥è¯¢è¯è¨åä½ ä½¿ç¨çæ°æ®åºç³»ç»çäºå¡é离è§èã "
#. Tag: para
-#: transactions.xml:38
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate does not lock objects in memory. Your application can expect the "
-"behavior as defined by the isolation level of your database transactions. "
-"Through <literal>Session</literal>, which is also a transaction-scoped "
-"cache, Hibernate provides repeatable reads for lookup by identifier and "
-"entity queries and not reporting queries that return scalar values."
-msgstr ""
-"Hibernateä¸éå®å
åä¸ç对象ãä½ çåºç¨ç¨åºä¼æç
§ä½ çæ°æ®åºäºå¡çé离级å«è§å®ç"
-"飿 ·è¿ä½ãå¹¸äºæäº<literal>Session</literal>ï¼ä½¿å¾Hibernateéè¿æ è¯ç¬¦æ¥æ¾ï¼å"
-"å®ä½æ¥è¯¢ï¼ä¸æ¯è¿åæ éå¼çæ¥è¡¨æ¥è¯¢ï¼æä¾äºå¯éå¤ç读åï¼Repeatable readsï¼å"
-"è½ï¼<literal>Session</literal>忶乿¯äºå¡èå´å
çç¼åï¼cacheï¼ã"
+#, no-c-format
+msgid "Hibernate does not lock objects in memory. Your application can expect the behavior as defined by the isolation level of your database transactions. Through <literal>Session</literal>, which is also a transaction-scoped cache, Hibernate provides repeatable reads for lookup by identifier and entity queries and not reporting queries that return scalar values."
+msgstr "Hibernate ä¸éå®å
åä¸ç对象ãä½ çåºç¨ç¨åºä¼æç
§ä½ çæ°æ®åºäºå¡çé离级å«è§å®ç飿 ·è¿ä½ãå¹¸äºæäº <literal>Session</literal>ï¼ä½¿å¾ Hibernate éè¿æ è¯ç¬¦æ¥æ¾ï¼åå®ä½æ¥è¯¢ï¼ä¸æ¯è¿åæ éå¼çæ¥è¡¨æ¥è¯¢ï¼æä¾äºå¯éå¤ç读åï¼Repeatable readsï¼åè½ï¼<literal>Session</literal> 忶乿¯äºå¡èå´å
çç¼åï¼cacheï¼ã "
#. Tag: para
-#: transactions.xml:46
-#, fuzzy, no-c-format
-msgid ""
-"In addition to versioning for automatic optimistic concurrency control, "
-"Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> "
-"syntax, a (minor) API for pessimistic locking of rows. Optimistic "
-"concurrency control and this API are discussed later in this chapter."
-msgstr ""
-"é¤äºå¯¹èªå¨ä¹è§å¹¶åæ§å¶æä¾çæ¬ç®¡çï¼é对è¡çº§æ²è§éå®ï¼Hibernate乿ä¾äºè¾
å©ç"
-"ï¼è¾å°ç)APIï¼å®ä½¿ç¨äº <literal>SELECT FOR UPDATE</literal>çSQLè¯æ³ãæ¬ç« å"
-"é¢ä¼è®¨è®ºä¹è§å¹¶åæ§å¶åè¿ä¸ªAPIã"
+#, no-c-format
+msgid "In addition to versioning for automatic optimistic concurrency control, Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> syntax, a (minor) API for pessimistic locking of rows. Optimistic concurrency control and this API are discussed later in this chapter."
+msgstr "é¤äºå¯¹èªå¨ä¹è§å¹¶åæ§å¶æä¾çæ¬ç®¡çï¼é对è¡çº§æ²è§éå®ï¼Hibernate 乿ä¾äºè¾
å©çï¼è¾å°çï¼APIï¼å®ä½¿ç¨äº <literal>SELECT FOR UPDATE</literal> ç SQL è¯æ³ãæ¬ç« åé¢ä¼è®¨è®ºä¹è§å¹¶åæ§å¶åè¿ä¸ªAPIã "
#. Tag: para
-#: transactions.xml:53
-#, fuzzy, no-c-format
-msgid ""
-"The discussion of concurrency control in Hibernate begins with the "
-"granularity of <literal>Configuration</literal>, <literal>SessionFactory</"
-"literal>, and <literal>Session</literal>, as well as database transactions "
-"and long conversations."
-msgstr ""
-"æä»¬ä»<literal>Configuration</literal>å±ã<literal>SessionFactory</literal>"
-"å±, å <literal>Session</literal>å±å¼å§è®¨è®ºHibernateçå¹¶è¡æ§å¶ãæ°æ®åºäºå¡å"
-"åºç¨ ç¨åºçé¿äºå¡ã"
+#, no-c-format
+msgid "The discussion of concurrency control in Hibernate begins with the granularity of <literal>Configuration</literal>, <literal>SessionFactory</literal>, and <literal>Session</literal>, as well as database transactions and long conversations."
+msgstr "æä»¬ä» <literal>Configuration</literal>å±ã<literal>SessionFactory</literal> å±ï¼å <literal>Session</literal> å±å¼å§è®¨è®º Hibernate çå¹¶è¡æ§å¶ãæ°æ®åºäºå¡ååºç¨ç¨åºçé¿äºå¡ã "
#. Tag: title
-#: transactions.xml:60
#, no-c-format
msgid "Session and transaction scopes"
-msgstr "Sessionåäºå¡èå´(transaction scope)"
+msgstr "Session åäºå¡èå´ï¼transaction scopeï¼"
#. Tag: para
-#: transactions.xml:62
-#, fuzzy, no-c-format
-msgid ""
-"A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
-"object, intended to be shared by all application threads. It is created "
-"once, usually on application startup, from a <literal>Configuration</"
-"literal> instance."
-msgstr ""
-"<literal>SessionFactory</literal>对象çåå»ºä»£ä»·å¾æè´µï¼å®æ¯çº¿ç¨å®å
¨ç对象ï¼å®"
-"为ææçåºç¨ç¨åºçº¿ç¨æå
±äº«ãå®åªåå»ºä¸æ¬¡ï¼é常æ¯å¨åºç¨ç¨åºå¯å¨çæ¶åï¼ç±ä¸ä¸ª"
-"<literal>Configuraion</literal>çå®ä¾æ¥å建ã"
+#, no-c-format
+msgid "A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe object, intended to be shared by all application threads. It is created once, usually on application startup, from a <literal>Configuration</literal> instance."
+msgstr "<literal>SessionFactory</literal> 对象çåå»ºä»£ä»·å¾æè´µï¼å®æ¯çº¿ç¨å®å
¨ç对象ï¼å®ä¸ºææçåºç¨ç¨åºçº¿ç¨æå
±äº«ãå®åªåå»ºä¸æ¬¡ï¼é常æ¯å¨åºç¨ç¨åºå¯å¨çæ¶åï¼ç±ä¸ä¸ª <literal>Configuraion</literal> çå®ä¾æ¥å建ã "
#. Tag: para
-#: transactions.xml:68
-#, fuzzy, no-c-format
-msgid ""
-"A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
-"should be used once and then discarded for: a single request, a conversation "
-"or a single unit of work. A <literal>Session</literal> will not obtain a "
-"JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, "
-"unless it is needed. It will not consume any resources until used."
-msgstr ""
-"<literal>Session</literal>对象çå建代价æ¯è¾å°ï¼æ¯é线ç¨å®å
¨çï¼å¯¹äºå个请"
-"æ±ï¼å个ä¼è¯ãå个ç å·¥ä½åå
èè¨ï¼å®åªè¢«ä½¿ç¨ä¸æ¬¡ï¼ç¶å就丢å¼ãåªæå¨éè¦çæ¶"
-"åï¼ä¸ä¸ª<literal>Session</literal>对象 æä¼è·åä¸ä¸ªJDBCç"
-"<literal>Connection</literal>ï¼æä¸ä¸ª<literal>Datasource</literal>ï¼ å¯¹è±¡ï¼å "
-"æ¤åè¥ä¸ä½¿ç¨çæ¶åå®ä¸æ¶è´¹ä»»ä½èµæºã"
+#, no-c-format
+msgid "A <literal>Session</literal> is an inexpensive, non-threadsafe object that should be used once and then discarded for: a single request, a conversation or a single unit of work. A <literal>Session</literal> will not obtain a JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, unless it is needed. It will not consume any resources until used."
+msgstr "<literal>Session</literal> 对象çå建代价æ¯è¾å°ï¼æ¯é线ç¨å®å
¨çï¼å¯¹äºå个请æ±ï¼å个ä¼è¯ãå个ç å·¥ä½åå
èè¨ï¼å®åªè¢«ä½¿ç¨ä¸æ¬¡ï¼ç¶å就丢å¼ãåªæå¨éè¦çæ¶åï¼ä¸ä¸ª <literal>Session</literal> 对象 æä¼è·åä¸ä¸ª JDBC ç <literal>Connection</literal>ï¼æä¸ä¸ª<literal>Datasource</literal>ï¼å¯¹è±¡ï¼å æ¤åè¥ä¸ä½¿ç¨çæ¶åå®ä¸æ¶è´¹ä»»ä½èµæºã "
#. Tag: para
-#: transactions.xml:76
-#, fuzzy, no-c-format
-msgid ""
-"In order to reduce lock contention in the database, a database transaction "
-"has to be as short as possible. Long database transactions will prevent your "
-"application from scaling to a highly concurrent load. It is not recommended "
-"that you hold a database transaction open during user think time until the "
-"unit of work is complete."
-msgstr ""
-"æ¤å¤æä»¬è¿è¦èèæ°æ®åºäºå¡ãæ°æ®åºäºå¡åºè¯¥å°½å¯è½ççï¼é使°æ®åºä¸çéäºç¨ã "
-"æ°æ®åºé¿äºå¡ä¼é»æ¢ä½ çåºç¨ç¨åºæ©å±å°é«çå¹¶åè´è½½ãå æ¤ï¼åè¥å¨ç¨æ·æèæé´è®©"
-"æ°æ®åºäºå¡å¼çï¼ç´å°æ´ä¸ªå·¥ä½åå
宿æå
³éè¿ä¸ªäºå¡ï¼è¿ç»ä¸æ¯ä¸ä¸ªå¥½ç设计ã"
+#, no-c-format
+msgid "In order to reduce lock contention in the database, a database transaction has to be as short as possible. Long database transactions will prevent your application from scaling to a highly concurrent load. It is not recommended that you hold a database transaction open during user think time until the unit of work is complete."
+msgstr "æ¤å¤æä»¬è¿è¦èèæ°æ®åºäºå¡ãæ°æ®åºäºå¡åºè¯¥å°½å¯è½ççï¼é使°æ®åºä¸çéäºç¨ãæ°æ®åºé¿äºå¡ä¼é»æ¢ä½ çåºç¨ç¨åºæ©å±å°é«çå¹¶åè´è½½ãå æ¤ï¼åè¥å¨ç¨æ·æèæé´è®©æ°æ®åºäºå¡å¼çï¼ç´å°æ´ä¸ªå·¥ä½åå
宿æå
³éè¿ä¸ªäºå¡ï¼è¿ç»ä¸æ¯ä¸ä¸ªå¥½ç设计ã "
#. Tag: para
-#: transactions.xml:84
-#, fuzzy, no-c-format
-msgid ""
-"What is the scope of a unit of work? Can a single Hibernate "
-"<literal>Session</literal> span several database transactions, or is this a "
-"one-to-one relationship of scopes? When should you open and close a "
-"<literal>Session</literal> and how do you demarcate the database transaction "
-"boundaries? These questions are addressed in the following sections."
-msgstr ""
-"ä¸ä¸ªæä½åå
(Unit of work)çèå´æ¯å¤å¤§ï¼å个çHibernate <literal>Session</"
-"literal>è½è·¨è¶å¤ä¸ª æ°æ®åºäºå¡åï¼è¿æ¯ä¸ä¸ª<literal>Session</literal>çä½ç¨èå´"
-"对åºä¸ä¸ªæ°æ®åºäºå¡çèå´ï¼åºè¯¥ä½æ¶æå¼ <literal>Session</literal>ï¼ä½æ¶å
³é"
-"<literal>Session</literal>ï¼ï¼ä½ åå¦ä½ååæ°æ®åºäºå¡çè¾¹çå¢ï¼"
+#, no-c-format
+msgid "What is the scope of a unit of work? Can a single Hibernate <literal>Session</literal> span several database transactions, or is this a one-to-one relationship of scopes? When should you open and close a <literal>Session</literal> and how do you demarcate the database transaction boundaries? These questions are addressed in the following sections."
+msgstr "ä¸ä¸ªæä½åå
ï¼Unit of workï¼çèå´æ¯å¤å¤§ï¼å个ç Hibernate <literal>Session</literal> è½è·¨è¶å¤ä¸ªæ°æ®åºäºå¡åï¼è¿æ¯ä¸ä¸ª <literal>Session</literal> çä½ç¨èå´å¯¹åºä¸ä¸ªæ°æ®åºäºå¡çèå´ï¼åºè¯¥ä½æ¶æå¼ <literal>Session</literal>ï¼ä½æ¶å
³é <literal>Session</literal>ï¼ä½ åå¦ä½ååæ°æ®åºäºå¡çè¾¹çå¢ï¼æä»¬å°å¨åç»ç« èè§£å³è¿äºé®é¢ã"
#. Tag: title
-#: transactions.xml:92
#, no-c-format
msgid "Unit of work"
-msgstr "æä½åå
(Unit of work)"
+msgstr "æä½åå
ï¼Unit of workï¼"
#. Tag: para
-#: transactions.xml:94
#, no-c-format
-msgid ""
-"First, let's define a unit of work. A unit of work is a design pattern "
-"described by Martin Fowler as <quote> [maintaining] a list of objects "
-"affected by a business transaction and coordinates the writing out of "
-"changes and the resolution of concurrency problems. </quote><citation>PoEAA</"
-"citation> In other words, its a series of operations we wish to carry out "
-"against the database together. Basically, it is a transaction, though "
-"fulfilling a unit of work will often span multiple physical database "
-"transactions (see <xref linkend=\"transactions-basics-apptx\"/>). So really "
-"we are talking about a more abstract notion of a transaction. The term "
-"\"business transaction\" is also sometimes used in lieu of unit of work."
-msgstr ""
+msgid "First, let's define a unit of work. A unit of work is a design pattern described by Martin Fowler as <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> In other words, its a series of operations we wish to carry out against the database together. Basically, it is a transaction, though fulfilling a unit of work will often span multiple physical database transactions (see <xref linkend=\"transactions-basics-apptx\" />). So really we are talking about a more abstract notion of a transaction. The term \"business transaction\" is also sometimes used in lieu of unit of work."
+msgstr "é¦å
ï¼è®©æä»¬å®ä¹ä¸ä¸ªå·¥ä½åå
ï¼unit of workï¼ãå·¥ä½åå
æ¯ä¸ä¸ªè®¾è®¡æ¨¡å¼ï¼Martin Fowler æå®æè¿°ä¸º <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> æ¢å¥è¯è¯´ï¼å®æ¯æä»¬å¸æå¯¹æ°æ®åºæ§è¡çä¸ç³»åæä½ãåºæ¬ä¸ï¼å®æ¯ä¸ä¸ªäºå¡ï¼è½ç¶å®æä¸ä¸ªå·¥ä½åå
ç»å¸¸å°è·¨è¶å¤ä¸ªç©çæ°æ®åºäºå¡ï¼è¯·åè <xref linkend=\"transactions-basics-apptx\"/>ï¼ãæä»¥ï¼å®é
䏿们å¨è®¨è®ºä¸ä¸ªæ´æ½è±¡çäºå¡æ¦å¿µãæ¯è¯ \"business transaction\" ææ¶ä¹åå·¥ä½åå
ä¸èµ·ä½¿ç¨ã "
#. Tag: para
-#: transactions.xml:111
-#, fuzzy, no-c-format
-msgid ""
-"Do not use the <emphasis>session-per-operation</emphasis> antipattern: do "
-"not open and close a <literal>Session</literal> for every simple database "
-"call in a single thread. The same is true for database transactions. "
-"Database calls in an application are made using a planned sequence; they are "
-"grouped into atomic units of work. This also means that auto-commit after "
-"every single SQL statement is useless in an application as this mode is "
-"intended for ad-hoc SQL console work. Hibernate disables, or expects the "
-"application server to disable, auto-commit mode immediately. Database "
-"transactions are never optional. All communication with a database has to "
-"occur inside a transaction. Auto-commit behavior for reading data should be "
-"avoided, as many small transactions are unlikely to perform better than one "
-"clearly defined unit of work. The latter is also more maintainable and "
-"extensible."
-msgstr ""
-"é¦å
ï¼å«ç¨<emphasis>session-per-operation</emphasis>è¿ç§å模å¼äºï¼ä¹å°±æ¯è¯´ï¼"
-"å¨å个线ç¨ä¸ï¼ ä¸è¦å ä¸ºä¸æ¬¡ç®åçæ°æ®åºè°ç¨ï¼å°±æå¼åå
³é䏿¬¡"
-"<literal>Session</literal>ï¼æ°æ®åºäºå¡ä¹æ¯å¦æ¤ã åºç¨ç¨åºä¸çæ°æ®åºè°ç¨æ¯æç
§"
-"计åå¥½çæ¬¡åºï¼åç»ä¸ºååçæä½åå
ãï¼æ³¨æï¼è¿ä¹æå³çï¼åºç¨ç¨ åºä¸ï¼å¨å个ç"
-"SQLè¯å¥åéä¹åï¼èªå¨äºå¡æäº¤(auto-commit)模å¼å¤±æäºãè¿ç§æ¨¡å¼ä¸é¨ä¸ºSQLæ§å¶å°"
-"æä½è®¾è®¡çã Hibernateç¦æ¢ç«å³èªå¨äºå¡æäº¤æ¨¡å¼ï¼æè
ææåºç¨æå¡å¨ç¦æ¢ç«å³èª"
-"å¨äºå¡æäº¤æ¨¡å¼ãï¼æ°æ®åºäºå¡ç»ä¸æ¯å¯æå¯æ çï¼ä»»ä½ä¸æ°æ®åºä¹é´çé讯é½å¿
é¡»å¨"
-"æä¸ªäºå¡ä¸è¿è¡ï¼ä¸ç®¡ä½ æ¯å¨è¯»è¿æ¯å¨åæ°æ®ãå¯¹è¯»æ°æ®èè¨ï¼åºè¯¥é¿å
auto-commitè¡"
-"为ï¼å 为å¾å¤å°çäºå¡æ¯ä¸ä¸ªæ¸
æ°å®ä¹çå·¥ä½åå
æ§è½å·®ãåè
乿´å®¹æç»´æ¤åæ©å±ã"
+#, no-c-format
+msgid "Do not use the <emphasis>session-per-operation</emphasis> antipattern: do not open and close a <literal>Session</literal> for every simple database call in a single thread. The same is true for database transactions. Database calls in an application are made using a planned sequence; they are grouped into atomic units of work. This also means that auto-commit after every single SQL statement is useless in an application as this mode is intended for ad-hoc SQL console work. Hibernate disables, or expects the application server to disable, auto-commit mode immediately. Database transactions are never optional. All communication with a database has to occur inside a transaction. Auto-commit behavior for reading data should be avoided, as many small transactions are unlikely to perform better than one clearly defined unit of work. The latter is also more maintainable and extensible."
+msgstr "é¦å
ï¼å«ç¨ <emphasis>session-per-operation</emphasis> è¿ç§å模å¼äºï¼ä¹å°±æ¯è¯´ï¼å¨å个线ç¨ä¸ï¼ ä¸è¦å ä¸ºä¸æ¬¡ç®åçæ°æ®åºè°ç¨ï¼å°±æå¼åå
³é䏿¬¡ <literal>Session</literal>ï¼æ°æ®åºäºå¡ä¹æ¯å¦æ¤ã åºç¨ç¨åºä¸çæ°æ®åºè°ç¨æ¯æç
§è®¡åå¥½çæ¬¡åºï¼åç»ä¸ºååçæä½åå
ãï¼æ³¨æï¼è¿ä¹æå³çï¼åºç¨ç¨ åºä¸ï¼å¨å个ç SQL è¯å¥åéä¹åï¼èªå¨äºå¡æäº¤ï¼auto-commitï¼æ¨¡å¼å¤±æäºãè¿ç§æ¨¡å¼ä¸é¨ä¸ºSQLæ§å¶å°æä½è®¾è®¡çã Hibernate ç¦æ¢ç«å³èªå¨äºå¡æäº¤æ¨¡å¼ï¼æè
ææåºç¨æå¡å¨ç¦æ¢ç«å³èªå¨äºå¡æäº¤æ¨¡å¼ãï¼æ°æ®åºäºå¡ç»ä¸æ¯å¯æå¯æ çï¼ä»»ä½ä¸æ°æ®åºä¹é´çé讯é½å¿
é¡»å¨æä¸ªäºå¡ä¸è¿è¡ï¼ä¸ç®¡ä½ æ¯å¨è¯»è¿æ¯å¨åæ°æ®ãå¯¹è¯»æ°æ®èè¨ï¼åºè¯¥é¿å
auto-commit è¡ä¸ºï¼å 为å¾å¤å°çäºå¡æ¯ä¸ä¸ªæ¸
æ°å®ä¹çå·¥ä½åå
æ§è½å·®ãåè
乿´å®¹æç»´æ¤åæ©å±ã "
#. Tag: para
-#: transactions.xml:126
-#, fuzzy, no-c-format
-msgid ""
-"The most common pattern in a multi-user client/server application is "
-"<emphasis>session-per-request</emphasis>. In this model, a request from the "
-"client is sent to the server, where the Hibernate persistence layer runs. A "
-"new Hibernate <literal>Session</literal> is opened, and all database "
-"operations are executed in this unit of work. On completion of the work, and "
-"once the response for the client has been prepared, the session is flushed "
-"and closed. Use a single database transaction to serve the clients request, "
-"starting and committing it when you open and close the <literal>Session</"
-"literal>. The relationship between the two is one-to-one and this model is a "
-"perfect fit for many applications."
-msgstr ""
-"å¨å¤ç¨æ·çclient/serveråºç¨ç¨åºä¸ï¼æå¸¸ç¨çæ¨¡å¼æ¯ <emphasis>æ¯ä¸ªè¯·æ±ä¸ä¸ªä¼è¯"
-"(session-per-request)</emphasis>ã å¨è¿ç§æ¨¡å¼ä¸ï¼æ¥èªå®¢æ·ç«¯ç请æ±è¢«åéå°æå¡"
-"å¨ç«¯ï¼å³Hibernateæä¹
åå±è¿è¡çå°æ¹ï¼ï¼ä¸ 个æ°çHibernate <literal>Session</"
-"literal>被æå¼ï¼å¹¶ä¸æ§è¡è¿ä¸ªæä½åå
䏿æçæ°æ®åºæä½ã 䏿¦æä½å®æï¼åæ¶å¯¹"
-"客æ·ç«¯çååºä¹åå¤å°±ç»ªï¼ï¼sessionè¢«åæ¥ï¼ç¶åå
³éãä½ ä¹å¯ä»¥ä½¿ç¨å ä¸ªæ°æ®åºäº"
-"塿¥å¤ç客æ·ç«¯è¯·æ±ï¼å¨ä½ æå¼<literal>Session</literal>ä¹åå¯å¨äºå¡ï¼å¨ä½ å
³é "
-"<literal>Session</literal>ä¹åæäº¤äºå¡ãä¼è¯å请æ±ä¹é´çå
³ç³»æ¯ä¸å¯¹ä¸çå
³ç³»ï¼"
-"è¿ç§æ¨¡å¼å¯¹ äºå¤§å¤æ°åºç¨ç¨åºæ¥è¯´æ¯å¾æ£çã"
+#, no-c-format
+msgid "The most common pattern in a multi-user client/server application is <emphasis>session-per-request</emphasis>. In this model, a request from the client is sent to the server, where the Hibernate persistence layer runs. A new Hibernate <literal>Session</literal> is opened, and all database operations are executed in this unit of work. On completion of the work, and once the response for the client has been prepared, the session is flushed and closed. Use a single database transaction to serve the clients request, starting and committing it when you open and close the <literal>Session</literal>. The relationship between the two is one-to-one and this model is a perfect fit for many applications."
+msgstr "å¨å¤ç¨æ·ç client/server åºç¨ç¨åºä¸ï¼æå¸¸ç¨çæ¨¡å¼æ¯ <emphasis>æ¯ä¸ªè¯·æ±ä¸ä¸ªä¼è¯ï¼session-per-requestï¼</emphasis>ã å¨è¿ç§æ¨¡å¼ä¸ï¼æ¥èªå®¢æ·ç«¯ç请æ±è¢«åéå°æå¡å¨ç«¯ï¼å³ Hibernate æä¹
åå±è¿è¡çå°æ¹ï¼ï¼ä¸ä¸ªæ°ç Hibernate <literal>Session</literal> 被æå¼ï¼å¹¶ä¸æ§è¡è¿ä¸ªæä½åå
䏿æçæ°æ®åºæä½ã䏿¦æä½å®æï¼åæ¶å¯¹å®¢æ·ç«¯çååºä¹åå¤å°±ç»ªï¼ï¼session è¢«åæ¥ï¼ç¶åå
³éãä½ ä¹å¯ä»¥ä½¿ç¨å ä¸ªæ°æ®åºäºå¡æ¥å¤ç客æ·ç«¯è¯·æ±ï¼å¨ä½ æå¼ <literal>Session</literal> ä¹åå¯å¨äºå¡ï¼å¨ä½ å
³é <literal>Session</literal> ä¹åæäº¤äºå¡ãä¼è¯å请æ±ä¹é´çå
³ç³»æ¯ä¸å¯¹ä¸çå
³ç³»ï¼è¿ç§æ¨¡å¼å¯¹ äºå¤§å¤æ°åºç¨ç¨åºæ¥è¯´æ¯å¾æ£çã "
#. Tag: para
-#: transactions.xml:138
-#, fuzzy, no-c-format
-msgid ""
-"The challenge lies in the implementation. Hibernate provides built-in "
-"management of the \"current session\" to simplify this pattern. Start a "
-"transaction when a server request has to be processed, and end the "
-"transaction before the response is sent to the client. Common solutions are "
-"<literal>ServletFilter</literal>, AOP interceptor with a pointcut on the "
-"service methods, or a proxy/interception container. An EJB container is a "
-"standardized way to implement cross-cutting aspects such as transaction "
-"demarcation on EJB session beans, declaratively with CMT. If you use "
-"programmatic transaction demarcation, for ease of use and code portability "
-"use the Hibernate <literal>Transaction</literal> API shown later in this "
-"chapter."
-msgstr ""
-"å®ç°ææ¯çæ£çææãHibernateå
ç½®äºå¯¹\"å½åsession(current session)\" ç管"
-"çï¼ç¨äºç®åæ¤æ¨¡å¼ãä½ è¦åçä¸åå°±æ¯å¨æå¡å¨ç«¯è¦å¤ç请æ±çæ¶åï¼å¼å¯äºå¡ï¼å¨"
-"ååºåéç»å®¢æ·ä¹åç»æäºå¡ãä½ å¯ä»¥ç¨ä»»ä½æ¹å¼æ¥å®æè¿ä¸æä½ï¼éå¸¸çæ¹æ¡æ"
-"<literal>ServletFilter</literal>ï¼å¨serviceæ¹æ³ä¸è¿è¡pointcutçAOPæ¦æªå¨ï¼æ"
-"è
proxy/interception容å¨ãEJB容卿¯å®ç°æ¨ªå诸å¦EJB session beanä¸çäºå¡åçï¼"
-"ç¨CMT对äºå¡è¿è¡å£°æçæ¹é¢çæ åææ®µãåè¥ä½ å³å®ä½¿ç¨ç¼ç¨å¼çäºå¡åçï¼è¯·åèæ¬"
-"ç« åé¢è®²å°çHibernate <literal>Transaction</literal> APIï¼è¿å¯¹æç¨æ§å代ç å¯"
-"ç§»æ¤æ§é½æå¥½å¤ã"
+#, no-c-format
+msgid "The challenge lies in the implementation. Hibernate provides built-in management of the \"current session\" to simplify this pattern. Start a transaction when a server request has to be processed, and end the transaction before the response is sent to the client. Common solutions are <literal>ServletFilter</literal>, AOP interceptor with a pointcut on the service methods, or a proxy/interception container. An EJB container is a standardized way to implement cross-cutting aspects such as transaction demarcation on EJB session beans, declaratively with CMT. If you use programmatic transaction demarcation, for ease of use and code portability use the Hibernate <literal>Transaction</literal> API shown later in this chapter."
+msgstr "å®ç°ææ¯çæ£çææãHibernate å
ç½®äºå¯¹\"å½å sessionï¼current sessionï¼\" ç管çï¼ç¨äºç®åæ¤æ¨¡å¼ãä½ è¦åçä¸åå°±æ¯å¨æå¡å¨ç«¯è¦å¤ç请æ±çæ¶åï¼å¼å¯äºå¡ï¼å¨ååºåéç»å®¢æ·ä¹åç»æäºå¡ãä½ å¯ä»¥ç¨ä»»ä½æ¹å¼æ¥å®æè¿ä¸æä½ï¼éå¸¸çæ¹æ¡æ <literal>ServletFilter</literal>ï¼å¨ service æ¹æ³ä¸è¿è¡ pointcut ç AOP æ¦æªå¨ï¼æè
proxy/interception 容å¨ãEJB 容卿¯å®ç°æ¨ªåè¯¸å¦ EJB session bean ä¸çäºå¡åçï¼ç¨ CMT 对äºå¡è¿è¡å£°æçæ¹é¢çæ åææ®µãåè¥ä½ å³å®ä½¿ç¨ç¼ç¨å¼çäºå¡åçï¼è¯·åèæ¬ç« åé¢è®²å°ç Hibernate <literal>Transaction</literal> APIï¼è¿å¯¹æç¨æ§å代ç å¯ç§»æ¤æ§é½æå¥½å¤ã "
#. Tag: para
-#: transactions.xml:150
-#, fuzzy, no-c-format
-msgid ""
-"Your application code can access a \"current session\" to process the "
-"request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
-"You will always get a <literal>Session</literal> scoped to the current "
-"database transaction. This has to be configured for either resource-local or "
-"JTA environments, see <xref linkend=\"architecture-current-session\"/>."
-msgstr ""
-"å¨ä»»ä½æ¶é´ï¼ä»»ä½å°æ¹ï¼ä½ çåºç¨ä»£ç å¯ä»¥éè¿ç®åçè°ç¨<literal>sessionFactory."
-"getCurrentSession()</literal>æ¥è®¿é®\"å½åsession\"ï¼ç¨äºå¤ç请æ±ãä½ æ»æ¯ä¼å¾"
-"å°å½åæ°æ®åºäºå¡èå´å
ç<literal>Session</literal>ãå¨ä½¿ç¨æ¬å°èµæºæJTAç¯å¢"
-"æ¶ï¼å¿
é¡»é
ç½®å®ï¼è¯·åè§<xref linkend=\"architecture-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
-#: transactions.xml:158
-#, fuzzy, no-c-format
-msgid ""
-"You can extend the scope of a <literal>Session</literal> and database "
-"transaction until the \"view has been rendered\". This is especially useful "
-"in servlet applications that utilize a separate rendering phase after the "
-"request has been processed. Extending the database transaction until view "
-"rendering, is achieved by implementing your own interceptor. However, this "
-"will be difficult if you rely on EJBs with container-managed transactions. A "
-"transaction will be completed when an EJB method returns, before rendering "
-"of any view can start. See the Hibernate website and forum for tips and "
-"examples relating to this <emphasis>Open Session in View</emphasis> pattern."
-msgstr ""
-"ææ¶ï¼å°<literal>Session</literal>åæ°æ®åºäºå¡çè¾¹ç延伸å°\"å±ç¤ºå±è¢«æ¸²æå"
-"\"ä¼å¸¦æ¥ä¾¿å©ãæäºserlvetåºç¨ç¨åºå¨å¯¹è¯·æ±è¿è¡å¤çåï¼æä¸ªåç¬ç渲ææï¼è¿ç§å»¶"
-"伸对è¿ç§ç¨åºç¹å«æç¨ãåè¥ä½ å®ç°ä½ èªå·±çæ¦æªå¨ï¼æäºå¡è¾¹ç延伸å°å±ç¤ºå±æ¸²æç»"
-"æåé常容æãç¶èï¼åè¥ä½ ä¾èµæå®¹å¨ç®¡çäºå¡çEJBï¼è¿å°±ä¸å¤ªå®¹æäºï¼å 为äºå¡ä¼"
-"å¨EJBæ¹æ³è¿ååç»æï¼è飿¯å¨ä»»ä½å±ç¤ºå±æ¸²æå¼å§ä¹åã请访é®Hibernateç½ç«å论"
-"åï¼ä½ å¯ä»¥æ¾å°<emphasis>Open Session in View</emphasis>è¿ä¸æ¨¡å¼çæç¤ºå示ä¾ã"
+#, no-c-format
+msgid "You can extend the scope of a <literal>Session</literal> and database transaction until the \"view has been rendered\". This is especially useful in servlet applications that utilize a separate rendering phase after the request has been processed. Extending the database transaction until view rendering, is achieved by implementing your own interceptor. However, this will be difficult if you rely on EJBs with container-managed transactions. A transaction will be completed when an EJB method returns, before rendering of any view can start. See the Hibernate website and forum for tips and examples relating to this <emphasis>Open Session in View</emphasis> pattern."
+msgstr "ææ¶ï¼å° <literal>Session</literal> åæ°æ®åºäºå¡çè¾¹ç延伸å°\"å±ç¤ºå±è¢«æ¸²æå\"ä¼å¸¦æ¥ä¾¿å©ãæäº serlvet åºç¨ç¨åºå¨å¯¹è¯·æ±è¿è¡å¤çåï¼æä¸ªåç¬ç渲ææï¼è¿ç§å»¶ä¼¸å¯¹è¿ç§ç¨åºç¹å«æç¨ãåè¥ä½ å®ç°ä½ èªå·±çæ¦æªå¨ï¼æäºå¡è¾¹ç延伸å°å±ç¤ºå±æ¸²æç»æåé常容æãç¶èï¼åè¥ä½ ä¾èµæå®¹å¨ç®¡çäºå¡ç EJBï¼è¿å°±ä¸å¤ªå®¹æäºï¼å 为äºå¡ä¼å¨ EJB æ¹æ³è¿ååç»æï¼è飿¯å¨ä»»ä½å±ç¤ºå±æ¸²æå¼å§ä¹åãè¯·è®¿é® Hibernate ç½ç«å论åï¼ä½ å¯ä»¥æ¾å° <emphasis>Open Session in View</emphasis> è¿ä¸æ¨¡å¼çæç¤ºå示ä¾ã "
#. Tag: title
-#: transactions.xml:173
#, no-c-format
msgid "Long conversations"
msgstr "é¿å¯¹è¯"
#. Tag: para
-#: transactions.xml:175
-#, fuzzy, no-c-format
-msgid ""
-"The session-per-request pattern is not the only way of designing units of "
-"work. Many business processes require a whole series of interactions with "
-"the user that are interleaved with database accesses. In web and enterprise "
-"applications, it is not acceptable for a database transaction to span a user "
-"interaction. Consider the following example:"
-msgstr ""
-"session-per-request模å¼ä¸ä»
ä»
æ¯ä¸ä¸ªå¯ä»¥ç¨æ¥è®¾è®¡æä½åå
çæç¨æ¦å¿µãå¾å¤ä¸å¡å¤"
-"çé½é è¦ä¸ç³»å宿´çä¸ç¨æ·ä¹é´ç交äºï¼èè¿äºç¨æ·æ¯æå¯¹æ°æ®åºæäº¤å访é®çç¨"
-"æ·ãå¨åºäºwebçåºç¨åä¼ä¸ åºç¨ä¸ï¼è·¨ç¨æ·äº¤äºçæ°æ®åºäºå¡æ¯æ æ³æ¥åçãèèä¸"
-"é¢çä¾åï¼"
+#, no-c-format
+msgid "The session-per-request pattern is not the only way of designing units of work. Many business processes require a whole series of interactions with the user that are interleaved with database accesses. In web and enterprise applications, it is not acceptable for a database transaction to span a user interaction. Consider the following example:"
+msgstr "session-per-request 模å¼ä¸ä»
ä»
æ¯ä¸ä¸ªå¯ä»¥ç¨æ¥è®¾è®¡æä½åå
çæç¨æ¦å¿µãå¾å¤ä¸å¡å¤çé½é è¦ä¸ç³»å宿´çä¸ç¨æ·ä¹é´ç交äºï¼èè¿äºç¨æ·æ¯æå¯¹æ°æ®åºæäº¤å访é®çç¨æ·ãå¨åºäº web çåºç¨åä¼ä¸åºç¨ä¸ï¼è·¨ç¨æ·äº¤äºçæ°æ®åºäºå¡æ¯æ æ³æ¥åçãèèä¸é¢çä¾åï¼ "
#. Tag: para
-#: transactions.xml:185
-#, fuzzy, no-c-format
-msgid ""
-"The first screen of a dialog opens. The data seen by the user has been "
-"loaded in a particular <literal>Session</literal> and database transaction. "
-"The user is free to modify the objects."
-msgstr ""
-"å¨çé¢ç第ä¸å±ï¼æå¼å¯¹è¯æ¡ï¼ç¨æ·æçå°çæ°æ®æ¯è¢«ä¸ä¸ªç¹å®ç <literal>Session</"
-"literal> åæ°æ® åºäºå¡è½½å
¥(load)çãç¨æ·å¯ä»¥éæä¿®æ¹å¯¹è¯æ¡ä¸çæ°æ®å¯¹è±¡ã"
+#, no-c-format
+msgid "The first screen of a dialog opens. The data seen by the user has been loaded in a particular <literal>Session</literal> and database transaction. The user is free to modify the objects."
+msgstr "å¨çé¢ç第ä¸å±ï¼æå¼å¯¹è¯æ¡ï¼ç¨æ·æçå°çæ°æ®æ¯è¢«ä¸ä¸ªç¹å®ç <literal>Session</literal> åæ°æ® åºäºå¡è½½å
¥ï¼loadï¼çãç¨æ·å¯ä»¥éæä¿®æ¹å¯¹è¯æ¡ä¸çæ°æ®å¯¹è±¡ã "
#. Tag: para
-#: transactions.xml:192
-#, fuzzy, no-c-format
-msgid ""
-"The user clicks \"Save\" after 5 minutes and expects their modifications to "
-"be made persistent. The user also expects that they were the only person "
-"editing this information and that no conflicting modification has occurred."
-msgstr ""
-"5åéåï¼ç¨æ·ç¹å»âä¿åâï¼æææååºçä¿®æ¹è¢«æä¹
åï¼åæ¶ä»ä¹ææèªå·±æ¯å¯ä¸ä¿®æ¹"
-"è¿ä¸ªä¿¡æ¯ç人ï¼ä¸ä¼åºç° ä¿®æ¹å²çªã"
+#, no-c-format
+msgid "The user clicks \"Save\" after 5 minutes and expects their modifications to be made persistent. The user also expects that they were the only person editing this information and that no conflicting modification has occurred."
+msgstr "5 åéåï¼ç¨æ·ç¹å»âä¿åâï¼æææååºçä¿®æ¹è¢«æä¹
åï¼åæ¶ä»ä¹ææèªå·±æ¯å¯ä¸ä¿®æ¹è¿ä¸ªä¿¡æ¯ç人ï¼ä¸ä¼åºç°ä¿®æ¹å²çªã "
#. Tag: para
-#: transactions.xml:200
-#, fuzzy, no-c-format
-msgid ""
-"From the point of view of the user, we call this unit of work a long-running "
-"<emphasis>conversation</emphasis> or <emphasis>application transaction</"
-"emphasis>. There are many ways to implement this in your application."
-msgstr ""
-"ä»ç¨æ·çè§åº¦æ¥çï¼æä»¬æè¿ä¸ªæä½åå
ç§°ä¸ºé¿æ¶é´è¿è¡ç<emphasis>对è¯</emphasis>"
-"ï¼conversationï¼,æè
(or <emphasis>åºç¨äºå¡</emphasis>,application "
-"transaction)ã å¨ä½ çåºç¨ç¨åºä¸ï¼å¯ä»¥æå¾å¤ç§æ¹æ³æ¥å®ç°å®ã"
+#, no-c-format
+msgid "From the point of view of the user, we call this unit of work a long-running <emphasis>conversation</emphasis> or <emphasis>application transaction</emphasis>. There are many ways to implement this in your application."
+msgstr "ä»ç¨æ·çè§åº¦æ¥çï¼æä»¬æè¿ä¸ªæä½åå
ç§°ä¸ºé¿æ¶é´è¿è¡ç<emphasis>对è¯</emphasis>ï¼conversationï¼ï¼æè
<emphasis>åºç¨äºå¡</emphasis>ï¼application transactionï¼ãå¨ä½ çåºç¨ç¨åºä¸ï¼å¯ä»¥æå¾å¤ç§æ¹æ³æ¥å®ç°å®ã"
#. Tag: para
-#: transactions.xml:206
-#, fuzzy, no-c-format
-msgid ""
-"A first naive implementation might keep the <literal>Session</literal> and "
-"database transaction open during user think time, with locks held in the "
-"database to prevent concurrent modification and to guarantee isolation and "
-"atomicity. This is an anti-pattern, since lock contention would not allow "
-"the application to scale with the number of concurrent users."
-msgstr ""
-"头ä¸ä¸ªå¹¼ç¨çåæ³æ¯ï¼å¨ç¨æ·æèçè¿ç¨ä¸ï¼ä¿æ<literal>Session</literal>åæ°æ®"
-"åºäºå¡æ¯æå¼çï¼ ä¿ææ°æ®åºéå®ï¼ä»¥é»æ¢å¹¶åä¿®æ¹ï¼ä»èä¿è¯æ°æ®åºäºå¡é离级å«å"
-"ååæä½ãè¿ç§æ¹å¼å½ç¶æ¯ä¸ä¸ªå模å¼ï¼ å 为éäºç¨ä¼å¯¼è´åºç¨ç¨åºæ æ³æ©å±å¹¶åç¨æ·"
-"çæ°ç®ã"
+#, no-c-format
+msgid "A first naive implementation might keep the <literal>Session</literal> and database transaction open during user think time, with locks held in the database to prevent concurrent modification and to guarantee isolation and atomicity. This is an anti-pattern, since lock contention would not allow the application to scale with the number of concurrent users."
+msgstr "头ä¸ä¸ªå¹¼ç¨çåæ³æ¯ï¼å¨ç¨æ·æèçè¿ç¨ä¸ï¼ä¿æ <literal>Session</literal> åæ°æ®åºäºå¡æ¯æå¼çï¼ä¿ææ°æ®åºéå®ï¼ä»¥é»æ¢å¹¶åä¿®æ¹ï¼ä»èä¿è¯æ°æ®åºäºå¡é离级å«åååæä½ãè¿ç§æ¹å¼å½ç¶æ¯ä¸ä¸ªå模å¼ï¼å 为éäºç¨ä¼å¯¼è´åºç¨ç¨åºæ æ³æ©å±å¹¶åç¨æ·çæ°ç®ã "
#. Tag: para
-#: transactions.xml:214
-#, fuzzy, no-c-format
-msgid ""
-"You have to use several database transactions to implement the conversation. "
-"In this case, maintaining isolation of business processes becomes the "
-"partial responsibility of the application tier. A single conversation "
-"usually spans several database transactions. It will be atomic if only one "
-"of these database transactions (the last one) stores the updated data. All "
-"others simply read data (for example, in a wizard-style dialog spanning "
-"several request/response cycles). This is easier to implement than it might "
-"sound, especially if you utilize some of Hibernate's features:"
-msgstr ""
-"徿æ¾ï¼æä»¬å¿
须使ç¨å¤ä¸ªæ°æ®åºäºå¡æ¥å®ç°è¿ä¸ªå¯¹è¯ãå¨è¿ä¸ªä¾åä¸ï¼ç»´æ¤ä¸å¡å¤ç"
-"ç äºå¡é离åæäºåºç¨ç¨åºå±çé¨å责任ãä¸ä¸ªå¯¹è¯é常跨è¶å¤ä¸ªæ°æ®åºäºå¡ã妿ä»
"
-"ä»
åªæä¸ ä¸ªæ°æ®åºäºå¡ï¼æåçé£ä¸ªäºå¡ï¼ä¿åæ´æ°è¿çæ°æ®ï¼èææå
¶ä»äºå¡åªæ¯å"
-"纯çè¯»åæ°æ®ï¼ä¾å¦å¨ä¸ 个跨è¶å¤ä¸ªè¯·æ±/ååºå¨æçå坼飿 ¼çå¯¹è¯æ¡ä¸ï¼ï¼é£ä¹åº"
-"ç¨ç¨åºäºå¡å°ä¿è¯å
¶ååæ§ãè¿ç§æ¹å¼æ¯å¬ èµ·æ¥è¿è¦å®¹æå®ç°ï¼ç¹å«æ¯å½ä½ 使ç¨äº"
-"Hibernateçä¸è¿°ç¹æ§çæ¶åï¼"
+#, no-c-format
+msgid "You have to use several database transactions to implement the conversation. In this case, maintaining isolation of business processes becomes the partial responsibility of the application tier. A single conversation usually spans several database transactions. It will be atomic if only one of these database transactions (the last one) stores the updated data. All others simply read data (for example, in a wizard-style dialog spanning several request/response cycles). This is easier to implement than it might sound, especially if you utilize some of Hibernate's features:"
+msgstr "徿æ¾ï¼æä»¬å¿
须使ç¨å¤ä¸ªæ°æ®åºäºå¡æ¥å®ç°è¿ä¸ªå¯¹è¯ãå¨è¿ä¸ªä¾åä¸ï¼ç»´æ¤ä¸å¡å¤çç äºå¡é离åæäºåºç¨ç¨åºå±çé¨å责任ãä¸ä¸ªå¯¹è¯é常跨è¶å¤ä¸ªæ°æ®åºäºå¡ã妿ä»
ä»
åªæä¸ä¸ªæ°æ®åºäºå¡ï¼æåçé£ä¸ªäºå¡ï¼ä¿åæ´æ°è¿çæ°æ®ï¼èææå
¶ä»äºå¡åªæ¯å纯çè¯»åæ°æ®ï¼ä¾å¦å¨ä¸ä¸ªè·¨è¶å¤ä¸ªè¯·æ±/ååºå¨æçå坼飿 ¼çå¯¹è¯æ¡ä¸ï¼ï¼é£ä¹åºç¨ç¨åºäºå¡å°ä¿è¯å
¶ååæ§ãè¿ç§æ¹å¼æ¯å¬èµ·æ¥è¿è¦å®¹æå®ç°ï¼ç¹å«æ¯å½ä½ 使ç¨äº Hibernate çä¸è¿°ç¹æ§çæ¶åï¼ "
#. Tag: para
-#: transactions.xml:227
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic "
-"optimistic concurrency control for you. It can automatically detect if a "
-"concurrent modification occurred during user think time. Check for this at "
-"the end of the conversation."
-msgstr ""
-"<emphasis>èªå¨çæ¬å</emphasis> - Hibernateè½å¤èªå¨è¿è¡ä¹è§å¹¶åæ§å¶ ï¼å¦æå¨"
-"ç¨æ·æè çè¿ç¨ä¸åçå¹¶åä¿®æ¹ï¼Hibernateè½å¤èªå¨æ£æµå°ãä¸è¬æä»¬åªå¨å¯¹è¯ç»æ"
-"æ¶ææ£æ¥ã"
+#, no-c-format
+msgid "<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic optimistic concurrency control for you. It can automatically detect if a concurrent modification occurred during user think time. Check for this at the end of the conversation."
+msgstr "<emphasis>èªå¨çæ¬å</emphasis>ï¼Hibernate è½å¤èªå¨è¿è¡ä¹è§å¹¶åæ§å¶ï¼å¦æå¨ç¨æ·æèçè¿ç¨ä¸åçå¹¶åä¿®æ¹ï¼Hibernate è½å¤èªå¨æ£æµå°ãä¸è¬æä»¬åªå¨å¯¹è¯ç»ææ¶ææ£æ¥ã"
#. Tag: para
-#: transactions.xml:235
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Detached Objects</emphasis>: if you decide to use the "
-"<emphasis>session-per-request</emphasis> pattern, all loaded instances will "
-"be in the detached state during user think time. Hibernate allows you to "
-"reattach the objects and persist the modifications. The pattern is called "
-"<emphasis>session-per-request-with-detached-objects</emphasis>. Automatic "
-"versioning is used to isolate concurrent modifications."
-msgstr ""
-"<emphasis>è±ç®¡å¯¹è±¡</emphasis>ï¼Detached Objectsï¼- å¦æä½ å³å®éç¨åé¢å·²ç»è®¨è®º"
-"è¿ç <emphasis>session-per-request</emphasis>模å¼ï¼ææè½½å
¥çå®ä¾å¨ç¨æ·æèç"
-"è¿ç¨ ä¸é½å¤äºä¸Sessionè±ç¦»çç¶æãHibernateå
è®¸ä½ æä¸Sessionè±ç¦»çå¯¹è±¡éæ°å
³"
-"èå°Session ä¸ï¼å¹¶ä¸å¯¹ä¿®æ¹è¿è¡æä¹
åï¼è¿ç§æ¨¡å¼è¢«ç§°ä¸º <emphasis>session-per-"
-"request-with-detached-objects</emphasis>ãèªå¨çæ¬åè¢«ç¨æ¥é离并åä¿®æ¹ã"
+#, no-c-format
+msgid "<emphasis>Detached Objects</emphasis>: if you decide to use the <emphasis>session-per-request</emphasis> pattern, all loaded instances will be in the detached state during user think time. Hibernate allows you to reattach the objects and persist the modifications. The pattern is called <emphasis>session-per-request-with-detached-objects</emphasis>. Automatic versioning is used to isolate concurrent modifications."
+msgstr "<emphasis>è±ç®¡å¯¹è±¡</emphasis>ï¼Detached Objectsï¼ï¼å¦æä½ å³å®éç¨åé¢å·²ç»è®¨è®ºè¿ç <emphasis>session-per-request</emphasis> 模å¼ï¼ææè½½å
¥çå®ä¾å¨ç¨æ·æèçè¿ç¨ä¸é½å¤äºä¸ Session è±ç¦»çç¶æãHibernate å
è®¸ä½ æä¸ Session è±ç¦»çå¯¹è±¡éæ°å
³èå° Session ä¸ï¼å¹¶ä¸å¯¹ä¿®æ¹è¿è¡æä¹
åï¼è¿ç§æ¨¡å¼è¢«ç§°ä¸º <emphasis>session-per-request-with-detached-objects</emphasis>ãèªå¨çæ¬åè¢«ç¨æ¥é离并åä¿®æ¹ã"
#. Tag: para
-#: transactions.xml:245
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Extended (or Long) Session</emphasis>: the Hibernate "
-"<literal>Session</literal> can be disconnected from the underlying JDBC "
-"connection after the database transaction has been committed and reconnected "
-"when a new client request occurs. This pattern is known as <emphasis>session-"
-"per-conversation</emphasis> and makes even reattachment unnecessary. "
-"Automatic versioning is used to isolate concurrent modifications and the "
-"<literal>Session</literal> will not be allowed to be flushed automatically, "
-"but explicitly."
-msgstr ""
-"<emphasis>Extended (or Long) Session</emphasis> - Hibernate ç"
-"<literal>Session</literal> å¯ä»¥å¨æ°æ®åºäºå¡æäº¤ä¹åååºå±çJDBCè¿æ¥æå¼ï¼å½ä¸"
-"个æ°ç客æ·ç«¯è¯·æ±å°æ¥çæ¶åï¼å®åéæ°è¿æ¥ä¸åºå±ç JDBCè¿æ¥ãè¿ç§æ¨¡å¼è¢«ç§°ä¹ä¸º"
-"<emphasis>session-per-conversation</emphasis>ï¼è¿ç§æ
åµå¯ è½ä¼é æä¸å¿
è¦ç"
-"SessionåJDBCè¿æ¥çéæ°å
³èãèªå¨çæ¬åè¢«ç¨æ¥é离并åä¿®æ¹, <literal>Session</"
-"literal>é常ä¸å
许èªå¨flush,èæ¯æç¡®flushã"
+#, no-c-format
+msgid "<emphasis>Extended (or Long) Session</emphasis>: the Hibernate <literal>Session</literal> can be disconnected from the underlying JDBC connection after the database transaction has been committed and reconnected when a new client request occurs. This pattern is known as <emphasis>session-per-conversation</emphasis> and makes even reattachment unnecessary. Automatic versioning is used to isolate concurrent modifications and the <literal>Session</literal> will not be allowed to be flushed automatically, but explicitly."
+msgstr "<emphasis>Extended (or Long) Session</emphasis>ï¼Hibernate ç <literal>Session</literal> å¯ä»¥å¨æ°æ®åºäºå¡æäº¤ä¹åååºå±ç JDBC è¿æ¥æå¼ï¼å½ä¸ä¸ªæ°ç客æ·ç«¯è¯·æ±å°æ¥çæ¶åï¼å®åéæ°è¿æ¥ä¸åºå±ç JDBC è¿æ¥ãè¿ç§æ¨¡å¼è¢«ç§°ä¹ä¸º<emphasis>session-per-conversation</emphasis>ï¼è¿ç§æ
åµå¯ è½ä¼é æä¸å¿
è¦ç Session å JDBC è¿æ¥çéæ°å
³èãèªå¨çæ¬åè¢«ç¨æ¥é离并åä¿®æ¹ï¼<literal>Session</literal> é常ä¸å
许èªå¨ flushï¼èæ¯æ¾æ§å° flushã "
#. Tag: para
-#: transactions.xml:258
-#, fuzzy, no-c-format
-msgid ""
-"Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
-"<emphasis>session-per-conversation</emphasis> have advantages and "
-"disadvantages. These disadvantages are discussed later in this chapter in "
-"the context of optimistic concurrency control."
-msgstr ""
-"<emphasis>session-per-request-with-detached-objects</emphasis> å "
-"<emphasis>session-per-conversation</emphasis> åæä¼ç¼ºç¹ï¼æä»¬å¨æ¬ç« åé¢ä¹è§"
-"å¹¶å æ§å¶é£é¨ååè¿è¡è®¨è®ºã"
+#, no-c-format
+msgid "Both <emphasis>session-per-request-with-detached-objects</emphasis> and <emphasis>session-per-conversation</emphasis> have advantages and disadvantages. These disadvantages are discussed later in this chapter in the context of optimistic concurrency control."
+msgstr "<emphasis>session-per-request-with-detached-objects</emphasis> å <emphasis>session-per-conversation</emphasis> åæä¼ç¼ºç¹ï¼æä»¬å¨æ¬ç« åé¢ä¹è§å¹¶åæ§å¶é£é¨ååè¿è¡è®¨è®ºã "
#. Tag: title
-#: transactions.xml:267
#, no-c-format
msgid "Considering object identity"
-msgstr "å
³æ³¨å¯¹è±¡æ è¯(Considering object identity)"
+msgstr "å
³æ³¨å¯¹è±¡æ è¯ï¼Considering object identityï¼"
#. Tag: para
-#: transactions.xml:269
-#, fuzzy, no-c-format
-msgid ""
-"An application can concurrently access the same persistent state in two "
-"different <literal>Session</literal>s. However, an instance of a persistent "
-"class is never shared between two <literal>Session</literal> instances. It "
-"is for this reason that there are two different notions of identity:"
-msgstr ""
-"åºç¨ç¨åºå¯è½å¨ä¸¤ä¸ªä¸åç<literal>Session</literal>ä¸å¹¶å访é®å䏿ä¹
åç¶æï¼"
-"使¯ï¼ ä¸ä¸ªæä¹
åç±»çå®ä¾æ æ³å¨ä¸¤ä¸ª <literal>Session</literal>ä¸å
±äº«ãå æ¤æ"
-"两ç§ä¸åçæ è¯è¯ä¹ï¼"
+#, no-c-format
+msgid "An application can concurrently access the same persistent state in two different <literal>Session</literal>s. However, an instance of a persistent class is never shared between two <literal>Session</literal> instances. It is for this reason that there are two different notions of identity:"
+msgstr "åºç¨ç¨åºå¯è½å¨ä¸¤ä¸ªä¸åç <literal>Session</literal> ä¸å¹¶å访é®å䏿ä¹
åç¶æï¼ä½æ¯ï¼ä¸ä¸ªæä¹
åç±»çå®ä¾æ æ³å¨ä¸¤ä¸ª <literal>Session</literal> ä¸å
±äº«ãå æ¤æä¸¤ç§ä¸åçæ è¯è¯ä¹ï¼ "
#. Tag: term
-#: transactions.xml:278
#, no-c-format
msgid "Database Identity"
msgstr "æ°æ®åºæ è¯"
-#. Tag: literal
-#: transactions.xml:281
+#. Tag: para
#, no-c-format
-msgid "foo.getId().equals( bar.getId() )"
-msgstr "foo.getId().equals( bar.getId() )"
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
#. Tag: term
-#: transactions.xml:286
#, no-c-format
msgid "JVM Identity"
msgstr "JVM æ è¯"
-#. Tag: literal
-#: transactions.xml:289
+#. Tag: para
#, no-c-format
-msgid "foo==bar"
-msgstr "foo==bar"
+msgid "<literal>foo==bar</literal>"
+msgstr "<literal>foo==bar</literal>"
#. Tag: para
-#: transactions.xml:295
-#, fuzzy, no-c-format
-msgid ""
-"For objects attached to a <emphasis>particular</emphasis> <literal>Session</"
-"literal> (i.e., in the scope of a <literal>Session</literal>), the two "
-"notions are equivalent and JVM identity for database identity is guaranteed "
-"by Hibernate. While the application might concurrently access the \"same"
-"\" (persistent identity) business object in two different sessions, the two "
-"instances will actually be \"different\" (JVM identity). Conflicts are "
-"resolved using an optimistic approach and automatic versioning at flush/"
-"commit time."
-msgstr ""
-"对äºé£äºå
³èå° <emphasis>ç¹å®</emphasis><literal>Session</literal> ï¼ä¹å°±æ¯å¨"
-"å个<literal>Session</literal>çèå´å
ï¼ä¸ç对象æ¥è¯´ï¼è¿ ä¸¤ç§æ è¯çè¯ä¹æ¯çä»·"
-"çï¼ä¸æ°æ®åºæ è¯å¯¹åºçJVMæ è¯æ¯ç±Hibernateæ¥ä¿ è¯çãä¸è¿ï¼å½åºç¨ç¨åºå¨ä¸¤ä¸ªä¸"
-"åçsessionä¸å¹¶å访é®å
·æå䏿ä¹
åæ è¯çä¸å¡å¯¹è±¡å®ä¾çæ¶åï¼è¿ä¸ªä¸å¡å¯¹è±¡ç"
-"两个å®ä¾äºå®ä¸æ¯ä¸ç¸åçï¼ä» JVMè¯å«æ¥çï¼ãè¿ç§å²çªå¯ä»¥éè¿å¨åæ¥åæäº¤çæ¶"
-"å使ç¨èªå¨çæ¬ååä¹ è§é宿¹æ³æ¥è§£å³ã"
+#, no-c-format
+msgid "For objects attached to a <emphasis>particular</emphasis> <literal>Session</literal> (i.e., in the scope of a <literal>Session</literal>), the two notions are equivalent and JVM identity for database identity is guaranteed by Hibernate. While the application might concurrently access the \"same\" (persistent identity) business object in two different sessions, the two instances will actually be \"different\" (JVM identity). Conflicts are resolved using an optimistic approach and automatic versioning at flush/commit time."
+msgstr "对äºé£äºå
³èå° <emphasis>ç¹å®</emphasis> <literal>Session</literal>ï¼ä¹å°±æ¯å¨å个 <literal>Session</literal> çèå´å
ï¼ä¸ç对象æ¥è¯´ï¼è¿ä¸¤ç§æ è¯çè¯ä¹æ¯çä»·çï¼ä¸æ°æ®åºæ è¯å¯¹åºç JVM æ è¯æ¯ç± Hibernate æ¥ä¿è¯çãä¸è¿ï¼å½åºç¨ç¨åºå¨ä¸¤ä¸ªä¸åç session ä¸å¹¶å访é®å
·æå䏿ä¹
åæ è¯çä¸å¡å¯¹è±¡å®ä¾çæ¶åï¼è¿ä¸ªä¸å¡å¯¹è±¡ç两个å®ä¾äºå®ä¸æ¯ä¸ç¸åçï¼ä» JVM è¯å«æ¥çï¼ãè¿ç§å²çªå¯ä»¥éè¿å¨åæ¥åæäº¤çæ¶å使ç¨èªå¨çæ¬ååä¹è§é宿¹æ³æ¥è§£å³ã "
#. Tag: para
-#: transactions.xml:304
-#, fuzzy, no-c-format
-msgid ""
-"This approach leaves Hibernate and the database to worry about concurrency. "
-"It also provides the best scalability, since guaranteeing identity in single-"
-"threaded units of work means that it does not need expensive locking or "
-"other means of synchronization. The application does not need to synchronize "
-"on any business object, as long as it maintains a single thread per "
-"<literal>Session</literal>. Within a <literal>Session</literal> the "
-"application can safely use <literal>==</literal> to compare objects."
-msgstr ""
-"è¿ç§æ¹å¼æå
³äºå¹¶åç头ç¼é®é¢çç»äºHibernateåæ°æ®åºï¼ç±äºå¨å个线ç¨å
ï¼æä½å"
-"å
ä¸ç对象è¯å«ä¸ éè¦ä»£ä»·æè´µçé宿å
¶ä»æä¹ä¸ç忥ï¼å æ¤å®åæ¶å¯ä»¥æä¾æå¥½"
-"çå¯ä¼¸ç¼©æ§ãåªè¦å¨å个线ç¨åªææä¸ä¸ª <literal>Session</literal>ï¼åºç¨ç¨åºå°±ä¸"
-"éè¦åæ¥ä»»ä½ä¸å¡å¯¹è±¡ãå¨<literal>Session</literal> çèå´å
ï¼åºç¨ç¨åºå¯ä»¥æ¾å¿"
-"ç使ç¨<literal>==</literal>è¿è¡å¯¹è±¡æ¯è¾ã"
+#, no-c-format
+msgid "This approach leaves Hibernate and the database to worry about concurrency. It also provides the best scalability, since guaranteeing identity in single-threaded units of work means that it does not need expensive locking or other means of synchronization. The application does not need to synchronize on any business object, as long as it maintains a single thread per <literal>Session</literal>. Within a <literal>Session</literal> the application can safely use <literal>==</literal> to compare objects."
+msgstr "è¿ç§æ¹å¼æå
³äºå¹¶åç头ç¼é®é¢çç»äº Hibernate åæ°æ®åºï¼ç±äºå¨å个线ç¨å
ï¼æä½åå
ä¸ç对象è¯å«ä¸ éè¦ä»£ä»·æè´µçé宿å
¶ä»æä¹ä¸ç忥ï¼å æ¤å®åæ¶å¯ä»¥æä¾æå¥½çå¯ä¼¸ç¼©æ§ãåªè¦å¨å个线ç¨åªææä¸ä¸ª <literal>Session</literal>ï¼åºç¨ç¨åºå°±ä¸éè¦åæ¥ä»»ä½ä¸å¡å¯¹è±¡ãå¨ <literal>Session</literal> çèå´å
ï¼åºç¨ç¨åºå¯ä»¥æ¾å¿çä½¿ç¨ <literal>==</literal> è¿è¡å¯¹è±¡æ¯è¾ã "
#. Tag: para
-#: transactions.xml:313
-#, fuzzy, no-c-format
-msgid ""
-"However, an application that uses <literal>==</literal> outside of a "
-"<literal>Session</literal> might produce unexpected results. This might "
-"occur even in some unexpected places. For example, if you put two detached "
-"instances into the same <literal>Set</literal>, both might have the same "
-"database identity (i.e., they represent the same row). JVM identity, "
-"however, is by definition not guaranteed for instances in a detached state. "
-"The developer has to override the <literal>equals()</literal> and "
-"<literal>hashCode()</literal> methods in persistent classes and implement "
-"their own notion of object equality. There is one caveat: never use the "
-"database identifier to implement equality. Use a business key that is a "
-"combination of unique, usually immutable, attributes. The database "
-"identifier will change if a transient object is made persistent. If the "
-"transient instance (usually together with detached instances) is held in a "
-"<literal>Set</literal>, changing the hashcode breaks the contract of the "
-"<literal>Set</literal>. Attributes for business keys do not have to be as "
-"stable as database primary keys; you only have to guarantee stability as "
-"long as the objects are in the same <literal>Set</literal>. See the "
-"Hibernate website for a more thorough discussion of this issue. Please note "
-"that this is not a Hibernate issue, but simply how Java object identity and "
-"equality has to be implemented."
-msgstr ""
-"ä¸è¿ï¼åºç¨ç¨åºå¨<literal>Session</literal>çå¤é¢ä½¿ç¨<literal>==</literal>è¿è¡"
-"对象æ¯è¾å¯è½ä¼ å¯¼è´æ æ³é¢æçç»æãå¨ä¸äºæ æ³é¢æçåºåï¼ä¾å¦ï¼å¦æä½ æä¸¤ä¸ªè±"
-"管对象å®ä¾æ¾è¿åä¸ä¸ª <literal>Set</literal>çæ¶åï¼å°±å¯è½åçãè¿ä¸¤ä¸ªå¯¹è±¡å®ä¾"
-"å¯è½æåä¸ä¸ªæ°æ®åºæ è¯ï¼ä¹å°±æ¯è¯´ï¼ ä»ä»¬ä»£è¡¨äºè¡¨çåä¸è¡æ°æ®ï¼ï¼ä»JVMæ è¯çå®"
-"ä¹ä¸æ¥è¯´ï¼å¯¹è±ç®¡ç对象èè¨ï¼Hibernateæ æ³ä¿è¯ä»ä»¬ ççJVMæ è¯ä¸è´ãå¼å人åå¿
"
-"é¡»è¦çæä¹
åç±»ç<literal>equals()</literal>æ¹æ³å <literal>hashCode()</"
-"literal> æ¹æ³ï¼ä»èå®ç°èªå®ä¹ç对象ç¸çè¯ä¹ãè¦åï¼ä¸è¦ä½¿ç¨æ°æ®åºæ è¯ æ¥å®ç°"
-"对象ç¸çï¼åºè¯¥ä½¿ç¨ä¸å¡é®å¼ï¼ç±å¯ä¸çï¼é常ä¸åç屿§ç»æãå½ä¸ä¸ªç¬æ¶å¯¹è±¡è¢«æ"
-"ä¹
åçæ¶ åï¼å®çæ°æ®åºæ è¯ä¼åçæ¹åã妿ä¸ä¸ªç¬æ¶å¯¹è±¡ï¼é常ä¹å
æ¬è±ç®¡å¯¹è±¡å®"
-"ä¾ï¼è¢«æ¾å
¥ä¸ 个<literal>Set</literal>ï¼æ¹åå®çhashcodeä¼å¯¼è´ä¸è¿ä¸ª"
-"<literal>Set</literal>çå
³ç³»ä¸æãè½ ç¶ä¸å¡é®å¼ç屿§ä¸è±¡æ°æ®åºä¸»é®é£æ ·ç¨³å®ä¸"
-"åï¼ä½æ¯ä½ åªéè¦ä¿è¯å¨åä¸ä¸ª<literal>Set</literal> ä¸çå¯¹è±¡å±æ§çç¨³å®æ§å°±è¶³å¤"
-"äºã请å°Hibernateç½ç«å»å¯»æ±è¿ä¸ªé®é¢æ´å¤ç详ç»ç讨论ã请注æï¼è¿ä¸æ¯ä¸ 个æå
³"
-"Hibernateçé®é¢ï¼èä»
ä»
æ¯ä¸ä¸ªå
³äºJava对象æ è¯åå¤çè¡ä¸ºå¦ä½å®ç°çé®é¢ã"
+#, no-c-format
+msgid "However, an application that uses <literal>==</literal> outside of a <literal>Session</literal> might produce unexpected results. This might occur even in some unexpected places. For example, if you put two detached instances into the same <literal>Set</literal>, both might have the same database identity (i.e., they represent the same row). JVM identity, however, is by definition not guaranteed for instances in a detached state. The developer has to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods in persistent classes and implement their own notion of object equality. There is one caveat: never use the database identifier to implement equality. Use a business key that is a combination of unique, usually immutable, attributes. The database identifier will change if a transient object is made persistent. If the transient instance (usually together with detached instances) is held in a <literal>Set</literal>, changing the hashcode bre!
aks the contract of the <literal>Set</literal>. Attributes for business keys do not have to be as stable as database primary keys; you only have to guarantee stability as long as the objects are in the same <literal>Set</literal>. See the Hibernate website for a more thorough discussion of this issue. Please note that this is not a Hibernate issue, but simply how Java object identity and equality has to be implemented."
+msgstr "ä¸è¿ï¼åºç¨ç¨åºå¨ <literal>Session</literal> çå¤é¢ä½¿ç¨ <literal>==</literal> è¿è¡å¯¹è±¡æ¯è¾å¯è½ä¼ å¯¼è´æ æ³é¢æçç»æãå¨ä¸äºæ æ³é¢æçåºåï¼ä¾å¦ï¼å¦æä½ æä¸¤ä¸ªè±ç®¡å¯¹è±¡å®ä¾æ¾è¿åä¸ä¸ª <literal>Set</literal> çæ¶åï¼å°±å¯è½åçãè¿ä¸¤ä¸ªå¯¹è±¡å®ä¾å¯è½æåä¸ä¸ªæ°æ®åºæ è¯ï¼ä¹å°±æ¯è¯´ï¼ ä»ä»¬ä»£è¡¨äºè¡¨çåä¸è¡æ°æ®ï¼ï¼ä» JVM æ è¯çå®ä¹ä¸æ¥è¯´ï¼å¯¹è±ç®¡ç对象èè¨ï¼Hibernate æ æ³ä¿è¯ä»ä»¬ çç JVM æ è¯ä¸è´ãå¼å人åå¿
é¡»è¦çæä¹
åç±»ç <literal>equals()</literal> æ¹æ³å <literal>hashCode()</literal> æ¹æ³ï¼ä»èå®ç°èªå®ä¹ç对象ç¸çè¯ä¹ãè¦åï¼ä¸è¦ä½¿ç¨æ°æ®åºæ è¯æ¥å®ç°å¯¹è±¡ç¸çï¼åºè¯¥ä½¿ç¨ä¸å¡é®å¼ï¼ç±å¯ä¸çï¼é常ä¸åç屿§ç»æãå½ä¸ä¸ªç¬æ¶å¯¹è±¡è¢«æä¹
åçæ¶åï¼å®çæ°æ®åºæ è¯ä¼åçæ¹åã妿ä¸ä¸ªç¬æ¶å¯¹è±¡ï¼é常ä¹å
æ¬è±ç®¡å¯¹è±¡å®ä¾ï¼è¢«æ¾å
¥ä!
¸ä¸ª <literal>Set</literal>ï¼æ¹åå®ç hashcode ä¼å¯¼è´ä¸è¿ä¸ª <literal>Set</literal> çå
³ç³»ä¸æãè½ ç¶ä¸å¡é®å¼ç屿§ä¸è±¡æ°æ®åºä¸»é®é£æ ·ç¨³å®ä¸åï¼ä½æ¯ä½ åªéè¦ä¿è¯å¨åä¸ä¸ª <literal>Set</literal> ä¸çå¯¹è±¡å±æ§çç¨³å®æ§å°±è¶³å¤äºãè¯·å° Hibernate ç½ç«å»å¯»æ±è¿ä¸ªé®é¢æ´å¤ç详ç»ç讨论ã请注æï¼è¿ä¸æ¯ä¸ä¸ªæå
³ Hibernate çé®é¢ï¼èä»
ä»
æ¯ä¸ä¸ªå
³äº Java 对象æ è¯åå¤çè¡ä¸ºå¦ä½å®ç°çé®é¢ã "
#. Tag: title
-#: transactions.xml:334
#, no-c-format
msgid "Common issues"
msgstr "常è§é®é¢"
#. Tag: para
-#: transactions.xml:336
-#, fuzzy, no-c-format
-msgid ""
-"Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> "
-"or <emphasis>session-per-application</emphasis> (there are, however, rare "
-"exceptions to this rule). Some of the following issues might also arise "
-"within the recommended patterns, so ensure that you understand the "
-"implications before making a design decision:"
-msgstr ""
-"å³ä¸è¦ä½¿ç¨å模å¼<emphasis>session-per-user-session</emphasis>æè
<emphasis> "
-"session-per-application</emphasis>ï¼å½ç¶ï¼è¿ä¸ªè§å®å 乿²¡æä¾å¤ï¼ã请注æï¼ ä¸"
-"è¿°ä¸äºé®é¢å¯è½ä¹ä¼åºç°å¨æä»¬æ¨èçæ¨¡å¼ä¸ï¼å¨ä½ ä½åºæä¸ªè®¾è®¡å³å®ä¹åï¼è¯·å¡å¿
ç"
-"解该模å¼çåºç¨åæã"
+#, no-c-format
+msgid "Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> or <emphasis>session-per-application</emphasis> (there are, however, rare exceptions to this rule). Some of the following issues might also arise within the recommended patterns, so ensure that you understand the implications before making a design decision:"
+msgstr "å³ä¸è¦ä½¿ç¨åæ¨¡å¼ <emphasis>session-per-user-session</emphasis> æè
<emphasis> session-per-application</emphasis>ï¼å½ç¶ï¼è¿ä¸ªè§å®å 乿²¡æä¾å¤ï¼ã请注æï¼ä¸è¿°ä¸äºé®é¢å¯è½ä¹ä¼åºç°å¨æä»¬æ¨èçæ¨¡å¼ä¸ï¼å¨ä½ ä½åºæä¸ªè®¾è®¡å³å®ä¹åï¼è¯·å¡å¿
ç解该模å¼çåºç¨åæã "
#. Tag: para
-#: transactions.xml:345
-#, fuzzy, no-c-format
-msgid ""
-"A <literal>Session</literal> is not thread-safe. Things that work "
-"concurrently, like HTTP requests, session beans, or Swing workers, will "
-"cause race conditions if a <literal>Session</literal> instance is shared. If "
-"you keep your Hibernate <literal>Session</literal> in your "
-"<literal>HttpSession</literal> (this is discussed later in the chapter), you "
-"should consider synchronizing access to your Http session. Otherwise, a user "
-"that clicks reload fast enough can use the same <literal>Session</literal> "
-"in two concurrently running threads."
-msgstr ""
-"<literal>Session</literal> 对象æ¯é线ç¨å®å
¨çã妿ä¸ä¸ª<literal>Session</"
-"literal> å®ä¾å
许å
±äº«çè¯ï¼é£äºæ¯æå¹¶åè¿è¡çä¸ä¸ï¼ä¾å¦HTTP requestï¼session "
-"beans,æè
æ¯ Swing workersï¼å°ä¼å¯¼è´åºç°èµæºäºç¨ï¼race conditionï¼ã妿å¨"
-"<literal>HttpSession</literal>䏿 Hibernate ç<literal>Session</literal>çè¯"
-"ï¼ç¨å讨论ï¼ï¼ä½ åºè¯¥èèåæ¥è®¿é®ä½ çHttp sessionã å¦åï¼åªè¦ç¨æ·è¶³å¤å¿«çç¹å»"
-"æµè§å¨çâå·æ°âï¼å°±ä¼å¯¼è´ä¸¤ä¸ªå¹¶åè¿è¡çº¿ç¨ä½¿ç¨åä¸ä¸ª <literal>Session</"
-"literal>ã"
+#, no-c-format
+msgid "A <literal>Session</literal> is not thread-safe. Things that work concurrently, like HTTP requests, session beans, or Swing workers, will cause race conditions if a <literal>Session</literal> instance is shared. If you keep your Hibernate <literal>Session</literal> in your <literal>HttpSession</literal> (this is discussed later in the chapter), you should consider synchronizing access to your Http session. Otherwise, a user that clicks reload fast enough can use the same <literal>Session</literal> in two concurrently running threads."
+msgstr "<literal>Session</literal> 对象æ¯é线ç¨å®å
¨çã妿ä¸ä¸ª <literal>Session</literal> å®ä¾å
许å
±äº«çè¯ï¼é£äºæ¯æå¹¶åè¿è¡çä¸ä¸ï¼ä¾å¦ HTTP requestï¼session beans æè
æ¯ Swing workersï¼å°ä¼å¯¼è´åºç°èµæºäºç¨ï¼race conditionï¼ãå¦æå¨ <literal>HttpSession</literal> 䏿 Hibernate ç <literal>Session</literal> çè¯ï¼ç¨å讨论ï¼ï¼ä½ åºè¯¥èèåæ¥è®¿é®ä½ ç Http sessionã å¦åï¼åªè¦ç¨æ·è¶³å¤å¿«çç¹å»æµè§å¨çâå·æ°âï¼å°±ä¼å¯¼è´ä¸¤ä¸ªå¹¶åè¿è¡çº¿ç¨ä½¿ç¨åä¸ä¸ª <literal>Session</literal>ã "
#. Tag: para
-#: transactions.xml:356
-#, fuzzy, no-c-format
-msgid ""
-"An exception thrown by Hibernate means you have to rollback your database "
-"transaction and close the <literal>Session</literal> immediately (this is "
-"discussed in more detail later in the chapter). If your <literal>Session</"
-"literal> is bound to the application, you have to stop the application. "
-"Rolling back the database transaction does not put your business objects "
-"back into the state they were at the start of the transaction. This means "
-"that the database state and the business objects will be out of sync. "
-"Usually this is not a problem, because exceptions are not recoverable and "
-"you will have to start over after rollback anyway."
-msgstr ""
-"ä¸ä¸ªç±Hibernateæåºçå¼å¸¸æå³çä½ å¿
é¡»ç«å³åæ»æ°æ®åºäºå¡ï¼å¹¶ç«å³å
³é"
-"<literal>Session</literal> ï¼ç¨åä¼å±å¼è®¨è®ºï¼ãå¦æä½ ç<literal>Session</"
-"literal>ç»å®å°ä¸ä¸ªåºç¨ç¨åºä¸ï¼ä½ å¿
é¡»åæ¢è¯¥åºç¨ç¨åºãåæ»æ°æ®åºäºå¡å¹¶ä¸ä¼æä½ "
-"çä¸å¡å¯¹è±¡éåå°äºå¡å¯å¨æ¶åçç¶æãè¿ æå³çæ°æ®åºç¶æåä¸å¡å¯¹è±¡ç¶æä¸åæ¥ã"
-"é常æ
åµä¸ï¼è¿ä¸æ¯ä»ä¹é®é¢ï¼å 为å¼å¸¸æ¯ä¸å¯ æ¢å¤ç,ä½ å¿
é¡»å¨åæ»ä¹åéæ°å¼å§æ§"
-"è¡ã"
+#, no-c-format
+msgid "An exception thrown by Hibernate means you have to rollback your database transaction and close the <literal>Session</literal> immediately (this is discussed in more detail later in the chapter). If your <literal>Session</literal> is bound to the application, you have to stop the application. Rolling back the database transaction does not put your business objects back into the state they were at the start of the transaction. This means that the database state and the business objects will be out of sync. Usually this is not a problem, because exceptions are not recoverable and you will have to start over after rollback anyway."
+msgstr "ä¸ä¸ªç± Hibernate æåºçå¼å¸¸æå³çä½ å¿
é¡»ç«å³åæ»æ°æ®åºäºå¡ï¼å¹¶ç«å³å
³é <literal>Session</literal>ï¼ç¨åä¼å±å¼è®¨è®ºï¼ãå¦æä½ ç <literal>Session</literal> ç»å®å°ä¸ä¸ªåºç¨ç¨åºä¸ï¼ä½ å¿
é¡»åæ¢è¯¥åºç¨ç¨åºãåæ»æ°æ®åºäºå¡å¹¶ä¸ä¼æä½ çä¸å¡å¯¹è±¡éåå°äºå¡å¯å¨æ¶åçç¶æãè¿æå³çæ°æ®åºç¶æåä¸å¡å¯¹è±¡ç¶æä¸åæ¥ãé常æ
åµä¸ï¼è¿ä¸æ¯ä»ä¹é®é¢ï¼å 为å¼å¸¸æ¯ä¸å¯æ¢å¤çï¼ä½ å¿
é¡»å¨åæ»ä¹åéæ°å¼å§æ§è¡ã "
#. Tag: para
-#: transactions.xml:368
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>Session</literal> caches every object that is in a persistent "
-"state (watched and checked for dirty state by Hibernate). If you keep it "
-"open for a long time or simply load too much data, it will grow endlessly "
-"until you get an OutOfMemoryException. One solution is to call <literal>clear"
-"()</literal> and <literal>evict()</literal> to manage the <literal>Session</"
-"literal> cache, but you should consider a Stored Procedure if you need mass "
-"data operations. Some solutions are shown in <xref linkend=\"batch\"/>. "
-"Keeping a <literal>Session</literal> open for the duration of a user session "
-"also means a higher probability of stale data."
-msgstr ""
-"<literal>Session</literal> ç¼åäºå¤äºæä¹
åç¶æçæ¯ä¸ªå¯¹è±¡ï¼Hibernateä¼çè§å"
-"æ£æ¥èæ°æ®ï¼ã è¿æå³çï¼å¦æä½ 让<literal>Session</literal>æå¼å¾é¿ä¸æ®µæ¶é´ï¼"
-"ææ¯ä»
ä»
è½½å
¥äºè¿å¤çæ°æ®ï¼ <literal>Session</literal>å ç¨çå
åä¼ä¸ç´å¢é¿ï¼ç´"
-"å°æåºOutOfMemoryExceptionå¼å¸¸ãè¿ä¸ª é®é¢çä¸ä¸ªè§£å³æ¹æ³æ¯è°ç¨<literal>clear()"
-"</literal> å<literal>evict()</literal>æ¥ç®¡ç <literal>Session</literal>çç¼"
-"åï¼ä½æ¯å¦æä½ éè¦å¤§æ¹éæ°æ®æä½çè¯ï¼æå¥½èè 使ç¨åå¨è¿ç¨ãå¨<xref linkend="
-"\"batch\"/>䏿ä¸äºè§£å³æ¹æ¡ãå¨ç¨æ·ä¼è¯æé´ä¸ç´ä¿æ <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
-#: transactions.xml:386
#, no-c-format
msgid "Database transaction demarcation"
msgstr "æ°æ®åºäºå¡å£°æ"
#. Tag: para
-#: transactions.xml:388
-#, fuzzy, no-c-format
-msgid ""
-"Database, or system, transaction boundaries are always necessary. No "
-"communication with the database can occur outside of a database transaction "
-"(this seems to confuse many developers who are used to the auto-commit "
-"mode). Always use clear transaction boundaries, even for read-only "
-"operations. Depending on your isolation level and database capabilities this "
-"might not be required, but there is no downside if you always demarcate "
-"transactions explicitly. Certainly, a single database transaction is going "
-"to perform better than many small transactions, even for reading data."
-msgstr ""
-"æ°æ®åºï¼æè
ç³»ç»ï¼äºå¡çå£°ææ»æ¯å¿
é¡»çã卿°æ®åºäºå¡ä¹å¤ï¼å°±æ æ³åæ°æ®åºé讯"
-"ï¼è¿å¯è½ä¼è®©é£äºä¹ æ¯äº èªå¨æäº¤äºå¡æ¨¡å¼çå¼å人åæå°è¿·æï¼ãæ°¸è¿ä½¿ç¨æ¸
æ°çäº"
-"å¡å£°æï¼å³ä½¿åªè¯»æä½ä¹æ¯å¦æ¤ãè¿è¡ æ¾å¼çäºå¡å£°æå¹¶ä¸æ»æ¯éè¦çï¼è¿åå³äºä½ ç"
-"äºå¡é离级å«åæ°æ®åºçè½åï¼ä½ä¸ç®¡æä¹è¯´ï¼å£°æäºå¡æ»å½æçæ 害ãå½ç¶ï¼ä¸ä¸ªå"
-"ç¬çæ°æ®åºäºå¡æ»æ¯æ¯å¾å¤çç¢çäºå¡æ§è½æ´å¥½ï¼å³æ¶å¯¹è¯»æ°æ®èè¨ä¹æ¯ä¸æ ·ã"
+#, no-c-format
+msgid "Database, or system, transaction boundaries are always necessary. No communication with the database can occur outside of a database transaction (this seems to confuse many developers who are used to the auto-commit mode). Always use clear transaction boundaries, even for read-only operations. Depending on your isolation level and database capabilities this might not be required, but there is no downside if you always demarcate transactions explicitly. Certainly, a single database transaction is going to perform better than many small transactions, even for reading data."
+msgstr "æ°æ®åºï¼æè
ç³»ç»ï¼äºå¡çå£°ææ»æ¯å¿
é¡»çã卿°æ®åºäºå¡ä¹å¤ï¼å°±æ æ³åæ°æ®åºé讯ï¼è¿å¯è½ä¼è®©é£äºä¹ æ¯äºèªå¨æäº¤äºå¡æ¨¡å¼çå¼å人åæå°è¿·æï¼ãæ°¸è¿ä½¿ç¨æ¸
æ°çäºå¡å£°æï¼å³ä½¿åªè¯»æä½ä¹æ¯å¦æ¤ãè¿è¡ æ¾å¼çäºå¡å£°æå¹¶ä¸æ»æ¯éè¦çï¼è¿åå³äºä½ çäºå¡é离级å«åæ°æ®åºçè½åï¼ä½ä¸ç®¡æä¹è¯´ï¼å£°æäºå¡æ»å½æçæ 害ãå½ç¶ï¼ä¸ä¸ªåç¬çæ°æ®åºäºå¡æ»æ¯æ¯å¾å¤çç¢çäºå¡æ§è½æ´å¥½ï¼å³æ¶å¯¹è¯»æ°æ®èè¨ä¹æ¯ä¸æ ·ã "
#. Tag: para
-#: transactions.xml:398
-#, fuzzy, no-c-format
-msgid ""
-"A Hibernate application can run in non-managed (i.e., standalone, simple "
-"Web- or Swing applications) and managed J2EE environments. In a non-managed "
-"environment, Hibernate is usually responsible for its own database "
-"connection pool. The application developer has to manually set transaction "
-"boundaries (begin, commit, or rollback database transactions) themselves. A "
-"managed environment usually provides container-managed transactions (CMT), "
-"with the transaction assembly defined declaratively (in deployment "
-"descriptors of EJB session beans, for example). Programmatic transaction "
-"demarcation is then no longer necessary."
-msgstr ""
-"ä¸ä¸ªHibernateåºç¨ç¨åºå¯ä»¥è¿è¡å¨éæç®¡ç¯å¢ä¸ï¼ä¹å°±æ¯ç¬ç«è¿è¡çåºç¨ç¨åºï¼ç®å"
-"Webåºç¨ç¨åºï¼ æè
Swingå¾å½¢æ¡é¢åºç¨ç¨åºï¼ï¼ä¹å¯ä»¥è¿è¡å¨æç®¡çJ2EEç¯å¢ä¸ãå¨ä¸"
-"个éæç®¡ç¯å¢ä¸ï¼Hibernate é常èªå·±è´è´£ç®¡çæ°æ®åºè¿æ¥æ± ãåºç¨ç¨åºå¼å人åå¿
é¡»"
-"æå·¥è®¾ç½®äºå¡å£°æï¼æ¢å¥è¯è¯´ï¼å°±æ¯æå·¥å¯ å¨ï¼æäº¤ï¼æè
åæ»æ°æ®åºäºå¡ãä¸ä¸ªæç®¡"
-"çç¯å¢é常æä¾äºå®¹å¨ç®¡çäºå¡(CMT)ï¼ä¾å¦äºå¡è£
é
éè¿å¯å£° æçæ¹å¼å®ä¹å¨EJB "
-"session beansçé¨ç½²æè¿°ç¬¦ä¸ãå¯ç¼ç¨å¼äºå¡å£°æä¸åéè¦ï¼å³ä½¿æ¯ "
-"<literal>Session</literal> ç忥ä¹å¯ä»¥èªå¨å®æã"
+#, no-c-format
+msgid "A Hibernate application can run in non-managed (i.e., standalone, simple Web- or Swing applications) and managed J2EE environments. In a non-managed environment, Hibernate is usually responsible for its own database connection pool. The application developer has to manually set transaction boundaries (begin, commit, or rollback database transactions) themselves. A managed environment usually provides container-managed transactions (CMT), with the transaction assembly defined declaratively (in deployment descriptors of EJB session beans, for example). Programmatic transaction demarcation is then no longer necessary."
+msgstr "ä¸ä¸ª Hibernate åºç¨ç¨åºå¯ä»¥è¿è¡å¨éæç®¡ç¯å¢ä¸ï¼ä¹å°±æ¯ç¬ç«è¿è¡çåºç¨ç¨åºï¼ç®å Web åºç¨ç¨åºï¼æè
Swingå¾å½¢æ¡é¢åºç¨ç¨åºï¼ï¼ä¹å¯ä»¥è¿è¡å¨æç®¡ç J2EE ç¯å¢ä¸ãå¨ä¸ä¸ªéæç®¡ç¯å¢ä¸ï¼Hibernate é常èªå·±è´è´£ç®¡çæ°æ®åºè¿æ¥æ± ãåºç¨ç¨åºå¼å人åå¿
é¡»æå·¥è®¾ç½®äºå¡å£°æï¼æ¢å¥è¯è¯´ï¼å°±æ¯æå·¥å¯ å¨ï¼æäº¤ï¼æè
åæ»æ°æ®åºäºå¡ãä¸ä¸ªæç®¡çç¯å¢é常æä¾äºå®¹å¨ç®¡çäºå¡ï¼CMTï¼ï¼ä¾å¦äºå¡è£
é
éè¿å¯å£°æçæ¹å¼å®ä¹å¨ EJB session beans çé¨ç½²æè¿°ç¬¦ä¸ãå¯ç¼ç¨å¼äºå¡å£°æä¸åéè¦ï¼å³ä½¿æ¯ <literal>Session</literal> ç忥ä¹å¯ä»¥èªå¨å®æã "
#. Tag: para
-#: transactions.xml:408
-#, fuzzy, no-c-format
-msgid ""
-"However, it is often desirable to keep your persistence layer portable "
-"between non-managed resource-local environments, and systems that can rely "
-"on JTA but use BMT instead of CMT. In both cases use programmatic "
-"transaction demarcation. Hibernate offers a wrapper API called "
-"<literal>Transaction</literal> that translates into the native transaction "
-"system of your deployment environment. This API is actually optional, but we "
-"strongly encourage its use unless you are in a CMT session bean."
-msgstr ""
-"让æä¹
å±å
·å¤å¯ç§»æ¤æ§æ¯äººä»¬ççæ³,è¿ç§ç§»æ¤åçå¨éæç®¡çæ¬å°èµæºç¯å¢ï¼ä¸ä¾èµ"
-"JTA使¯ä½¿ç¨BMTèéCMTçç³»ç»ä¹é´ãå¨ä¸¤ç§æ
åµä¸ä½ é½å¯ä»¥ä½¿ç¨ç¼ç¨å¼çäºå¡ç®¡çã"
-"Hibernateæä¾äºä¸å¥ç§°ä¸º<literal>Transaction</literal>çå°è£
APIï¼ ç¨æ¥æä½ çé¨"
-"ç½²ç¯å¢ä¸çæ¬å°äºå¡ç®¡çç³»ç»è½¬æ¢å°Hibernateäºå¡ä¸ãè¿ä¸ªAPIæ¯å¯éçï¼ä½æ¯æä»¬å¼º"
-"ç æ¨èä½ ä½¿ç¨ï¼é¤éä½ ç¨CMT session beanã"
+#, no-c-format
+msgid "However, it is often desirable to keep your persistence layer portable between non-managed resource-local environments, and systems that can rely on JTA but use BMT instead of CMT. In both cases use programmatic transaction demarcation. Hibernate offers a wrapper API called <literal>Transaction</literal> that translates into the native transaction system of your deployment environment. This API is actually optional, but we strongly encourage its use unless you are in a CMT session bean."
+msgstr "让æä¹
å±å
·å¤å¯ç§»æ¤æ§æ¯äººä»¬ççæ³,è¿ç§ç§»æ¤åçå¨éæç®¡çæ¬å°èµæºç¯å¢ï¼ä¸ä¾èµ JTA 使¯ä½¿ç¨ BMT èé CMT çç³»ç»ä¹é´ãå¨ä¸¤ç§æ
åµä¸ä½ é½å¯ä»¥ä½¿ç¨ç¼ç¨å¼çäºå¡ç®¡çãHibernate æä¾äºä¸å¥ç§°ä¸º <literal>Transaction</literal> çå°è£
APIï¼ ç¨æ¥æä½ çé¨ç½²ç¯å¢ä¸çæ¬å°äºå¡ç®¡çç³»ç»è½¬æ¢å° Hibernate äºå¡ä¸ãè¿ä¸ª API æ¯å¯éçï¼ä½æ¯æä»¬å¼ºçæ¨èä½ ä½¿ç¨ï¼é¤éä½ ç¨ CMT session beanã "
#. Tag: para
-#: transactions.xml:417
-#, fuzzy, no-c-format
-msgid ""
-"Ending a <literal>Session</literal> usually involves four distinct phases:"
-msgstr "é常æ
åµä¸ï¼ç»æ <literal>Session</literal> å
å«äºå个ä¸åçé¶æ®µ:"
+#, no-c-format
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr "é常æ
åµä¸ï¼ç»æ <literal>Session</literal> å
å«äºå个ä¸åçé¶æ®µï¼ "
#. Tag: para
-#: transactions.xml:423
#, no-c-format
msgid "flush the session"
-msgstr "忥session(flush,å·åºå°ç£çï¼"
+msgstr "忥 sessionï¼flushï¼å·åºå°ç£çï¼"
#. Tag: para
-#: transactions.xml:428
#, no-c-format
msgid "commit the transaction"
msgstr "æäº¤äºå¡"
#. Tag: para
-#: transactions.xml:433
#, no-c-format
msgid "close the session"
-msgstr "å
³ésession"
+msgstr "å
³é session"
#. Tag: para
-#: transactions.xml:438
#, no-c-format
msgid "handle exceptions"
msgstr "å¤çå¼å¸¸"
#. Tag: para
-#: transactions.xml:444
-#, fuzzy, no-c-format
-msgid ""
-"We discussed Flushing the session earlier, so we will now have a closer look "
-"at transaction demarcation and exception handling in both managed and non-"
-"managed environments."
-msgstr ""
-"sessionç忥(flush,å·åºï¼åé¢å·²ç»è®¨è®ºè¿äºï¼æä»¬ç°å¨è¿ä¸æ¥èå¯å¨æç®¡åéæç®¡"
-"ç¯å¢ä¸çäºå¡å£°æåå¼å¸¸å¤çã"
+#, no-c-format
+msgid "We discussed Flushing the session earlier, so we will now have a closer look at transaction demarcation and exception handling in both managed and non-managed environments."
+msgstr "session ç忥ï¼flushï¼å·åºï¼åé¢å·²ç»è®¨è®ºè¿äºï¼æä»¬ç°å¨è¿ä¸æ¥èå¯å¨æç®¡åéæç®¡ç¯å¢ä¸çäºå¡å£°æåå¼å¸¸å¤çã "
#. Tag: title
-#: transactions.xml:451
#, no-c-format
msgid "Non-managed environment"
msgstr "éæç®¡ç¯å¢"
#. Tag: para
-#: transactions.xml:453
-#, fuzzy, no-c-format
-msgid ""
-"If a Hibernate persistence layer runs in a non-managed environment, database "
-"connections are usually handled by simple (i.e., non-DataSource) connection "
-"pools from which Hibernate obtains connections as needed. The session/"
-"transaction handling idiom looks like this:"
-msgstr ""
-"妿Hibernatæä¹
å±è¿è¡å¨ä¸ä¸ªéæç®¡ç¯å¢ä¸ï¼æ°æ®åºè¿æ¥é常ç±Hibernateçç®åï¼å³"
-"éDataSource)è¿æ¥æ± æºå¶ æ¥å¤çãsession/transactionå¤çæ¹å¼å¦ä¸æç¤ºï¼"
-
-#. Tag: programlisting
-#: transactions.xml:460
#, no-c-format
-msgid ""
-"<![CDATA[// Non-managed environment idiom\n"
-"Session sess = factory.openSession();\n"
-"Transaction tx = null;\n"
-"try {\n"
-" tx = sess.beginTransaction();\n"
-"\n"
-" // do some work\n"
-" ...\n"
-"\n"
-" tx.commit();\n"
-"}\n"
-"catch (RuntimeException e) {\n"
-" if (tx != null) tx.rollback();\n"
-" throw e; // or display error message\n"
-"}\n"
-"finally {\n"
-" sess.close();\n"
-"}]]>"
-msgstr ""
+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
-#: transactions.xml:462
-#, fuzzy, no-c-format
-msgid ""
-"You do not have to <literal>flush()</literal> the <literal>Session</literal> "
-"explicitly: the call to <literal>commit()</literal> automatically triggers "
-"the synchronization depending on the <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\">FlushMode</xref>)ãè°ç¨ <literal>close"
-"()</literal> æ å¿sessionçç»æã<literal>close()</literal>æ¹æ³éè¦çæç¤ºæ¯ï¼"
-"<literal>session</literal>éæ¾äºJDBCè¿æ¥ãè¿æ®µJava代ç å¨éæç®¡ç¯å¢ä¸åJTAç¯å¢"
-"ä¸é½å¯ä»¥è¿è¡ã"
+#, no-c-format
+msgid "You do not have to <literal>flush()</literal> the <literal>Session</literal> explicitly: the call to <literal>commit()</literal> automatically triggers the synchronization depending on the FlushMode for the session (see <xref linkend=\"objectstate-flushing\" />). 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
-#: transactions.xml:471
-#, fuzzy, no-c-format
-msgid ""
-"As outlined earlier, a much more flexible solution is Hibernate's built-in "
-"\"current session\" context management:"
-msgstr ""
-"æ´å çµæ´»çæ¹æ¡æ¯Hibernateå
ç½®ç\"current session\"ä¸ä¸æç®¡çï¼åæå·²ç»è®²è¿ï¼"
-
-#. Tag: programlisting
-#: transactions.xml:476
#, no-c-format
-msgid ""
-"<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
-"try {\n"
-" factory.getCurrentSession().beginTransaction();\n"
-"\n"
-" // do some work\n"
-" ...\n"
-"\n"
-" factory.getCurrentSession().getTransaction().commit();\n"
-"}\n"
-"catch (RuntimeException e) {\n"
-" factory.getCurrentSession().getTransaction().rollback();\n"
-" throw e; // or display error message\n"
-"}]]>"
-msgstr ""
+msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
+msgstr "æ´å çµæ´»çæ¹æ¡æ¯ Hibernate å
ç½®ç \"current session\" ä¸ä¸æç®¡çï¼åæå·²ç»è®²è¿ï¼ "
#. Tag: para
-#: transactions.xml:478
-#, fuzzy, no-c-format
-msgid ""
-"You will not see these code snippets in a regular application; fatal "
-"(system) exceptions should always be caught at the \"top\". In other words, "
-"the code that executes Hibernate calls in the persistence layer, and the "
-"code that handles <literal>RuntimeException</literal> (and usually can only "
-"clean up and exit), are in different layers. The current context management "
-"by Hibernate can significantly simplify this design by accessing a "
-"<literal>SessionFactory</literal>. Exception handling is discussed later in "
-"this chapter."
-msgstr ""
-"ä½ å¾å¯è½ä»æªå¨ä¸ä¸ªé常çåºç¨ç¨åºçä¸å¡ä»£ç ä¸è§è¿è¿æ ·ç代ç çæï¼è´å½çï¼ç³»"
-"ç»ï¼å¼å¸¸åºè¯¥æ»æ¯ å¨åºç¨ç¨åºâé¡¶å±â被æè·ãæ¢å¥è¯è¯´ï¼æ§è¡Hibernateè°ç¨ç代ç "
-"ï¼å¨æä¹
å±ï¼åå¤ç <literal>RuntimeException</literal>å¼å¸¸ç代ç ï¼é常åªè½æ¸
"
-"çåéåºåºç¨ç¨åºï¼åºè¯¥å¨ä¸å çåºç¨ç¨åºé»è¾å±ãHibernateçå½åä¸ä¸æç®¡çå¯ä»¥"
-"æå¤§å°ç®åè¿ä¸è®¾è®¡ï¼ä½ ææçä¸åå°±æ¯<literal>SessionFactory</literal>ã å¼å¸¸"
-"å¤çå°å¨æ¬ç« ç¨åè¿è¡è®¨è®ºã"
+#, no-c-format
+msgid "You will not see these code snippets in a regular application; fatal (system) exceptions should always be caught at the \"top\". In other words, the code that executes Hibernate calls in the persistence layer, and the code that handles <literal>RuntimeException</literal> (and usually can only clean up and exit), are in different layers. The current context management by Hibernate can significantly simplify this design by accessing a <literal>SessionFactory</literal>. Exception handling is discussed later in this chapter."
+msgstr "ä½ å¾å¯è½ä»æªå¨ä¸ä¸ªé常çåºç¨ç¨åºçä¸å¡ä»£ç ä¸è§è¿è¿æ ·ç代ç çæï¼è´å½çï¼ç³»ç»ï¼å¼å¸¸åºè¯¥æ»æ¯ å¨åºç¨ç¨åºâé¡¶å±â被æè·ãæ¢å¥è¯è¯´ï¼æ§è¡ Hibernate è°ç¨ç代ç ï¼å¨æä¹
å±ï¼åå¤ç <literal>RuntimeException</literal> å¼å¸¸ç代ç ï¼é常åªè½æ¸
çåéåºåºç¨ç¨åºï¼åºè¯¥å¨ä¸å çåºç¨ç¨åºé»è¾å±ãHibernate çå½åä¸ä¸æç®¡çå¯ä»¥æå¤§å°ç®åè¿ä¸è®¾è®¡ï¼ä½ ææçä¸åå°±æ¯ <literal>SessionFactory</literal>ãå¼å¸¸å¤çå°å¨æ¬ç« ç¨åè¿è¡è®¨è®ºã "
#. Tag: para
-#: transactions.xml:488
-#, fuzzy, no-c-format
-msgid ""
-"You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</"
-"literal>, which is the default, and for the second example select <literal>"
-"\"thread\"</literal> as your <literal>hibernate."
-"current_session_context_class</literal>."
-msgstr ""
-"请注æï¼ä½ åºè¯¥éæ© <literal>org.hibernate.transaction."
-"JDBCTransactionFactory</literal> (è¿æ¯é»è®¤é项)ï¼å¯¹ç¬¬äºä¸ªä¾åæ¥è¯´ï¼"
-"<literal>hibernate.current_session_context_class</literal>åºè¯¥æ¯<literal>"
-"\"thread\"</literal>"
+#, no-c-format
+msgid "You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</literal>, which is the default, and for the second example select <literal>\"thread\"</literal> as your <literal>hibernate.current_session_context_class</literal>."
+msgstr "请注æï¼ä½ åºè¯¥éæ© <literal>org.hibernate.transaction.JDBCTransactionFactory</literal> ï¼è¿æ¯é»è®¤é项ï¼ï¼å¯¹ç¬¬äºä¸ªä¾åæ¥è¯´ï¼<literal>hibernate.current_session_context_class</literal>åºè¯¥æ¯ <literal>\"thread\"</literal>ã"
#. Tag: title
-#: transactions.xml:497
#, no-c-format
msgid "Using JTA"
-msgstr "使ç¨JTA"
+msgstr "ä½¿ç¨ JTA"
#. Tag: para
-#: transactions.xml:499
-#, fuzzy, no-c-format
-msgid ""
-"If your persistence layer runs in an application server (for example, behind "
-"EJB session beans), every datasource connection obtained by Hibernate will "
-"automatically be part of the global JTA transaction. You can also install a "
-"standalone JTA implementation and use it without EJB. Hibernate offers two "
-"strategies for JTA integration."
-msgstr ""
-"å¦æä½ çæä¹
å±è¿è¡å¨ä¸ä¸ªåºç¨æå¡å¨ä¸ï¼ä¾å¦ï¼å¨EJB session beansçåé¢ï¼ï¼"
-"Hibernateè·å çæ¯ä¸ªæ°æ®æºè¿æ¥å°èªå¨æä¸ºå
¨å±JTAäºå¡çä¸é¨åã ä½ å¯ä»¥å®è£
ä¸ä¸ª"
-"ç¬ç«çJTAå®ç°ï¼ä½¿ç¨å®èä¸ä½¿ç¨EJBãHibernateæä¾äºä¸¤ç§çç¥è¿è¡JTAéæã"
+#, no-c-format
+msgid "If your persistence layer runs in an application server (for example, behind EJB session beans), every datasource connection obtained by Hibernate will automatically be part of the global JTA transaction. You can also install a standalone JTA implementation and use it without EJB. Hibernate offers two strategies for JTA integration."
+msgstr "å¦æä½ çæä¹
å±è¿è¡å¨ä¸ä¸ªåºç¨æå¡å¨ä¸ï¼ä¾å¦ï¼å¨ EJB session beans çåé¢ï¼ï¼Hibernate è·åçæ¯ä¸ªæ°æ®æºè¿æ¥å°èªå¨æä¸ºå
¨å± JTA äºå¡çä¸é¨åãä½ å¯ä»¥å®è£
ä¸ä¸ªç¬ç«ç JTA å®ç°ï¼ä½¿ç¨å®èä¸ä½¿ç¨ EJBãHibernate æä¾äºä¸¤ç§çç¥è¿è¡ JTA éæã "
#. Tag: para
-#: transactions.xml:506
-#, fuzzy, no-c-format
-msgid ""
-"If you use bean-managed transactions (BMT), Hibernate will tell the "
-"application server to start and end a BMT transaction if you use the "
-"<literal>Transaction</literal> API. The transaction management code is "
-"identical to the non-managed environment."
-msgstr ""
-"å¦æä½ ä½¿ç¨bean管çäºå¡ï¼BMTï¼ï¼å¯ä»¥éè¿ä½¿ç¨Hibernateç <literal>Transaction</"
-"literal> APIæ¥åè¯ åºç¨æå¡å¨å¯å¨åç»æBMTäºå¡ãå æ¤ï¼äºå¡ç®¡ç代ç åå¨éæç®¡"
-"ç¯å¢ä¸æ¯ä¸æ ·çã"
-
-#. Tag: programlisting
-#: transactions.xml:512
#, no-c-format
-msgid ""
-"<![CDATA[// BMT idiom\n"
-"Session sess = factory.openSession();\n"
-"Transaction tx = null;\n"
-"try {\n"
-" tx = sess.beginTransaction();\n"
-"\n"
-" // do some work\n"
-" ...\n"
-"\n"
-" tx.commit();\n"
-"}\n"
-"catch (RuntimeException e) {\n"
-" if (tx != null) tx.rollback();\n"
-" throw e; // or display error message\n"
-"}\n"
-"finally {\n"
-" sess.close();\n"
-"}]]>"
-msgstr ""
+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
-#: transactions.xml:514
-#, fuzzy, no-c-format
-msgid ""
-"If you want to use a transaction-bound <literal>Session</literal>, that is, "
-"the <literal>getCurrentSession()</literal> functionality for easy context "
-"propagation, use the JTA <literal>UserTransaction</literal> API directly:"
-msgstr ""
-"å¦æä½ å¸æä½¿ç¨ä¸äºå¡ç»å®ç<literal>Session</literal>ï¼ä¹å°±æ¯ä½¿ç¨"
-"<literal>getCurrentSession()</literal>æ¥ç®åä¸ä¸æç®¡çï¼ä½ å°ä¸å¾ä¸ç´æ¥ä½¿ç¨"
-"JTA <literal>UserTransaction</literal>APIã"
-
-#. Tag: programlisting
-#: transactions.xml:520
#, no-c-format
-msgid ""
-"<![CDATA[// BMT idiom with getCurrentSession()\n"
-"try {\n"
-" UserTransaction tx = (UserTransaction)new InitialContext()\n"
-" .lookup(\"java:comp/UserTransaction\");\n"
-"\n"
-" tx.begin();\n"
-"\n"
-" // Do some work on Session bound to transaction\n"
-" factory.getCurrentSession().load(...);\n"
-" factory.getCurrentSession().persist(...);\n"
-"\n"
-" tx.commit();\n"
-"}\n"
-"catch (RuntimeException e) {\n"
-" tx.rollback();\n"
-" throw e; // or display error message\n"
-"}]]>"
-msgstr ""
+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
-#: transactions.xml:522
-#, fuzzy, no-c-format
-msgid ""
-"With CMT, transaction demarcation is completed in session bean deployment "
-"descriptors, not programmatically. The code is reduced to:"
-msgstr ""
-"å¨CMTæ¹å¼ä¸ï¼äºå¡å£°ææ¯å¨session beançé¨ç½²æè¿°ç¬¦ä¸ï¼èä¸éè¦ç¼ç¨ã å æ¤ï¼ä»£"
-"ç 被ç®å为:"
-
-#. Tag: programlisting
-#: transactions.xml:527
#, no-c-format
-msgid ""
-"<![CDATA[// CMT idiom\n"
-" Session sess = factory.getCurrentSession();\n"
-"\n"
-" // do some work\n"
-" ...\n"
-"]]>"
-msgstr ""
+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
-#: transactions.xml:529
-#, fuzzy, no-c-format
-msgid ""
-"In a CMT/EJB, even rollback happens automatically. An unhandled "
-"<literal>RuntimeException</literal> thrown by a session bean method tells "
-"the container to set the global transaction to rollback. <emphasis>You do "
-"not need to use the Hibernate <literal>Transaction</literal> API at all with "
-"BMT or CMT, and you get automatic propagation of the \"current\" Session "
-"bound to the transaction.</emphasis>"
-msgstr ""
-"å¨CMT/EJBä¸çè³ä¼èªå¨rollbackï¼å 为åè¥ææªæè·ç<literal>RuntimeException</"
-"literal>ä»session beanæ¹æ³ä¸æåºï¼è¿å°±ä¼éç¥å®¹å¨æå
¨å±äºå¡åæ»ã<emphasis>è¿"
-"å°±æå³çï¼å¨BMTæè
CMTä¸ï¼ä½ æ ¹æ¬å°±ä¸éè¦ä½¿ç¨Hibernate <literal>Transaction</"
-"literal> API ï¼ä½ èªå¨å¾å°äºç»å®å°äºå¡çâå½åâSessionã </emphasis>"
+#, no-c-format
+msgid "In a CMT/EJB, even rollback happens automatically. An unhandled <literal>RuntimeException</literal> thrown by a session bean method tells the container to set the global transaction to rollback. <emphasis>You do not need to use the Hibernate <literal>Transaction</literal> API at all with BMT or CMT, and you get automatic propagation of the \"current\" Session bound to the transaction.</emphasis>"
+msgstr "å¨ CMT/EJB ä¸çè³ä¼èªå¨ rollbackï¼å 为åè¥ææªæè·ç <literal>RuntimeException</literal> ä» session bean æ¹æ³ä¸æåºï¼è¿å°±ä¼éç¥å®¹å¨æå
¨å±äºå¡åæ»ã<emphasis>è¿å°±æå³çï¼å¨ BMT æè
CMT ä¸ï¼ä½ æ ¹æ¬å°±ä¸éè¦ä½¿ç¨ Hibernate <literal>Transaction</literal> APIï¼ä½ èªå¨å¾å°äºç»å®å°äºå¡çâå½åâ Sessionã</emphasis>"
#. Tag: para
-#: transactions.xml:537
-#, fuzzy, no-c-format
-msgid ""
-"When configuring Hibernate's transaction factory, choose <literal>org."
-"hibernate.transaction.JTATransactionFactory</literal> if you use JTA "
-"directly (BMT), and <literal>org.hibernate.transaction."
-"CMTTransactionFactory</literal> in a CMT session bean. Remember to also set "
-"<literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that "
-"your <literal>hibernate.current_session_context_class</literal> is either "
-"unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
-msgstr ""
-"注æï¼å½ä½ é
ç½®Hibernateçtransaction factoryçæ¶åï¼å¨ç´æ¥ä½¿ç¨JTAçæ¶å"
-"ï¼BMTï¼ï¼ä½ åºè¯¥éæ©<literal>org.hibernate.transaction.JTATransactionFactory</"
-"literal>,å¨CMT session beanä¸éæ©<literal>org.hibernate.transaction."
-"CMTTransactionFactory</literal>ãè®°å¾ä¹è¦è®¾ç½®<literal>hibernate.transaction."
-"manager_lookup_class</literal>ãè¿æï¼ç¡®è®¤ä½ ç<literal>hibernate."
-"current_session_context_class</literal>æªè®¾ç½®ï¼ä¸ºäºåä¸å
¼å®¹ï¼ï¼æè
设置为"
-"<literal>\"jta\"</literal>ã"
+#, no-c-format
+msgid "When configuring Hibernate's transaction factory, choose <literal>org.hibernate.transaction.JTATransactionFactory</literal> if you use JTA directly (BMT), and <literal>org.hibernate.transaction.CMTTransactionFactory</literal> in a CMT session bean. Remember to also set <literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that your <literal>hibernate.current_session_context_class</literal> is either unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
+msgstr "注æï¼å½ä½ é
ç½® Hibernate ç transaction factory çæ¶åï¼å¨ç´æ¥ä½¿ç¨ JTA çæ¶åï¼BMTï¼ï¼ä½ åºè¯¥éæ© <literal>org.hibernate.transaction.JTATransactionFactory</literal>ï¼å¨ CMT session bean ä¸éæ© <literal>org.hibernate.transaction.CMTTransactionFactory</literal>ãè®°å¾ä¹è¦è®¾ç½® <literal>hibernate.transaction.manager_lookup_class</literal>ãè¿æï¼ç¡®è®¤ä½ ç <literal>hibernate.current_session_context_class</literal> æªè®¾ç½®ï¼ä¸ºäºåä¸å
¼å®¹ï¼ï¼æè
设置为 <literal>\"jta\"</literal>ã "
#. Tag: para
-#: transactions.xml:546
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>getCurrentSession()</literal> operation has one downside in a "
-"JTA environment. There is one caveat to the use of <literal>after_statement</"
-"literal> connection release mode, which is then used by default. Due to a "
-"limitation of the JTA spec, it is not possible for Hibernate to "
-"automatically clean up any unclosed <literal>ScrollableResults</literal> or "
-"<literal>Iterator</literal> instances returned by <literal>scroll()</"
-"literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> "
-"release the underlying database cursor by calling <literal>ScrollableResults."
-"close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly "
-"from a <literal>finally</literal> block. Most applications can easily avoid "
-"using <literal>scroll()</literal> or <literal>iterate()</literal> from the "
-"JTA or CMT code.)"
-msgstr ""
-"<literal>getCurrentSession()</literal>å¨JTAç¯å¢ä¸æä¸ä¸ªå¼ç«¯ã对"
-"<literal>after_statement</literal>è¿æ¥éæ¾æ¹å¼æä¸ä¸ªè¦åï¼è¿æ¯è¢«é»è®¤ä½¿ç¨çã"
-"å 为JTAè§èçä¸ä¸ªå¾æè ¢çéå¶ï¼Hibernateä¸å¯è½èªå¨æ¸
ç任使ªå
³éç"
-"<literal>ScrollableResults</literal> æè
<literal>Iterator</literal>ï¼å®ä»¬æ¯"
-"ç±<literal>scroll()</literal>æ<literal>iterate()</literal>产ççãä½ "
-"<emphasis>must</emphasis>éè¿å¨<literal>finally</literal>åä¸ï¼æ¾å¼è°ç¨"
-"<literal>ScrollableResults.close()</literal>æè
<literal>Hibernate.close"
-"(Iterator)</literal>æ¹æ³æ¥éæ¾åºå±æ°æ®åºæ¸¸æ ã(å½ç¶ï¼å¤§é¨åç¨åºå®å
¨å¯ä»¥å¾å®¹æ"
-"çé¿å
å¨JTAæCMT代ç ä¸åºç°<literal>scroll()</literal>æ<literal>iterate()</"
-"literal>ã)"
+#, no-c-format
+msgid "The <literal>getCurrentSession()</literal> operation has one downside in a JTA environment. There is one caveat to the use of <literal>after_statement</literal> connection release mode, which is then used by default. Due to a limitation of the JTA spec, it is not possible for Hibernate to automatically clean up any unclosed <literal>ScrollableResults</literal> or <literal>Iterator</literal> instances returned by <literal>scroll()</literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> release the underlying database cursor by calling <literal>ScrollableResults.close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly from a <literal>finally</literal> block. Most applications can easily avoid using <literal>scroll()</literal> or <literal>iterate()</literal> from the JTA or CMT code.)"
+msgstr "<literal>getCurrentSession()</literal>å¨ JTA ç¯å¢ä¸æä¸ä¸ªå¼ç«¯ã对 <literal>after_statement</literal> è¿æ¥éæ¾æ¹å¼æä¸ä¸ªè¦åï¼è¿æ¯è¢«é»è®¤ä½¿ç¨çãå 为 JTA è§èçä¸ä¸ªå¾æè ¢çéå¶ï¼Hibernate ä¸å¯è½èªå¨æ¸
ç任使ªå
³éç <literal>ScrollableResults</literal> æè
<literal>Iterator</literal>ï¼å®ä»¬æ¯ç± <literal>scroll()</literal> æ <literal>iterate()</literal> 产ççãä½ <emphasis>must</emphasis> éè¿å¨ <literal>finally</literal> åä¸ï¼æ¾å¼è°ç¨ <literal>ScrollableResults.close()</literal> æè
<literal>Hibernate.close(Iterator)</literal> æ¹æ³æ¥éæ¾åºå±æ°æ®åºæ¸¸æ ãï¼å½ç¶ï¼å¤§é¨åç¨åºå®å
¨å¯ä»¥å¾å®¹æçé¿å
å¨ JTA æ CMT 代ç ä¸åºç° <literal>scroll()</literal> æ <literal>iterate()</literal>ãï¼ "
#. Tag: title
-#: transactions.xml:562
#, no-c-format
msgid "Exception handling"
msgstr "å¼å¸¸å¤ç"
#. Tag: para
-#: transactions.xml:564
-#, fuzzy, no-c-format
-msgid ""
-"If the <literal>Session</literal> throws an exception, including any "
-"<literal>SQLException</literal>, immediately rollback the database "
-"transaction, call <literal>Session.close()</literal> and discard the "
-"<literal>Session</literal> instance. Certain methods of <literal>Session</"
-"literal> will <emphasis>not</emphasis> leave the session in a consistent "
-"state. No exception thrown by Hibernate can be treated as recoverable. "
-"Ensure that the <literal>Session</literal> will be closed by calling "
-"<literal>close()</literal> in a <literal>finally</literal> block."
-msgstr ""
-"妿 <literal>Session</literal> æåºå¼å¸¸ (å
æ¬ä»»ä½<literal>SQLException</"
-"literal>), ä½ åºè¯¥ç«å³åæ»æ°æ®åºäºå¡ï¼è°ç¨ <literal>Session.close()</"
-"literal> ï¼ä¸¢å¼è¯¥ <literal>Session</literal>å®ä¾ã<literal>Session</literal>"
-"çæäºæ¹æ³å¯è½ä¼å¯¼è´session å¤äºä¸ä¸è´çç¶æãææç±Hibernateæåºçå¼å¸¸é½è§ä¸º"
-"ä¸å¯ä»¥æ¢å¤çãç¡®ä¿å¨ <literal>finally</literal> 代ç åä¸è°ç¨<literal>close()"
-"</literal>æ¹æ³ï¼ä»¥å
³éæ <literal>Session</literal>ã"
+#, no-c-format
+msgid "If the <literal>Session</literal> throws an exception, including any <literal>SQLException</literal>, immediately rollback the database transaction, call <literal>Session.close()</literal> and discard the <literal>Session</literal> instance. Certain methods of <literal>Session</literal> will <emphasis>not</emphasis> leave the session in a consistent state. No exception thrown by Hibernate can be treated as recoverable. Ensure that the <literal>Session</literal> will be closed by calling <literal>close()</literal> in a <literal>finally</literal> block."
+msgstr "妿 <literal>Session</literal> æåºå¼å¸¸ï¼å
æ¬ä»»ä½ <literal>SQLException</literal>ï¼ï¼ä½ åºè¯¥ç«å³åæ»æ°æ®åºäºå¡ï¼è°ç¨ <literal>Session.close()</literal> ï¼ä¸¢å¼è¯¥ <literal>Session</literal> å®ä¾ã<literal>Session</literal> çæäºæ¹æ³å¯è½ä¼å¯¼è´ session å¤äºä¸ä¸è´çç¶æãææç± Hibernate æåºçå¼å¸¸é½è§ä¸ºä¸å¯ä»¥æ¢å¤çãç¡®ä¿å¨ <literal>finally</literal> 代ç åä¸è°ç¨ <literal>close()</literal> æ¹æ³ï¼ä»¥å
³éæ <literal>Session</literal>ã"
#. Tag: para
-#: transactions.xml:575
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>HibernateException</literal>, which wraps most of the errors "
-"that can occur in a Hibernate persistence layer, is an unchecked exception. "
-"It was not in older versions of Hibernate. In our opinion, we should not "
-"force the application developer to catch an unrecoverable exception at a low "
-"layer. In most systems, unchecked and fatal exceptions are handled in one of "
-"the first frames of the method call stack (i.e., in higher layers) and "
-"either an error message is presented to the application user or some other "
-"appropriate action is taken. Note that Hibernate might also throw other "
-"unchecked exceptions that are not a <literal>HibernateException</literal>. "
-"These are not recoverable and appropriate action should be taken."
-msgstr ""
-"<literal>HibernateException</literal>æ¯ä¸ä¸ªéæ£æ¥æå¼å¸¸ï¼è¿ä¸åäºHibernateè"
-"ççæ¬ï¼ï¼ å®å°è£
äºHibernateæä¹
å±å¯è½åºç°ç大夿°é误ãæä»¬çè§ç¹æ¯ï¼ä¸åºè¯¥"
-"强迫åºç¨ç¨åºå¼å人å å¨åºå±æè·æ æ³æ¢å¤çå¼å¸¸ãå¨å¤§å¤æ°è½¯ä»¶ç³»ç»ä¸ï¼éæ£æ¥æå¼"
-"常åè´å½å¼å¸¸é½æ¯å¨ç¸åºæ¹æ³è°ç¨ çå æ çé¡¶å±è¢«å¤ççï¼ä¹å°±æ¯è¯´ï¼å¨è½¯ä»¶ä¸é¢çé»"
-"è¾å±ï¼ï¼å¹¶ä¸æä¾ä¸ä¸ªé误信æ¯ç»åºç¨è½¯ä»¶çç¨æ· ï¼æè
éåå
¶ä»æäºç¸åºçæä½ï¼ã"
-"请注æï¼Hibernate乿å¯è½æåºå
¶ä»å¹¶ä¸å±äº <literal>HibernateException</"
-"literal>çéæ£æ¥æå¼å¸¸ãè¿äºå¼å¸¸åæ ·ä¹æ¯æ æ³æ¢å¤çï¼åºè¯¥ éåæäºç¸åºçæä½å»"
-"å¤çã"
+#, no-c-format
+msgid "The <literal>HibernateException</literal>, which wraps most of the errors that can occur in a Hibernate persistence layer, is an unchecked exception. It was not in older versions of Hibernate. In our opinion, we should not force the application developer to catch an unrecoverable exception at a low layer. In most systems, unchecked and fatal exceptions are handled in one of the first frames of the method call stack (i.e., in higher layers) and either an error message is presented to the application user or some other appropriate action is taken. Note that Hibernate might also throw other unchecked exceptions that are not a <literal>HibernateException</literal>. These are not recoverable and appropriate action should be taken."
+msgstr "<literal>HibernateException</literal> æ¯ä¸ä¸ªéæ£æ¥æå¼å¸¸ï¼è¿ä¸åäº Hibernate èççæ¬ï¼ï¼å®å°è£
äº Hibernate æä¹
å±å¯è½åºç°ç大夿°é误ãæä»¬çè§ç¹æ¯ï¼ä¸åºè¯¥å¼ºè¿«åºç¨ç¨åºå¼å人å å¨åºå±æè·æ æ³æ¢å¤çå¼å¸¸ãå¨å¤§å¤æ°è½¯ä»¶ç³»ç»ä¸ï¼éæ£æ¥æå¼å¸¸åè´å½å¼å¸¸é½æ¯å¨ç¸åºæ¹æ³è°ç¨ çå æ çé¡¶å±è¢«å¤ççï¼ä¹å°±æ¯è¯´ï¼å¨è½¯ä»¶ä¸é¢çé»è¾å±ï¼ï¼å¹¶ä¸æä¾ä¸ä¸ªé误信æ¯ç»åºç¨è½¯ä»¶çç¨æ· ï¼æè
éåå
¶ä»æäºç¸åºçæä½ï¼ã请注æï¼Hibernate 乿å¯è½æåºå
¶ä»å¹¶ä¸å±äº <literal>HibernateException</literal> çéæ£æ¥æå¼å¸¸ãè¿äºå¼å¸¸åæ ·ä¹æ¯æ æ³æ¢å¤çï¼åºè¯¥ éåæäºç¸åºçæä½å»å¤çã"
#. Tag: para
-#: transactions.xml:587
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
-"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
-"will attempt to convert the exception into a more meaningful subclass of "
-"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
-"literal> is always available via <literal>JDBCException.getCause()</"
-"literal>. Hibernate converts the <literal>SQLException</literal> into an "
-"appropriate <literal>JDBCException</literal> subclass using the "
-"<literal>SQLExceptionConverter</literal> attached to the "
-"<literal>SessionFactory</literal>. By default, the "
-"<literal>SQLExceptionConverter</literal> is defined by the configured "
-"dialect. However, it is also possible to plug in a custom implementation. "
-"See the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
-"class for details. The standard <literal>JDBCException</literal> subtypes "
-"are:"
-msgstr ""
-"å¨åæ°æ®åºè¿è¡äº¤äºæ¶ï¼Hibernateææè·ç<literal>SQLException</literal>å°è£
为"
-"Hibernateç <literal>JDBCException</literal>ãäºå®ä¸ï¼Hibernateå°è¯æå¼å¸¸è½¬æ¢"
-"ä¸ºæ´æå®é
å«ä¹ ç<literal>JDBCException</literal>å¼å¸¸çåç±»ãåºå±ç"
-"<literal>SQLException</literal>å¯ä»¥ éè¿<literal>JDBCException.getCause()</"
-"literal>æ¥å¾å°ãHibernateéè¿ä½¿ç¨å
³èå° <literal>SessionFactory</literal>ä¸ç"
-"<literal>SQLExceptionConverter</literal>æ¥ æ<literal>SQLException</literal>"
-"转æ¢ä¸ºä¸ä¸ªå¯¹åºç<literal>JDBCException</literal> å¼å¸¸çåç±»ãé»è®¤æ
åµä¸ï¼"
-"<literal>SQLExceptionConverter</literal>å¯ä»¥éè¿é
ç½®dialect é项æå®ï¼æ¤å¤ï¼"
-"ä¹å¯ä»¥ä½¿ç¨ç¨æ·èªå®ä¹çå®ç°ç±»ï¼åèjavadocs "
-"<literal>SQLExceptionConverterFactory</literal>ç±»æ¥äºè§£è¯¦æ
ï¼ãæ åç "
-"<literal>JDBCException</literal>åç±»åæ¯ï¼"
+#, no-c-format
+msgid "Hibernate wraps <literal>SQLException</literal>s thrown while interacting with the database in a <literal>JDBCException</literal>. In fact, Hibernate will attempt to convert the exception into a more meaningful subclass of <literal>JDBCException</literal>. The underlying <literal>SQLException</literal> is always available via <literal>JDBCException.getCause()</literal>. Hibernate converts the <literal>SQLException</literal> into an appropriate <literal>JDBCException</literal> subclass using the <literal>SQLExceptionConverter</literal> attached to the <literal>SessionFactory</literal>. By default, the <literal>SQLExceptionConverter</literal> is defined by the configured dialect. However, it is also possible to plug in a custom implementation. See the javadocs for the <literal>SQLExceptionConverterFactory</literal> class for details. The standard <literal>JDBCException</literal> subtypes are:"
+msgstr "å¨åæ°æ®åºè¿è¡äº¤äºæ¶ï¼Hibernate ææè·ç <literal>SQLException</literal> å°è£
为 Hibernate ç <literal>JDBCException</literal>ãäºå®ä¸ï¼Hibernate å°è¯æå¼å¸¸è½¬æ¢ä¸ºæ´æå®é
å«ä¹ç <literal>JDBCException</literal> å¼å¸¸çåç±»ãåºå±ç <literal>SQLException</literal> å¯ä»¥éè¿ <literal>JDBCException.getCause()</literal> æ¥å¾å°ãHibernate éè¿ä½¿ç¨å
³èå° <literal>SessionFactory</literal> ä¸ç <literal>SQLExceptionConverter</literal> æ¥æ <literal>SQLException</literal> 转æ¢ä¸ºä¸ä¸ªå¯¹åºç <literal>JDBCException</literal> å¼å¸¸çåç±»ãé»è®¤æ
åµä¸ï¼<literal>SQLExceptionConverter</literal> å¯ä»¥éè¿é
ç½® dialect é项æå®ï¼æ¤å¤ï¼ä¹å¯ä»¥ä½¿ç¨ç¨æ·èªå®ä¹çå®ç°ç±»ï¼åè javadocs <literal>SQLExceptionConverterFactory</literal> ç±»æ¥äºè§£è¯¦æ
ï¼ãæ åç <literal>JDBCException</literal> åç±»åæ¯ï¼ "
#. Tag: para
-#: transactions.xml:603
-#, fuzzy, no-c-format
-msgid ""
-"<literal>JDBCConnectionException</literal>: indicates an error with the "
-"underlying JDBC communication."
-msgstr ""
-"<literal>JDBCConnectionException</literal> - ææåºå±çJDBCé讯åºç°é误"
+#, no-c-format
+msgid "<literal>JDBCConnectionException</literal>: indicates an error with the underlying JDBC communication."
+msgstr "<literal>JDBCConnectionException</literal>ï¼ææåºå±ç JDBC é讯åºç°é误ã"
#. Tag: para
-#: transactions.xml:609
-#, fuzzy, no-c-format
-msgid ""
-"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
-"problem with the issued SQL."
-msgstr ""
-"<literal>SQLGrammarException</literal> - ææåéçSQLè¯å¥çè¯æ³æè
æ ¼å¼é误"
+#, no-c-format
+msgid "<literal>SQLGrammarException</literal>: indicates a grammar or syntax problem with the issued SQL."
+msgstr "<literal>SQLGrammarException</literal>ï¼ææåéç SQL è¯å¥çè¯æ³æè
æ ¼å¼é误ã"
#. Tag: para
-#: transactions.xml:615
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ConstraintViolationException</literal>: indicates some form of "
-"integrity constraint violation."
-msgstr ""
-"<literal>ConstraintViolationException</literal> - æææç§ç±»åç约æè¿ä¾é误"
+#, no-c-format
+msgid "<literal>ConstraintViolationException</literal>: indicates some form of integrity constraint violation."
+msgstr "<literal>ConstraintViolationException</literal>ï¼æææç§ç±»åç约æè¿ä¾é误"
#. Tag: para
-#: transactions.xml:621
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
-"lock level necessary to perform the requested operation."
-msgstr ""
-"<literal>LockAcquisitionException</literal> - ææäºå¨æ§è¡è¯·æ±æä½æ¶ï¼è·å æ"
-"éçéçº§å«æ¶åºç°çé误ã"
+#, no-c-format
+msgid "<literal>LockAcquisitionException</literal>: indicates an error acquiring a lock level necessary to perform the requested operation."
+msgstr "<literal>LockAcquisitionException</literal>ï¼ææäºå¨æ§è¡è¯·æ±æä½æ¶ï¼è·åæéçéçº§å«æ¶åºç°çé误ã"
#. Tag: para
-#: transactions.xml:627
-#, fuzzy, no-c-format
-msgid ""
-"<literal>GenericJDBCException</literal>: a generic exception which did not "
-"fall into any of the other categories."
-msgstr "<literal>GenericJDBCException</literal> - ä¸å±äºä»»ä½å
¶ä»ç§ç±»çåçå¼å¸¸"
+#, no-c-format
+msgid "<literal>GenericJDBCException</literal>: a generic exception which did not fall into any of the other categories."
+msgstr "<literal>GenericJDBCException</literal>ï¼ä¸å±äºä»»ä½å
¶ä»ç§ç±»çåçå¼å¸¸ã"
#. Tag: title
-#: transactions.xml:637
#, no-c-format
msgid "Transaction timeout"
msgstr "äºå¡è¶
æ¶"
#. Tag: para
-#: transactions.xml:639
-#, fuzzy, no-c-format
-msgid ""
-"An important feature provided by a managed environment like EJB, that is "
-"never provided for non-managed code, is transaction timeout. Transaction "
-"timeouts ensure that no misbehaving transaction can indefinitely tie up "
-"resources while returning no response to the user. Outside a managed (JTA) "
-"environment, Hibernate cannot fully provide this functionality. However, "
-"Hibernate can at least control data access operations, ensuring that "
-"database level deadlocks and queries with huge result sets are limited by a "
-"defined timeout. In a managed environment, Hibernate can delegate "
-"transaction timeout to JTA. This functionality is abstracted by the "
-"Hibernate <literal>Transaction</literal> object."
-msgstr ""
-"EJBè¿æ ·çæç®¡ç¯å¢æä¸é¡¹æä¸ºéè¦çç¹æ§ï¼èå®ä»æªå¨éæç®¡ç¯å¢ä¸æä¾è¿ï¼é£å°±æ¯äº"
-"å¡è¶
æ¶ãå¨åºç°é误çäºå¡è¡ä¸ºçæ¶åï¼è¶
æ¶å¯ä»¥ç¡®ä¿ä¸ä¼æ éæèµ·èµæºãå¯¹ç¨æ·æ²¡æ"
-"交代ãå¨æç®¡(JTA)ç¯å¢ä¹å¤ï¼Hibernateæ æ³å®å
¨æä¾è¿ä¸åè½ã使¯ï¼Hiberanteè³å°"
-"å¯ä»¥æ§å¶æ°æ®è®¿é®ï¼ç¡®ä¿æ°æ®åºçº§å«çæ»éï¼åè¿åå·¨å¤§ç»æéçæ¥è¯¢è¢«éå®å¨ä¸ä¸ªè§"
-"å®çæ¶é´å
ãå¨æç®¡ç¯å¢ä¸ï¼Hibernate伿äºå¡è¶
æ¶è½¬äº¤ç»JTAãè¿ä¸åè½éè¿"
-"Hibernate <literal>Transaction</literal>对象è¿è¡æ½è±¡ã"
-
-#. Tag: programlisting
-#: transactions.xml:652
#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"Session sess = factory.openSession();\n"
-"try {\n"
-" //set transaction timeout to 3 seconds\n"
-" sess.getTransaction().setTimeout(3);\n"
-" sess.getTransaction().begin();\n"
-"\n"
-" // do some work\n"
-" ...\n"
-"\n"
-" sess.getTransaction().commit()\n"
-"}\n"
-"catch (RuntimeException e) {\n"
-" sess.getTransaction().rollback();\n"
-" throw e; // or display error message\n"
-"}\n"
-"finally {\n"
-" sess.close();\n"
-"}]]>"
-msgstr ""
+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
-#: transactions.xml:654
-#, fuzzy, no-c-format
-msgid ""
-"<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
-"transaction timeouts must be defined declaratively."
-msgstr ""
-"注æ<literal>setTimeout()</literal>ä¸åºè¯¥å¨CMT beanä¸è°ç¨ï¼æ¤æ¶äºå¡è¶
æ¶å¼åºè¯¥"
-"æ¯è¢«å£°æå¼å®ä¹çã"
+#, no-c-format
+msgid "<literal>setTimeout()</literal> cannot be called in a CMT bean, where transaction timeouts must be defined declaratively."
+msgstr "注æ <literal>setTimeout()</literal> ä¸åºè¯¥å¨ CMT bean ä¸è°ç¨ï¼æ¤æ¶äºå¡è¶
æ¶å¼åºè¯¥æ¯è¢«å£°æå¼å®ä¹çã "
#. Tag: title
-#: transactions.xml:664
#, no-c-format
msgid "Optimistic concurrency control"
-msgstr "ä¹è§å¹¶åæ§å¶(Optimistic concurrency control)"
+msgstr "ä¹è§å¹¶åæ§å¶ï¼Optimistic concurrency controlï¼"
#. Tag: para
-#: transactions.xml:666
-#, fuzzy, no-c-format
-msgid ""
-"The only approach that is consistent with high concurrency and high "
-"scalability, is optimistic concurrency control with versioning. Version "
-"checking uses version numbers, or timestamps, to detect conflicting updates "
-"and to prevent lost updates. Hibernate provides three possible approaches to "
-"writing application code that uses optimistic concurrency. The use cases we "
-"discuss are in the context of long conversations, but version checking also "
-"has the benefit of preventing lost updates in single database transactions."
-msgstr ""
-"å¯ä¸è½å¤åæ¶ä¿æé«å¹¶ååé«å¯ä¼¸ç¼©æ§çæ¹æ³å°±æ¯ä½¿ç¨å¸¦çæ¬åçä¹è§å¹¶åæ§å¶ãçæ¬"
-"æ£æ¥ä½¿ç¨çæ¬å·ã æè
æ¶é´æ³æ¥æ£æµæ´æ°å²çªï¼å¹¶ä¸é²æ¢æ´æ°ä¸¢å¤±ï¼ãHibernate为使"
-"ç¨ä¹è§å¹¶åæ§å¶çä»£ç æä¾äºä¸ç§å¯ è½çæ¹æ³ï¼åºç¨ç¨åºå¨ç¼åè¿äºä»£ç æ¶ï¼å¯ä»¥éç¨"
-"å®ä»¬ãæä»¬å·²ç»å¨åé¢åºç¨ç¨åºå¯¹è¯é£é¨åå±ç¤ºäº ä¹è§å¹¶åæ§å¶çåºç¨åºæ¯ï¼æ¤å¤ï¼å¨"
-"åä¸ªæ°æ®åºäºå¡èå´å
ï¼çæ¬æ£æ¥ä¹æä¾äºé²æ¢æ´æ°ä¸¢å¤±ç好å¤ã"
+#, no-c-format
+msgid "The only approach that is consistent with high concurrency and high scalability, is optimistic concurrency control with versioning. Version checking uses version numbers, or timestamps, to detect conflicting updates and to prevent lost updates. Hibernate provides three possible approaches to writing application code that uses optimistic concurrency. The use cases we discuss are in the context of long conversations, but version checking also has the benefit of preventing lost updates in single database transactions."
+msgstr "å¯ä¸è½å¤åæ¶ä¿æé«å¹¶ååé«å¯ä¼¸ç¼©æ§çæ¹æ³å°±æ¯ä½¿ç¨å¸¦çæ¬åçä¹è§å¹¶åæ§å¶ãçæ¬æ£æ¥ä½¿ç¨çæ¬å·ã æè
æ¶é´æ³æ¥æ£æµæ´æ°å²çªï¼å¹¶ä¸é²æ¢æ´æ°ä¸¢å¤±ï¼ãHibernate 为使ç¨ä¹è§å¹¶åæ§å¶çä»£ç æä¾äºä¸ç§å¯ è½çæ¹æ³ï¼åºç¨ç¨åºå¨ç¼åè¿äºä»£ç æ¶ï¼å¯ä»¥éç¨å®ä»¬ãæä»¬å·²ç»å¨åé¢åºç¨ç¨åºå¯¹è¯é£é¨åå±ç¤ºäº ä¹è§å¹¶åæ§å¶çåºç¨åºæ¯ï¼æ¤å¤ï¼å¨åä¸ªæ°æ®åºäºå¡èå´å
ï¼çæ¬æ£æ¥ä¹æä¾äºé²æ¢æ´æ°ä¸¢å¤±ç好å¤ã "
#. Tag: title
-#: transactions.xml:677
#, no-c-format
msgid "Application version checking"
-msgstr "åºç¨ç¨åºçº§å«ççæ¬æ£æ¥(Application version checking)"
+msgstr "åºç¨ç¨åºçº§å«ççæ¬æ£æ¥ï¼Application version checkingï¼"
#. Tag: para
-#: transactions.xml:679
-#, fuzzy, no-c-format
-msgid ""
-"In an implementation without much help from Hibernate, each interaction with "
-"the database occurs in a new <literal>Session</literal> and the developer is "
-"responsible for reloading all persistent instances from the database before "
-"manipulating them. The application is forced to carry out its own version "
-"checking to ensure conversation transaction isolation. This approach is the "
-"least efficient in terms of database access. It is the approach most similar "
-"to entity EJBs."
-msgstr ""
-"æªè½å
åå©ç¨Hibernateåè½çå®ç°ä»£ç ä¸ï¼æ¯æ¬¡åæ°æ®åºäº¤äºé½éè¦ä¸ä¸ªæ°ç "
-"<literal>Session</literal>ï¼èä¸å¼å人åå¿
须卿¾ç¤ºæ°æ®ä¹å仿°æ®åºä¸é æ°è½½å
¥"
-"ææçæä¹
å对象å®ä¾ãè¿ç§æ¹å¼è¿«ä½¿åºç¨ç¨åºèªå·±å®ç°çæ¬æ£æ¥æ¥ç¡®ä¿ 对è¯äºå¡çé"
-"离ï¼ä»æ°æ®è®¿é®çè§åº¦æ¥è¯´æ¯æä½æçãè¿ç§ä½¿ç¨æ¹å¼å entity EJBæç¸ä¼¼ã"
-
-#. Tag: programlisting
-#: transactions.xml:688
#, no-c-format
-msgid ""
-"<![CDATA[// foo is an instance loaded by a previous Session\n"
-"session = factory.openSession();\n"
-"Transaction t = session.beginTransaction();\n"
-"\n"
-"int oldVersion = foo.getVersion();\n"
-"session.load( foo, foo.getKey() ); // load the current state\n"
-"if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException"
-"();\n"
-"foo.setProperty(\"bar\");\n"
-"\n"
-"t.commit();\n"
-"session.close();]]>"
-msgstr ""
+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
-#: transactions.xml:690
#, no-c-format
-msgid ""
-"The <literal>version</literal> property is mapped using <literal><"
-"version></literal>, and Hibernate will automatically increment it during "
-"flush if the entity is dirty."
-msgstr ""
-"<literal>version</literal> 屿§ä½¿ç¨ <literal><version></literal>æ¥æ "
-"å°ï¼å¦æå¯¹è±¡ æ¯èæ°æ®ï¼å¨åæ¥çæ¶åï¼Hibernateä¼èªå¨å¢å çæ¬å·ã"
+msgid "The <literal>version</literal> property is mapped using <literal><version></literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
+msgstr "<literal>version</literal> 屿§ä½¿ç¨ <literal><version></literal> æ¥æ å°ï¼å¦æå¯¹è±¡æ¯èæ°æ®ï¼å¨åæ¥çæ¶åï¼Hibernate ä¼èªå¨å¢å çæ¬å·ã"
#. Tag: para
-#: transactions.xml:696
-#, fuzzy, no-c-format
-msgid ""
-"If you are operating in a low-data-concurrency environment, and do not "
-"require version checking, you can use this approach and skip the version "
-"check. In this case, <emphasis>last commit wins</emphasis> is the default "
-"strategy for long conversations. Be aware that this might confuse the users "
-"of the application, as they might experience lost updates without error "
-"messages or a chance to merge conflicting changes."
-msgstr ""
-"å½ç¶ï¼å¦æä½ çåºç¨æ¯å¨ä¸ä¸ªä½æ°æ®å¹¶åç¯å¢ä¸ï¼å¹¶ä¸éè¦çæ¬æ£æ¥çè¯ï¼ä½ ç
§æ ·å¯ä»¥"
-"ä½¿ç¨ è¿ç§æ¹å¼ï¼åªä¸è¿è·³è¿çæ¬æ£æ¥å°±æ¯äºãå¨è¿ç§æ
åµä¸ï¼<emphasis>æææäº¤çæ"
-"</emphasis> ï¼<emphasis>last commit wins</emphasis>ï¼å°±æ¯ä½ çé¿å¯¹è¯çé»è®¤å¤ç"
-"çç¥ã 请记ä½è¿ç§çç¥å¯è½ä¼è®©åºç¨è½¯ä»¶çç¨æ·æå°å°æï¼å 为ä»ä»¬æå¯è½ä¼ç¢°ä¸æ´æ°"
-"丢失æå´æ²¡ æåºéä¿¡æ¯ï¼æè
éè¦åå¹¶æ´æ¹å²çªçæ
åµã"
+#, no-c-format
+msgid "If you are operating in a low-data-concurrency environment, and do not require version checking, you can use this approach and skip the version check. In this case, <emphasis>last commit wins</emphasis> is the default strategy for long conversations. Be aware that this might confuse the users of the application, as they might experience lost updates without error messages or a chance to merge conflicting changes."
+msgstr "å½ç¶ï¼å¦æä½ çåºç¨æ¯å¨ä¸ä¸ªä½æ°æ®å¹¶åç¯å¢ä¸ï¼å¹¶ä¸éè¦çæ¬æ£æ¥çè¯ï¼ä½ ç
§æ ·å¯ä»¥ä½¿ç¨è¿ç§æ¹å¼ï¼åªä¸è¿è·³è¿çæ¬æ£æ¥å°±æ¯äºãå¨è¿ç§æ
åµä¸ï¼<emphasis>æææäº¤çæ</emphasis> ï¼<emphasis>last commit wins</emphasis>ï¼å°±æ¯ä½ çé¿å¯¹è¯çé»è®¤å¤ççç¥ã请记ä½è¿ç§çç¥å¯è½ä¼è®©åºç¨è½¯ä»¶çç¨æ·æå°å°æï¼å 为ä»ä»¬æå¯è½ä¼ç¢°ä¸æ´æ°ä¸¢å¤±æå´æ²¡æåºéä¿¡æ¯ï¼æè
éè¦åå¹¶æ´æ¹å²çªçæ
åµã "
#. Tag: para
-#: transactions.xml:705
-#, fuzzy, no-c-format
-msgid ""
-"Manual version checking is only feasible in trivial circumstances and not "
-"practical for most applications. Often not only single instances, but "
-"complete graphs of modified objects, have to be checked. Hibernate offers "
-"automatic version checking with either an extended <literal>Session</"
-"literal> or detached instances as the design paradigm."
-msgstr ""
-"徿æ¾ï¼æå·¥è¿è¡çæ¬æ£æ¥åªéåäºæäºè½¯ä»¶è§æ¨¡é常å°çåºç¨åºæ¯ï¼å¯¹äºå¤§å¤æ°è½¯ä»¶"
-"åºç¨åºæ¯ æ¥è¯´å¹¶ä¸ç°å®ãé常æ
åµä¸ï¼ä¸ä»
æ¯å个对象å®ä¾éè¦è¿è¡çæ¬æ£æ¥ï¼æ´ä¸ªè¢«"
-"ä¿®æ¹è¿çå
³ è对象å¾ä¹é½éè¦è¿è¡çæ¬æ£æ¥ãä½ä¸ºæ å设计èä¾ï¼Hibernateä½¿ç¨æ©å±"
-"卿ç <literal>Session</literal>çæ¹å¼ï¼æè
è±ç®¡å¯¹è±¡å®ä¾çæ¹å¼æ¥æä¾èªå¨çæ¬"
-"æ£æ¥ã"
+#, no-c-format
+msgid "Manual version checking is only feasible in trivial circumstances and not practical for most applications. Often not only single instances, but complete graphs of modified objects, have to be checked. Hibernate offers automatic version checking with either an extended <literal>Session</literal> or detached instances as the design paradigm."
+msgstr "徿æ¾ï¼æå·¥è¿è¡çæ¬æ£æ¥åªéåäºæäºè½¯ä»¶è§æ¨¡é常å°çåºç¨åºæ¯ï¼å¯¹äºå¤§å¤æ°è½¯ä»¶åºç¨åºæ¯æ¥è¯´å¹¶ä¸ç°å®ãé常æ
åµä¸ï¼ä¸ä»
æ¯å个对象å®ä¾éè¦è¿è¡çæ¬æ£æ¥ï¼æ´ä¸ªè¢«ä¿®æ¹è¿çå
³è对象å¾ä¹é½éè¦è¿è¡çæ¬æ£æ¥ãä½ä¸ºæ å设计èä¾ï¼Hibernate ä½¿ç¨æ©å±å¨æç <literal>Session</literal> çæ¹å¼ï¼æè
è±ç®¡å¯¹è±¡å®ä¾çæ¹å¼æ¥æä¾èªå¨çæ¬æ£æ¥ã "
#. Tag: title
-#: transactions.xml:716
#, no-c-format
msgid "Extended session and automatic versioning"
-msgstr "æ©å±å¨æçsessionåèªå¨çæ¬å"
+msgstr "æ©å±å¨æç session åèªå¨çæ¬å"
#. Tag: para
-#: transactions.xml:718
-#, fuzzy, no-c-format
-msgid ""
-"A single <literal>Session</literal> instance and its persistent instances "
-"that are used for the whole conversation are known as <emphasis>session-per-"
-"conversation</emphasis>. Hibernate checks instance versions at flush time, "
-"throwing an exception if concurrent modification is detected. It is up to "
-"the developer to catch and handle this exception. Common options are the "
-"opportunity for the user to merge changes or to restart the business "
-"conversation with non-stale data."
-msgstr ""
-"å个 <literal>Session</literal>å®ä¾å宿å
³èçæææä¹
å对象å®ä¾é½è¢«ç¨äºæ´"
-"个 对è¯ï¼è¿è¢«ç§°ä¸º<emphasis>session-per-conversation</emphasis>ãHibernateå¨å"
-"æ¥çæ¶åè¿è¡å¯¹è±¡å®ä¾ççæ¬æ£æ¥ï¼å¦ææ£æµå°å¹¶åä¿® æ¹åæåºå¼å¸¸ãç±å¼åäººåæ¥å³"
-"宿¯å¦éè¦æè·åå¤çè¿ä¸ªå¼å¸¸ï¼éå¸¸çææ©æ¯ç»ç¨æ· æä¾ä¸ä¸ªåå¹¶æ´æ¹ï¼æè
卿 è"
-"æ°æ®æ
åµä¸éæ°è¿è¡ä¸å¡å¯¹è¯çæºä¼ï¼ã"
+#, no-c-format
+msgid "A single <literal>Session</literal> instance and its persistent instances that are used for the whole conversation are known as <emphasis>session-per-conversation</emphasis>. Hibernate checks instance versions at flush time, throwing an exception if concurrent modification is detected. It is up to the developer to catch and handle this exception. Common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data."
+msgstr "å个 <literal>Session</literal> å®ä¾å宿å
³èçæææä¹
å对象å®ä¾é½è¢«ç¨äºæ´ä¸ªå¯¹è¯ï¼è¿è¢«ç§°ä¸º <emphasis>session-per-conversation</emphasis>ãHibernate å¨åæ¥çæ¶åè¿è¡å¯¹è±¡å®ä¾ççæ¬æ£æ¥ï¼å¦ææ£æµå°å¹¶åä¿®æ¹åæåºå¼å¸¸ãç±å¼åäººåæ¥å³å®æ¯å¦éè¦æè·åå¤çè¿ä¸ªå¼å¸¸ï¼éå¸¸çææ©æ¯ç»ç¨æ· æä¾ä¸ä¸ªåå¹¶æ´æ¹ï¼æè
卿 èæ°æ®æ
åµä¸éæ°è¿è¡ä¸å¡å¯¹è¯çæºä¼ï¼ã "
#. Tag: para
-#: transactions.xml:727
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>Session</literal> is disconnected from any underlying JDBC "
-"connection when waiting for user interaction. This approach is the most "
-"efficient in terms of database access. The application does not version "
-"check or reattach detached instances, nor does it have to reload instances "
-"in every database transaction."
-msgstr ""
-"å¨çå¾
ç¨æ·äº¤äºçæ¶åï¼ <literal>Session</literal> æå¼åºå±çJDBCè¿æ¥ãè¿ç§æ¹"
-"å¼ ä»¥æ°æ®åºè®¿é®çè§åº¦æ¥è¯´æ¯æé«æçæ¹å¼ãåºç¨ç¨åºä¸éè¦å
³å¿çæ¬æ£æ¥æè±ç®¡å¯¹è±¡"
-"å®ä¾ çéæ°å
³èï¼å¨æ¯ä¸ªæ°æ®åºäºå¡ä¸ï¼åºç¨ç¨åºä¹ä¸éè¦è½½å
¥è¯»å对象å®ä¾ã"
-
-#. Tag: programlisting
-#: transactions.xml:735
#, no-c-format
-msgid ""
-"<![CDATA[// foo is an instance loaded earlier by the old session\n"
-"Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, "
-"start transaction\n"
-"\n"
-"foo.setProperty(\"bar\");\n"
-"\n"
-"session.flush(); // Only for last transaction in conversation\n"
-"t.commit(); // Also return JDBC connection\n"
-"session.close(); // Only for last transaction in conversation]]>"
-msgstr ""
+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
-#: transactions.xml:736
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>foo</literal> object knows which <literal>Session</literal> it "
-"was loaded in. Beginning a new database transaction on an old session "
-"obtains a new connection and resumes the session. Committing a database "
-"transaction disconnects a session from the JDBC connection and returns the "
-"connection to the pool. After reconnection, to force a version check on data "
-"you are not updating, you can call <literal>Session.lock()</literal> with "
-"<literal>LockMode.READ</literal> on any objects that might have been updated "
-"by another transaction. You do not need to lock any data that you "
-"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
-"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
-"last database transaction cycle is allowed to actually persist all "
-"modifications made in this conversation. Only this last database transaction "
-"will include the <literal>flush()</literal> operation, and then "
-"<literal>close()</literal> the session to end the conversation."
-msgstr ""
-"<literal>foo</literal>对象ç¥é宿¯å¨åªä¸ª<literal>Session</literal>ä¸è¢«è£
å
¥"
-"çãå¨ä¸ä¸ªæ§sessionä¸å¼å¯ä¸ä¸ªæ°çæ°æ®åºäºå¡ï¼ä¼å¯¼è´sessionè·åä¸ä¸ªæ°çè¿æ¥ï¼"
-"å¹¶æ¢å¤sessionçåè½ãå°æ°æ®åºäºå¡æäº¤ï¼ä½¿å¾sessionä»JDBCè¿æ¥æå¼ï¼å¹¶å°æ¤è¿æ¥"
-"交è¿ç»è¿æ¥æ± ãå¨éæ°è¿æ¥ä¹åï¼è¦å¼ºå¶å¯¹ä½ æ²¡ææ´æ°çæ°æ®è¿è¡ä¸æ¬¡çæ¬æ£æ¥ï¼ä½ å¯"
-"以对ææå¯è½è¢«å
¶ä»äºå¡ä¿®æ¹è¿ç对象ï¼ä½¿ç¨åæ°<literal>LockMode.READ</literal>"
-"æ¥è°ç¨<literal>Session.lock()</literal>ãä½ ä¸ç¨lockä»»ä½ä½ <emphasis>æ£å¨</"
-"emphasis>æ´æ°çæ°æ®ãä¸è¬ä½ ä¼å¨æ©å±ç<literal>Session</literal>ä¸è®¾ç½®"
-"<literal>FlushMode.MANUAL</literal>ï¼å æ¤åªææåä¸ä¸ªæ°æ®åºäºå¡å¾ªç¯æä¼çæ£ç"
-"å§æ´ä¸ªå¯¹è¯ä¸åççä¿®æ¹åéå°æ°æ®åºãå æ¤ï¼åªæè¿æå䏿¬¡æ°æ®åºäºå¡æä¼å
å«"
-"<literal>flush()</literal>æä½ï¼ç¶å卿´ä¸ªå¯¹è¯ç»æåï¼è¿è¦<literal>close()</"
-"literal>è¿ä¸ªsessionã"
+#, no-c-format
+msgid "The <literal>foo</literal> object knows which <literal>Session</literal> it was loaded in. Beginning a new database transaction on an old session obtains a new connection and resumes the session. Committing a database transaction disconnects a session from the JDBC connection and returns the connection to the pool. After reconnection, to force a version check on data you are not updating, you can call <literal>Session.lock()</literal> with <literal>LockMode.READ</literal> on any objects that might have been updated by another transaction. You do not need to lock any data that you <emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode.MANUAL</literal> on an extended <literal>Session</literal>, so that only the last database transaction cycle is allowed to actually persist all modifications made in this conversation. Only this last database transaction will include the <literal>flush()</literal> operation, and then <literal>close()</literal> the se!
ssion to end the conversation."
+msgstr "<literal>foo</literal> 对象ç¥é宿¯å¨åªä¸ª <literal>Session</literal> ä¸è¢«è£
å
¥çãå¨ä¸ä¸ªæ§ session ä¸å¼å¯ä¸ä¸ªæ°çæ°æ®åºäºå¡ï¼ä¼å¯¼è´ session è·åä¸ä¸ªæ°çè¿æ¥ï¼å¹¶æ¢å¤ session çåè½ãå°æ°æ®åºäºå¡æäº¤ï¼ä½¿å¾ session ä» JDBC è¿æ¥æå¼ï¼å¹¶å°æ¤è¿æ¥äº¤è¿ç»è¿æ¥æ± ãå¨éæ°è¿æ¥ä¹åï¼è¦å¼ºå¶å¯¹ä½ æ²¡ææ´æ°çæ°æ®è¿è¡ä¸æ¬¡çæ¬æ£æ¥ï¼ä½ å¯ä»¥å¯¹ææå¯è½è¢«å
¶ä»äºå¡ä¿®æ¹è¿ç对象ï¼ä½¿ç¨åæ° <literal>LockMode.READ</literal> æ¥è°ç¨ <literal>Session.lock()</literal>ãä½ ä¸ç¨ lock ä»»ä½ä½ <emphasis>æ£å¨</emphasis>æ´æ°çæ°æ®ãä¸è¬ä½ ä¼å¨æ©å±ç <literal>Session</literal> ä¸è®¾ç½® <literal>FlushMode.NEVER</literal>ï¼å æ¤åªææåä¸ä¸ªæ°æ®åºäºå¡å¾ªç¯æä¼çæ£çææ´ä¸ªå¯¹è¯ä¸åççä¿®æ¹åéå°æ°æ®åºãå æ¤ï¼åªæè¿æå䏿¬¡æ°æ®åºäºå¡æä¼å
å« <literal>flush()</literal> æä½ï¼ç¶å卿´ä¸ªå¯¹è¯ç»æåï¼!
è¿è¦ <literal>close()</literal> è¿ä¸ª sessionã "
#. Tag: para
-#: transactions.xml:751
-#, fuzzy, no-c-format
-msgid ""
-"This pattern is problematic if the <literal>Session</literal> is too big to "
-"be stored during user think time (for example, an <literal>HttpSession</"
-"literal> should be kept as small as possible). As the <literal>Session</"
-"literal> is also the first-level cache and contains all loaded objects, we "
-"can probably use this strategy only for a few request/response cycles. Use a "
-"<literal>Session</literal> only for a single conversation as it will soon "
-"have stale data."
-msgstr ""
-"妿å¨ç¨æ·æèçè¿ç¨ä¸ï¼<literal>Session</literal>å 为太大äºèä¸è½ä¿åï¼é£ä¹"
-"è¿ç§æ¨¡å¼æ¯æ é®é¢çã䏾便¥è¯´ï¼ä¸ä¸ª<literal>HttpSession</literal>åºè¯¥å°½å¯è½ç"
-"å°ãç±äº <literal>Session</literal>æ¯ä¸çº§ç¼åï¼å¹¶ä¸ä¿æäºææè¢«è½½å
¥è¿ç对象ï¼"
-"å æ¤ æä»¬åªåºè¯¥å¨é£äºå°éçrequest/responseæ
åµä¸ä½¿ç¨è¿ç§çç¥ãä½ åºè¯¥åªæä¸ä¸ª"
-"<literal>Session</literal>ç¨äºå个对è¯ï¼å 为å®å¾å¿«å°±ä¼åºç°èæ°æ®ã"
+#, no-c-format
+msgid "This pattern is problematic if the <literal>Session</literal> is too big to be stored during user think time (for example, an <literal>HttpSession</literal> should be kept as small as possible). As the <literal>Session</literal> is also the first-level cache and contains all loaded objects, we can probably use this strategy only for a few request/response cycles. Use a <literal>Session</literal> only for a single conversation as it will soon have stale data."
+msgstr "妿å¨ç¨æ·æèçè¿ç¨ä¸ï¼<literal>Session</literal> å 为太大äºèä¸è½ä¿åï¼é£ä¹è¿ç§æ¨¡å¼æ¯æé®é¢çã䏾便¥è¯´ï¼ä¸ä¸ª <literal>HttpSession</literal> åºè¯¥å°½å¯è½çå°ãç±äº <literal>Session</literal> æ¯ä¸çº§ç¼åï¼å¹¶ä¸ä¿æäºææè¢«è½½å
¥è¿ç对象ï¼å æ¤æä»¬åªåºè¯¥å¨é£äºå°éç request/response æ
åµä¸ä½¿ç¨è¿ç§çç¥ãä½ åºè¯¥åªæä¸ä¸ª <literal>Session</literal> ç¨äºå个对è¯ï¼å 为å®å¾å¿«å°±ä¼åºç°èæ°æ®ã "
#. Tag: title
-#: transactions.xml:762
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "注æ"
#. Tag: para
-#: transactions.xml:763
-#, fuzzy, no-c-format
-msgid ""
-"Earlier versions of Hibernate required explicit disconnection and "
-"reconnection of a <literal>Session</literal>. These methods are deprecated, "
-"as beginning and ending a transaction has the same effect."
-msgstr ""
-"ï¼æ³¨æï¼æ©æçHibernateçæ¬éè¦æç¡®ç对<literal>Session</literal>è¿è¡"
-"disconnecåreconnectãè¿äºæ¹æ³ç°å¨å·²ç»è¿æ¶äºï¼æå¼äºå¡åå
³éäºå¡ä¼èµ·å°åæ ·ç"
-"ææãï¼"
+#, no-c-format
+msgid "Earlier versions of Hibernate required explicit disconnection and reconnection of a <literal>Session</literal>. These methods are deprecated, as beginning and ending a transaction has the same effect."
+msgstr "注æï¼æ©æç Hibernate çæ¬éè¦æç¡®ç对 <literal>Session</literal> è¿è¡ disconnect å reconnectãè¿äºæ¹æ³ç°å¨å·²ç»è¿æ¶äºï¼æå¼äºå¡åå
³éäºå¡ä¼èµ·å°åæ ·çææã"
#. Tag: para
-#: transactions.xml:769
-#, fuzzy, no-c-format
-msgid ""
-"Keep the disconnected <literal>Session</literal> close to the persistence "
-"layer. Use an EJB stateful session bean to hold the <literal>Session</"
-"literal> in a three-tier environment. Do not transfer it to the web layer, "
-"or even serialize it to a separate tier, to store it in the "
-"<literal>HttpSession</literal>."
-msgstr ""
-"æ¤å¤ï¼ä¹è¯·æ³¨æï¼ä½ åºè¯¥è®©ä¸æ°æ®åºè¿æ¥æå¼ç<literal>Session</literal>对æä¹
å±"
-"ä¿æ å
³éç¶æãæ¢å¥è¯è¯´ï¼å¨ä¸å±ç¯å¢ä¸ï¼ä½¿ç¨æç¶æçEJB session beanæ¥ææ"
-"<literal>Session</literal>ï¼ èä¸è¦æå®ä¼ éå°webå±ï¼çè³æå®åºååå°ä¸ä¸ªåç¬"
-"çå±ï¼ï¼ä¿åå¨<literal>HttpSession</literal>ä¸ã"
+#, no-c-format
+msgid "Keep the disconnected <literal>Session</literal> close to the persistence layer. Use an EJB stateful session bean to hold the <literal>Session</literal> in a three-tier environment. Do not transfer it to the web layer, or even serialize it to a separate tier, to store it in the <literal>HttpSession</literal>."
+msgstr "æ¤å¤ï¼ä¹è¯·æ³¨æï¼ä½ åºè¯¥è®©ä¸æ°æ®åºè¿æ¥æå¼ç <literal>Session</literal> 对æä¹
å±ä¿æå
³éç¶æãæ¢å¥è¯è¯´ï¼å¨ä¸å±ç¯å¢ä¸ï¼ä½¿ç¨æç¶æç EJB session bean æ¥æ æ<literal>Session</literal>ï¼ èä¸è¦æå®ä¼ éå° web å±ï¼çè³æå®åºååå°ä¸ä¸ªåç¬çå±ï¼ï¼ä¿åå¨ <literal>HttpSession</literal> ä¸ã "
#. Tag: para
-#: transactions.xml:777
-#, fuzzy, no-c-format
-msgid ""
-"The extended session pattern, or <emphasis>session-per-conversation</"
-"emphasis>, is more difficult to implement with automatic current session "
-"context management. You need to supply your own implementation of the "
-"<literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki "
-"for examples."
-msgstr ""
-"æ©å±session模å¼ï¼æè
被称为<emphasis>æ¯æ¬¡å¯¹è¯ä¸ä¸ªsession(session-per-"
-"conversation)</emphasis>, å¨ä¸èªå¨ç®¡çå½åsessionä¸ä¸æèç¨çæ¶å伿´å°é¾ãä½ "
-"éè¦æä¾ä½ èªå·±ç<literal>CurrentSessionContext</literal>å®ç°ã请åé
"
-"Hibernate Wiki以è·å¾ç¤ºä¾ã"
+#, no-c-format
+msgid "The extended session pattern, or <emphasis>session-per-conversation</emphasis>, is more difficult to implement with automatic current session context management. You need to supply your own implementation of the <literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki for examples."
+msgstr "æ©å± session 模å¼ï¼æè
被称为<emphasis>æ¯æ¬¡å¯¹è¯ä¸ä¸ªsessionï¼session-per-conversationï¼</emphasis>ï¼èªå¨ç®¡çå½å session ä¸ä¸æèç¨çæ¶å伿´å°é¾ãä½ éè¦æä¾ä½ èªå·±ç <literal>CurrentSessionContext</literal> å®ç°ã请åé
Hibernate Wiki 以è·å¾ç¤ºä¾ã "
#. Tag: title
-#: transactions.xml:787
#, no-c-format
msgid "Detached objects and automatic versioning"
-msgstr "è±ç®¡å¯¹è±¡(deatched object)åèªå¨çæ¬å"
+msgstr "è±ç®¡å¯¹è±¡ï¼deatched objectï¼åèªå¨çæ¬å"
#. Tag: para
-#: transactions.xml:789
#, no-c-format
-msgid ""
-"Each interaction with the persistent store occurs in a new <literal>Session</"
-"literal>. However, the same persistent instances are reused for each "
-"interaction with the database. The application manipulates the state of "
-"detached instances originally loaded in another <literal>Session</literal> "
-"and then reattaches them using <literal>Session.update()</literal>, "
-"<literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</"
-"literal>."
-msgstr ""
-"è¿ç§æ¹å¼ä¸ï¼ä¸æä¹
ååå¨çæ¯æ¬¡äº¤äºé½åçå¨ä¸ä¸ªæ°ç<literal>Session</literal>"
-"ä¸ã ç¶èï¼å䏿ä¹
å对象å®ä¾å¯ä»¥å¨å¤æ¬¡ä¸æ°æ®åºç交äºä¸éç¨ãåºç¨ç¨åºæçºµè±ç®¡"
-"对象å®ä¾ çç¶æï¼è¿ä¸ªè±ç®¡å¯¹è±¡å®ä¾æåæ¯å¨å¦ä¸ä¸ª<literal>Session</literal> ä¸"
-"è½½å
¥çï¼ç¶å è°ç¨ <literal>Session.update()</literal>ï¼<literal>Session."
-"saveOrUpdate()</literal>, æè
<literal>Session.merge()</literal> æ¥éæ°å
³è"
-"该对象å®ä¾ã"
+msgid "Each interaction with the persistent store occurs in a new <literal>Session</literal>. However, the same persistent instances are reused for each interaction with the database. The application manipulates the state of detached instances originally loaded in another <literal>Session</literal> and then reattaches them using <literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</literal>."
+msgstr "è¿ç§æ¹å¼ä¸ï¼ä¸æä¹
ååå¨çæ¯æ¬¡äº¤äºé½åçå¨ä¸ä¸ªæ°ç <literal>Session</literal> ä¸ãç¶èï¼å䏿ä¹
å对象å®ä¾å¯ä»¥å¨å¤æ¬¡ä¸æ°æ®åºç交äºä¸éç¨ãåºç¨ç¨åºæçºµè±ç®¡å¯¹è±¡å®ä¾ çç¶æï¼è¿ä¸ªè±ç®¡å¯¹è±¡å®ä¾æåæ¯å¨å¦ä¸ä¸ª <literal>Session</literal> ä¸è½½å
¥çï¼ç¶åè°ç¨ <literal>Session.update()</literal>ï¼<literal>Session.saveOrUpdate()</literal>ï¼æè
<literal>Session.merge()</literal> æ¥éæ°å
³è该对象å®ä¾ã"
-#. Tag: programlisting
-#: transactions.xml:797
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[// foo is an instance loaded by a previous Session\n"
-"foo.setProperty(\"bar\");\n"
-"session = factory.openSession();\n"
-"Transaction t = session.beginTransaction();\n"
-"session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded "
-"already\n"
-"t.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occurred."
+msgstr "Hibernate ä¼å䏿¬¡å¨åæ¥çæ¶åæ£æ¥å¯¹è±¡å®ä¾ççæ¬ï¼å¦æåçæ´æ°å²çªï¼å°±æåºå¼å¸¸ã "
#. Tag: para
-#: transactions.xml:799
-#, fuzzy, no-c-format
-msgid ""
-"Again, Hibernate will check instance versions during flush, throwing an "
-"exception if conflicting updates occurred."
-msgstr ""
-"Hibernateä¼å䏿¬¡å¨åæ¥çæ¶åæ£æ¥å¯¹è±¡å®ä¾ççæ¬ï¼å¦æåçæ´æ°å²çªï¼å°±æåºå¼"
-"常ã"
+#, no-c-format
+msgid "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: para
-#: transactions.xml:804
-#, fuzzy, no-c-format
-msgid ""
-"You can also call <literal>lock()</literal> instead of <literal>update()</"
-"literal>, and use <literal>LockMode.READ</literal> (performing a version "
-"check and bypassing all caches) if you are sure that the object has not been "
-"modified."
-msgstr ""
-"å¦æä½ ç¡®ä¿¡å¯¹è±¡æ²¡æè¢«ä¿®æ¹è¿ï¼ä½ ä¹å¯ä»¥è°ç¨<literal>lock()</literal> æ¥è®¾ç½® "
-"<literal>LockMode.READ</literal>ï¼ç»è¿ææçç¼åï¼æ§è¡çæ¬æ£æ¥ï¼ï¼ä»èå 代 "
-"<literal>update()</literal>æä½ã"
-
#. Tag: title
-#: transactions.xml:813
#, no-c-format
msgid "Customizing automatic versioning"
msgstr "å®å¶èªå¨çæ¬åè¡ä¸º"
#. Tag: para
-#: transactions.xml:815
-#, fuzzy, no-c-format
-msgid ""
-"You can disable Hibernate's automatic version increment for particular "
-"properties and collections by setting the <literal>optimistic-lock</literal> "
-"mapping attribute to <literal>false</literal>. Hibernate will then no longer "
-"increment versions if the property is dirty."
-msgstr ""
-"对äºç¹å®ç屿§åéåï¼éè¿ä¸ºå®ä»¬è®¾ç½®æ å°å±æ§<literal>optimistic-lock</"
-"literal>çå¼ ä¸º<literal>false</literal>ï¼æ¥ç¦æ¢Hibernateççæ¬èªå¨å¢å ãè¿æ ·"
-"çè¯ï¼å¦æè¯¥å±æ§ èæ°æ®ï¼Hibernateå°ä¸åå¢å çæ¬å·ã"
+#, no-c-format
+msgid "You can disable Hibernate's automatic version increment for particular properties and collections by setting the <literal>optimistic-lock</literal> mapping attribute to <literal>false</literal>. Hibernate will then no longer increment versions if the property is dirty."
+msgstr "对äºç¹å®ç屿§åéåï¼éè¿ä¸ºå®ä»¬è®¾ç½®æ å°å±æ§ <literal>optimistic-lock</literal> çå¼ä¸º <literal>false</literal>ï¼æ¥ç¦æ¢ Hibernate ççæ¬èªå¨å¢å ãè¿æ ·çè¯ï¼å¦æè¯¥å±æ§èæ°æ®ï¼Hibernate å°ä¸åå¢å çæ¬å·ã "
#. Tag: para
-#: transactions.xml:822
-#, fuzzy, no-c-format
-msgid ""
-"Legacy database schemas are often static and cannot be modified. Or, other "
-"applications might access the same database and will not know how to handle "
-"version numbers or even timestamps. In both cases, versioning cannot rely on "
-"a particular column in a table. To force a version check with a comparison "
-"of the state of all fields in a row but without a version or timestamp "
-"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
-"<literal><class></literal> mapping. This conceptually only works if "
-"Hibernate can compare the old and the new state (i.e., if you use a single "
-"long <literal>Session</literal> and not session-per-request-with-detached-"
-"objects)."
-msgstr ""
-"éçç³»ç»çæ°æ®åºSchemaé常æ¯éæçï¼ä¸å¯ä¿®æ¹çãæè
ï¼å
¶ä»åºç¨ç¨åºä¹å¯è½è®¿é®"
-"å䏿°æ® åºï¼æ ¹æ¬æ æ³å¾ç¥å¦ä½å¤ççæ¬å·ï¼çè³æ¶é´æ³ãå¨ä»¥ä¸çææåºæ¯ä¸ï¼å®ç°"
-"çæ¬åä¸è½ä¾é æ°æ®åºè¡¨çæä¸ªç¹å®åãå¨<literal><class></literal>çæ å°"
-"ä¸è®¾ç½® <literal>optimistic-lock=\"all\"</literal>å¯ä»¥å¨æ²¡æçæ¬æè
æ¶é´æ³å±æ§"
-"æ å°çæ
åµä¸å®ç° çæ¬æ£æ¥ï¼æ¤æ¶Hibernateå°æ¯è¾ä¸è¡è®°å½çæ¯ä¸ªå段çç¶æã请注"
-"æï¼åªæå½Hibernateè½å¤æ¯ è¾æ°æ§ç¶æçæ
åµä¸ï¼è¿ç§æ¹å¼æè½çæï¼ä¹å°±æ¯è¯´ï¼ ä½ "
-"å¿
须使ç¨å个é¿çå½å¨æ<literal>Session</literal>模å¼ï¼èä¸è½ä½¿ç¨ session-per-"
-"request-with-detached-objects模å¼ã"
+#, no-c-format
+msgid "Legacy database schemas are often static and cannot be modified. Or, other applications might access the same database and will not know how to handle version numbers or even timestamps. In both cases, versioning cannot rely on a particular column in a table. To force a version check with a comparison of the state of all fields in a row but without a version or timestamp property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the <literal><class></literal> mapping. This conceptually only works if Hibernate can compare the old and the new state (i.e., if you use a single long <literal>Session</literal> and not session-per-request-with-detached-objects)."
+msgstr "éçç³»ç»çæ°æ®åº Schema é常æ¯éæçï¼ä¸å¯ä¿®æ¹çãæè
ï¼å
¶ä»åºç¨ç¨åºä¹å¯è½è®¿é®å䏿°æ®åºï¼æ ¹æ¬æ æ³å¾ç¥å¦ä½å¤ççæ¬å·ï¼çè³æ¶é´æ³ãå¨ä»¥ä¸çææåºæ¯ä¸ï¼å®ç°çæ¬åä¸è½ä¾é æ°æ®åºè¡¨çæä¸ªç¹å®åãå¨ <literal><class></literal> çæ å°ä¸è®¾ç½® <literal>optimistic-lock=\"all\"</literal> å¯ä»¥å¨æ²¡æçæ¬æè
æ¶é´æ³å±æ§æ å°çæ
åµä¸å®ç°çæ¬æ£æ¥ï¼æ¤æ¶ Hibernate å°æ¯è¾ä¸è¡è®°å½çæ¯ä¸ªå段çç¶æã请注æï¼åªæå½ Hibernate è½å¤æ¯è¾æ°æ§ç¶æçæ
åµä¸ï¼è¿ç§æ¹å¼æè½çæï¼ä¹å°±æ¯è¯´ï¼ä½ å¿
须使ç¨å个é¿çå½å¨æ <literal>Session</literal> 模å¼ï¼èä¸è½ä½¿ç¨ session-per-request-with-detached-objects 模å¼ã "
#. Tag: para
-#: transactions.xml:834
-#, fuzzy, no-c-format
-msgid ""
-"Concurrent modification can be permitted in instances where the changes that "
-"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
-"\"</literal> when mapping the <literal><class></literal>, Hibernate "
-"will only compare dirty fields during flush."
-msgstr ""
-"æäºæ
åµä¸ï¼åªè¦æ´æ¹ä¸åç交éï¼å¹¶åä¿®æ¹ä¹æ¯å
许çãå½ä½ å¨<literal><"
-"class></literal> çæ å°ä¸è®¾ç½®<literal>optimistic-lock=\"dirty\"</"
-"literal>ï¼Hibernateå¨åæ¥çæ¶åå°åªæ¯è¾æè æ°æ®çåæ®µã"
+#, no-c-format
+msgid "Concurrent modification can be permitted in instances where the changes that have been made do not overlap. If you set <literal>optimistic-lock=\"dirty\"</literal> when mapping the <literal><class></literal>, Hibernate will only compare dirty fields during flush."
+msgstr "æäºæ
åµä¸ï¼åªè¦æ´æ¹ä¸åç交éï¼å¹¶åä¿®æ¹ä¹æ¯å
许çãå½ä½ å¨ <literal><class></literal> çæ å°ä¸è®¾ç½® <literal>optimistic-lock=\"dirty\"</literal>ï¼Hibernate å¨åæ¥çæ¶åå°åªæ¯è¾æèæ°æ®çåæ®µã "
#. Tag: para
-#: transactions.xml:840
-#, fuzzy, no-c-format
-msgid ""
-"In both cases, with dedicated version/timestamp columns or with a full/dirty "
-"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
-"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
-"to execute the version check and update the information. If you use "
-"transitive persistence to cascade reattachment to associated entities, "
-"Hibernate may execute unnecessary updates. This is usually not a problem, "
-"but <emphasis>on update</emphasis> triggers in the database might be "
-"executed even when no changes have been made to detached instances. You can "
-"customize this behavior by setting <literal>select-before-update=\"true\"</"
-"literal> in the <literal><class></literal> mapping, forcing Hibernate "
-"to <literal>SELECT</literal> the instance to ensure that changes did occur "
-"before updating the row."
-msgstr ""
-"å¨ä»¥ä¸ææåºæ¯ä¸ï¼ä¸ç®¡æ¯ä¸é¨è®¾ç½®ä¸ä¸ªçæ¬/æ¶é´æ³åï¼è¿æ¯è¿è¡å
¨é¨å段/èæ°æ®å"
-"段æ¯è¾ï¼ Hibernateé½ä¼é对æ¯ä¸ªå®ä½å¯¹è±¡åé䏿¡<literal>UPDATE</literal>ï¼å¸¦æ"
-"ç¸åºç <literal>WHERE</literal>è¯å¥ ï¼çSQLè¯å¥æ¥æ§è¡çæ¬æ£æ¥åæ°æ®æ´æ°ã妿"
-"ä½ å¯¹å
³èå®ä½ 设置级èå
³ç³»ä½¿ç¨ä¼ ææ§æä¹
åï¼transitive persistenceï¼ï¼é£ä¹"
-"Hibernateå¯è½ä¼æ§è¡ä¸å¿
è¦çupdateè¯å¥ãè¿é叏䏿¯ä¸ªé®é¢ï¼ä½æ¯æ°æ®åºéé¢å¯¹"
-"<emphasis>on update</emphasis>ç¹ç« ç触åå¨å¯è½å¨è±ç®¡å¯¹è±¡æ²¡æä»»ä½æ´æ¹çæ
åµä¸"
-"被触åãå æ¤ï¼ä½ å¯ä»¥å¨ <literal><class></literal>çæ å°ä¸ï¼éè¿è®¾ç½®"
-"<literal>select-before-update=\"true\"</literal> æ¥å®å¶è¿ä¸è¡ä¸ºï¼å¼ºå¶"
-"Hibernate <literal>SELECT</literal>è¿ä¸ªå¯¹è±¡å®ä¾ï¼ä»èä¿è¯ï¼ 卿´æ°è®°å½ä¹åï¼"
-"对象çç¡®æ¯è¢«ä¿®æ¹è¿ã"
+#, no-c-format
+msgid "In both cases, with dedicated version/timestamp columns or with a full/dirty field comparison, Hibernate uses a single <literal>UPDATE</literal> statement, with an appropriate <literal>WHERE</literal> clause, per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate may execute unnecessary updates. This is usually not a problem, but <emphasis>on update</emphasis> triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting <literal>select-before-update=\"true\"</literal> in the <literal><class></literal> mapping, forcing Hibernate to <literal>SELECT</literal> the instance to ensure that changes did occur before updating the row."
+msgstr "å¨ä»¥ä¸ææåºæ¯ä¸ï¼ä¸ç®¡æ¯ä¸é¨è®¾ç½®ä¸ä¸ªçæ¬/æ¶é´æ³åï¼è¿æ¯è¿è¡å
¨é¨å段/èæ°æ®å段æ¯è¾ï¼Hibernate é½ä¼é对æ¯ä¸ªå®ä½å¯¹è±¡åé䏿¡ <literal>UPDATE</literal>ï¼å¸¦æç¸åºç <literal>WHERE</literal> è¯å¥ ï¼ç SQL è¯å¥æ¥æ§è¡çæ¬æ£æ¥åæ°æ®æ´æ°ãå¦æä½ å¯¹å
³èå®ä½ 设置级èå
³ç³»ä½¿ç¨ä¼ ææ§æä¹
åï¼transitive persistenceï¼ï¼é£ä¹ Hibernate å¯è½ä¼æ§è¡ä¸å¿
è¦çupdateè¯å¥ãè¿é叏䏿¯ä¸ªé®é¢ï¼ä½æ¯æ°æ®åºéé¢å¯¹ <emphasis>on update</emphasis> ç¹ç« ç触åå¨å¯è½å¨è±ç®¡å¯¹è±¡æ²¡æä»»ä½æ´æ¹çæ
åµä¸è¢«è§¦åãå æ¤ï¼ä½ å¯ä»¥å¨ <literal><class></literal> çæ å°ä¸ï¼éè¿è®¾ç½®<literal>select-before-update=\"true\"</literal> æ¥å®å¶è¿ä¸è¡ä¸ºï¼å¼ºå¶ Hibernate <literal>SELECT</literal> è¿ä¸ªå¯¹è±¡å®ä¾ï¼ä»èä¿è¯ï¼å¨æ´æ°è®°å½ä¹åï¼å¯¹è±¡çç¡®æ¯è¢«ä¿®æ¹è¿ã "
#. Tag: title
-#: transactions.xml:858
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Pessimistic locking"
-msgstr "æ²è§éå®(Pessimistic Locking)"
+msgstr "æ²è§éå®ï¼Pessimistic Lockingï¼ "
#. Tag: para
-#: transactions.xml:860
-#, fuzzy, no-c-format
-msgid ""
-"It is not intended that users spend much time worrying about locking "
-"strategies. It is usually enough to specify an isolation level for the JDBC "
-"connections and then simply let the database do all the work. However, "
-"advanced users may wish to obtain exclusive pessimistic locks or re-obtain "
-"locks at the start of a new transaction."
-msgstr ""
-"ç¨æ·å
¶å®å¹¶ä¸éè¦è±å¾å¤ç²¾å廿
å¿éå®çç¥çé®é¢ãé常æ
åµä¸ï¼åªè¦ä¸ºJDBCè¿æ¥æ"
-"å®ä¸ä¸é 离级å«ï¼ç¶åè®©æ°æ®åºå»æå®ä¸åå°±å¤äºãç¶èï¼é«çº§ç¨æ·ææ¶å叿è¿è¡ä¸"
-"个æå®çæ²è§éå®ï¼ æè
å¨ä¸ä¸ªæ°çäºå¡å¯å¨çæ¶åï¼éæ°è¿è¡éå®ã"
+#, no-c-format
+msgid "It is not intended that users spend much time worrying about locking strategies. It is usually enough to specify an isolation level for the JDBC connections and then simply let the database do all the work. However, advanced users may wish to obtain exclusive pessimistic locks or re-obtain locks at the start of a new transaction."
+msgstr "ç¨æ·å
¶å®å¹¶ä¸éè¦è±å¾å¤ç²¾å廿
å¿éå®çç¥çé®é¢ãé常æ
åµä¸ï¼åªè¦ä¸º JDBC è¿æ¥æå®ä¸ä¸é离级å«ï¼ç¶åè®©æ°æ®åºå»æå®ä¸åå°±å¤äºãç¶èï¼é«çº§ç¨æ·ææ¶å叿è¿è¡ä¸ä¸ªæå®çæ²è§éå®ï¼æè
å¨ä¸ä¸ªæ°çäºå¡å¯å¨çæ¶åï¼éæ°è¿è¡éå®ã "
#. Tag: para
-#: transactions.xml:867
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate will always use the locking mechanism of the database; it never "
-"lock objects in memory."
-msgstr "Hibernateæ»æ¯ä½¿ç¨æ°æ®åºçé宿ºå¶ï¼ä»ä¸å¨å
åä¸éå®å¯¹è±¡ï¼"
+#, no-c-format
+msgid "Hibernate will always use the locking mechanism of the database; it never lock objects in memory."
+msgstr "Hibernate æ»æ¯ä½¿ç¨æ°æ®åºçé宿ºå¶ï¼ä»ä¸å¨å
åä¸éå®å¯¹è±¡ã"
#. Tag: para
-#: transactions.xml:872
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>LockMode</literal> class defines the different lock levels that "
-"can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
-msgstr ""
-"ç±»<literal>LockMode</literal> å®ä¹äºHibernateæéçä¸åçéå®çº§å«ãä¸ä¸ªéå® "
-"å¯ä»¥éè¿ä»¥ä¸çæºå¶æ¥è®¾ç½®:"
+#, no-c-format
+msgid "The <literal>LockMode</literal> class defines the different lock levels that can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
+msgstr "ç±» <literal>LockMode</literal> å®ä¹äº Hibernate æéçä¸åçéå®çº§å«ãä¸ä¸ªéå®å¯ä»¥éè¿ä»¥ä¸çæºå¶æ¥è®¾ç½®ï¼"
#. Tag: para
-#: transactions.xml:879
#, no-c-format
-msgid ""
-"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
-"updates or inserts a row."
-msgstr ""
-"å½Hibernateæ´æ°æè
æå
¥ä¸è¡è®°å½çæ¶åï¼éå®çº§å«èªå¨è®¾ç½®ä¸º<literal>LockMode."
-"WRITE</literal>ã"
+msgid "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate updates or inserts a row."
+msgstr "å½ Hibernate æ´æ°æè
æå
¥ä¸è¡è®°å½çæ¶åï¼éå®çº§å«èªå¨è®¾ç½®ä¸º <literal>LockMode.WRITE</literal>ã"
#. Tag: para
-#: transactions.xml:885
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user "
-"request using <literal>SELECT ... FOR UPDATE</literal> on databases which "
-"support that syntax."
-msgstr ""
-"å½ç¨æ·æ¾å¼çä½¿ç¨æ°æ®åºæ¯æçSQLæ ¼å¼<literal>SELECT ... FOR UPDATE</literal> "
-"åéSQLçæ¶åï¼éå®çº§å«è®¾ç½®ä¸º<literal>LockMode.UPGRADE</literal>"
+#, no-c-format
+msgid "<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user request using <literal>SELECT ... FOR UPDATE</literal> on databases which support that syntax."
+msgstr "å½ç¨æ·æ¾å¼çä½¿ç¨æ°æ®åºæ¯æç SQL æ ¼å¼ <literal>SELECT ... FOR UPDATE</literal> åé SQL çæ¶åï¼éå®çº§å«è®¾ç½®ä¸º <literal>LockMode.UPGRADE</literal>ã "
#. Tag: para
-#: transactions.xml:891
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit "
-"user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under "
-"Oracle."
-msgstr ""
-"å½ç¨æ·æ¾å¼ç使ç¨Oracleæ°æ®åºçSQLè¯å¥<literal>SELECT ... FOR UPDATE NOWAIT</"
-"literal> çæ¶åï¼éå®çº§å«è®¾ç½®<literal>LockMode.UPGRADE_NOWAIT</literal>"
+#, no-c-format
+msgid "<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under Oracle."
+msgstr "å½ç¨æ·æ¾å¼çä½¿ç¨ Oracle æ°æ®åºç SQL è¯å¥ <literal>SELECT ... FOR UPDATE NOWAIT</literal> çæ¶åï¼éå®çº§å«è®¾ç½® <literal>LockMode.UPGRADE_NOWAIT</literal>ã "
#. Tag: para
-#: transactions.xml:897
-#, fuzzy, no-c-format
-msgid ""
-"<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
-"reads data under Repeatable Read or Serializable isolation level. It can be "
-"re-acquired by explicit user request."
-msgstr ""
-"å½Hibernateå¨âå¯éå¤è¯»âæè
æ¯âåºååâæ°æ®åºé离级å«ä¸è¯»åæ°æ®çæ¶åï¼é宿¨¡"
-"å¼ èªå¨è®¾ç½®ä¸º<literal>LockMode.READ</literal>ãè¿ç§æ¨¡å¼ä¹å¯ä»¥éè¿ç¨æ·æ¾å¼æå®"
-"è¿è¡è®¾ç½®ã"
+#, no-c-format
+msgid "<literal>LockMode.READ</literal> is acquired automatically when Hibernate reads data under Repeatable Read or Serializable isolation level. It can be re-acquired by explicit user request."
+msgstr "å½ Hibernate å¨âå¯éå¤è¯»âæè
æ¯âåºååâæ°æ®åºé离级å«ä¸è¯»åæ°æ®çæ¶åï¼é宿¨¡å¼èªå¨è®¾ç½®ä¸º <literal>LockMode.READ</literal>ãè¿ç§æ¨¡å¼ä¹å¯ä»¥éè¿ç¨æ·æ¾å¼æå®è¿è¡è®¾ç½®ã "
#. Tag: para
-#: transactions.xml:904
#, no-c-format
-msgid ""
-"<literal>LockMode.NONE</literal> represents the absence of a lock. All "
-"objects switch to this lock mode at the end of a <literal>Transaction</"
-"literal>. Objects associated with the session via a call to <literal>update()"
-"</literal> or <literal>saveOrUpdate()</literal> also start out in this lock "
-"mode."
-msgstr ""
-"<literal>LockMode.NONE</literal> 代表æ ééå®ãå¨<literal>Transaction</"
-"literal>ç»ææ¶ï¼ ææç对象é½åæ¢å°è¯¥æ¨¡å¼ä¸æ¥ãä¸sessionç¸å
³èç对象éè¿è°ç¨"
-"<literal>update()</literal> æè
<literal>saveOrUpdate()</literal>è±ç¦»è¯¥æ¨¡å¼ã"
+msgid "<literal>LockMode.NONE</literal> represents the absence of a lock. All objects switch to this lock mode at the end of a <literal>Transaction</literal>. Objects associated with the session via a call to <literal>update()</literal> or <literal>saveOrUpdate()</literal> also start out in this lock mode."
+msgstr "<literal>LockMode.NONE</literal> 代表æ ééå®ãå¨ <literal>Transaction</literal> ç»ææ¶ï¼ ææç对象é½åæ¢å°è¯¥æ¨¡å¼ä¸æ¥ãä¸ session ç¸å
³èç对象éè¿è°ç¨ <literal>update()</literal> æè
<literal>saveOrUpdate()</literal> è±ç¦»è¯¥æ¨¡å¼ã"
#. Tag: para
-#: transactions.xml:913
#, no-c-format
-msgid ""
-"The \"explicit user request\" is expressed in one of the following ways:"
-msgstr "\"æ¾å¼çç¨æ·æå®\"å¯ä»¥éè¿ä»¥ä¸å ç§æ¹å¼ä¹ä¸æ¥è¡¨ç¤º:"
+msgid "The \"explicit user request\" is expressed in one of the following ways:"
+msgstr "\"æ¾å¼çç¨æ·æå®\"å¯ä»¥éè¿ä»¥ä¸å ç§æ¹å¼ä¹ä¸æ¥è¡¨ç¤ºï¼"
#. Tag: para
-#: transactions.xml:919
#, no-c-format
-msgid ""
-"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
-"literal>."
-msgstr ""
-"è°ç¨ <literal>Session.load()</literal>çæ¶åæå®<literal>é宿¨¡å¼(LockMode)</"
-"literal>ã"
+msgid "A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</literal>."
+msgstr "è°ç¨ <literal>Session.load()</literal> çæ¶åæå®<literal>é宿¨¡å¼ï¼LockModeï¼</literal>ã"
#. Tag: para
-#: transactions.xml:924
#, no-c-format
msgid "A call to <literal>Session.lock()</literal>."
-msgstr "è°ç¨<literal>Session.lock()</literal>ã"
+msgstr "è°ç¨ <literal>Session.lock()</literal>ã"
#. Tag: para
-#: transactions.xml:929
#, no-c-format
msgid "A call to <literal>Query.setLockMode()</literal>."
-msgstr "è°ç¨<literal>Query.setLockMode()</literal>ã"
+msgstr "è°ç¨ <literal>Query.setLockMode()</literal>ã"
#. Tag: para
-#: transactions.xml:935
#, no-c-format
-msgid ""
-"If <literal>Session.load()</literal> is called with <literal>UPGRADE</"
-"literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was "
-"not yet loaded by the session, the object is loaded using "
-"<literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is "
-"called for an object that is already loaded with a less restrictive lock "
-"than the one requested, Hibernate calls <literal>lock()</literal> for that "
-"object."
-msgstr ""
-"妿å¨<literal>UPGRADE</literal>æè
<literal>UPGRADE_NOWAIT</literal>é宿¨¡å¼"
-"ä¸è° ç¨<literal>Session.load()</literal>ï¼å¹¶ä¸è¦è¯»åçå¯¹è±¡å°æªè¢«sessionè½½å
¥"
-"è¿ï¼é£ä¹å¯¹è±¡ éè¿<literal>SELECT ... FOR UPDATE</literal>è¿æ ·çSQLè¯å¥è¢«è½½"
-"å
¥ãå¦æä¸ºä¸ä¸ªå¯¹è±¡è°ç¨ <literal>load()</literal>æ¹æ³æ¶ï¼è¯¥å¯¹è±¡å·²ç»å¨å¦ä¸ä¸ªè¾"
-"å°éå¶çé宿¨¡å¼ä¸è¢«è½½å
¥äºï¼é£ ä¹Hibernate就对该对象è°ç¨<literal>lock()</"
-"literal> æ¹æ³ã"
+msgid "If <literal>Session.load()</literal> is called with <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was not yet loaded by the session, the object is loaded using <literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is called for an object that is already loaded with a less restrictive lock than the one requested, Hibernate calls <literal>lock()</literal> for that object."
+msgstr "å¦æå¨ <literal>UPGRADE</literal> æè
<literal>UPGRADE_NOWAIT</literal> é宿¨¡å¼ä¸è°ç¨ <literal>Session.load()</literal>ï¼å¹¶ä¸è¦è¯»åçå¯¹è±¡å°æªè¢« session è½½å
¥è¿ï¼é£ä¹å¯¹è±¡éè¿ <literal>SELECT ... FOR UPDATE</literal> è¿æ ·ç SQL è¯å¥è¢«è½½å
¥ãå¦æä¸ºä¸ä¸ªå¯¹è±¡è°ç¨ <literal>load()</literal> æ¹æ³æ¶ï¼è¯¥å¯¹è±¡å·²ç»å¨å¦ä¸ä¸ªè¾å°éå¶çé宿¨¡å¼ä¸è¢«è½½å
¥äºï¼é£ä¹ Hibernate 就对该对象è°ç¨ <literal>lock()</literal> æ¹æ³ã"
#. Tag: para
-#: transactions.xml:944
-#, fuzzy, no-c-format
-msgid ""
-"<literal>Session.lock()</literal> performs a version number check if the "
-"specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> "
-"or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</"
-"literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR "
-"UPDATE</literal> is used."
-msgstr ""
-"妿æå®çé宿¨¡å¼æ¯<literal>READ</literal>, <literal>UPGRADE</literal> æ "
-"<literal>UPGRADE_NOWAIT</literal>ï¼é£ä¹<literal>Session.lock()</literal>å°± æ§"
-"è¡çæ¬å·æ£æ¥ãï¼å¨<literal>UPGRADE</literal> æè
<literal>UPGRADE_NOWAIT</"
-"literal> é宿¨¡å¼ä¸ï¼æ§è¡<literal>SELECT ... FOR UPDATE</literal>è¿æ ·çSQLè¯"
-"å¥ãï¼"
+#, no-c-format
+msgid "<literal>Session.lock()</literal> performs a version number check if the specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR UPDATE</literal> is used."
+msgstr "妿æå®çé宿¨¡å¼æ¯ <literal>READ</literal>ï¼<literal>UPGRADE</literal> æ <literal>UPGRADE_NOWAIT</literal>ï¼é£ä¹ <literal>Session.lock()</literal> å°±æ§è¡çæ¬å·æ£æ¥ãï¼å¨ <literal>UPGRADE</literal> æè
<literal>UPGRADE_NOWAIT</literal> é宿¨¡å¼ä¸ï¼æ§è¡ <literal>SELECT ... FOR UPDATE</literal>è¿æ ·çSQLè¯å¥ãï¼"
#. Tag: para
-#: transactions.xml:951
-#, fuzzy, no-c-format
-msgid ""
-"If the requested lock mode is not supported by the database, Hibernate uses "
-"an appropriate alternate mode instead of throwing an exception. This ensures "
-"that applications are portable."
-msgstr ""
-"å¦ææ°æ®åºä¸æ¯æç¨æ·è®¾ç½®çé宿¨¡å¼ï¼Hibernateå°ä½¿ç¨éå½çæ¿ä»£æ¨¡å¼ï¼è䏿¯æåº"
-"å¼å¸¸ï¼ã è¿ä¸ç¹å¯ä»¥ç¡®ä¿åºç¨ç¨åºçå¯ç§»æ¤æ§ã"
+#, no-c-format
+msgid "If the requested lock mode is not supported by the database, Hibernate uses an appropriate alternate mode instead of throwing an exception. This ensures that applications are portable."
+msgstr "å¦ææ°æ®åºä¸æ¯æç¨æ·è®¾ç½®çé宿¨¡å¼ï¼Hibernate å°ä½¿ç¨éå½çæ¿ä»£æ¨¡å¼ï¼è䏿¯æåºå¼å¸¸ï¼ãè¿ä¸ç¹å¯ä»¥ç¡®ä¿åºç¨ç¨åºçå¯ç§»æ¤æ§ã "
#. Tag: title
-#: transactions.xml:960
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Connection release modes"
-msgstr "è¿æ¥éæ¾æ¨¡å¼(Connection Release Modes)"
+msgstr "è¿æ¥éæ¾æ¨¡å¼ï¼Connection Release Modesï¼ "
#. Tag: para
-#: transactions.xml:962
-#, fuzzy, no-c-format
-msgid ""
-"One of the legacies of Hibernate 2.x JDBC connection management meant that a "
-"<literal>Session</literal> would obtain a connection when it was first "
-"required and then maintain that connection until the session was closed. "
-"Hibernate 3.x introduced the notion of connection release modes that would "
-"instruct a session how to handle its JDBC connections. The following "
-"discussion is pertinent only to connections provided through a configured "
-"<literal>ConnectionProvider</literal>. User-supplied connections are outside "
-"the breadth of this discussion. The different release modes are identified "
-"by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</"
-"literal>:"
-msgstr ""
-"Hibernateå
³äºJDBCè¿æ¥ç®¡ççæ§(2.x)è¡ä¸ºæ¯ï¼<literal>Session</literal>å¨ç¬¬ä¸æ¬¡"
-"éè¦çæ¶åè·åä¸ä¸ªè¿æ¥ï¼å¨sessionå
³éä¹åä¸ç´ä¼ææè¿ä¸ªè¿æ¥ãHibernateå¼å
¥äº"
-"è¿æ¥éæ¾çæ¦å¿µï¼æ¥åè¯sessionå¦ä½å¤çå®çJDBCè¿æ¥ã注æï¼ä¸é¢ç讨论åªéç¨äºé"
-"ç¨é
ç½®<literal>ConnectionProvider</literal>æ¥æä¾è¿æ¥çæ
åµï¼ç¨æ·èªå·±æä¾çè¿"
-"æ¥ä¸è¿éç讨论æ å
³ãéè¿<literal>org.hibernate.ConnectionReleaseMode</"
-"literal>çä¸åæä¸¾å¼æ¥ä½¿ç¨ä¸ç¨çéæ¾æ¨¡å¼:"
+#, no-c-format
+msgid "One of the legacies of Hibernate 2.x JDBC connection management meant that a <literal>Session</literal> would obtain a connection when it was first required and then maintain that connection until the session was closed. Hibernate 3.x introduced the notion of connection release modes that would instruct a session how to handle its JDBC connections. The following discussion is pertinent only to connections provided through a configured <literal>ConnectionProvider</literal>. User-supplied connections are outside the breadth of this discussion. The different release modes are identified by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</literal>:"
+msgstr "Hibernate å
³äº JDBC è¿æ¥ç®¡ççæ§ï¼2.xï¼è¡ä¸ºæ¯ï¼<literal>Session</literal> å¨ç¬¬ä¸æ¬¡éè¦çæ¶åè·åä¸ä¸ªè¿æ¥ï¼å¨ session å
³éä¹åä¸ç´ä¼ææè¿ä¸ªè¿æ¥ãHibernate å¼å
¥äºè¿æ¥éæ¾çæ¦å¿µï¼æ¥åè¯ session å¦ä½å¤çå®ç JDBC è¿æ¥ã注æï¼ä¸é¢ç讨论åªéç¨äºéç¨é
ç½® <literal>ConnectionProvider</literal> æ¥æä¾è¿æ¥çæ
åµï¼ç¨æ·èªå·±æä¾çè¿æ¥ä¸è¿éç讨论æ å
³ãéè¿ <literal>org.hibernate.ConnectionReleaseMode</literal> çä¸åæä¸¾å¼æ¥ä½¿ç¨ä¸ç¨çéæ¾æ¨¡å¼ï¼"
#. Tag: para
-#: transactions.xml:976
-#, fuzzy, no-c-format
-msgid ""
-"<literal>ON_CLOSE</literal>: is the legacy behavior described above. The "
-"Hibernate session obtains a connection when it first needs to perform some "
-"JDBC access and maintains that connection until the session is closed."
-msgstr ""
-"<literal>ON_CLOSE</literal> - åºæ¬ä¸å°±æ¯ä¸é¢æå°çèå¼è¡ä¸ºãHibernate session"
-"å¨ç¬¬ä¸æ¬¡éè¦è¿è¡JDBCæä½çæ¶åè·åè¿æ¥ï¼ç¶åææå®ï¼ç´å°sessionå
³éã"
+#, no-c-format
+msgid "<literal>ON_CLOSE</literal>: is the legacy behavior described above. The Hibernate session obtains a connection when it first needs to perform some JDBC access and maintains that connection until the session is closed."
+msgstr "<literal>ON_CLOSE</literal>ï¼åºæ¬ä¸å°±æ¯ä¸é¢æå°çèå¼è¡ä¸ºãHibernate session å¨ç¬¬ä¸æ¬¡éè¦è¿è¡ JDBC æä½çæ¶åè·åè¿æ¥ï¼ç¶åææå®ï¼ç´å° session å
³éã"
#. Tag: para
-#: transactions.xml:983
-#, fuzzy, no-c-format
-msgid ""
-"<literal>AFTER_TRANSACTION</literal>: releases connections after a "
-"<literal>org.hibernate.Transaction</literal> has been completed."
-msgstr ""
-"<literal>AFTER_TRANSACTION</literal> - å¨<literal>org.hibernate.Transaction</"
-"literal>ç»æåéæ¾è¿æ¥ã"
+#, no-c-format
+msgid "<literal>AFTER_TRANSACTION</literal>: releases connections after a <literal>org.hibernate.Transaction</literal> has been completed."
+msgstr "<literal>AFTER_TRANSACTION</literal>ï¼å¨ <literal>org.hibernate.Transaction</literal> ç»æåéæ¾è¿æ¥ã"
#. Tag: para
-#: transactions.xml:989
-#, fuzzy, no-c-format
-msgid ""
-"<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): "
-"releases connections after every statement execution. This aggressive "
-"releasing is skipped if that statement leaves open resources associated with "
-"the given session. Currently the only situation where this occurs is through "
-"the use of <literal>org.hibernate.ScrollableResults</literal>."
-msgstr ""
-"<literal>AFTER_STATEMENT</literal> (ä¹è¢«ç§°å积æéæ¾) - 卿¯ä¸æ¡è¯å¥è¢«æ§è¡å"
-"å°±éæ¾è¿æ¥ãä½åè¥è¯å¥çä¸äºä¸sessionç¸å
³çèµæºï¼é£å°±ä¸ä¼è¢«éæ¾ãç®åå¯ä¸çè¿"
-"ç§æ
形就æ¯ä½¿ç¨<literal>org.hibernate.ScrollableResults</literal>ã"
+#, no-c-format
+msgid "<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): releases connections after every statement execution. This aggressive releasing is skipped if that statement leaves open resources associated with the given session. Currently the only situation where this occurs is through the use of <literal>org.hibernate.ScrollableResults</literal>."
+msgstr "<literal>AFTER_STATEMENT</literal>ï¼ä¹è¢«ç§°å积æéæ¾ï¼ï¼å¨æ¯ä¸æ¡è¯å¥è¢«æ§è¡åå°±éæ¾è¿æ¥ãä½åè¥è¯å¥çä¸äºä¸ session ç¸å
³çèµæºï¼é£å°±ä¸ä¼è¢«éæ¾ãç®åå¯ä¸çè¿ç§æ
形就æ¯ä½¿ç¨ <literal>org.hibernate.ScrollableResults</literal>ã"
#. Tag: para
-#: transactions.xml:999
-#, fuzzy, no-c-format
-msgid ""
-"The configuration parameter <literal>hibernate.connection.release_mode</"
-"literal> is used to specify which release mode to use. The possible values "
-"are as follows:"
-msgstr ""
-"<literal>hibernate.connection.release_mode</literal>é
ç½®åæ°ç¨æ¥æå®ä½¿ç¨åªä¸"
-"ç§éæ¾æ¨¡å¼ãå¯è½ç弿ï¼"
+#, no-c-format
+msgid "The configuration parameter <literal>hibernate.connection.release_mode</literal> is used to specify which release mode to use. The possible values are as follows:"
+msgstr "<literal>hibernate.connection.release_mode</literal> é
ç½®åæ°ç¨æ¥æå®ä½¿ç¨åªä¸ç§éæ¾æ¨¡å¼ãå¯è½çå¼æï¼ "
#. Tag: para
-#: transactions.xml:1006
-#, fuzzy, no-c-format
-msgid ""
-"<literal>auto</literal> (the default): this choice delegates to the release "
-"mode returned by the <literal>org.hibernate.transaction.TransactionFactory."
-"getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this "
-"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, "
-"this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this "
-"default behavior as failures due to the value of this setting tend to "
-"indicate bugs and/or invalid assumptions in user code."
-msgstr ""
-"<literal>auto</literal>(é»è®¤) - è¿ä¸éæ©æéæ¾æ¨¡å¼å§æ´¾ç»<literal>org."
-"hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal>æ¹"
-"æ³ã对JTATransactionFactoryæ¥è¯´ï¼å®ä¼è¿åConnectionReleaseMode."
-"AFTER_STATEMENT;对JDBCTransactionFactoryæ¥è¯´ï¼åæ¯ConnectionReleaseMode."
-"AFTER_TRANSACTIONãå¾å°éè¦ä¿®æ¹è¿ä¸é»è®¤è¡ä¸ºï¼å 为åè¥è®¾ç½®ä¸å½ï¼å°±ä¼å¸¦æ¥bugï¼"
-"æè
ç»ç¨æ·ä»£ç 带æ¥è¯¯å¯¼ã"
+#, no-c-format
+msgid "<literal>auto</literal> (the default): this choice delegates to the release mode returned by the <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this default behavior as failures due to the value of this setting tend to indicate bugs and/or invalid assumptions in user code."
+msgstr "<literal>auto</literal>ï¼é»è®¤ï¼ï¼è¿ä¸éæ©æéæ¾æ¨¡å¼å§æ´¾ç» <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> æ¹æ³ã对 JTATransactionFactory æ¥è¯´ï¼å®ä¼è¿å ConnectionReleaseMode.AFTER_STATEMENTï¼å¯¹ãJDBCTransactionFactoryãæ¥è¯´ï¼åæ¯ConnectionReleaseMode.AFTER_TRANSACTIONãå¾å°éè¦ä¿®æ¹è¿ä¸é»è®¤è¡ä¸ºï¼å 为åè¥è®¾ç½®ä¸å½ï¼å°±ä¼å¸¦æ¥ bugï¼æè
ç»ç¨æ·ä»£ç 带æ¥è¯¯å¯¼ã"
#. Tag: para
-#: transactions.xml:1016
-#, fuzzy, no-c-format
-msgid ""
-"<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This "
-"setting is left for backwards compatibility, but its use is discouraged."
-msgstr ""
-"<literal>on_close</literal> - ä½¿ç¨ ConnectionReleaseMode.ON_CLOSE. è¿ç§æ¹å¼æ¯"
-"为äºåä¸å
¼å®¹ç,使¯å·²ç»å®å
¨ä¸è¢«é¼å±ä½¿ç¨äºã"
+#, no-c-format
+msgid "<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This setting is left for backwards compatibility, but its use is discouraged."
+msgstr "<literal>on_close</literal>ï¼ä½¿ç¨ ConnectionReleaseMode.ON_CLOSEãè¿ç§æ¹å¼æ¯ä¸ºäºåä¸å
¼å®¹ç,使¯å·²ç»å®å
¨ä¸è¢«é¼å±ä½¿ç¨äºã"
#. Tag: para
-#: transactions.xml:1022
-#, fuzzy, no-c-format
-msgid ""
-"<literal>after_transaction</literal>: uses ConnectionReleaseMode."
-"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also "
-"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is "
-"considered to be in auto-commit mode, connections will be released as if the "
-"release mode were AFTER_STATEMENT."
-msgstr ""
-"<literal>after_transaction</literal> - 使ç¨ConnectionReleaseMode."
-"AFTER_TRANSACTIONãè¿ä¸è®¾ç½®ä¸åºè¯¥å¨JTAç¯å¢ä¸ä½¿ç¨ãä¹è¦æ³¨æï¼ä½¿ç¨"
-"ConnectionReleaseMode.AFTER_TRANSACTIONçæ¶åï¼åè¥session å¤äºauto-commitç¶"
-"æï¼è¿æ¥ä¼åAFTER_STATEMENT飿 ·è¢«éæ¾ã"
+#, no-c-format
+msgid "<literal>after_transaction</literal>: uses ConnectionReleaseMode.AFTER_TRANSACTION. This setting should not be used in JTA environments. Also note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is considered to be in auto-commit mode, connections will be released as if the release mode were AFTER_STATEMENT."
+msgstr "<literal>after_transaction</literal>ï¼ä½¿ç¨ ConnectionReleaseMode.AFTER_TRANSACTIONãè¿ä¸è®¾ç½®ä¸åºè¯¥å¨ JTA ç¯å¢ä¸ä½¿ç¨ãä¹è¦æ³¨æï¼ä½¿ç¨ ConnectionReleaseMode.AFTER_TRANSACTION çæ¶åï¼åè¥session å¤äº auto-commit ç¶æï¼è¿æ¥ä¼å AFTER_STATEMENT 飿 ·è¢«éæ¾ã"
#. Tag: para
-#: transactions.xml:1030
-#, fuzzy, no-c-format
-msgid ""
-"<literal>after_statement</literal>: uses ConnectionReleaseMode."
-"AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</"
-"literal> is consulted to see if it supports this setting "
-"(<literal>supportsAggressiveRelease()</literal>). If not, the release mode "
-"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only "
-"safe in environments where we can either re-acquire the same underlying JDBC "
-"connection each time you make a call into <literal>ConnectionProvider."
-"getConnection()</literal> or in auto-commit environments where it does not "
-"matter if we re-establish the same connection."
-msgstr ""
-"<literal>after_statement</literal> - 使ç¨ConnectionReleaseMode."
-"AFTER_STATEMENTã餿¤ä¹å¤ï¼ä¼æ¥è¯¢é
ç½®ç<literal>ConnectionProvider</"
-"literal>ï¼æ¯å¦å®æ¯æè¿ä¸è®¾ç½®ï¼(<literal>supportsAggressiveRelease()</"
-"literal>)ï¼ãåè¥ä¸æ¯æï¼éæ¾æ¨¡å¼ä¼è¢«è®¾ç½®ä¸ºConnectionReleaseMode."
-"AFTER_TRANSACTIONãåªæå¨ä½ æ¯æ¬¡è°ç¨<literal>ConnectionProvider.getConnection"
-"()</literal>è·ååºå±JDBCè¿æ¥çæ¶åï¼é½å¯ä»¥ç¡®ä¿¡è·å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ä¸è®¾ç½®"
-"ææ¯å®å
¨çï¼æè
å¨auto-commitç¯å¢ä¸ï¼ä½ å¯ä»¥ä¸ç®¡æ¯å¦æ¯æ¬¡é½è·å¾åä¸ä¸ªè¿æ¥çæ¶"
-"åï¼è¿ææ¯å®å
¨çã"
+#, no-c-format
+msgid "<literal>after_statement</literal>: uses ConnectionReleaseMode.AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</literal> is consulted to see if it supports this setting (<literal>supportsAggressiveRelease()</literal>). If not, the release mode is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only safe in environments where we can either re-acquire the same underlying JDBC connection each time you make a call into <literal>ConnectionProvider.getConnection()</literal> or in auto-commit environments where it does not matter if we re-establish the same connection."
+msgstr "<literal>after_statement</literal>ï¼ä½¿ç¨ ConnectionReleaseMode.AFTER_STATEMENTã餿¤ä¹å¤ï¼ä¼æ¥è¯¢é
ç½®ç <literal>ConnectionProvider</literal>ï¼æ¯å¦å®æ¯æè¿ä¸è®¾ç½®ï¼<literal>supportsAggressiveRelease()</literal>ï¼ãåè¥ä¸æ¯æï¼éæ¾æ¨¡å¼ä¼è¢«è®¾ç½®ä¸º ConnectionReleaseMode.AFTER_TRANSACTIONãåªæå¨ä½ æ¯æ¬¡è°ç¨ <literal>ConnectionProvider.getConnection()</literal> è·ååºå± JDBC è¿æ¥çæ¶åï¼é½å¯ä»¥ç¡®ä¿¡è·å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ä¸è®¾ç½®ææ¯å®å
¨çï¼æè
å¨ auto-commit ç¯å¢ä¸ï¼ä½ å¯ä»¥ä¸ç®¡æ¯å¦æ¯æ¬¡é½è·å¾åä¸ä¸ªè¿æ¥çæ¶åï¼è¿ææ¯å®å
¨çã"
+
+#~ msgid "foo==bar"
+#~ msgstr "foo==bar"
+#~ msgid ""
+#~ "<![CDATA[// Non-managed environment idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// Non-managed environment idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " factory.getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " factory.getCurrentSession().getTransaction().commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " factory.getCurrentSession().getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " factory.getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " factory.getCurrentSession().getTransaction().commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " factory.getCurrentSession().getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// BMT idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// BMT idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// BMT idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " UserTransaction tx = (UserTransaction)new InitialContext()\n"
+#~ " .lookup(\"java:comp/UserTransaction\");\n"
+#~ "\n"
+#~ " tx.begin();\n"
+#~ "\n"
+#~ " // Do some work on Session bound to transaction\n"
+#~ " factory.getCurrentSession().load(...);\n"
+#~ " factory.getCurrentSession().persist(...);\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// BMT idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " UserTransaction tx = (UserTransaction)new InitialContext()\n"
+#~ " .lookup(\"java:comp/UserTransaction\");\n"
+#~ "\n"
+#~ " tx.begin();\n"
+#~ "\n"
+#~ " // Do some work on Session bound to transaction\n"
+#~ " factory.getCurrentSession().load(...);\n"
+#~ " factory.getCurrentSession().persist(...);\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "]]>"
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "try {\n"
+#~ " //set transaction timeout to 3 seconds\n"
+#~ " sess.getTransaction().setTimeout(3);\n"
+#~ " sess.getTransaction().begin();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " sess.getTransaction().commit()\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " sess.getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "try {\n"
+#~ " //set transaction timeout to 3 seconds\n"
+#~ " sess.getTransaction().setTimeout(3);\n"
+#~ " sess.getTransaction().begin();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " sess.getTransaction().commit()\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " sess.getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "\n"
+#~ "int oldVersion = foo.getVersion();\n"
+#~ "session.load( foo, foo.getKey() ); // load the current state\n"
+#~ "if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException"
+#~ "();\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\n"
+#~ "t.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "\n"
+#~ "int oldVersion = foo.getVersion();\n"
+#~ "session.load( foo, foo.getKey() ); // load the current state\n"
+#~ "if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException"
+#~ "();\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\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 "
+#~ "connection, start transaction\n"
+#~ "\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\n"
+#~ "session.flush(); // Only for last transaction in conversation\n"
+#~ "t.commit(); // Also return JDBC connection\n"
+#~ "session.close(); // Only for last transaction in conversation]]>"
+#~ msgstr ""
+#~ "<![CDATA[// foo is an instance loaded earlier by the old session\n"
+#~ "Transaction t = session.beginTransaction(); // Obtain a new JDBC "
+#~ "connection, start transaction\n"
+#~ "\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\n"
+#~ "session.flush(); // Only for last transaction in conversation\n"
+#~ "t.commit(); // Also return JDBC connection\n"
+#~ "session.close(); // Only for last transaction in conversation]]>"
+#~ msgid ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been "
+#~ "loaded already\n"
+#~ "t.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been "
+#~ "loaded already\n"
+#~ "t.commit();\n"
+#~ "session.close();]]>"
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,2809 +1,1965 @@
+# translation of tutorial.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: tutorial\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-23 18:41+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"PO-Revision-Date: 2010-01-11 10:56+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: tutorial.xml:31
#, no-c-format
msgid "Tutorial"
-msgstr ""
+msgstr "æç¨"
#. Tag: para
-#: tutorial.xml:33
#, 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 ""
+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
-#: tutorial.xml:42
#, 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 ""
+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
-#: tutorial.xml:51
#, no-c-format
-msgid ""
-"The distribution contains another example application under the "
-"<filename>tutorial/eg</filename> project source directory."
-msgstr ""
+msgid "The distribution contains another example application under the <filename>tutorial/eg</filename> project source directory."
+msgstr "æ¬çæ¬å¨æºä»£ç ç®å½ <filename>tutorial/eg</filename> ä¸è¿å
å«å¦å¤ä¸ä¸ªä¾ç¨ã"
#. Tag: title
-#: tutorial.xml:59
#, no-c-format
msgid "Part 1 - The first Hibernate Application"
-msgstr "第ä¸é¨å ï¼ ç¬¬ä¸ä¸ªHibernateåºç¨ç¨åº"
+msgstr "第ä¸é¨å ï¼ ç¬¬ä¸ä¸ª Hibernate åºç¨ç¨åº"
#. Tag: para
-#: tutorial.xml:61
-#, fuzzy, 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è䏿¯å®ç"
-"ä¸æç¿»è¯âæ´»å¨âï¼ä»¥å
æ··æ·ãï¼"
+#, 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 è䏿¯å®çä¸æç¿»è¯âæ´»å¨âï¼ä»¥å
æ··æ·ãï¼"
#. Tag: para
-#: tutorial.xml:67
#, 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 ""
+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
-#: tutorial.xml:76
#, no-c-format
msgid "Setup"
-msgstr ""
+msgstr "设置"
#. Tag: para
-#: tutorial.xml:78
#, 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 ""
+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
-#: tutorial.xml:88
#, 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 ""
+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: programlisting
-#: tutorial.xml:94
-#, no-c-format
-msgid ""
-"<![CDATA[<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven."
-"apache.org/xsd/maven-4.0.0.xsd\">\n"
-"\n"
-" <modelVersion>4.0.0</modelVersion>\n"
-"\n"
-" <groupId>org.hibernate.tutorials</groupId>\n"
-" <artifactId>hibernate-tutorial</artifactId>\n"
-" <version>1.0.0-SNAPSHOT</version>\n"
-" <name>First Hibernate Tutorial</name>\n"
-"\n"
-" <build>\n"
-" <!-- we dont want the version to be part of the generated war file "
-"name -->\n"
-" <finalName>${artifactId}</finalName>\n"
-" </build>\n"
-"\n"
-" <dependencies>\n"
-" <dependency>\n"
-" <groupId>org.hibernate</groupId>\n"
-" <artifactId>hibernate-core</artifactId>\n"
-" </dependency>\n"
-"\n"
-" <!-- Because this is a web app, we also have a dependency on the "
-"servlet api. -->\n"
-" <dependency>\n"
-" <groupId>javax.servlet</groupId>\n"
-" <artifactId>servlet-api</artifactId>\n"
-" </dependency>\n"
-"\n"
-" <!-- Hibernate uses slf4j for logging, for our purposes here use the "
-"simple backend -->\n"
-" <dependency>\n"
-" <groupId>org.slf4j</groupId>\n"
-" <artifactId>slf4j-simple</artifactId>\n"
-" </dependency>\n"
-"\n"
-" <!-- Hibernate gives you a choice of bytecode providers between "
-"cglib and javassist -->\n"
-" <dependency>\n"
-" <groupId>javassist</groupId>\n"
-" <artifactId>javassist</artifactId>\n"
-" </dependency>\n"
-" </dependencies>\n"
-"\n"
-"</project>]]>"
-msgstr ""
-
#. Tag: para
-#: tutorial.xml:97
#, 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 ""
+msgid "It is not a requirement to use Maven. If you wish to use another technology to build this tutorial (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 <ulink url=\"http://ant.apache.org/ivy/\">Ivy</ulink> to provide transitive dependency management you would still use the dependencies mentioned below. Otherwise, you will need to find all the dependencies, both explicit and transitive, and add them to the projects 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
-#: tutorial.xml:114
#, no-c-format
-msgid ""
-"Save this file as <filename>pom.xml</filename> in the project root directory."
-msgstr ""
+msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr "æè¿ä¸ªæä»¶ä¿åä¸ºé¡¹ç®æ ¹ç®å½ä¸ç <filename>pom.xml</filename>ã"
#. Tag: title
-#: tutorial.xml:121
#, no-c-format
msgid "The first class"
-msgstr "第ä¸ä¸ªclass"
+msgstr "第ä¸ä¸ª class"
#. Tag: para
-#: tutorial.xml:123
-#, fuzzy, 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ã"
-
-#. Tag: programlisting
-#: tutorial.xml:128
#, no-c-format
-msgid ""
-"<![CDATA[package org.hibernate.tutorial.domain;\n"
-"\n"
-"import java.util.Date;\n"
-"\n"
-"public class Event {\n"
-" private Long id;\n"
-"\n"
-" private String title;\n"
-" private Date date;\n"
-"\n"
-" public Event() {}\n"
-"\n"
-" public Long getId() {\n"
-" return id;\n"
-" }\n"
-"\n"
-" private void setId(Long id) {\n"
-" this.id = id;\n"
-" }\n"
-"\n"
-" public Date getDate() {\n"
-" return date;\n"
-" }\n"
-"\n"
-" public void setDate(Date date) {\n"
-" this.date = date;\n"
-" }\n"
-"\n"
-" public String getTitle() {\n"
-" return title;\n"
-" }\n"
-"\n"
-" public void setTitle(String title) {\n"
-" this.title = title;\n"
-" }\n"
-"}]]>"
-msgstr ""
+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
-#: tutorial.xml:130
-#, fuzzy, 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ï¼ã为äºéè¿åå°æº"
-"å¶ï¼Reflectionï¼æ¥å®ä¾åè¿ä¸ªç±»çå¯¹è±¡ï¼æä»¬éè¦æä¾ä¸ä¸ªæ åçæé å¨ï¼no-"
-"argument constructor)ã"
+#, 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ï¼ã"
#. Tag: para
-#: tutorial.xml:138
-#, fuzzy, 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ãæä»¥éæ©åªç§æ¹å¼å®å
¨åå³äºä½ ï¼"
-"ä½ å¯ä»¥ä½¿ä½ çéæ©ä¸ä½ çåºç¨ç¨åºè®¾è®¡ç¸å»åã"
+#, 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ãæä»¥éæ©åªç§æ¹å¼å®å
¨åå³äºä½ ï¼ä½ å¯ä»¥ä½¿ä½ çéæ©ä¸ä½ çåºç¨ç¨åºè®¾è®¡ç¸å»åã "
#. Tag: para
-#: tutorial.xml:153
-#, fuzzy, 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ï¼çæ
åµä¸ï¼ä»æä¹
åç±»é"
-"è·åæ°æ®ä¼æ´ææçã"
+#, 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ï¼çæ
åµä¸ï¼ä»æä¹
åç±»éè·åæ°æ®ä¼æ´ææçã "
#. Tag: para
-#: tutorial.xml:161
#, no-c-format
-msgid ""
-"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
-"filename> directory."
-msgstr ""
+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
-#: tutorial.xml:168
#, no-c-format
msgid "The mapping file"
msgstr "æ å°æä»¶"
#. Tag: para
-#: tutorial.xml:170
#, 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
-#: tutorial.xml:178
#, no-c-format
msgid "The basic structure of a mapping file looks like this:"
msgstr "ä¸ä¸ªæ å°æä»¶çåºæ¬ç»æçèµ·æ¥åè¿æ ·ï¼"
-#. Tag: programlisting
-#: tutorial.xml:182
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\"?>\n"
-"<!DOCTYPE hibernate-mapping PUBLIC\n"
-" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-"\n"
-"<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
-"[...]\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+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
-#: tutorial.xml:184
-#, fuzzy, 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>ç®å½ä¸ã"
+#, 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 å£°ææ¯å¿
éçã "
#. Tag: para
-#: tutorial.xml:197
-#, fuzzy, 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å£°ææ¯å¿
é¡»çã"
+#, 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 æ°æ®åºéç表ï¼"
#. Tag: para
-#: tutorial.xml:203
-#, fuzzy, 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æ°æ®åºéç"
-"表ã"
-
-#. Tag: programlisting
-#: tutorial.xml:210
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
-"\n"
-" <class name=\"Event\" table=\"EVENTS\">\n"
-"\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+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
-#: tutorial.xml:212
-#, fuzzy, 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çæ è¯ç¬¦çæçç¥æ¥äº§ç代ç主é®å段ã"
-
-#. Tag: programlisting
-#: tutorial.xml:222
#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
-"\n"
-" <class name=\"Event\" table=\"EVENTS\">\n"
-" <id name=\"id\" column=\"EVENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+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
-#: tutorial.xml:224
#, 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 ""
+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
-#: tutorial.xml:234
#, 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 ""
+msgid "<literal>native</literal> is no longer considered 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
-#: tutorial.xml:246
#, no-c-format
-msgid ""
-"<literal>native</literal> is no longer consider the best strategy in terms "
-"of portability. for further discussion, see"
-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
-#: tutorial.xml:252
-#, fuzzy, 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 ""
-"æåæä»¬å¨æ å°æä»¶éé¢å
å«éè¦æä¹
å屿§ç声æãé»è®¤æ
åµä¸ï¼ç±»éé¢ç屿§é½è¢«"
-"è§ä¸ºéæä¹
åçï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:258
#, no-c-format
-msgid ""
-"<![CDATA[\n"
-"<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
-"\n"
-" <class name=\"Event\" table=\"EVENTS\">\n"
-" <id name=\"id\" column=\"EVENT_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/>\n"
-" <property name=\"title\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
+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
-#: tutorial.xml:260
-#, fuzzy, 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()/setDate()</literal>, 以å"
-"<literal>getTitle()/setTitle()</literal>ã"
+#, 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> å¨å¤æ°çæ°æ®åºéï¼æ¯ä¸ä¸ªä¿çå
³é®åï¼æä»¥æä»¬æå¥½æå®æ å°æä¸ä¸ªä¸åçååã "
#. Tag: para
-#: tutorial.xml:271
-#, fuzzy, 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>å¨å¤"
-"æ°çæ°æ®åºéï¼æ¯ä¸ä¸ªä¿çå
³é®åï¼æä»¥æä»¬æå¥½æå®æ å°æä¸ä¸ªä¸åçååã"
+#, 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</litera!
l> åæ®µã卿¤ä¾ä¸ï¼æè¿ä¸ªå±æ§æ å°æ <literal>timestamp</literal> 转æ¢å¨ï¼è¿æ ·æä»¬é¢çäºæ¥æåæ¶é´çå
¨é¨ä¿¡æ¯ã "
#. Tag: para
-#: tutorial.xml:281
-#, fuzzy, 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> 转æ¢å¨ï¼è¿æ ·æä»¬é¢çäº"
-"æ¥æåæ¶é´çå
¨é¨ä¿¡æ¯ã"
-
-#. Tag: para
-#: tutorial.xml:297
#, 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 ""
+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
-#: tutorial.xml:304
#, no-c-format
-msgid ""
-"Save this mapping file as <filename>src/main/resources/org/hibernate/"
-"tutorial/domain/Event.hbm.xml</filename>."
-msgstr ""
+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
-#: tutorial.xml:312
#, no-c-format
msgid "Hibernate configuration"
-msgstr "Hibernateé
ç½®"
+msgstr "Hibernate é
ç½®"
#. Tag: para
-#: tutorial.xml:314
#, 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 ""
+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
-#: tutorial.xml:321
#, no-c-format
-msgid "We do this do that the data remains between runs."
-msgstr ""
+msgid "We do this so that the data remains between runs."
+msgstr "æ°æ®å¨ç¨åºè¿è¡æé´éè¦ä¿æææã"
#. Tag: para
-#: tutorial.xml:326
-#, fuzzy, 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æ°æ®åºã"
+#, 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 æ°æ®åºã "
#. Tag: para
-#: tutorial.xml:337
#, 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 ""
+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
-#: tutorial.xml:348
#, 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 ""
+msgid "The built-in Hibernate connection pool is not intended for production use."
+msgstr "åµå
¥ç Hibernate è¿æ¥æ± ä¸ç¨äºäº§åç¯å¢ã"
#. Tag: para
-#: tutorial.xml:354
-#, fuzzy, 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é
ç½®æ"
-"ä»¶ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:360
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
-"<!DOCTYPE hibernate-configuration PUBLIC\n"
-" \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
-" \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
-"\">\n"
-"\n"
-"<hibernate-configuration>\n"
-"\n"
-" <session-factory>\n"
-"\n"
-" <!-- Database connection settings -->\n"
-" <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</"
-"property>\n"
-" <property name=\"connection.url\">jdbc:hsqldb:hsql://localhost</"
-"property>\n"
-" <property name=\"connection.username\">sa</property>\n"
-" <property name=\"connection.password\"></property>\n"
-"\n"
-" <!-- JDBC connection pool (use the built-in) -->\n"
-" <property name=\"connection.pool_size\">1</property>\n"
-"\n"
-" <!-- SQL dialect -->\n"
-" <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</"
-"property>\n"
-"\n"
-" <!-- Enable Hibernate's automatic session context management -->\n"
-" <property name=\"current_session_context_class\">thread</property>\n"
-"\n"
-" <!-- Disable the second-level cache -->\n"
-" <property name=\"cache.provider_class\">org.hibernate.cache."
-"NoCacheProvider</property>\n"
-"\n"
-" <!-- Echo all executed SQL to stdout -->\n"
-" <property name=\"show_sql\">true</property>\n"
-"\n"
-" <!-- Drop and re-create the database schema on startup -->\n"
-" <property name=\"hbm2ddl.auto\">update</property>\n"
-"\n"
-" <mapping resource=\"org/hibernate/tutorial/domain/Event.hbm.xml\"/>\n"
-"\n"
-" </session-factory>\n"
-"\n"
-"</hibernate-configuration>]]>"
-msgstr ""
+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
-#: tutorial.xml:363
#, no-c-format
msgid "Notice that this configuration file specifies a different DTD"
-msgstr ""
+msgstr "请注æï¼è¿ä¸ªé
ç½®æä»¶æå®äºä¸ä¸ªä¸åç DTDã"
#. Tag: para
-#: tutorial.xml:366
-#, fuzzy, 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>ï¼é常æå®ä»¬æ¾å¨å¤ä¸ªé
ç½®æä»¶ä¸ï¼ä¸ºäºæ´å®¹æå¯å¨ï¼ã"
+#, 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>ï¼é常æå®ä»¬æ¾å¨å¤ä¸ªé
ç½®æä»¶ä¸ï¼ä¸ºäºæ´å®¹æå¯å¨ï¼ã "
#. Tag: para
-#: tutorial.xml:373
#, 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 ""
+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
-#: tutorial.xml:380
#, 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 ""
+msgid "Hibernate is able to correctly determine which dialect to use in most cases. See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr "å¨å¤§å¤æ°æ
åµä¸ï¼Hibernate é½è½å¤æ£ç¡®å°å³å®æä½¿ç¨çæ¹è¨ãæ´å¤ä¿¡æ¯è¯·åè <xref linkend=\"portability-dialectresolver\" />ã"
#. Tag: para
-#: tutorial.xml:386
-#, fuzzy, 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éå®åå°æä»¶ä¸ãæåï¼å¨"
-"é
ç½®ä¸ä¸ºæä¹
åç±»å å
¥æ å°æä»¶ã"
+#, 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 éå®åå°æä»¶ä¸ãæåï¼å¨é
ç½®ä¸ä¸ºæä¹
åç±»å å
¥æ å°æä»¶ã "
#. Tag: para
-#: tutorial.xml:395
#, no-c-format
-msgid ""
-"Save this file as <filename>hibernate.cfg.xml</filename> into the "
-"<filename>src/main/resources</filename> directory."
-msgstr ""
+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
-#: tutorial.xml:403
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Building with Maven"
-msgstr "ç¨Antæå»º"
+msgstr "ç¨ Maven æå»º "
#. Tag: para
-#: tutorial.xml:405
#, 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 ""
+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: programlisting
-#: tutorial.xml:415
-#, no-c-format
-msgid ""
-"<![CDATA[[hibernateTutorial]$ mvn compile\n"
-"[INFO] Scanning for projects...\n"
-"[INFO] "
-"------------------------------------------------------------------------\n"
-"[INFO] Building First Hibernate Tutorial\n"
-"[INFO] task-segment: [compile]\n"
-"[INFO] "
-"------------------------------------------------------------------------\n"
-"[INFO] [resources:resources]\n"
-"[INFO] Using default encoding to copy filtered resources.\n"
-"[INFO] [compiler:compile]\n"
-"[INFO] Compiling 1 source file to /home/steve/projects/sandbox/"
-"hibernateTutorial/target/classes\n"
-"[INFO] "
-"------------------------------------------------------------------------\n"
-"[INFO] BUILD SUCCESSFUL\n"
-"[INFO] "
-"------------------------------------------------------------------------\n"
-"[INFO] Total time: 2 seconds\n"
-"[INFO] Finished at: Tue Jun 09 12:25:25 CDT 2009\n"
-"[INFO] Final Memory: 5M/547M\n"
-"[INFO] "
-"------------------------------------------------------------------------]]>"
-msgstr ""
-
#. Tag: title
-#: tutorial.xml:420
#, no-c-format
msgid "Startup and helpers"
msgstr "å¯å¨åè¾
å©ç±»"
#. Tag: para
-#: tutorial.xml:422
-#, fuzzy, 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>代表ä¸ä¸ªå线ç¨çåå
æä½ï¼"
-"<literal>SessionFactory</literal>åæ¯ä¸ªçº¿ç¨å®å
¨çå
¨å±å¯¹è±¡ï¼åªéè¦è¢«å®ä¾åä¸"
-"次ã"
+#, 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> åæ¯ä¸ªçº¿ç¨å®å
¨çå
¨å±å¯¹è±¡ï¼åªéè¦è¢«å®ä¾å䏿¬¡ã "
#. Tag: para
-#: tutorial.xml:436
-#, fuzzy, 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åæ´æ¹ä¾¿å°æä½<literal>SessionFactory</literal>ã让æä»¬æ¥çä¸ä¸å®"
-"çå®ç°ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:442
#, no-c-format
-msgid ""
-"<![CDATA[package org.hibernate.tutorial.util;\n"
-"\n"
-"import org.hibernate.SessionFactory;\n"
-"import org.hibernate.cfg.Configuration;\n"
-"\n"
-"public class HibernateUtil {\n"
-"\n"
-" private static final SessionFactory sessionFactory = buildSessionFactory"
-"();\n"
-"\n"
-" private static SessionFactory buildSessionFactory() {\n"
-" try {\n"
-" // Create the SessionFactory from hibernate.cfg.xml\n"
-" return new Configuration().configure().buildSessionFactory();\n"
-" }\n"
-" catch (Throwable ex) {\n"
-" // Make sure you log the exception, as it might be swallowed\n"
-" System.err.println(\"Initial SessionFactory creation failed.\" + "
-"ex);\n"
-" throw new ExceptionInInitializerError(ex);\n"
-" }\n"
-" }\n"
-"\n"
-" public static SessionFactory getSessionFactory() {\n"
-" return sessionFactory;\n"
-" }\n"
-"\n"
-"}]]>"
-msgstr ""
+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
-#: tutorial.xml:444
#, no-c-format
-msgid ""
-"Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
-"HibernateUtil.java</filename>"
-msgstr ""
+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
-#: tutorial.xml:449
-#, fuzzy, 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æ§è¡ä¸æ¬¡ï¼ä¸äº§çå
¨å±"
-"ç<literal>SessionFactory</literal>ï¼èä¸éèäºå®ä½¿ç¨äºéæsingletonçäºå®ã"
-"å®ä¹å¯è½å¨åºç¨ç¨åºæå¡å¨ä¸çJNDIæ¥æ¾<literal>SessionFactory</literal>ã"
+#, 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>ã"
#. Tag: para
-#: tutorial.xml:458
-#, fuzzy, 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 ""
-"å¦æä½ å¨é
ç½®æä»¶ä¸ç»<literal>SessionFactory</literal>ä¸ä¸ªååï¼å¨"
-"<literal>SessionFactory</literal>å建åï¼Hibernateä¼è¯çæå®ç»å®å°JNDIãè¦å®"
-"å
¨é¿å
è¿æ ·ç代ç ï¼ä½ ä¹å¯ä»¥ä½¿ç¨JMXé¨ç½²ï¼è®©å
·æJMXè½åç容卿¥å®ä¾å"
-"<literal>HibernateService</literal>å¹¶æå®ç»å®å°JNDIãè¿äºé«çº§å¯é项å¨åé¢çç« "
-"èä¸ä¼è®¨è®ºå°ã"
+#, 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ãè¿äºé«çº§å¯é项å¨åé¢çç« èä¸ä¼è®¨è®ºå°ã"
#. Tag: para
-#: tutorial.xml:467
-#, fuzzy, 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çå¯å¨ä¿¡æ¯æä¼æ¾"
-"ç¤ºå¨æ åè¾åºä¸ã"
+#, 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 çå¯å¨ä¿¡æ¯æä¼æ¾ç¤ºå¨æ åè¾åºä¸ã "
#. Tag: para
-#: tutorial.xml:477
-#, fuzzy, no-c-format
-msgid ""
-"The tutorial infrastructure is complete and you are now ready to do some "
-"real work with Hibernate."
-msgstr "示ä¾çåºæ¬æ¡æ¶å®æäº ï¼ ç°å¨æä»¬å¯ä»¥ç¨Hibernateæ¥åäºçæ£çå·¥ä½ã"
+#, no-c-format
+msgid "The tutorial infrastructure is complete and you are now ready to do some real work with Hibernate."
+msgstr "示ä¾çåºæ¬æ¡æ¶å®æäº â ç°å¨æä»¬å¯ä»¥ç¨ Hibernate æ¥åäºçæ£çå·¥ä½ã "
#. Tag: title
-#: tutorial.xml:485
#, no-c-format
msgid "Loading and storing objects"
msgstr "å 载并åå¨å¯¹è±¡"
#. Tag: para
-#: tutorial.xml:487
-#, fuzzy, 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>ç±»ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:493
#, no-c-format
-msgid ""
-"<![CDATA[package org.hibernate.tutorial;\n"
-"\n"
-"import org.hibernate.Session;\n"
-"\n"
-"import java.util.*;\n"
-"\n"
-"import org.hibernate.tutorial.domain.Event;\n"
-"import org.hibernate.tutorial.util.HibernateUtil;\n"
-"\n"
-"public class EventManager {\n"
-"\n"
-" public static void main(String[] args) {\n"
-" EventManager mgr = new EventManager();\n"
-"\n"
-" if (args[0].equals(\"store\")) {\n"
-" mgr.createAndStoreEvent(\"My Event\", new Date());\n"
-" }\n"
-"\n"
-" HibernateUtil.getSessionFactory().close();\n"
-" }\n"
-"\n"
-" private void createAndStoreEvent(String title, Date theDate) {\n"
-" Session session = HibernateUtil.getSessionFactory().getCurrentSession"
-"();\n"
-" session.beginTransaction();\n"
-"\n"
-" Event theEvent = new Event();\n"
-" theEvent.setTitle(title);\n"
-" theEvent.setDate(theDate);\n"
-" session.save(theEvent);\n"
-"\n"
-" session.getTransaction().commit();\n"
-" }\n"
-"\n"
-"}]]>"
-msgstr ""
+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
-#: tutorial.xml:495
-#, fuzzy, 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>Event</literal>对象并æå®ä¼ éç»Hibernateãç°å¨"
-"Hibernateè´è´£ä¸SQLæäº¤éï¼å¹¶æ<literal>INSERT</literal>å½ä»¤ä¼ ç»æ°æ®åºãå¨è¿è¡"
-"ä¹åï¼è®©æä»¬çä¸ä¸å¤ç<literal>Session</literal>å<literal>Transaction</"
-"literal>ç代ç ã"
+#, 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> å½ä»¤ä¼ ç»æ°æ®åºã"
#. Tag: para
-#: tutorial.xml:502
-#, fuzzy, 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 ""
-"ä¸ä¸ª<literal>Session</literal>å°±æ¯ä¸ªåä¸çå·¥ä½åå
ãæä»¬ææ¶è®©äºæ
ç®åä¸äºï¼"
-"å¹¶å设Hibernate<literal>Session</literal>åæ°æ®åºäºå¡æ¯ä¸ä¸å¯¹åºçã为äºè®©æä»¬"
-"ç代ç ä»åºå±çäºå¡ç³»ç»ä¸è±ç¦»åºæ¥ï¼æ¤ä¾ä¸æ¯JDBCï¼ä½ä¹å¯è½æ¯JTAï¼ï¼æä»¬ä½¿ç¨"
-"Hibernate <literal>Session</literal>ä¸ç<literal>Transaction</literal> APIã"
+#, 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 ä¸èµ·è¿è¡ã"
#. Tag: para
-#: tutorial.xml:515
-#, fuzzy, 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>æ¯å¹²ä»ä¹çå¢ï¼é¦å
ï¼åªè¦"
-"ä½ ææ<literal>SessionFactory</literal>ï¼å¹¸äºæä»¬æ<literal>HibernateUtil</"
-"literal>ï¼å¯ä»¥éæ¶è·å¾ï¼ï¼å¤§å¯å¨ä»»ä½æ¶åãä»»ä½å°ç¹è°ç¨è¿ä¸ªæ¹æ³ã"
-"<literal>getCurrentSession()</literal>æ¹æ³æ»ä¼è¿åâå½åçâå·¥ä½åå
ãè®°å¾æä»¬"
-"å¨<literal>hibernate.cfg.xml</literal>䏿è¿ä¸é
ç½®éé¡¹è°æ´ä¸º\"thread\"äºåï¼"
-"å æ¤ï¼å æ¤ï¼å½åå·¥ä½åå
被ç»å®å°å½åæ§è¡æä»¬åºç¨ç¨åºçJava线ç¨ã使¯ï¼è¿å¹¶é"
-"æ¯å®å
¨åç¡®ç,ä½ è¿å¾èèå·¥ä½åå
ççå½å¨æèå´ (scope),å®ä½æ¶å¼å§,å使¶ç»æ."
+#, 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ï¼ï¼å®ä½æ¶å¼å§,å使¶ç»æã"
#. Tag: para
-#: tutorial.xml:529
#, 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 ""
+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
-#: tutorial.xml:538
-#, fuzzy, 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 ""
-"<literal>Session</literal>å¨ç¬¬ä¸æ¬¡è¢«ä½¿ç¨çæ¶å,å³ç¬¬ä¸æ¬¡è°ç¨"
-"<literal>getCurrentSession()</literal>çæ¶å,å
¶çå½å¨æå°±å¼å§ãç¶åå®è¢«"
-"Hibernateç»å®å°å½å线ç¨ãå½äºå¡ç»æçæ¶åï¼ä¸ç®¡æ¯æäº¤è¿æ¯åæ»ï¼Hibernateä¼èª"
-"卿<literal>Session</literal>ä»å½å线ç¨å¥ç¦»ï¼å¹¶ä¸å
³éå®ãåè¥ä½ 忬¡è°ç¨"
-"<literal>getCurrentSession()</literal>ï¼ä½ ä¼å¾å°ä¸ä¸ªæ°ç<literal>Session</"
-"literal>ï¼å¹¶ä¸å¼å§ä¸ä¸ªæ°çå·¥ä½åå
ãè¿ç§<emphasis>线ç¨ç»å®(thread-bound)</"
-"emphasis>çç¼ç¨æ¨¡åï¼modelï¼æ¯ä½¿ç¨Hibernateçæå¹¿æ³çæ¹å¼,å ä¸ºå®æ¯æå¯¹ä½ ç代"
-"ç çµæ´»åå±(äºå¡ååå¯ä»¥åä½ çæ°æ®è®¿é®ä»£ç åç¦»å¼æ¥,卿¬æç¨çåé¢é¨åå°±ä¼è¿ä¹"
-"å)ã"
+#, 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>ï¼å¹¶ä¸å¼å§ä¸ä¸ªæ°çå·¥ä½åå
ã"
#. Tag: para
-#: tutorial.xml:551
-#, fuzzy, 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 <literal>Session</literal>æ¯å¦è¢«"
-"åºè¯¥ç¨æ¥æ§è¡å¤æ¬¡æ°æ®åºæä½ï¼ä¸é¢çä¾å对æ¯ä¸æ¬¡æä½ä½¿ç¨äºä¸ä¸ª"
-"<literal>Session</literal>ï¼è¿å®å
¨æ¯å·§åï¼è¿ä¸ªä¾å䏿¯å¾å¤æï¼æ æ³å±ç¤ºå
¶ä»æ¹"
-"å¼ãHibernate <literal>Session</literal>ççå½å¨æå¯ä»¥å¾çµæ´»ï¼ä½æ¯ä½ ç»ä¸è¦æ"
-"ä½ çåºç¨ç¨åºè®¾è®¡æä¸º<emphasis>æ¯ä¸æ¬¡</emphasis>æ°æ®åºæä½é½ç¨ä¸ä¸ªæ°ç"
-"Hibernate <literal>Session</literal>ãå æ¤å°±ç®ä¸é¢çä¾åï¼å®ä»¬é½å¾ç®åï¼ä¸ä½ "
-"å¯ä»¥çå°è¿ç§ç¨æ³ï¼è®°ä½<emphasis>æ¯æ¬¡æä½ä¸ä¸ªsession</emphasis>æ¯ä¸ä¸ªå模å¼ã"
-"卿¬æç¨çåé¢ä¼å±ç¤ºä¸ä¸ªçæ£ç(web)ç¨åºã"
+#, 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ï¼ç¨åºã"
#. Tag: para
-#: tutorial.xml:568
-#, 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
-#: tutorial.xml:574
#, 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 ""
+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
-#: tutorial.xml:581
#, no-c-format
msgid "You may need to perform <command>mvn compile</command> first."
-msgstr ""
+msgstr "ä½ å¯è½éè¦å
æ§è¡ <command>mvn compile</command>ã"
#. Tag: para
-#: tutorial.xml:586
-#, fuzzy, 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æ ¹æ®ä½ çé
ç½®å¯å¨ï¼å¹¶äº§çä¸å¤§å çè¾åºæ¥å¿ãå¨"
-"æ¥å¿æåä½ ä¼çå°ä¸é¢è¿è¡ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:591
#, no-c-format
-msgid ""
-"<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) "
-"values (?, ?, ?)]]>"
-msgstr ""
+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
-#: tutorial.xml:593
#, no-c-format
msgid "This is the <literal>INSERT</literal> executed by Hibernate."
-msgstr ""
+msgstr "æ§è¡ HQL <literal>INSERT</literal> è¯å¥çä¾åå¦ä¸ï¼ "
#. Tag: para
-#: tutorial.xml:597
-#, fuzzy, no-c-format
+#, no-c-format
msgid "To list stored events an option is added to the main method:"
-msgstr ""
-"æä»¬æ³è¦ååºææå·²ç»è¢«åå¨çeventsï¼å°±è¦å¢å ä¸ä¸ªæ¡ä»¶åæ¯é项å°mainæ¹æ³ä¸å»ã"
+msgstr "æä»¬æ³è¦ååºææå·²ç»è¢«åå¨ç eventsï¼å°±è¦å¢å ä¸ä¸ªæ¡ä»¶åæ¯éé¡¹å° main æ¹æ³ä¸ï¼"
-#. Tag: programlisting
-#: tutorial.xml:601
-#, no-c-format
-msgid ""
-"<![CDATA[ if (args[0].equals(\"store\")) {\n"
-" mgr.createAndStoreEvent(\"My Event\", new Date());\n"
-" }\n"
-" else if (args[0].equals(\"list\")) {\n"
-" List events = mgr.listEvents();\n"
-" for (int i = 0; i < events.size(); i++) {\n"
-" Event theEvent = (Event) events.get(i);\n"
-" System.out.println(\n"
-" \"Event: \" + theEvent.getTitle() + \" Time: \" + "
-"theEvent.getDate()\n"
-" );\n"
-" }\n"
-" }]]>"
-msgstr ""
-
#. Tag: para
-#: tutorial.xml:603
-#, fuzzy, no-c-format
+#, no-c-format
msgid "A new <literal>listEvents() method is also added</literal>:"
-msgstr "æä»¬ä¹å¢å ä¸ä¸ªæ°ç<literal>listEvents()</literal>æ¹æ³:"
+msgstr "æä»¬ä¹å¢å ä¸ä¸ªæ°ç <literal>listEvents()</literal> æ¹æ³ï¼ "
-#. Tag: programlisting
-#: tutorial.xml:607
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[ private List listEvents() {\n"
-" Session session = HibernateUtil.getSessionFactory().getCurrentSession"
-"();\n"
-" session.beginTransaction();\n"
-" List result = session.createQuery(\"from Event\").list();\n"
-" session.getTransaction().commit();\n"
-" return result;\n"
-" }]]>"
-msgstr ""
+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
-#: tutorial.xml:609
-#, 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æ¥å建æ´å å¤æçæ¥è¯¢ã"
-
-#. Tag: para
-#: tutorial.xml:617
#, 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 ""
+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
-#: tutorial.xml:627
#, no-c-format
msgid "Part 2 - Mapping associations"
msgstr "第äºé¨å ï¼ å
³èæ å°"
#. Tag: para
-#: tutorial.xml:629
-#, fuzzy, 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æ¥è¡¨ç¤ºâ人âè䏿¯å®ç䏿"
-"ç¿»è¯ï¼"
+#, 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 æ¥è¡¨ç¤ºâ人âè䏿¯å®çä¸æç¿»è¯ï¼ "
#. Tag: title
-#: tutorial.xml:637
#, no-c-format
msgid "Mapping the Person class"
-msgstr "æ å°Personç±»"
+msgstr "æ å° Person ç±»"
#. Tag: para
-#: tutorial.xml:639
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The first cut of the <literal>Person</literal> class looks like this:"
-msgstr "æåç®åç<literal>Person</literal>ç±»ï¼"
+msgstr "æåç®åç <literal>Person</literal> ç±»ï¼ "
-#. Tag: programlisting
-#: tutorial.xml:643
-#, no-c-format
-msgid ""
-"<![CDATA[package org.hibernate.tutorial.domain;\n"
-"\n"
-"public class Person {\n"
-"\n"
-" private Long id;\n"
-" private int age;\n"
-" private String firstname;\n"
-" private String lastname;\n"
-"\n"
-" public Person() {}\n"
-"\n"
-" // Accessor methods for all properties, private setter for 'id'\n"
-"\n"
-"}]]>"
-msgstr ""
-
#. Tag: para
-#: tutorial.xml:645
#, no-c-format
-msgid ""
-"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
-"domain/Person.java</filename>"
-msgstr ""
+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
-#: tutorial.xml:650
#, no-c-format
-msgid ""
-"Next, create the new mapping file as <filename>src/main/resources/org/"
-"hibernate/tutorial/domain/Person.hbm.xml</filename>"
-msgstr ""
+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: programlisting
-#: tutorial.xml:655
-#, no-c-format
-msgid ""
-"<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
-"\n"
-" <class name=\"Person\" table=\"PERSON\">\n"
-" <id name=\"id\" column=\"PERSON_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"age\"/>\n"
-" <property name=\"firstname\"/>\n"
-" <property name=\"lastname\"/>\n"
-" </class>\n"
-"\n"
-"</hibernate-mapping>]]>"
-msgstr ""
-
#. Tag: para
-#: tutorial.xml:657
#, no-c-format
msgid "Finally, add the new mapping to Hibernate's configuration:"
-msgstr "æåï¼ææ°çæ å°å å
¥å°Hibernateçé
ç½®ä¸ï¼"
+msgstr "æåï¼ææ°çæ å°å å
¥å° Hibernate çé
ç½®ä¸ï¼"
-#. Tag: programlisting
-#: tutorial.xml:661
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
-"<mapping resource=\"events/Person.hbm.xml\"/>]]>"
-msgstr ""
+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: para
-#: tutorial.xml:663
-#, fuzzy, 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ï¼çè¡ä¸ºã"
-
#. Tag: title
-#: tutorial.xml:673
#, no-c-format
msgid "A unidirectional Set-based association"
-msgstr "ååSet-basedçå
³è"
+msgstr "åå Set-based çå
³è"
#. Tag: para
-#: tutorial.xml:675
-#, fuzzy, 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 ä¸å
å«éå¤çå
ç´ å䏿们æ å
³çæåºã"
-
-#. Tag: programlisting
-#: tutorial.xml:686
#, no-c-format
-msgid ""
-"<![CDATA[public class Person {\n"
-"\n"
-" private Set events = new HashSet();\n"
-"\n"
-" public Set getEvents() {\n"
-" return events;\n"
-" }\n"
-"\n"
-" public void setEvents(Set events) {\n"
-" this.events = events;\n"
-" }\n"
-"}]]>"
-msgstr ""
+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
-#: tutorial.xml:688
-#, fuzzy, 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çå¤å¯¹å¤æ å°ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:701
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Person\" table=\"PERSON\">\n"
-" <id name=\"id\" column=\"PERSON_ID\">\n"
-" <generator class=\"native\"/>\n"
-" </id>\n"
-" <property name=\"age\"/>\n"
-" <property name=\"firstname\"/>\n"
-" <property name=\"lastname\"/>\n"
-"\n"
-" <set name=\"events\" table=\"PERSON_EVENT\">\n"
-" <key column=\"PERSON_ID\"/>\n"
-" <many-to-many column=\"EVENT_ID\" class=\"Event\"/>\n"
-" </set>\n"
-"\n"
-"</class>]]>"
-msgstr ""
+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
-#: tutorial.xml:703
-#, fuzzy, 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éåä¸"
-"对象çç±»ï¼ä¹å°±æ¯ä½äºè¿ä¸ªéåæä»£è¡¨çå
³èå¦å¤ä¸ç«¯çç±»ï¼ã"
+#, 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 éåä¸å¯¹è±¡çç±»ï¼ä¹å°±æ¯ä½äºè¿ä¸ªéåæä»£è¡¨çå
³èå¦å¤ä¸ç«¯çç±»ï¼ã "
#. Tag: para
-#: tutorial.xml:719
#, no-c-format
msgid "The database schema for this mapping is therefore:"
-msgstr "å èè¿ä¸ªæ å°çæ°æ®åºschemaæ¯ï¼"
+msgstr "å èè¿ä¸ªæ å°çæ°æ®åº schema æ¯ï¼"
-#. Tag: programlisting
-#: tutorial.xml:723
-#, no-c-format
-msgid ""
-"<![CDATA[\n"
-" _____________ __________________\n"
-" | | | | _____________\n"
-" | EVENTS | | PERSON_EVENT | | |\n"
-" |_____________| |__________________| | PERSON |\n"
-" | | | | |_____________|\n"
-" | *EVENT_ID | <--> | *EVENT_ID | | |\n"
-" | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n"
-" | TITLE | |__________________| | AGE |\n"
-" |_____________| | FIRSTNAME |\n"
-" | LASTNAME |\n"
-" |_____________|\n"
-" ]]>"
-msgstr ""
-
#. Tag: title
-#: tutorial.xml:728
#, no-c-format
msgid "Working the association"
msgstr "使å
³èå·¥ä½"
#. Tag: para
-#: tutorial.xml:730
-#, fuzzy, 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>çæ°æ¹æ³ä¸ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:734
#, no-c-format
-msgid ""
-"<![CDATA[ private void addPersonToEvent(Long personId, Long eventId) {\n"
-" Session session = HibernateUtil.getSessionFactory().getCurrentSession"
-"();\n"
-" session.beginTransaction();\n"
-"\n"
-" Person aPerson = (Person) session.load(Person.class, personId);\n"
-" Event anEvent = (Event) session.load(Event.class, eventId);\n"
-" aPerson.getEvents().add(anEvent);\n"
-"\n"
-" session.getTransaction().commit();\n"
-" }]]>"
-msgstr ""
+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
-#: tutorial.xml:736
-#, fuzzy, 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>é
ç½®"
-"é项å®ä¹çã"
+#, 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> é
ç½®é项å®ä¹çã "
#. Tag: para
-#: tutorial.xml:755
-#, fuzzy, 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>ï¼ãä½ çè³"
-"å¯ä»¥å¨ä¸ä¸ªéå被è±ç®¡æ¶ä¿®æ¹å®ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:764
#, no-c-format
-msgid ""
-"<![CDATA[ private void addPersonToEvent(Long personId, Long eventId) {\n"
-" Session session = HibernateUtil.getSessionFactory().getCurrentSession"
-"();\n"
-" session.beginTransaction();\n"
-"\n"
-" Person aPerson = (Person) session\n"
-" .createQuery(\"select p from Person p left join fetch p."
-"events where p.id = :pid\")\n"
-" .setParameter(\"pid\", personId)\n"
-" .uniqueResult(); // Eager fetch the collection so we can use "
-"it detached\n"
-" Event anEvent = (Event) session.load(Event.class, eventId);\n"
-"\n"
-" session.getTransaction().commit();\n"
-"\n"
-" // End of first unit of work\n"
-"\n"
-" aPerson.getEvents().add(anEvent); // aPerson (and its collection) is "
-"detached\n"
-"\n"
-" // Begin second unit of work\n"
-"\n"
-" Session session2 = HibernateUtil.getSessionFactory()."
-"getCurrentSession();\n"
-" session2.beginTransaction();\n"
-" session2.update(aPerson); // Reattachment of aPerson\n"
-"\n"
-" session2.getTransaction().commit();\n"
-" }]]>"
-msgstr ""
+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
-#: tutorial.xml:766
-#, fuzzy, 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>çè°ç¨ä½¿ä¸ä¸ªè±ç®¡å¯¹è±¡éæ°æä¹
åï¼ä½ å¯ä»¥è¯´å®è¢«ç»å®å°"
-"ä¸ä¸ªæ°çåå
æä½ä¸ï¼æä»¥å¨è±ç®¡ç¶æä¸å¯¹å®æåçä»»ä½ä¿®æ¹é½ä¼è¢«ä¿åå°æ°æ®åºéã"
-"è¿ä¹å
æ¬ä½ 对è¿ä¸ªå®ä½å¯¹è±¡çéåæä½ç任使¹å¨ï¼å¢å /å é¤ï¼ã"
+#, 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> çè°ç¨ä½¿ä¸ä¸ªè±ç®¡å¯¹è±¡éæ°æä¹
åï¼ä½ å¯ä»¥è¯´å®è¢«ç»å®å°ä¸ä¸ªæ°çåå
æä½ä¸ï¼æä»¥å¨è±ç®¡ç¶æä¸å¯¹å®æåçä»»ä½ä¿®æ¹é½ä¼è¢«ä¿åå°æ°æ®åºéãè¿ä¹å
æ¬ä½ 对è¿ä¸ªå®ä½å¯¹è±¡çéåæä½ç任使¹å¨ï¼å¢å /å é¤ï¼ã "
#. Tag: para
-#: tutorial.xml:775
-#, fuzzy, 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>æ¹æ³è¿åå®ï¼ä½ å¯è½éè¦ä¿®æ¹åé¢çä¸äºæ¹æ³æ¥è¿å"
-"é£ä¸ªæ è¯ç¬¦ï¼ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:783
#, no-c-format
-msgid ""
-"<![CDATA[ else if (args[0].equals(\"addpersontoevent\")) {\n"
-" Long eventId = mgr.createAndStoreEvent(\"My Event\", new Date"
-"());\n"
-" Long personId = mgr.createAndStorePerson(\"Foo\", \"Bar\");\n"
-" mgr.addPersonToEvent(personId, eventId);\n"
-" System.out.println(\"Added person \" + personId + \" to event \" "
-"+ eventId);\n"
-" }]]>"
-msgstr ""
+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
-#: tutorial.xml:785
-#, fuzzy, 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>ã"
+#, 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>ã "
#. Tag: para
-#: tutorial.xml:803
-#, fuzzy, 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éé¢çèµ·æ¥å 乿¯ä¸æ ·çã"
+#, 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 éé¢çèµ·æ¥å 乿¯ä¸æ ·çã "
#. Tag: title
-#: tutorial.xml:812
#, no-c-format
msgid "Collection of values"
msgstr "å¼ç±»åçéå"
#. Tag: para
-#: tutorial.xml:814
#, 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 ""
+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: programlisting
-#: tutorial.xml:820
-#, no-c-format
-msgid ""
-"<![CDATA[ private Set emailAddresses = new HashSet();\n"
-"\n"
-" public Set getEmailAddresses() {\n"
-" return emailAddresses;\n"
-" }\n"
-"\n"
-" public void setEmailAddresses(Set emailAddresses) {\n"
-" this.emailAddresses = emailAddresses;\n"
-" }]]>"
-msgstr ""
-
#. Tag: para
-#: tutorial.xml:822
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The mapping of this <literal>Set</literal> is as follows:"
-msgstr "è¿ä¸ª<literal>Set</literal>çæ å°"
+msgstr "è¿ä¸ª <literal>Set</literal> çæ å°å¦ä¸ï¼"
-#. Tag: programlisting
-#: tutorial.xml:826
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[ <set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
-" <key column=\"PERSON_ID\"/>\n"
-" <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
-" </set>]]>"
-msgstr ""
+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
-#: tutorial.xml:828
-#, fuzzy, 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>å¼çåæ®µåã"
-
-#. Tag: para
-#: tutorial.xml:844
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Here is the updated schema:"
-msgstr "çä¸ä¸ä¿®æ¹åçæ°æ®åºschemaã"
+msgstr "çä¸ä¸ä¿®æ¹åçæ°æ®åº schemaã "
-#. Tag: programlisting
-#: tutorial.xml:848
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[\n"
-" _____________ __________________\n"
-" | | | | _____________\n"
-" | EVENTS | | PERSON_EVENT | | | "
-"___________________\n"
-" |_____________| |__________________| | PERSON | "
-"| |\n"
-" | | | | |_____________| | "
-"PERSON_EMAIL_ADDR |\n"
-" | *EVENT_ID | <--> | *EVENT_ID | | | |"
-"___________________|\n"
-" | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | <--> | "
-"*PERSON_ID |\n"
-" | TITLE | |__________________| | AGE | | "
-"*EMAIL_ADDR |\n"
-" |_____________| | FIRSTNAME | |"
-"___________________|\n"
-" | LASTNAME |\n"
-" |_____________|\n"
-" ]]>"
-msgstr ""
+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
-#: tutorial.xml:850
-#, fuzzy, 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 ""
-"ä½ å¯ä»¥çå°éå表ç主é®å®é
䏿¯ä¸ªå¤å主é®ï¼åæ¶ä½¿ç¨äº2ä¸ªåæ®µãè¿ä¹æç¤ºäºå¯¹äºå"
-"ä¸ä¸ªpersonä¸è½æéå¤çemailå°åï¼è¿æ£æ¯Javaéé¢ä½¿ç¨Setæ¶åæéè¦çè¯ä¹ï¼Seté"
-"å
ç´ ä¸è½éå¤ï¼ã"
+#, 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 ä»£ç æ¯ç¸åçï¼ "
#. Tag: para
-#: tutorial.xml:856
-#, fuzzy, 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ä»£ç æ¯ç¸åçï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:861
#, no-c-format
-msgid ""
-"<![CDATA[ private void addEmailToPerson(Long personId, String "
-"emailAddress) {\n"
-" Session session = HibernateUtil.getSessionFactory().getCurrentSession"
-"();\n"
-" session.beginTransaction();\n"
-"\n"
-" Person aPerson = (Person) session.load(Person.class, personId);\n"
-" // adding to the emailAddress collection might trigger a lazy load "
-"of the collection\n"
-" aPerson.getEmailAddresses().add(emailAddress);\n"
-"\n"
-" session.getTransaction().commit();\n"
-" }]]>"
-msgstr ""
+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: para
-#: tutorial.xml:863
-#, fuzzy, 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ï¼è¯çéè¿é¢å
æåæ¥ä¼åå®ã"
-
#. Tag: title
-#: tutorial.xml:872
#, no-c-format
msgid "Bi-directional associations"
msgstr "ååå
³è"
#. Tag: para
-#: tutorial.xml:874
-#, fuzzy, 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ï¼çä¸è¥¿ ï¼ æ°æ®å¯ä»¥ç¨ä»»ä½å¯è½çæ¹å¼è¿è¡æ¥çå"
-"è·åã"
+#, 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ï¼çä¸è¥¿ â æ°æ®å¯ä»¥ç¨ä»»ä½å¯è½çæ¹å¼è¿è¡æ¥çåè·åã "
#. Tag: para
-#: tutorial.xml:882
#, 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
-#: tutorial.xml:890
-#, fuzzy, no-c-format
-msgid ""
-"First, add a collection of participants to the <literal>Event</literal> "
-"class:"
-msgstr "é¦å
ï¼æä¸ä¸ªåä¸è
ï¼personï¼çéåå å
¥<literal>Event</literal>ç±»ä¸ï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:895
#, no-c-format
-msgid ""
-"<![CDATA[ private Set participants = new HashSet();\n"
-"\n"
-" public Set getParticipants() {\n"
-" return participants;\n"
-" }\n"
-"\n"
-" public void setParticipants(Set participants) {\n"
-" this.participants = participants;\n"
-" }]]>"
-msgstr ""
+msgid "First, add a collection of participants to the <literal>Event</literal> class:"
+msgstr "é¦å
ï¼æä¸ä¸ªåä¸è
ï¼personï¼çéåå å
¥ <literal>Event</literal> ç±»ä¸ï¼ "
#. Tag: para
-#: tutorial.xml:897
-#, fuzzy, no-c-format
-msgid ""
-"Now map this side of the association in <literal>Event.hbm.xml</literal>."
-msgstr "å¨<literal>Event.hbm.xml</literal>éé¢ä¹æ å°è¿ä¸ªå
³èã"
-
-#. Tag: programlisting
-#: tutorial.xml:901
#, no-c-format
-msgid ""
-"<![CDATA[ <set name=\"participants\" table=\"PERSON_EVENT\" inverse="
-"\"true\">\n"
-" <key column=\"EVENT_ID\"/>\n"
-" <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
-" </set>]]>"
-msgstr ""
+msgid "Now map this side of the association in <literal>Event.hbm.xml</literal>."
+msgstr "å¨ <literal>Event.hbm.xml</literal> éé¢ä¹æ å°è¿ä¸ªå
³èã "
#. Tag: para
-#: tutorial.xml:903
-#, fuzzy, 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>屿§ã"
+#, 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> 屿§ã "
#. Tag: para
-#: tutorial.xml:911
-#, fuzzy, 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>"
-"ç±»å¾å°ä¸¤ä¸ªå®ä½é´å
³èçä¿¡æ¯ãè¿å°ä¼æå¤§å°å¸®å©ä½ çè§£ååå
³èæ¯å¦ä½å¨ä¸¤ä¸ªå®ä½é´"
-"被å建çã"
+#, 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> ç±»å¾å°ä¸¤ä¸ªå®ä½é´å
³èçä¿¡æ¯ãè¿å°ä¼æå¤§å°å¸®å©ä½ çè§£ååå
³èæ¯å¦ä½å¨ä¸¤ä¸ªå®ä½é´è¢«å建çã "
#. Tag: title
-#: tutorial.xml:920
#, no-c-format
msgid "Working bi-directional links"
msgstr "使ååè¿èµ·æ¥"
#. Tag: para
-#: tutorial.xml:922
-#, fuzzy, 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å¼ç¨éåãè¿âå¨å
³èç两端设置èç³»âæ¯å®å
¨å¿
è¦çèä¸ä½ é½å¾è¿ä¹åã"
+#, 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 å¼ç¨éåãè¿âå¨å
³èç两端设置èç³»âæ¯å®å
¨å¿
è¦çèä¸ä½ é½å¾è¿ä¹åã "
#. Tag: para
-#: tutorial.xml:932
-#, fuzzy, 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>éï¼"
-
-#. Tag: programlisting
-#: tutorial.xml:937
#, no-c-format
-msgid ""
-"<![CDATA[ protected Set getEvents() {\n"
-" return events;\n"
-" }\n"
-"\n"
-" protected void setEvents(Set events) {\n"
-" this.events = events;\n"
-" }\n"
-"\n"
-" public void addToEvent(Event event) {\n"
-" this.getEvents().add(event);\n"
-" event.getParticipants().add(this);\n"
-" }\n"
-"\n"
-" public void removeFromEvent(Event event) {\n"
-" this.getEvents().remove(event);\n"
-" event.getParticipants().remove(this);\n"
-" }]]>"
-msgstr ""
+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
-#: tutorial.xml:939
-#, fuzzy, 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ã"
+#, 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ã "
#. Tag: para
-#: tutorial.xml:946
-#, fuzzy, 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ï¼å
³èä¸ï¼ä½ å¯ä»¥ä»»æéåä¸ç«¯ï¼å 为两端ä¹é´å¹¶æ²¡æå·®å«ã"
+#, 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ï¼å
³èä¸ï¼ä½ å¯ä»¥ä»»æéåä¸ç«¯ï¼å 为两端ä¹!
é´å¹¶æ²¡æå·®å«ã "
#. Tag: title
-#: tutorial.xml:962
#, no-c-format
msgid "Part 3 - The EventManager web application"
-msgstr "第ä¸é¨å - EventManager webåºç¨ç¨åº"
+msgstr "第ä¸é¨å - EventManager web åºç¨ç¨åº"
#. Tag: para
-#: tutorial.xml:964
-#, fuzzy, 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ã"
+#, 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ã "
#. Tag: title
-#: tutorial.xml:972
#, no-c-format
msgid "Writing the basic servlet"
-msgstr "ç¼ååºæ¬çservlet"
+msgstr "ç¼ååºæ¬ç servlet"
#. Tag: para
-#: tutorial.xml:974
-#, fuzzy, 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 ""
-"æä»¬åé¢ä¼ç¨å°<literal>dateFormatter</literal> çå·¥å
·ï¼ 宿<literal>Date</"
-"literal>对象转æ¢ä¸ºå符串ãåªè¦ä¸ä¸ªformatterä½ä¸ºservletçæåå°±å¯ä»¥äºã"
-
-#. Tag: programlisting
-#: tutorial.xml:980
#, no-c-format
-msgid ""
-"<![CDATA[package org.hibernate.tutorial.web;\n"
-"\n"
-"// Imports\n"
-"\n"
-"public class EventManagerServlet extends HttpServlet {\n"
-"\n"
-" protected void doGet(\n"
-" HttpServletRequest request,\n"
-" HttpServletResponse response) throws ServletException, "
-"IOException {\n"
-"\n"
-" SimpleDateFormat dateFormatter = new SimpleDateFormat( \"dd.MM.yyyy"
-"\" );\n"
-"\n"
-" try {\n"
-" // Begin unit of work\n"
-" HibernateUtil.getSessionFactory().getCurrentSession()."
-"beginTransaction();\n"
-"\n"
-" // Process request and render page...\n"
-"\n"
-" // End unit of work\n"
-" HibernateUtil.getSessionFactory().getCurrentSession()."
-"getTransaction().commit();\n"
-" }\n"
-" catch (Exception ex) {\n"
-" HibernateUtil.getSessionFactory().getCurrentSession()."
-"getTransaction().rollback();\n"
-" if ( ServletException.class.isInstance( ex ) ) {\n"
-" throw ( ServletException ) ex;\n"
-" }\n"
-" else {\n"
-" throw new ServletException( ex );\n"
-" }\n"
-" }\n"
-" }\n"
-"\n"
-"}]]>"
-msgstr ""
+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
-#: tutorial.xml:982
#, no-c-format
-msgid ""
-"Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/"
-"EventManagerServlet.java</filename>"
-msgstr ""
+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
-#: tutorial.xml:987
-#, fuzzy, 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 ""
-"è¿ä¸ªservletåªå¤ç HTTP <literal>GET</literal> 请æ±ï¼å æ¤ï¼æä»¬è¦å®ç°çæ¯"
-"<literal>doGet()</literal>æ¹æ³ï¼"
+#, 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 模å¼ï¼ã "
#. Tag: para
-#: tutorial.xml:996
#, 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 ""
-"æä»¬ç§°è¿éåºç¨ç模å¼ä¸ºæ¯æ¬¡è¯·æ±ä¸ä¸ªsession<emphasis>(session-per-request)</"
-"emphasis>ãå½æè¯·æ±å°è¾¾è¿ä¸ªservletçæ¶åï¼éè¿å¯¹<literal>SessionFactory</"
-"literal>çç¬¬ä¸æ¬¡è°ç¨ï¼æå¼ä¸ä¸ªæ°çHibernate <literal>Session</literal>ãç¶å"
-"å¯å¨ä¸ä¸ªæ°æ®åºäºå¡—ææçæ°æ®è®¿é®é½æ¯å¨äºå¡ä¸è¿è¡ï¼ä¸ç®¡æ¯è¯»è¿æ¯åï¼æä»¬"
-"å¨åºç¨ç¨åºä¸ä¸ä½¿ç¨auto-commit模å¼ï¼ã"
+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
-#: tutorial.xml:1003
-#, fuzzy, 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 ""
-"<emphasis>ä¸è¦</emphasis>ä¸ºæ¯æ¬¡æ°æ®åºæä½é½ä½¿ç¨ä¸ä¸ªæ°çHibernate "
-"<literal>Session</literal>ãå°Hibernate <literal>Session</literal>çèå´è®¾ç½®"
-"为æ´ä¸ªè¯·æ±ãè¦ç¨<literal>getCurrentSession()</literal>ï¼è¿æ ·å®èªå¨ä¼ç»å®å°å½"
-"åJava线ç¨ã"
+#, 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ãæä»¬å¾å¿«å°±ä¼æ¶åå°é£é¨åã "
#. Tag: para
-#: tutorial.xml:1008
-#, fuzzy, 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 ""
-"ä¸ä¸æ¥ï¼å¯¹è¯·æ±çå¯è½å¨ä½è¿è¡å¤çï¼æ¸²æåºåé¦çHTMLãæä»¬å¾å¿«å°±ä¼æ¶åå°é£é¨"
-"åã"
+#, 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ä¸ï¼ä½ å°±ä¼å¾å¿«ç¨å°å®ã "
#. Tag: title
-#: tutorial.xml:1022
#, no-c-format
msgid "Processing and rendering"
-msgstr ""
-"æåï¼å½å¤ç䏿¸²æé½ç»æçæ¶åï¼è¿ä¸ªå·¥ä½åå
å°±ç»æäºãåè¥å¨å¤çææ¸²æçæ¶å"
-"æä»»ä½é误åçï¼ä¼æåºä¸ä¸ªå¼å¸¸ï¼åæ»æ°æ®åºäºå¡ãè¿æ ·ï¼<literal>session-per-"
-"request</literal>模å¼å°±å®æäºã为äºé¿å
卿¯ä¸ªservletä¸é½ç¼åäºå¡è¾¹ççå®ç代"
-"ç ï¼å¯ä»¥èèåä¸ä¸ªservlet è¿æ»¤å¨ï¼filterï¼æ¥æ´å¥½å°è§£å³ãå
³äºè¿ä¸æ¨¡å¼çæ´å¤ä¿¡"
-"æ¯ï¼è¯·åé
Hibernateç½ç«åWikiï¼è¿ä¸æ¨¡å¼å«å<emphasis>Open Session in View</"
-"emphasis>—åªè¦ä½ èèç¨JSPæ¥æ¸²æä½ çè§å¾ï¼viewï¼ï¼è䏿¯å¨servletä¸ï¼ä½ "
-"å°±ä¼å¾å¿«ç¨å°å®ã"
-
-#. Tag: para
-#: tutorial.xml:1024
-#, fuzzy, no-c-format
-msgid ""
-"Now you can implement the processing of the request and the rendering of the "
-"page."
msgstr "å¤ç䏿¸²æ"
-#. Tag: programlisting
-#: tutorial.xml:1028
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[ // Write HTML header\n"
-" PrintWriter out = response.getWriter();\n"
-" out.println(\"<html><head><title>Event Manager</title></head><body>"
-"\");\n"
-"\n"
-" // Handle actions\n"
-" if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
-"\n"
-" String eventTitle = request.getParameter(\"eventTitle\");\n"
-" String eventDate = request.getParameter(\"eventDate\");\n"
-"\n"
-" if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
-" out.println(\"<b><i>Please enter event title and date.</i></"
-"b>\");\n"
-" }\n"
-" else {\n"
-" createAndStoreEvent(eventTitle, dateFormatter.parse"
-"(eventDate));\n"
-" out.println(\"<b><i>Added event.</i></b>\");\n"
-" }\n"
-" }\n"
-"\n"
-" // Print page\n"
-" printEventForm(out);\n"
-" listEvents(out, dateFormatter);\n"
-"\n"
-" // Write HTML footer\n"
-" out.println(\"</body></html>\");\n"
-" out.flush();\n"
-" out.close();]]>"
-msgstr ""
+msgid "Now you can implement the processing of the request and the rendering of the page."
+msgstr "æä»¬æ¥å®ç°å¤ç请æ±ä»¥å渲æé¡µé¢çå·¥ä½ã "
#. Tag: para
-#: tutorial.xml:1030
-#, fuzzy, 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 "æä»¬æ¥å®ç°å¤ç请æ±ä»¥å渲æé¡µé¢çå·¥ä½ã"
-
-#. Tag: programlisting
-#: tutorial.xml:1039
#, no-c-format
-msgid ""
-"<![CDATA[ private void printEventForm(PrintWriter out) {\n"
-" out.println(\"<h2>Add new event:</h2>\");\n"
-" out.println(\"<form>\");\n"
-" out.println(\"Title: <input name='eventTitle' length='50'/><br/>"
-"\");\n"
-" out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' "
-"length='10'/><br/>\");\n"
-" out.println(\"<input type='submit' name='action' value='store'/>"
-"\");\n"
-" out.println(\"</form>\");\n"
-" }]]>"
-msgstr ""
+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
-#: tutorial.xml:1041
#, 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: programlisting
-#: tutorial.xml:1047
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[ private void listEvents(PrintWriter out, SimpleDateFormat "
-"dateFormatter) {\n"
-"\n"
-" List result = HibernateUtil.getSessionFactory()\n"
-" .getCurrentSession().createCriteria(Event.class).list();\n"
-" if (result.size() > 0) {\n"
-" out.println(\"<h2>Events in database:</h2>\");\n"
-" out.println(\"<table border='1'>\");\n"
-" out.println(\"<tr>\");\n"
-" out.println(\"<th>Event title</th>\");\n"
-" out.println(\"<th>Event date</th>\");\n"
-" out.println(\"</tr>\");\n"
-" Iterator it = result.iterator();\n"
-" while (it.hasNext()) {\n"
-" Event event = (Event) it.next();\n"
-" out.println(\"<tr>\");\n"
-" out.println(\"<td>\" + event.getTitle() + \"</td>\");\n"
-" out.println(\"<td>\" + dateFormatter.format(event.getDate()) "
-"+ \"</td>\");\n"
-" out.println(\"</tr>\");\n"
-" }\n"
-" out.println(\"</table>\");\n"
-" }\n"
-" }]]>"
-msgstr ""
+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
-#: tutorial.xml:1049
#, 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 "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: programlisting
-#: tutorial.xml:1055
-#, no-c-format
-msgid ""
-"<![CDATA[ protected void createAndStoreEvent(String title, Date theDate) "
-"{\n"
-" Event theEvent = new Event();\n"
-" theEvent.setTitle(title);\n"
-" theEvent.setDate(theDate);\n"
-"\n"
-" HibernateUtil.getSessionFactory()\n"
-" .getCurrentSession().save(theEvent);\n"
-" }]]>"
-msgstr ""
-
-#. Tag: para
-#: tutorial.xml:1057
-#, fuzzy, 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ï¼é£éææ´å¤çä¾åã"
-
#. Tag: title
-#: tutorial.xml:1071
#, no-c-format
msgid "Deploying and testing"
msgstr "é¨ç½²ä¸æµè¯"
#. Tag: para
-#: tutorial.xml:1073
#, 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 ""
+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: programlisting
-#: tutorial.xml:1079
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<web-app version=\"2.4\"\n"
-" xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun.com/"
-"xml/ns/j2ee/web-app_2_4.xsd\">\n"
-"\n"
-" <servlet>\n"
-" <servlet-name>Event Manager</servlet-name>\n"
-" <servlet-class>org.hibernate.tutorial.web.EventManagerServlet</"
-"servlet-class>\n"
-" </servlet>\n"
-"\n"
-" <servlet-mapping>\n"
-" <servlet-name>Event Manager</servlet-name>\n"
-" <url-pattern>/eventmanager</url-pattern>\n"
-" </servlet-mapping>\n"
-"</web-app>]]>"
-msgstr ""
+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
-#: tutorial.xml:1081
-#, fuzzy, 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çé
ç½®ã"
-
-#. Tag: para
-#: tutorial.xml:1088
#, no-c-format
-msgid ""
-"If you do not have Tomcat installed, download it from <ulink url=\"http://"
-"tomcat.apache.org/\"></ulink> and follow the installation instructions. Our "
-"application requires no changes to the standard Tomcat configuration."
-msgstr ""
+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
-#: tutorial.xml:1096
#, 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
-#: tutorial.xml:1109
#, no-c-format
msgid "Summary"
msgstr "æ»ç»"
#. Tag: para
-#: tutorial.xml:1111
-#, fuzzy, 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"
-"åºç¨ç¨åºçåºæ¬è¦ç´ ã"
+#, 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 "Introduction to Hibernate"
-#~ msgstr "Hibernateå
¥é¨"
-
-#~ msgid "Preface"
-#~ msgstr "åè¨"
-
#~ msgid ""
-#~ "This chapter is an introductory tutorial for new users of Hibernate. We "
-#~ "start with a simple command line application using an in-memory database "
-#~ "and develop it in easy to understand steps."
+#~ "<![CDATA[<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://"
+#~ "maven.apache.org/xsd/maven-4.0.0.xsd\">\n"
+#~ "\n"
+#~ " <modelVersion>4.0.0</modelVersion>\n"
+#~ "\n"
+#~ " <groupId>org.hibernate.tutorials</groupId>\n"
+#~ " <artifactId>hibernate-tutorial</artifactId>\n"
+#~ " <version>1.0.0-SNAPSHOT</version>\n"
+#~ " <name>First Hibernate Tutorial</name>\n"
+#~ "\n"
+#~ " <build>\n"
+#~ " <!-- we dont want the version to be part of the generated war "
+#~ "file name -->\n"
+#~ " <finalName>${artifactId}</finalName>\n"
+#~ " </build>\n"
+#~ "\n"
+#~ " <dependencies>\n"
+#~ " <dependency>\n"
+#~ " <groupId>org.hibernate</groupId>\n"
+#~ " <artifactId>hibernate-core</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Because this is a web app, we also have a dependency on the "
+#~ "servlet api. -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>javax.servlet</groupId>\n"
+#~ " <artifactId>servlet-api</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Hibernate uses slf4j for logging, for our purposes here use "
+#~ "the simple backend -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>org.slf4j</groupId>\n"
+#~ " <artifactId>slf4j-simple</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Hibernate gives you a choice of bytecode providers between "
+#~ "cglib and javassist -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>javassist</groupId>\n"
+#~ " <artifactId>javassist</artifactId>\n"
+#~ " </dependency>\n"
+#~ " </dependencies>\n"
+#~ "\n"
+#~ "</project>]]>"
#~ msgstr ""
-#~ "æ¬ç« æ¯é¢åHibernateåå¦è
çä¸ä¸ªå
¥é¨æç¨ãæä»¬ä»ä¸ä¸ªä½¿ç¨é©»çå
åå¼(in-"
-#~ "memory)æ°æ®åºçç®åå½ä»¤è¡åºç¨ç¨åºå¼å§, ç¨æäºçè§£çæ¹å¼éæ¥å¼åã"
-
+#~ "<![CDATA[<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://"
+#~ "maven.apache.org/xsd/maven-4.0.0.xsd\">\n"
+#~ "\n"
+#~ " <modelVersion>4.0.0</modelVersion>\n"
+#~ "\n"
+#~ " <groupId>org.hibernate.tutorials</groupId>\n"
+#~ " <artifactId>hibernate-tutorial</artifactId>\n"
+#~ " <version>1.0.0-SNAPSHOT</version>\n"
+#~ " <name>First Hibernate Tutorial</name>\n"
+#~ "\n"
+#~ " <build>\n"
+#~ " <!-- we dont want the version to be part of the generated war "
+#~ "file name -->\n"
+#~ " <finalName>${artifactId}</finalName>\n"
+#~ " </build>\n"
+#~ "\n"
+#~ " <dependencies>\n"
+#~ " <dependency>\n"
+#~ " <groupId>org.hibernate</groupId>\n"
+#~ " <artifactId>hibernate-core</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Because this is a web app, we also have a dependency on the "
+#~ "servlet api. -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>javax.servlet</groupId>\n"
+#~ " <artifactId>servlet-api</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Hibernate uses slf4j for logging, for our purposes here use "
+#~ "the simple backend -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>org.slf4j</groupId>\n"
+#~ " <artifactId>slf4j-simple</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Hibernate gives you a choice of bytecode providers between "
+#~ "cglib and javassist -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>javassist</groupId>\n"
+#~ " <artifactId>javassist</artifactId>\n"
+#~ " </dependency>\n"
+#~ " </dependencies>\n"
+#~ "\n"
+#~ "</project>]]>"
#~ msgid ""
-#~ "This tutorial is intended for new users of Hibernate but requires Java "
-#~ "and SQL knowledge. It is based on a tutorial by Michael Gloegl, the third-"
-#~ "party libraries we name are for JDK 1.4 and 5.0. You might need others "
-#~ "for JDK 1.3."
+#~ "<![CDATA[package org.hibernate.tutorial.domain;\n"
+#~ "\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "public class Event {\n"
+#~ " private Long id;\n"
+#~ "\n"
+#~ " private String title;\n"
+#~ " private Date date;\n"
+#~ "\n"
+#~ " public Event() {}\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id = id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Date getDate() {\n"
+#~ " return date;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setDate(Date date) {\n"
+#~ " this.date = date;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String getTitle() {\n"
+#~ " return title;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setTitle(String title) {\n"
+#~ " this.title = title;\n"
+#~ " }\n"
+#~ "}]]>"
#~ msgstr ""
-#~ "æ¬ç« é¢åHibernateåå¦è
ï¼ä½éè¦JavaåSQLç¥è¯ã宿¯å¨Michael Goeglæåçæ"
-#~ "åçåºç¡ä¸å®æçãå¨è¿éï¼æä»¬ç§°ç¬¬ä¸æ¹åºæä»¶æ¯æJDK 1.4å5.0ãè¥ä½¿ç¨"
-#~ "JDK1.3ï¼ä½ å¯è½éè¦å
¶å®çåºæä»¶ã"
-
+#~ "<![CDATA[package org.hibernate.tutorial.domain;\n"
+#~ "\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "public class Event {\n"
+#~ " private Long id;\n"
+#~ "\n"
+#~ " private String title;\n"
+#~ " private Date date;\n"
+#~ "\n"
+#~ " public Event() {}\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id = id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Date getDate() {\n"
+#~ " return date;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setDate(Date date) {\n"
+#~ " this.date = date;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String getTitle() {\n"
+#~ " return title;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setTitle(String title) {\n"
+#~ " this.title = title;\n"
+#~ " }\n"
+#~ "}]]>"
#~ msgid ""
-#~ "The source code for the tutorial is included in the distribution in the "
-#~ "<literal>doc/reference/tutorial/</literal> directory."
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "[...]\n"
+#~ "</hibernate-mapping>]]>"
#~ msgstr ""
-#~ "æ¬ç« çæºä»£ç å·²å
å«å¨åå¸å
ä¸ï¼ä½äº<literal>doc/reference/tutorial/</"
-#~ "literal>ç®å½ä¸ã"
-
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "[...]\n"
+#~ "</hibernate-mapping>]]>"
#~ msgid ""
-#~ "First, we'll create a simple console-based Hibernate application. We use "
-#~ "an Java database (HSQL DB), so we do not have to install any database "
-#~ "server."
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
#~ msgstr ""
-#~ "é¦å
æä»¬å°å建ä¸ä¸ªç®åçåºäºæ§å¶å°ç(console-based)Hibernateåºç¨ç¨åºãç±äº"
-#~ "æä»¬ä½¿ç¨Javaæ°æ®åº(HSQL DB)ï¼æä»¥ä¸å¿
å®è£
任使°æ®åºæå¡å¨ã"
-
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
#~ msgid ""
-#~ "The first thing we do, is set up our development directory and put all "
-#~ "the Java libraries we need into it. Download the Hibernate distribution "
-#~ "from the Hibernate website. Extract the package and place all required "
-#~ "libraries found in <literal>/lib</literal> into into the <literal>/lib</"
-#~ "literal> directory of your new development working directory. It should "
-#~ "look like this:"
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
#~ msgstr ""
-#~ "æä»¬æåç第ä¸ä»¶äºå°±æ¯å建æä»¬çå¼åç®å½ï¼å¹¶ä¸æææéè¦ç¨å°çJavaåºæä»¶æ¾"
-#~ "è¿å»ãè§£å缩ä»Hibernateç½ç«ä¸è½½çHibernateåå¸å
ï¼å¹¶æ<literal>/lib</"
-#~ "literal>ç®å½ä¸ææéè¦çåºæä»¶æ·å°æä»¬æ°å»ºå¼åç®å½ä¸ç<literal>/lib</"
-#~ "literal>ç®å½ä¸ãçèµ·æ¥å°±åè¿æ ·ï¼"
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/"
+#~ ">\n"
+#~ " <property name=\"title\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/"
+#~ ">\n"
+#~ " <property name=\"title\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <session-factory>\n"
+#~ "\n"
+#~ " <!-- Database connection settings -->\n"
+#~ " <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</"
+#~ "property>\n"
+#~ " <property name=\"connection.url\">jdbc:hsqldb:hsql://localhost</"
+#~ "property>\n"
+#~ " <property name=\"connection.username\">sa</property>\n"
+#~ " <property name=\"connection.password\"></property>\n"
+#~ "\n"
+#~ " <!-- JDBC connection pool (use the built-in) -->\n"
+#~ " <property name=\"connection.pool_size\">1</property>\n"
+#~ "\n"
+#~ " <!-- SQL dialect -->\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Enable Hibernate's automatic session context management -->\n"
+#~ " <property name=\"current_session_context_class\">thread</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Disable the second-level cache -->\n"
+#~ " <property name=\"cache.provider_class\">org.hibernate.cache."
+#~ "NoCacheProvider</property>\n"
+#~ "\n"
+#~ " <!-- Echo all executed SQL to stdout -->\n"
+#~ " <property name=\"show_sql\">true</property>\n"
+#~ "\n"
+#~ " <!-- Drop and re-create the database schema on startup -->\n"
+#~ " <property name=\"hbm2ddl.auto\">update</property>\n"
+#~ "\n"
+#~ " <mapping resource=\"org/hibernate/tutorial/domain/Event.hbm.xml\"/"
+#~ ">\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <session-factory>\n"
+#~ "\n"
+#~ " <!-- Database connection settings -->\n"
+#~ " <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</"
+#~ "property>\n"
+#~ " <property name=\"connection.url\">jdbc:hsqldb:hsql://localhost</"
+#~ "property>\n"
+#~ " <property name=\"connection.username\">sa</property>\n"
+#~ " <property name=\"connection.password\"></property>\n"
+#~ "\n"
+#~ " <!-- JDBC connection pool (use the built-in) -->\n"
+#~ " <property name=\"connection.pool_size\">1</property>\n"
+#~ "\n"
+#~ " <!-- SQL dialect -->\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Enable Hibernate's automatic session context management -->\n"
+#~ " <property name=\"current_session_context_class\">thread</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Disable the second-level cache -->\n"
+#~ " <property name=\"cache.provider_class\">org.hibernate.cache."
+#~ "NoCacheProvider</property>\n"
+#~ "\n"
+#~ " <!-- Echo all executed SQL to stdout -->\n"
+#~ " <property name=\"show_sql\">true</property>\n"
+#~ "\n"
+#~ " <!-- Drop and re-create the database schema on startup -->\n"
+#~ " <property name=\"hbm2ddl.auto\">update</property>\n"
+#~ "\n"
+#~ " <mapping resource=\"org/hibernate/tutorial/domain/Event.hbm.xml\"/"
+#~ ">\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+#, fuzzy
#~ msgid ""
-#~ "This is the minimum set of required libraries (note that we also copied "
-#~ "hibernate3.jar, the main archive) for Hibernate <emphasis>at the time of "
-#~ "writing</emphasis>. The Hibernate release you are using might require "
-#~ "more or less libraries. See the <literal>README.txt</literal> file in the "
-#~ "<literal>lib/</literal> directory of the Hibernate distribution for more "
-#~ "information about required and optional third-party libraries. (Actually, "
-#~ "Log4j is not required but preferred by many developers.)"
+#~ "<![CDATA[package org.hibernate.tutorial.util;\n"
+#~ "\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "\n"
+#~ "public class HibernateUtil {\n"
+#~ "\n"
+#~ " private static final SessionFactory sessionFactory = "
+#~ "buildSessionFactory();\n"
+#~ "\n"
+#~ " private static SessionFactory buildSessionFactory() {\n"
+#~ " try {\n"
+#~ " // Create the SessionFactory from hibernate.cfg.xml\n"
+#~ " return new Configuration().configure().buildSessionFactory"
+#~ "();\n"
+#~ " }\n"
+#~ " catch (Throwable ex) {\n"
+#~ " // Make sure you log the exception, as it might be swallowed\n"
+#~ " System.err.println(\"Initial SessionFactory creation failed."
+#~ "\" + ex);\n"
+#~ " throw new ExceptionInInitializerError(ex);\n"
+#~ " }\n"
+#~ " }\n"
+#~ "\n"
+#~ " public static SessionFactory getSessionFactory() {\n"
+#~ " return sessionFactory;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
#~ msgstr ""
-#~ "<emphasis>å°ç¼åæ¬ææ¶ä¸ºæ¢</emphasis>ï¼è¿äºæ¯Hibernateè¿è¡æéè¦çæå°åºæ"
-#~ "ä»¶éåï¼æ³¨ææä»¬ä¹æ·è´äº Hibernate3.jarï¼è¿ä¸ªæ¯æä¸»è¦çæä»¶ï¼ãä½ æ£ä½¿ç¨ç"
-#~ "Hibernateçæ¬å¯è½éè¦æ¯è¿æ´å¤æå°ä¸äºçåºæä»¶ã请åè§åå¸å
ä¸ç"
-#~ "<literal>lib/</literal>ç®å½ä¸ç<literal>README.txt</literal>ï¼ä»¥è·åæ´å¤å
³"
-#~ "äºæéåå¯éçç¬¬ä¸æ¹åºæä»¶ä¿¡æ¯ï¼äºå®ä¸ï¼Log4j并䏿¯å¿
é¡»çåºæä»¶ï¼ä½è¢«è®¸å¤"
-#~ "å¼åè
æå欢ï¼ã"
+#~ "package util;\n"
+#~ "\n"
+#~ "import org.hibernate.*;\n"
+#~ "import org.hibernate.cfg.*;\n"
+#~ "\n"
+#~ "public class HibernateUtil {\n"
+#~ "\n"
+#~ " private static final SessionFactory sessionFactory;\n"
+#~ "\n"
+#~ " static {\n"
+#~ " try {\n"
+#~ " // Create the SessionFactory from hibernate.cfg.xml\n"
+#~ " sessionFactory = new Configuration().configure()."
+#~ "buildSessionFactory();\n"
+#~ " } catch (Throwable ex) {\n"
+#~ " // Make sure you log the exception, as it might be swallowed\n"
+#~ " System.err.println(\"Initial SessionFactory creation failed."
+#~ "\" + ex);\n"
+#~ " throw new ExceptionInInitializerError(ex);\n"
+#~ " }\n"
+#~ " }\n"
+#~ "\n"
+#~ " public static SessionFactory getSessionFactory() {\n"
+#~ " return sessionFactory;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "Our first persistent class is a simple JavaBean class with some "
-#~ "properties:"
+#~ "<![CDATA[package org.hibernate.tutorial;\n"
+#~ "\n"
+#~ "import org.hibernate.Session;\n"
+#~ "\n"
+#~ "import java.util.*;\n"
+#~ "\n"
+#~ "import org.hibernate.tutorial.domain.Event;\n"
+#~ "import org.hibernate.tutorial.util.HibernateUtil;\n"
+#~ "\n"
+#~ "public class EventManager {\n"
+#~ "\n"
+#~ " public static void main(String[] args) {\n"
+#~ " EventManager mgr = new EventManager();\n"
+#~ "\n"
+#~ " if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ " }\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory().close();\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void createAndStoreEvent(String title, Date theDate) {\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ " session.save(theEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
#~ msgstr ""
-#~ "æä»¬ç第ä¸ä¸ªæä¹
åç±»æ¯ä¸ä¸ªå¸¦æä¸äºå±æ§ï¼propertyï¼çç®åJavaBeanç±»ï¼"
+#~ "package events;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "import util.HibernateUtil;\n"
+#~ "\n"
+#~ "public class EventManager {\n"
+#~ "\n"
+#~ " public static void main(String[] args) {\n"
+#~ " EventManager mgr = new EventManager();\n"
+#~ "\n"
+#~ " if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ " }\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory().close();\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void createAndStoreEvent(String title, Date theDate) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " session.save(theEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "Place this Java source file in a directory called <literal>src</literal> "
-#~ "in the development folder, and in its correct package. The directory "
-#~ "should now look like this:"
+#~ "<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, "
+#~ "EVENT_ID) values (?, ?, ?)]]>"
#~ msgstr ""
-#~ "æè¿ä¸ªJavaæºä»£ç æä»¶æ¾å°å¼åç®å½ä¸ç<literal>src</literal>ç®å½éï¼æ³¨æå
ä½"
-#~ "ç½®è¦æ£ç¡®ã ç°å¨è¿ä¸ªç®å½çèµ·æ¥åºè¯¥åè¿æ ·ï¼"
+#~ "[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values "
+#~ "(?, ?, ?)"
-#~ msgid "In the next step, we tell Hibernate about this persistent class."
-#~ msgstr "ä¸ä¸æ¥ï¼æä»¬æè¿ä¸ªæä¹
åç±»çä¿¡æ¯åè¯Hibernateã"
-
+#, fuzzy
#~ msgid ""
-#~ "The <literal>id</literal> element is the declaration of the identifer "
-#~ "property, <literal>name=\"id\"</literal> declares the name of the Java "
-#~ "property - Hibernate will use the getter and setter methods to access the "
-#~ "property. The column attribute tells Hibernate which column of the "
-#~ "<literal>EVENTS</literal> table we use for this primary key. The nested "
-#~ "<literal>generator</literal> element specifies the identifier generation "
-#~ "strategy, in this case we used <literal>native</literal>, which picks the "
-#~ "best strategy depending on the configured database (dialect). Hibernate "
-#~ "supports database generated, globally unique, as well as application "
-#~ "assigned identifiers (or any strategy you have written an extension for)."
+#~ "<![CDATA[ if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ " }\n"
+#~ " else if (args[0].equals(\"list\")) {\n"
+#~ " List events = mgr.listEvents();\n"
+#~ " for (int i = 0; i < events.size(); i++) {\n"
+#~ " Event theEvent = (Event) events.get(i);\n"
+#~ " System.out.println(\n"
+#~ " \"Event: \" + theEvent.getTitle() + \" Time: \" + "
+#~ "theEvent.getDate()\n"
+#~ " );\n"
+#~ " }\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "<literal>id</literal>å
ç´ æ¯æ è¯ç¬¦å±æ§ç声æï¼<literal>name=\"id\"</"
-#~ "literal> 声æäºJava屿§çåå ï¼ Hibernateä¼ä½¿ç¨<literal>getId()</literal>"
-#~ "å<literal>setId()</literal>æ¥è®¿é®å®ã <literal>column</literal>屿§ååè¯"
-#~ "Hibernate, æä»¬ä½¿ç¨<literal>EVENTS</literal>表çåªä¸ªå段ä½ä¸ºä¸»é®ãåµå¥ç"
-#~ "<literal>generator</literal>å
ç´ æå®äºæ è¯ç¬¦çæçç¥ï¼å¨è¿éæä»¬æå®"
-#~ "<literal>native</literal>ï¼å®æ ¹æ®å·²é
ç½®çæ°æ®åºï¼æ¹è¨ï¼èªå¨éæ©æä½³çæ è¯"
-#~ "符çæçç¥ãHibernateæ¯æç±æ°æ®åºçæï¼å
¨å±å¯ä¸æ§ï¼globally uniqueï¼ååºç¨"
-#~ "ç¨åºæå®ï¼æè
ä½ èªå·±ä¸ºä»»ä½å·²æçç¥æåçæ©å±ï¼è¿äºçç¥æ¥çææ è¯ç¬¦ã"
+#~ "if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ "}\n"
+#~ "else if (args[0].equals(\"list\")) {\n"
+#~ " List events = mgr.listEvents();\n"
+#~ " for (int i = 0; i < events.size(); i++) {\n"
+#~ " Event theEvent = (Event) events.get(i);\n"
+#~ " System.out.println(\"Event: \" + theEvent.getTitle() +\n"
+#~ " \" Time: \" + theEvent.getDate());\n"
+#~ " }\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "This mapping file should be saved as <literal>Event.hbm.xml</literal>, "
-#~ "right in the directory next to the <literal>Event</literal> Java class "
-#~ "source file. The naming of mapping files can be arbitrary, however the "
-#~ "<literal>hbm.xml</literal> suffix is a convention in the Hibernate "
-#~ "developer community. The directory structure should now look like this:"
+#~ "<![CDATA[ private List listEvents() {\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ " session.beginTransaction();\n"
+#~ " List result = session.createQuery(\"from Event\").list();\n"
+#~ " session.getTransaction().commit();\n"
+#~ " return result;\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "åºè¯¥æè¿ä¸ªæ å°æä»¶ä¿å为<literal>Event.hbm.xml</literal>ï¼ä¸å°±å¨"
-#~ "<literal>Event</literal>Javaç±»çæºæä»¶ç®å½ä¸ãæ å°æä»¶å¯éæå°å½åï¼ä½"
-#~ "<literal>hbm.xml</literal>çåç¼å·²æä¸ºHibernateå¼åè
社åºç约å®ãç°å¨ç®å½"
-#~ "ç»æçèµ·æ¥åºè¯¥åè¿æ ·ï¼"
+#~ "private List listEvents() {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " List result = session.createQuery(\"from Event\").list();\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " return result;\n"
+#~ "}"
-#~ msgid "We continue with the main configuration of Hibernate."
-#~ msgstr "æä»¬ç»§ç»è¿è¡Hibernateç主è¦é
ç½®ã"
-
+#, fuzzy
#~ msgid ""
-#~ "We now have a persistent class and its mapping file in place. It is time "
-#~ "to configure Hibernate. Before we do this, we will need a database. HSQL "
-#~ "DB, a java-based SQL DBMS, can be downloaded from the HSQL DB website"
-#~ "(http://hsqldb.org/). Actually, you only need the <literal>hsqldb.jar</"
-#~ "literal> from this download. Place this file in the <literal>lib/</"
-#~ "literal> directory of the development folder."
+#~ "<![CDATA[package org.hibernate.tutorial.domain;\n"
+#~ "\n"
+#~ "public class Person {\n"
+#~ "\n"
+#~ " private Long id;\n"
+#~ " private int age;\n"
+#~ " private String firstname;\n"
+#~ " private String lastname;\n"
+#~ "\n"
+#~ " public Person() {}\n"
+#~ "\n"
+#~ " // Accessor methods for all properties, private setter for 'id'\n"
+#~ "\n"
+#~ "}]]>"
#~ msgstr ""
-#~ "ç°å¨æä»¬å·²ç»æäºä¸ä¸ªæä¹
åç±»åå®çæ å°æä»¶ï¼è¯¥æ¯é
ç½®Hibernateçæ¶åäºãå¨"
-#~ "æ¤ä¹åï¼æä»¬éè¦ä¸ä¸ªæ°æ®åºã HSQL DBæ¯ç§åºäºJava çSQLæ°æ®åºç®¡çç³»ç»"
-#~ "ï¼DBMSï¼ï¼å¯ä»¥ä»HSQL DBçç½ç«ä¸ä¸è½½ãå®é
ä¸ï¼ä½ åªéä¸è½½çå
ä¸ç"
-#~ "<literal>hsqldb.jar</literal>æä»¶ï¼å¹¶æè¿ä¸ªæä»¶æ¾å¨å¼åæä»¶å¤¹ç"
-#~ "<literal>lib/</literal>ç®å½ä¸å³å¯ã"
+#~ "package events;\n"
+#~ "\n"
+#~ "public class Person {\n"
+#~ "\n"
+#~ " private Long id;\n"
+#~ " private int age;\n"
+#~ " private String firstname;\n"
+#~ " private String lastname;\n"
+#~ "\n"
+#~ " public Person() {}\n"
+#~ "\n"
+#~ " // Accessor methods for all properties, private setter for 'id'\n"
+#~ "\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "Hibernate is the layer in your application which connects to this "
-#~ "database, so it needs connection information. The connections are made "
-#~ "through a JDBC connection pool, which we also have to configure. The "
-#~ "Hibernate distribution contains several open source JDBC connection "
-#~ "pooling tools, but will use the Hibernate built-in connection pool for "
-#~ "this tutorial. Note that you have to copy the required library into your "
-#~ "classpath and use different connection pooling settings if you want to "
-#~ "use a production-quality third party JDBC pooling software."
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
#~ msgstr ""
-#~ "Hibernateæ¯ä½ çåºç¨ç¨åºéè¿æ¥æ°æ®åºçé£å±ï¼æä»¥å®éè¦è¿æ¥ç¨çä¿¡æ¯ãè¿æ¥"
-#~ "ï¼connectionï¼æ¯éè¿ä¸ä¸ªä¹ç±æä»¬é
ç½®çJDBCè¿æ¥æ± ï¼connection poolï¼æ¥å®æ"
-#~ "çãHibernateçåå¸å
éå
å«äºè®¸å¤å¼æºçï¼open sourceï¼è¿æ¥æ± ï¼ä½å¨æä»¬ä¾å"
-#~ "ä¸ä½¿ç¨Hibernateå
ç½®çè¿æ¥æ± ãæ³¨æï¼å¦æä½ å¸æä½¿ç¨ä¸ä¸ªäº§å级(production-"
-#~ "quality)çç¬¬ä¸æ¹è¿æ¥æ± 软件ï¼ä½ å¿
é¡»æ·è´æéçåºæä»¶å°ä½ çclasspathä¸ï¼å¹¶ä½¿"
-#~ "ç¨ä¸åçè¿æ¥æ± 设置ã"
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+#, fuzzy
#~ msgid ""
-#~ "Copy this file into the source directory, so it will end up in the root "
-#~ "of the classpath. Hibernate automatically looks for a file called "
-#~ "<literal>hibernate.cfg.xml</literal> in the root of the classpath, on "
-#~ "startup."
+#~ "<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>]]>"
#~ msgstr ""
-#~ "æè¿ä¸ªæä»¶æ·è´å°æºä»£ç ç®å½ä¸é¢ï¼è¿æ ·å®å°±ä½äºclasspathçæ ¹ç®å½çæåã"
-#~ "Hibernateå¨å¯å¨æ¶ä¼èªå¨å¨classpathçæ ¹ç®å½æ¥æ¾å为<literal>hibernate.cfg."
-#~ "xml</literal>çé
ç½®æä»¶ã"
+#~ "<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>"
+#, fuzzy
#~ msgid ""
-#~ "We'll now build the tutorial with Ant. You will need to have Ant "
-#~ "installed - get it from the <ulink url=\"http://ant.apache.org/"
-#~ "bindownload.cgi\">Ant download page</ulink>. How to install Ant will not "
-#~ "be covered here. Please refer to the <ulink url=\"http://ant.apache.org/"
-#~ "manual/index.html\">Ant manual</ulink>. After you have installed Ant, we "
-#~ "can start to create the buildfile. It will be called <literal>build.xml</"
-#~ "literal> and placed directly in the development directory."
+#~ "<![CDATA[public class Person {\n"
+#~ "\n"
+#~ " private Set events = new HashSet();\n"
+#~ "\n"
+#~ " public Set getEvents() {\n"
+#~ " return events;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setEvents(Set events) {\n"
+#~ " this.events = events;\n"
+#~ " }\n"
+#~ "}]]>"
#~ msgstr ""
-#~ "ç°å¨æä»¬ç¨Antæ¥æå»ºåºç¨ç¨åºãä½ å¿
é¡»å
å®è£
Antï¼å¯ä»¥ä»<ulink url=\"http://"
-#~ "ant.apache.org/bindownload.cgi\">Ant ä¸è½½é¡µé¢</ulink>å¾å°å®ãææ ·å®è£
Antå°±"
-#~ "ä¸å¨è¿éä»ç»äºï¼è¯·åè<ulink url=\"http://ant.apache.org/manual/index.html"
-#~ "\">Ant ç¨æ·æå</ulink>ãå½ä½ å®è£
å®äºAntï¼å°±å¯ä»¥å¼å§å建<literal>build."
-#~ "xml</literal>æä»¶ï¼æå®ç´æ¥æ¾å¨å¼åç®å½ä¸é¢ã"
+#~ "public class Person {\n"
+#~ "\n"
+#~ " private Set events = new HashSet();\n"
+#~ "\n"
+#~ " public Set getEvents() {\n"
+#~ " return events;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setEvents(Set events) {\n"
+#~ " this.events = events;\n"
+#~ " }\n"
+#~ "}"
-#~ msgid "A basic build file looks like this:"
-#~ msgstr "ä¸ä¸ªç®åçbuildæä»¶çèµ·æ¥åè¿æ ·ï¼"
-
+#, fuzzy
#~ msgid ""
-#~ "This will tell Ant to add all files in the lib directory ending with "
-#~ "<literal>.jar</literal> to the classpath used for compilation. It will "
-#~ "also copy all non-Java source files to the target directory, e.g. "
-#~ "configuration and Hibernate mapping files. If you now run Ant, you should "
-#~ "get this output:"
+#~ "<![CDATA[<class name=\"Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ "\n"
+#~ " <set name=\"events\" table=\"PERSON_EVENT\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <many-to-many column=\"EVENT_ID\" class=\"Event\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ "</class>]]>"
#~ msgstr ""
-#~ "è¿å°åè¯Antæææå¨libç®å½ä¸ä»¥<literal>.jar</literal>ç»å°¾çæä»¶æ·è´å°"
-#~ "classpathä¸ä»¥ä¾ç¼è¯ä¹ç¨ãå®ä¹æææçéJavaæºä»£ç æä»¶ï¼ä¾å¦é
ç½®åHibernate"
-#~ "æ å°æä»¶ï¼æ·è´å°ç®æ ç®å½ãå¦æä½ ç°å¨è¿è¡Antï¼ä¼å¾å°ä»¥ä¸è¾åºï¼"
+#~ "<class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ "\n"
+#~ " <set name=\"events\" table=\"PERSON_EVENT\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <many-to-many column=\"EVENT_ID\" class=\"events.Event\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ "</class>"
+#, fuzzy
#~ msgid ""
-#~ "Place <literal>HibernateUtil.java</literal> in the development source "
-#~ "directory, in a package next to <literal>events</literal>:"
+#~ "<![CDATA[\n"
+#~ " _____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | |\n"
+#~ " |_____________| |__________________| | PERSON |\n"
+#~ " | | | | |_____________|\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | |\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE |\n"
+#~ " |_____________| | FIRSTNAME |\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|\n"
+#~ " ]]>"
#~ msgstr ""
-#~ "æ<literal>HibernateUtil.java</literal>æ¾å¨å¼åç®å½çæºä»£ç è·¯å¾ä¸ï¼ä¸æ¾"
-#~ "<literal>events</literal>çå
å¹¶åï¼"
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | |\n"
+#~ " |_____________| |__________________| | PERSON |\n"
+#~ " | | | | |_____________|\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | |\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE |\n"
+#~ " |_____________| | FIRSTNAME |\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+#, fuzzy
#~ msgid ""
-#~ "To run this first routine we have to add a callable target to the Ant "
-#~ "build file:"
+#~ "<![CDATA[ private void addPersonToEvent(Long personId, Long eventId) "
+#~ "{\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ " aPerson.getEvents().add(anEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "ä¸ºç¬¬ä¸æ¬¡è¿è¡æä»¬çç¨åºï¼æä»¬å¾å¨Antçbuildæä»¶ä¸å¢å ä¸ä¸ªå¯ä»¥è°ç¨å¾å°ç"
-#~ "targetã"
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "The value of the <literal>action</literal> argument is set on the command "
-#~ "line when calling the target:"
+#~ "<![CDATA[ private void addPersonToEvent(Long personId, Long eventId) "
+#~ "{\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session\n"
+#~ " .createQuery(\"select p from Person p left join fetch p."
+#~ "events where p.id = :pid\")\n"
+#~ " .setParameter(\"pid\", personId)\n"
+#~ " .uniqueResult(); // Eager fetch the collection so we can "
+#~ "use it detached\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " // End of first unit of work\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent); // aPerson (and its collection) "
+#~ "is detached\n"
+#~ "\n"
+#~ " // Begin second unit of work\n"
+#~ "\n"
+#~ " Session session2 = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ " session2.beginTransaction();\n"
+#~ " session2.update(aPerson); // Reattachment of aPerson\n"
+#~ "\n"
+#~ " session2.getTransaction().commit();\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "<literal>action</literal>åæ°ï¼argumentï¼ç弿¯éè¿å½ä»¤è¡è°ç¨è¿ä¸ªtargetç"
-#~ "æ¶å设置çï¼"
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session\n"
+#~ " .createQuery(\"select p from Person p left join fetch p."
+#~ "events where p.id = :pid\")\n"
+#~ " .setParameter(\"pid\", personId)\n"
+#~ " .uniqueResult(); // Eager fetch the collection so we can use "
+#~ "it detached\n"
+#~ "\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " // End of first unit of work\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent); // aPerson (and its collection) is "
+#~ "detached\n"
+#~ "\n"
+#~ " // Begin second unit of work\n"
+#~ "\n"
+#~ " Session session2 = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session2.beginTransaction();\n"
+#~ "\n"
+#~ " session2.update(aPerson); // Reattachment of aPerson\n"
+#~ "\n"
+#~ " session2.getTransaction().commit();\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "This is the <literal>INSERT</literal> executed by Hibernate, the question "
-#~ "marks represent JDBC bind parameters. To see the values bound as "
-#~ "arguments, or to reduce the verbosity of the log, check your "
-#~ "<literal>log4j.properties</literal>."
+#~ "<![CDATA[ else if (args[0].equals(\"addpersontoevent\")) {\n"
+#~ " Long eventId = mgr.createAndStoreEvent(\"My Event\", new Date"
+#~ "());\n"
+#~ " Long personId = mgr.createAndStorePerson(\"Foo\", \"Bar\");\n"
+#~ " mgr.addPersonToEvent(personId, eventId);\n"
+#~ " System.out.println(\"Added person \" + personId + \" to event "
+#~ "\" + eventId);\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "è¿æ¯Hibernateæ§è¡ç<literal>INSERT</literal>å½ä»¤ï¼é®å·ä»£è¡¨JDBCçç»å®åæ°ã"
-#~ "妿æ³è¦çå°ç»å®åæ°ç弿è
åå°æ¥å¿çé¿åº¦ï¼å°±è¦è°æ´ä½ å¨<literal>log4j."
-#~ "properties</literal>æä»¶éç设置ã"
+#~ "else if (args[0].equals(\"addpersontoevent\")) {\n"
+#~ " Long eventId = mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ " Long personId = mgr.createAndStorePerson(\"Foo\", \"Bar\");\n"
+#~ " mgr.addPersonToEvent(personId, eventId);\n"
+#~ " System.out.println(\"Added person \" + personId + \" to event \" + "
+#~ "eventId);\n"
+#~ "}"
-#~ msgid "Now, to execute and test all of this, follow these steps:"
-#~ msgstr "ç°å¨ï¼æ ¹æ®ä»¥ä¸æ¥éª¤æ¥æ§è¡å¹¶æµè¯ä»¥ä¸å项ï¼"
-
+#, fuzzy
#~ msgid ""
-#~ "Run <literal>ant run -Daction=store</literal> to store something into the "
-#~ "database and, of course, to generate the database schema before through "
-#~ "hbm2ddl."
+#~ "<![CDATA[ private Set emailAddresses = new HashSet();\n"
+#~ "\n"
+#~ " public Set getEmailAddresses() {\n"
+#~ " return emailAddresses;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setEmailAddresses(Set emailAddresses) {\n"
+#~ " this.emailAddresses = emailAddresses;\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "è¿è¡<literal>ant run -Daction=store</literal>æ¥ä¿åä¸äºå
容尿°æ®åºãå½"
-#~ "ç¶ï¼å
å¾ç¨hbm2ddlæ¥çææ°æ®åºschemaã"
+#~ "private Set emailAddresses = new HashSet();\n"
+#~ "\n"
+#~ "public Set getEmailAddresses() {\n"
+#~ " return emailAddresses;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setEmailAddresses(Set emailAddresses) {\n"
+#~ " this.emailAddresses = emailAddresses;\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "Now disable hbm2ddl by commenting out the property in your "
-#~ "<literal>hibernate.cfg.xml</literal> file. Usually you only leave it "
-#~ "turned on in continous unit testing, but another run of hbm2ddl would "
-#~ "<emphasis>drop</emphasis> everything you have stored - the "
-#~ "<literal>create</literal> configuration setting actually translates into "
-#~ "\"drop all tables from the schema, then re-create all tables, when the "
-#~ "SessionFactory is build\"."
+#~ "<![CDATA[ <set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR"
+#~ "\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ " </set>]]>"
#~ msgstr ""
-#~ "ç°å¨æ<literal>hibernate.cfg.xml</literal>æä»¶ä¸hbm2ddl屿§æ³¨éæï¼è¿æ ·æ"
-#~ "们就忶äºå¨å¯å¨æ¶ç¨hbm2ddlæ¥çææ°æ®åºschemaãéå¸¸åªæå¨ä¸æéå¤è¿è¡åå
"
-#~ "æµè¯çæ¶åæéè¦æå¼å®ï¼ä½å次è¿è¡hbm2ddlä¼æä½ ä¿åçä¸åé½å æ"
-#~ "ï¼<emphasis>drop</emphasis>ï¼ââ<literal>create</literal>é
ç½®ççå®å«ä¹"
-#~ "æ¯ï¼âå¨å建SessionFactoryçæ¶åï¼ä»schema ä¸drop æææç表ï¼åéæ°å建å®"
-#~ "们âã"
+#~ "<set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ "</set>"
+#, fuzzy
#~ msgid ""
-#~ "If you now call Ant with <literal>-Daction=list</literal>, you should see "
-#~ "the events you have stored so far. You can of course also call the "
-#~ "<literal>store</literal> action a few times more."
+#~ "<![CDATA[\n"
+#~ " _____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | | "
+#~ "___________________\n"
+#~ " |_____________| |__________________| | PERSON | "
+#~ "| |\n"
+#~ " | | | | |_____________| | "
+#~ "PERSON_EMAIL_ADDR |\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | | |"
+#~ "___________________|\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | <--> | "
+#~ "*PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE | | "
+#~ "*EMAIL_ADDR |\n"
+#~ " |_____________| | FIRSTNAME | |"
+#~ "___________________|\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|\n"
+#~ " ]]>"
#~ msgstr ""
-#~ "å¦æä½ ç°å¨ä½¿ç¨å½ä»¤è¡åæ°<literal>-Daction=list</literal>è¿è¡Antï¼ä½ ä¼çå°"
-#~ "é£äºè³ä»ä¸ºæ¢æä»¬æå¨åçeventsãå½ç¶ï¼ä½ ä¹å¯ä»¥å¤è°ç¨å 次<literal>store</"
-#~ "literal>以ä¿åæ´å¤çenventsã"
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | | "
+#~ "___________________\n"
+#~ " |_____________| |__________________| | PERSON | "
+#~ "| |\n"
+#~ " | | | | |_____________| | "
+#~ "PERSON_EMAIL_ADDR |\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | "
+#~ "| |___________________|\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | "
+#~ "<--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE | | "
+#~ "*EMAIL_ADDR |\n"
+#~ " |_____________| | FIRSTNAME | |"
+#~ "___________________|\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+#, fuzzy
#~ msgid ""
-#~ "Note: Most new Hibernate users fail at this point and we see questions "
-#~ "about <emphasis>Table not found</emphasis> error messages regularly. "
-#~ "However, if you follow the steps outlined above you will not have this "
-#~ "problem, as hbm2ddl creates the database schema on the first run, and "
-#~ "subsequent application restarts will use this schema. If you change the "
-#~ "mapping and/or database schema, you have to re-enable hbm2ddl once again."
+#~ "<![CDATA[ private void addEmailToPerson(Long personId, String "
+#~ "emailAddress) {\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ " // adding to the emailAddress collection might trigger a lazy "
+#~ "load of the collection\n"
+#~ " aPerson.getEmailAddresses().add(emailAddress);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "注æï¼å¾å¤Hibernateæ°æå¨è¿ä¸æ¥ä¼å¤±è´¥ï¼æä»¬ä¸æ¶çå°å
³äº<emphasis>Table "
-#~ "not found</emphasis>é误信æ¯çæé®ã使¯ï¼åªè¦ä½ æ ¹æ®ä¸é¢æè¿°çæ¥éª¤æ¥æ§è¡ï¼"
-#~ "å°±ä¸ä¼æè¿ä¸ªé®é¢ï¼å 为hbm2ddlä¼å¨ç¬¬ä¸æ¬¡è¿è¡çæ¶ååå»ºæ°æ®åºschemaï¼åç»§ç"
-#~ "åºç¨ç¨åºéèµ·åè¿è½ç»§ç»ä½¿ç¨è¿ä¸ªschemaãåè¥ä½ ä¿®æ¹äºæ å°ï¼æè
ä¿®æ¹äºæ°æ®åº"
-#~ "schemaï¼ä½ å¿
é¡»æhbm2ddléæ°æå¼ä¸æ¬¡ã"
+#~ "private void addEmailToPerson(Long personId, String emailAddress) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ "\n"
+#~ " // The getEmailAddresses() might trigger a lazy load of the "
+#~ "collection\n"
+#~ " aPerson.getEmailAddresses().add(emailAddress);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "Create a new mapping file called <literal>Person.hbm.xml</literal> (don't "
-#~ "forget the DTD reference at the top):"
+#~ "<![CDATA[ private Set participants = new HashSet();\n"
+#~ "\n"
+#~ " public Set getParticipants() {\n"
+#~ " return participants;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setParticipants(Set participants) {\n"
+#~ " this.participants = participants;\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "å建ä¸ä¸ªå为<literal>Person.hbm.xml</literal>çæ°æ å°æä»¶ï¼å«å¿äºæä¸é¢ç"
-#~ "DTDå¼ç¨ï¼ï¼"
+#~ "private Set participants = new HashSet();\n"
+#~ "\n"
+#~ "public Set getParticipants() {\n"
+#~ " return participants;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setParticipants(Set participants) {\n"
+#~ " this.participants = participants;\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "We need a unidirectional, many-valued associations, implemented with a "
-#~ "<literal>Set</literal>. Let's write the code for this in the Java classes "
-#~ "and then map it:"
+#~ "<![CDATA[ <set name=\"participants\" table=\"PERSON_EVENT\" "
+#~ "inverse=\"true\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ " </set>]]>"
#~ msgstr ""
-#~ "æä»¬éè¦ç¨set å®ç°ä¸ä¸ªååå¤å¼å
³èã让æä»¬å¨Javaç±»é为è¿ä¸ªå
³èç¼ç ï¼æ¥çæ "
-#~ "å°å®ï¼"
+#~ "<set name=\"participants\" table=\"PERSON_EVENT\" inverse=\"true"
+#~ "\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ "</set>"
+#, fuzzy
#~ msgid ""
-#~ "We add a collection of value typed objects to the <literal>Person</"
-#~ "literal> entity. We want to store email addresses, so the type we use is "
-#~ "<literal>String</literal>, and the collection is again a <literal>Set</"
-#~ "literal>:"
+#~ "<![CDATA[ protected Set getEvents() {\n"
+#~ " return events;\n"
+#~ " }\n"
+#~ "\n"
+#~ " protected void setEvents(Set events) {\n"
+#~ " this.events = events;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void addToEvent(Event event) {\n"
+#~ " this.getEvents().add(event);\n"
+#~ " event.getParticipants().add(this);\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void removeFromEvent(Event event) {\n"
+#~ " this.getEvents().remove(event);\n"
+#~ " event.getParticipants().remove(this);\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "æä»¬æä¸ä¸ªå¼ç±»å对象çéåå å
¥<literal>Person</literal>å®ä½ä¸ãæä»¬å¸æä¿"
-#~ "åemailå°åï¼æä»¥ä½¿ç¨<literal>String</literal>ç±»åï¼èä¸è¿æ¬¡çéåç±»å忝"
-#~ "<literal>Set</literal>ï¼"
+#~ "protected Set getEvents() {\n"
+#~ " return events;\n"
+#~ "}\n"
+#~ "\n"
+#~ "protected void setEvents(Set events) {\n"
+#~ " this.events = events;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void addToEvent(Event event) {\n"
+#~ " this.getEvents().add(event);\n"
+#~ " event.getParticipants().add(this);\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void removeFromEvent(Event event) {\n"
+#~ " this.getEvents().remove(event);\n"
+#~ " event.getParticipants().remove(this);\n"
+#~ "}"
-#~ msgid "Let's turn this into a small web application."
-#~ msgstr "让æä»¬æè¿å
¥ä¸ä¸ªå°åçwebåºç¨ç¨åºã"
-
+#, fuzzy
#~ msgid ""
-#~ "Create a new class in your source directory, in the <literal>events</"
-#~ "literal> package:"
-#~ msgstr "å¨ä½ çæºä»£ç ç®å½ç<literal>events</literal>å
ä¸å建ä¸ä¸ªæ°çç±»ï¼"
+#~ "<![CDATA[package org.hibernate.tutorial.web;\n"
+#~ "\n"
+#~ "// Imports\n"
+#~ "\n"
+#~ "public class EventManagerServlet extends HttpServlet {\n"
+#~ "\n"
+#~ " protected void doGet(\n"
+#~ " HttpServletRequest request,\n"
+#~ " HttpServletResponse response) throws ServletException, "
+#~ "IOException {\n"
+#~ "\n"
+#~ " SimpleDateFormat dateFormatter = new SimpleDateFormat( \"dd.MM."
+#~ "yyyy\" );\n"
+#~ "\n"
+#~ " try {\n"
+#~ " // Begin unit of work\n"
+#~ " HibernateUtil.getSessionFactory().getCurrentSession()."
+#~ "beginTransaction();\n"
+#~ "\n"
+#~ " // Process request and render page...\n"
+#~ "\n"
+#~ " // End unit of work\n"
+#~ " HibernateUtil.getSessionFactory().getCurrentSession()."
+#~ "getTransaction().commit();\n"
+#~ " }\n"
+#~ " catch (Exception ex) {\n"
+#~ " HibernateUtil.getSessionFactory().getCurrentSession()."
+#~ "getTransaction().rollback();\n"
+#~ " if ( ServletException.class.isInstance( ex ) ) {\n"
+#~ " throw ( ServletException ) ex;\n"
+#~ " }\n"
+#~ " else {\n"
+#~ " throw new ServletException( ex );\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "protected void doGet(HttpServletRequest request,\n"
+#~ " HttpServletResponse response)\n"
+#~ " throws ServletException, IOException {\n"
+#~ "\n"
+#~ " SimpleDateFormat dateFormatter = new SimpleDateFormat(\"dd.MM.yyyy"
+#~ "\");\n"
+#~ "\n"
+#~ " try {\n"
+#~ " // Begin unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // Process request and render page...\n"
+#~ "\n"
+#~ " // End unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().commit();\n"
+#~ "\n"
+#~ " } catch (Exception ex) {\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().rollback();\n"
+#~ " throw new ServletException(ex);\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "To deploy this application you have to create a web archive, a WAR. Add "
-#~ "the following Ant target to your <literal>build.xml</literal>:"
+#~ "<![CDATA[ // Write HTML header\n"
+#~ " PrintWriter out = response.getWriter();\n"
+#~ " out.println(\"<html><head><title>Event Manager</title></"
+#~ "head><body>\");\n"
+#~ "\n"
+#~ " // Handle actions\n"
+#~ " if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
+#~ "\n"
+#~ " String eventTitle = request.getParameter(\"eventTitle\");\n"
+#~ " String eventDate = request.getParameter(\"eventDate\");\n"
+#~ "\n"
+#~ " if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
+#~ " out.println(\"<b><i>Please enter event title and date.</"
+#~ "i></b>\");\n"
+#~ " }\n"
+#~ " else {\n"
+#~ " createAndStoreEvent(eventTitle, dateFormatter.parse"
+#~ "(eventDate));\n"
+#~ " out.println(\"<b><i>Added event.</i></b>\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "\n"
+#~ " // Print page\n"
+#~ " printEventForm(out);\n"
+#~ " listEvents(out, dateFormatter);\n"
+#~ "\n"
+#~ " // Write HTML footer\n"
+#~ " out.println(\"</body></html>\");\n"
+#~ " out.flush();\n"
+#~ " out.close();]]>"
#~ msgstr ""
-#~ "è¦åå¸è¿ä¸ªç¨åºï¼ä½ 徿宿æwebåå¸å
ï¼WARæä»¶ãæä¸é¢çèæ¬å å
¥å°ä½ ç"
-#~ "<literal>build.xml</literal>ä¸ï¼"
+#~ "// Write HTML header\n"
+#~ "PrintWriter out = response.getWriter();\n"
+#~ "out.println(\"<html><head><title>Event Manager</"
+#~ "title></head><body>\");\n"
+#~ "\n"
+#~ "// Handle actions\n"
+#~ "if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
+#~ "\n"
+#~ " String eventTitle = request.getParameter(\"eventTitle\");\n"
+#~ " String eventDate = request.getParameter(\"eventDate\");\n"
+#~ "\n"
+#~ " if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
+#~ " out.println(\"<b><i>Please enter event title and date."
+#~ "</i></b>\");\n"
+#~ " } else {\n"
+#~ " createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n"
+#~ " out.println(\"<b><i>Added event.</i></b>"
+#~ "\");\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "// Print page\n"
+#~ "printEventForm(out);\n"
+#~ "listEvents(out, dateFormatter);\n"
+#~ "\n"
+#~ "// Write HTML footer\n"
+#~ "out.println(\"</body></html>\");\n"
+#~ "out.flush();\n"
+#~ "out.close();"
+#, fuzzy
#~ msgid ""
-#~ "This target creates a file called <literal>hibernate-tutorial.war</"
-#~ "literal> in your project directory. It packages all libraries and the "
-#~ "<literal>web.xml</literal> descriptor, which is expected in the base "
-#~ "directory of your project:"
+#~ "<![CDATA[ private void printEventForm(PrintWriter out) {\n"
+#~ " out.println(\"<h2>Add new event:</h2>\");\n"
+#~ " out.println(\"<form>\");\n"
+#~ " out.println(\"Title: <input name='eventTitle' length='50'/><br/>"
+#~ "\");\n"
+#~ " out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' "
+#~ "length='10'/><br/>\");\n"
+#~ " out.println(\"<input type='submit' name='action' value='store'/>"
+#~ "\");\n"
+#~ " out.println(\"</form>\");\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "è¿æ®µä»£ç å¨ä½ çå¼åç®å½ä¸å建ä¸ä¸ª<literal>hibernate-tutorial.war</literal>"
-#~ "çæä»¶ã宿ææçç±»åºå<literal>web.xml</literal>æè¿°æä»¶é½æå
è¿å»ï¼web."
-#~ "xml æä»¶åºè¯¥ä½äºä½ çå¼åæ ¹ç®å½ä¸ï¼"
+#~ "private void printEventForm(PrintWriter out) {\n"
+#~ " out.println(\"<h2>Add new event:</h2>\");\n"
+#~ " out.println(\"<form>\");\n"
+#~ " out.println(\"Title: <input name='eventTitle' length='50'/><"
+#~ "br/>\");\n"
+#~ " out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' "
+#~ "length='10'/><br/>\");\n"
+#~ " out.println(\"<input type='submit' name='action' value='store'/>"
+#~ "\");\n"
+#~ " out.println(\"</form>\");\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "Before you compile and deploy the web application, note that an "
-#~ "additional library is required: <literal>jsdk.jar</literal>. This is the "
-#~ "Java servlet development kit, if you don't have this library already, get "
-#~ "it from the Sun website and copy it to your library directory. However, "
-#~ "it will be only used for compliation and excluded from the WAR package."
+#~ "<![CDATA[ private void listEvents(PrintWriter out, SimpleDateFormat "
+#~ "dateFormatter) {\n"
+#~ "\n"
+#~ " List result = HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().createCriteria(Event.class).list();\n"
+#~ " if (result.size() > 0) {\n"
+#~ " out.println(\"<h2>Events in database:</h2>\");\n"
+#~ " out.println(\"<table border='1'>\");\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<th>Event title</th>\");\n"
+#~ " out.println(\"<th>Event date</th>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " Iterator it = result.iterator();\n"
+#~ " while (it.hasNext()) {\n"
+#~ " Event event = (Event) it.next();\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<td>\" + event.getTitle() + \"</td>\");\n"
+#~ " out.println(\"<td>\" + dateFormatter.format(event.getDate"
+#~ "()) + \"</td>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " }\n"
+#~ " out.println(\"</table>\");\n"
+#~ " }\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "请注æå¨ä½ ç¼è¯åé¨ç½²webåºç¨ç¨ä¹åï¼éè¦ä¸ä¸ªéå çç±»åºï¼<literal>jsdk.jar</"
-#~ "literal>ãè¿æ¯Java Servletå¼åå
ï¼åè¥ä½ è¿æ²¡æï¼å¯ä»¥ä»Sunç½ç«ä¸ä¸è½½ï¼æå®"
-#~ "copyå°ä½ çlibç®å½ã使¯ï¼å®ä»
ä»
æ¯å¨ç¼è¯æ¶éè¦ï¼ä¸ä¼è¢«æå
¥WARå
ã"
+#~ "private void listEvents(PrintWriter out, SimpleDateFormat dateFormatter) "
+#~ "{\n"
+#~ "\n"
+#~ " List result = HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().createCriteria(Event.class).list"
+#~ "();\n"
+#~ " if (result.size() > 0) {\n"
+#~ " out.println(\"<h2>Events in database:</h2>\");\n"
+#~ " out.println(\"<table border='1'>\");\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<th>Event title</th>\");\n"
+#~ " out.println(\"<th>Event date</th>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " for (Iterator it = result.iterator(); it.hasNext();) {\n"
+#~ " Event event = (Event) it.next();\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<td>\" + event.getTitle() + \"</td>"
+#~ "\");\n"
+#~ " out.println(\"<td>\" + dateFormatter.format(event."
+#~ "getDate()) + \"</td>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " }\n"
+#~ " out.println(\"</table>\");\n"
+#~ " }\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "If you already feel confident with Hibernate, continue browsing through "
-#~ "the reference documentation table of contents for topics you find "
-#~ "interesting - most asked are transactional processing (<xref linkend="
-#~ "\"transactions\"/>), fetch performance (<xref linkend=\"performance\"/>), "
-#~ "or the usage of the API (<xref linkend=\"objectstate\"/>) and the query "
-#~ "features (<xref linkend=\"objectstate-querying\"/>)."
+#~ "<![CDATA[ protected void createAndStoreEvent(String title, Date "
+#~ "theDate) {\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().save(theEvent);\n"
+#~ " }]]>"
#~ msgstr ""
-#~ "å¦æä½ å·²ç»å¯¹Hibernateæå°èªä¿¡ï¼éè¿å¼åæåç®å½ï¼ç»§ç»æµè§ä½ æå
´è¶£çå
容ï¼"
-#~ "é£äºä¼è¢«é®å°çé®é¢å¤§å¤æ¯äºå¡å¤ç (<xref linkend=\"transactions\"/>)ï¼æå"
-#~ "ï¼fetchï¼çæç (<xref linkend=\"performance\"/>)ï¼æè
APIçä½¿ç¨ (<xref "
-#~ "linkend=\"objectstate\"/>)åæ¥è¯¢çç¹æ§(<xref linkend=\"objectstate-"
-#~ "querying\"/>)ã"
+#~ "protected void createAndStoreEvent(String title, Date theDate) {\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().save(theEvent);\n"
+#~ "}"
+#, fuzzy
#~ msgid ""
-#~ "Don't forget to check the Hibernate website for more (specialized) "
-#~ "tutorials."
-#~ msgstr "å«å¿äºå»Hibernateçç½ç«æ¥çæ´å¤ï¼æé对æ§çï¼ç¤ºä¾ã"
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun."
+#~ "com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>org.hibernate.tutorial.web.EventManagerServlet</"
+#~ "servlet-class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee\n"
+#~ " http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>events.EventManagerServlet</servlet-"
+#~ "class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>"
+
Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/xml.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/xml.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/xml.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,432 +1,441 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: Collection_Mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"PO-Revision-Date: 2009-12-07 21:18+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
-#: xml.xml:29
#, no-c-format
msgid "XML Mapping"
-msgstr "XMLæ å°"
+msgstr "XML æ å°"
-#. Tag: emphasis
-#: xml.xml:31
-#, fuzzy, no-c-format
-msgid ""
-"XML Mapping is an experimental feature in Hibernate 3.0 and is currently "
-"under active development."
-msgstr "注æè¿æ¯Hibernate 3.0çä¸ä¸ªå®éªæ§çç¹æ§ãè¿ä¸ç¹æ§ä»å¨ç§¯æå¼åä¸ã"
+#. Tag: para
+#, 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
-#: xml.xml:37
#, no-c-format
msgid "Working with XML data"
-msgstr "ç¨XMLæ°æ®è¿è¡å·¥ä½"
+msgstr "ç¨ XML æ°æ®è¿è¡å·¥ä½"
#. Tag: para
-#: xml.xml:39
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate allows you to work with persistent XML data in much the same way "
-"you work with persistent POJOs. A parsed XML tree can be thought of as "
-"another way of representing the relational data at the object level, instead "
-"of POJOs."
-msgstr ""
-"Hibernate使å¾ä½ å¯ä»¥ç¨XMLæ°æ®æ¥è¿è¡å·¥ä½ï¼æ°å¦ä½ ç¨æä¹
åçPOJOè¿è¡å·¥ä½é£æ ·ãè§£"
-"æè¿çXMLæ å¯ä»¥è¢«è®¤ä¸ºæ¯ä»£æ¿POJOçå¦å¤ä¸ç§å¨å¯¹è±¡å±é¢ä¸è¡¨ç¤ºå
³ç³»åæ°æ®çéå¾."
+#, no-c-format
+msgid "Hibernate allows you to work with persistent XML data in much the same way you work with persistent POJOs. A parsed XML tree can be thought of as another way of representing the relational data at the object level, instead of POJOs."
+msgstr "Hibernate 使å¾ä½ å¯ä»¥ç¨ XML æ°æ®æ¥è¿è¡å·¥ä½ï¼æ°å¦ä½ ç¨æä¹
åç POJO è¿è¡å·¥ä½é£æ ·ãè§£æè¿ç XML æ å¯ä»¥è¢«è®¤ä¸ºæ¯ä»£æ¿ POJO çå¦å¤ä¸ç§å¨å¯¹è±¡å±é¢ä¸è¡¨ç¤ºå
³ç³»åæ°æ®çéå¾ã"
#. Tag: para
-#: xml.xml:46
#, no-c-format
-msgid ""
-"Hibernate supports dom4j as API for manipulating XML trees. You can write "
-"queries that retrieve dom4j trees from the database and have any "
-"modification you make to the tree automatically synchronized to the "
-"database. You can even take an XML document, parse it using dom4j, and write "
-"it to the database with any of Hibernate's basic operations: <literal>persist"
-"(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not "
-"yet supported)."
-msgstr ""
-"Hibernateæ¯æéç¨dom4jä½ä¸ºæä½XMLæ çAPIãä½ å¯ä»¥åä¸äºæ¥è¯¢ä»æ°æ®åºä¸æ£ç´¢åº "
-"dom4jæ ï¼éåä½ å¯¹è¿é¢æ åçä»»ä½ä¿®æ¹é½å°èªå¨åæ¥åæ°æ®åºãä½ çè³å¯ä»¥ç¨dom4jè§£"
-"æ ä¸ç¯XMLææ¡£ï¼ç¶å使ç¨Hibernateçä»»ä¸åºæ¬æä½å°å®åå
¥æ°æ®åºï¼ "
-"<literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> "
-"(åå¹¶æä½merge()ç®åè¿ä¸æ¯æ)ã"
+msgid "Hibernate supports dom4j as API for manipulating XML trees. You can write queries that retrieve dom4j trees from the database and have any modification you make to the tree automatically synchronized to the database. You can even take an XML document, parse it using dom4j, and write it to the database with any of Hibernate's basic operations: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not yet supported)."
+msgstr "Hibernate æ¯æéç¨ dom4j ä½ä¸ºæä½ XML æ ç APIãä½ å¯ä»¥åä¸äºæ¥è¯¢ä»æ°æ®åºä¸æ£ç´¢åº dom4j æ ï¼éåä½ å¯¹è¿é¢æ åçä»»ä½ä¿®æ¹é½å°èªå¨åæ¥åæ°æ®åºãä½ çè³å¯ä»¥ç¨ dom4j è§£æ ä¸ç¯ XML ææ¡£ï¼ç¶åä½¿ç¨ Hibernate çä»»ä¸åºæ¬æä½å°å®åå
¥æ°æ®åºï¼<literal>persist()ï¼saveOrUpdate()ï¼merge()ï¼delete()ï¼replicate()</literal> ï¼åå¹¶æä½merge()ç®åè¿ä¸æ¯æï¼ã"
#. Tag: para
-#: xml.xml:56
#, no-c-format
-msgid ""
-"This feature has many applications including data import/export, "
-"externalization of entity data via JMS or SOAP and XSLT-based reporting."
-msgstr ""
-"è¿ä¸ç¹æ§å¯ä»¥åºç¨å¨å¾å¤åºåï¼å
æ¬æ°æ®å¯¼å
¥å¯¼åºï¼éè¿JMSæSOAPå
·ä½åå®ä½æ°æ®ä»¥"
-"å åºäºXSLTçæ¥è¡¨ã"
+msgid "This feature has many applications including data import/export, externalization of entity data via JMS or SOAP and XSLT-based reporting."
+msgstr "è¿ä¸ç¹æ§å¯ä»¥åºç¨å¨å¾å¤åºåï¼å
æ¬æ°æ®å¯¼å
¥å¯¼åºï¼éè¿ JMS æ SOAP å
·ä½åå®ä½æ°æ®ä»¥å åºäº XSLT çæ¥è¡¨ã"
#. Tag: para
-#: xml.xml:61
-#, fuzzy, no-c-format
-msgid ""
-"A single mapping can be used to simultaneously map properties of a class and "
-"nodes of an XML document to the database, or, if there is no class to map, "
-"it can be used to map just the XML."
-msgstr ""
-"ä¸ä¸ªåä¸çæ å°å°±å¯ä»¥å°ç±»ç屿§åXMLææ¡£çèç¹åæ¶æ å°å°æ°æ®åºã妿ä¸éè¦æ å°"
-"ç±»ï¼ å®ä¹å¯ä»¥ç¨æ¥åªæ å°XMLææ¡£ã"
+#, no-c-format
+msgid "A single mapping can be used to simultaneously map properties of a class and nodes of an XML document to the database, or, if there is no class to map, it can be used to map just the XML."
+msgstr "ä¸ä¸ªåä¸çæ å°å°±å¯ä»¥å°ç±»ç屿§å XML ææ¡£çèç¹åæ¶æ å°å°æ°æ®åºã妿ä¸éè¦æ å°ç±»ï¼å®ä¹å¯ä»¥ç¨æ¥åªæ å° XML ææ¡£ã "
#. Tag: title
-#: xml.xml:68
#, no-c-format
msgid "Specifying XML and class mapping together"
-msgstr "æå®åæ¶æ å°XMLåç±»"
+msgstr "æå®åæ¶æ å° XML åç±»"
#. Tag: para
-#: xml.xml:70
#, no-c-format
msgid "Here is an example of mapping a POJO and XML simultaneously:"
-msgstr "è¿æ¯ä¸ä¸ªåæ¶æ å°POJOåXMLçä¾åï¼"
+msgstr "è¿æ¯ä¸ä¸ªåæ¶æ å° POJO å XML çä¾åï¼"
-#. Tag: programlisting
-#: xml.xml:74
-#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Account\" \n"
-" table=\"ACCOUNTS\" \n"
-" node=\"account\">\n"
-" \n"
-" <id name=\"accountId\" \n"
-" column=\"ACCOUNT_ID\" \n"
-" node=\"@id\"/>\n"
-" \n"
-" <many-to-one name=\"customer\" \n"
-" column=\"CUSTOMER_ID\" \n"
-" node=\"customer/@id\" \n"
-" embed-xml=\"false\"/>\n"
-" \n"
-" <property name=\"balance\" \n"
-" column=\"BALANCE\" \n"
-" node=\"balance\"/>\n"
-" \n"
-" ...\n"
-" \n"
-"</class>]]>"
-msgstr ""
-
#. Tag: title
-#: xml.xml:78
#, no-c-format
msgid "Specifying only an XML mapping"
-msgstr "åªå®ä¹XMLæ å°"
+msgstr "åªå®ä¹ XML æ å°"
#. Tag: para
-#: xml.xml:80
#, no-c-format
msgid "Here is an example where there is no POJO class:"
-msgstr "è¿æ¯ä¸ä¸ªä¸æ å°POJOçä¾åï¼"
+msgstr "è¿æ¯ä¸ä¸ªä¸æ å° POJO çä¾åï¼"
-#. Tag: programlisting
-#: xml.xml:84
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[<class entity-name=\"Account\" \n"
-" table=\"ACCOUNTS\" \n"
-" node=\"account\">\n"
-" \n"
-" <id name=\"id\" \n"
-" column=\"ACCOUNT_ID\" \n"
-" node=\"@id\" \n"
-" type=\"string\"/>\n"
-" \n"
-" <many-to-one name=\"customerId\" \n"
-" column=\"CUSTOMER_ID\" \n"
-" node=\"customer/@id\" \n"
-" embed-xml=\"false\" \n"
-" entity-name=\"Customer\"/>\n"
-" \n"
-" <property name=\"balance\" \n"
-" column=\"BALANCE\" \n"
-" node=\"balance\" \n"
-" type=\"big_decimal\"/>\n"
-" \n"
-" ...\n"
-" \n"
-"</class>]]>"
-msgstr ""
+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: para
-#: xml.xml:86
-#, fuzzy, no-c-format
-msgid ""
-"This mapping allows you to access the data as a dom4j tree, or as a graph of "
-"property name/value pairs or java <literal>Map</literal>s. The property "
-"names are purely logical constructs that can be referred to in HQL queries."
-msgstr ""
-"è¿ä¸ªæ å°ä½¿å¾ä½ æ¢å¯ä»¥ææ°æ®ä½ä¸ºä¸æ£µdom4jæ 飿 ·è®¿é®ï¼åå¯ä»¥ä½ä¸ºç±å±æ§é®å¼å¯¹"
-"(java <literal>Map</literal>s) ç»æçå¾é£æ ·è®¿é®ã屿§åå纯粹æ¯é»è¾ä¸çç»æï¼"
-"ä½ å¯ä»¥å¨HQLæ¥è¯¢ä¸å¼ç¨å®ã"
-
#. Tag: title
-#: xml.xml:97
#, no-c-format
msgid "XML mapping metadata"
-msgstr "XMLæ å°å
æ°æ®"
+msgstr "XML æ å°å
æ°æ®"
#. Tag: para
-#: xml.xml:99
-#, fuzzy, no-c-format
-msgid ""
-"A range of Hibernate mapping elements accept the <literal>node</literal> "
-"attribute. This lets you specify the name of an XML attribute or element "
-"that holds the property or entity data. The format of the <literal>node</"
-"literal> attribute must be one of the following:"
-msgstr ""
-"许å¤Hibernateæ å°å
ç´ å
·æ<literal>node</literal>屿§ãè¿ä½¿ä½ å¯ä»¥æå®ç¨æ¥ä¿å "
-"屿§æå®ä½æ°æ®çXML屿§æå
ç´ ã<literal>node</literal>屿§å¿
é¡»æ¯ä¸åæ ¼å¼ä¹"
-"ä¸ï¼"
+#, no-c-format
+msgid "A range of Hibernate mapping elements accept the <literal>node</literal> attribute. This lets you specify the name of an XML attribute or element that holds the property or entity data. The format of the <literal>node</literal> attribute must be one of the following:"
+msgstr "è®¸å¤ Hibernate æ å°å
ç´ å
·æ <literal>node</literal> 屿§ãè¿ä½¿ä½ å¯ä»¥æå®ç¨æ¥ä¿å 屿§æå®ä½æ°æ®ç XML 屿§æå
ç´ ã<literal>node</literal> 屿§å¿
é¡»æ¯ä¸åæ ¼å¼ä¹ä¸ï¼ "
#. Tag: para
-#: xml.xml:108
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>\"element-name\"</literal>: map to the named XML element"
-msgstr "<literal>\"element-name\"</literal> - æ å°ä¸ºæå®çXMLå
ç´ "
+msgstr "<literal>\"element-name\"</literal>ï¼æ å°ä¸ºæå®ç XML å
ç´ "
#. Tag: para
-#: xml.xml:111
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
-msgstr "<literal>\"@attribute-name\"</literal> - æ å°ä¸ºæå®çXML屿§"
+msgstr "<literal>\"@attribute-name\"</literal>ï¼æ å°ä¸ºæå®ç XML 屿§"
#. Tag: para
-#: xml.xml:114
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<literal>\".\"</literal>: map to the parent element"
-msgstr "<literal>\".\"</literal> - æ å°ä¸ºç¶å
ç´ "
+msgstr "<literal>\".\"</literal>ï¼æ å°ä¸ºç¶å
ç´ "
#. Tag: para
-#: xml.xml:117
-#, fuzzy, no-c-format
-msgid ""
-"<literal>\"element-name/@attribute-name\"</literal>: map to the named "
-"attribute of the named element"
-msgstr ""
-"<literal>\"element-name/@attribute-name\"</literal> - æ å°ä¸ºæå®å
ç´ çæå®å±"
-"æ§"
+#, no-c-format
+msgid "<literal>\"element-name/@attribute-name\"</literal>: map to the named attribute of the named element"
+msgstr "<literal>\"element-name/@attribute-name\"</literal>ï¼æ å°ä¸ºæå®å
ç´ çæå®å±æ§"
#. Tag: para
-#: xml.xml:124
-#, fuzzy, no-c-format
-msgid ""
-"For collections and single valued associations, there is an additional "
-"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
-"literal>, the default, the XML tree for the associated entity (or collection "
-"of value type) will be embedded directly in the XML tree for the entity that "
-"owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, "
-"then only the referenced identifier value will appear in the XML for single "
-"point associations and collections will not appear at all."
-msgstr ""
-"对äºéåååå¼çå
³èï¼æä¸ä¸ªé¢å¤ç<literal>embed-xml</literal>屿§å¯ç¨ã è¿ä¸ª"
-"屿§ç缺ç弿¯ç(<literal>embed-xml=\"true\"</literal>)ã妿<literal>embed-"
-"xml=\"true\"</literal>ï¼ å对åºäºè¢«å
³èå®ä½æå¼ç±»åçéåçXMLæ å°ç´æ¥åµå
¥æ¥"
-"æè¿äºå
³èçå®ä½çXMLæ ä¸ã å¦åï¼å¦æ<literal>embed-xml=\"false\"</"
-"literal>ï¼é£ä¹å¯¹äºåå¼çå
³èï¼ä»
被å¼ç¨çå®ä½çæ è¯ç¬¦åºç°å¨ XMLæ ä¸(被å¼ç¨å®ä½"
-"æ¬èº«ä¸åºç°)ï¼èéååæ ¹æ¬ä¸åºç°ã"
+#, no-c-format
+msgid "For collections and single valued associations, there is an additional <literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</literal>, the default, the XML tree for the associated entity (or collection of value type) will be embedded directly in the XML tree for the entity that owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, then only the referenced identifier value will appear in the XML for single point associations and collections will not appear at all."
+msgstr "对äºéåååå¼çå
³èï¼æä¸ä¸ªé¢å¤ç <literal>embed-xml</literal> 屿§å¯ç¨ãè¿ä¸ªå±æ§ç缺ç弿¯çï¼<literal>embed-xml=\"true\"</literal>ï¼ã妿 <literal>embed-xml=\"true\"</literal>ï¼å对åºäºè¢«å
³èå®ä½æå¼ç±»åçéåçXMLæ å°ç´æ¥åµå
¥æ¥æè¿äºå
³èçå®ä½ç XML æ ä¸ãå¦åï¼å¦æ <literal>embed-xml=\"false\"</literal>ï¼é£ä¹å¯¹äºåå¼çå
³èï¼ä»
被å¼ç¨çå®ä½çæ è¯ç¬¦åºç°å¨ XML æ ä¸ï¼è¢«å¼ç¨å®ä½æ¬èº«ä¸åºç°ï¼ï¼èéååæ ¹æ¬ä¸åºç°ã"
#. Tag: para
-#: xml.xml:134
-#, fuzzy, no-c-format
-msgid ""
-"Do not leave <literal>embed-xml=\"true\"</literal> for too many "
-"associations, since XML does not deal well with circularity."
-msgstr ""
-"ä½ åºè¯¥å°å¿ï¼ä¸è¦è®©å¤ªå¤å
³èçembed-xml屿§ä¸ºç(<literal>embed-xml=\"true\"</"
-"literal>)ï¼å 为XMLä¸è½å¾å¥½å°å¤ç 循ç¯å¼ç¨!"
-
-#. Tag: programlisting
-#: xml.xml:139
#, no-c-format
-msgid ""
-"<![CDATA[<class name=\"Customer\" \n"
-" table=\"CUSTOMER\" \n"
-" node=\"customer\">\n"
-" \n"
-" <id name=\"id\" \n"
-" column=\"CUST_ID\" \n"
-" node=\"@id\"/>\n"
-" \n"
-" <map name=\"accounts\" \n"
-" node=\".\" \n"
-" embed-xml=\"true\">\n"
-" <key column=\"CUSTOMER_ID\" \n"
-" not-null=\"true\"/>\n"
-" <map-key column=\"SHORT_DESC\" \n"
-" node=\"@short-desc\" \n"
-" type=\"string\"/>\n"
-" <one-to-many entity-name=\"Account\"\n"
-" embed-xml=\"false\" \n"
-" node=\"account\"/>\n"
-" </map>\n"
-" \n"
-" <component name=\"name\" \n"
-" node=\"name\">\n"
-" <property name=\"firstName\" \n"
-" node=\"first-name\"/>\n"
-" <property name=\"initial\" \n"
-" node=\"initial\"/>\n"
-" <property name=\"lastName\" \n"
-" node=\"last-name\"/>\n"
-" </component>\n"
-" \n"
-" ...\n"
-" \n"
-"</class>]]>"
-msgstr ""
+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
-#: xml.xml:141
-#, fuzzy, no-c-format
-msgid ""
-"In this case, the collection of account ids is embedded, but not the actual "
-"account data. The following HQL query:"
-msgstr ""
-"å¨è¿ä¸ªä¾åä¸ï¼æä»¬å³å®åµå
¥å¸ç®å·ç (account id)çéåï¼ä½ä¸åµå
¥å®é
çå¸ç®æ°"
-"æ®ãä¸é¢çHQLæ¥è¯¢ï¼"
-
-#. Tag: programlisting
-#: xml.xml:146
#, no-c-format
-msgid ""
-"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
-"lastName]]>"
-msgstr ""
+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
-#: xml.xml:148
-#, fuzzy, no-c-format
+#, no-c-format
msgid "would return datasets such as this:"
-msgstr "è¿åçæ°æ®éå°æ¯è¿æ ·ï¼"
+msgstr "è¿åçæ°æ®éå°æ¯è¿æ ·ï¼ "
-#. Tag: programlisting
-#: xml.xml:152
-#, no-c-format
-msgid ""
-"<![CDATA[<customer id=\"123456789\">\n"
-" <account short-desc=\"Savings\">987632567</account>\n"
-" <account short-desc=\"Credit Card\">985612323</account>\n"
-" <name>\n"
-" <first-name>Gavin</first-name>\n"
-" <initial>A</initial>\n"
-" <last-name>King</last-name>\n"
-" </name>\n"
-" ...\n"
-"</customer>]]>"
-msgstr ""
-
#. Tag: para
-#: xml.xml:154
#, no-c-format
-msgid ""
-"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
-"many></literal> mapping, the data might look more like this:"
-msgstr ""
-"å¦æä½ æä¸å¯¹å¤æ å°<literal><one-to-many></literal>çembed-xml屿§ç½®ä¸ºç"
-"(<literal>embed-xml=\"true\"</literal>)ï¼ åæ°æ®çä¸å»å°±åè¿æ ·ï¼"
+msgid "If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-many></literal> mapping, the data might look more like this:"
+msgstr "å¦æä½ æä¸å¯¹å¤æ å° <literal><one-to-many></literal> ç embed-xml 屿§ç½®ä¸ºçï¼<literal>embed-xml=\"true\"</literal>ï¼ï¼åæ°æ®çä¸å»å°±åè¿æ ·ï¼"
-#. Tag: programlisting
-#: xml.xml:159
-#, no-c-format
-msgid ""
-"<![CDATA[<customer id=\"123456789\">\n"
-" <account id=\"987632567\" short-desc=\"Savings\">\n"
-" <customer id=\"123456789\"/>\n"
-" <balance>100.29</balance>\n"
-" </account>\n"
-" <account id=\"985612323\" short-desc=\"Credit Card\">\n"
-" <customer id=\"123456789\"/>\n"
-" <balance>-2370.34</balance>\n"
-" </account>\n"
-" <name>\n"
-" <first-name>Gavin</first-name>\n"
-" <initial>A</initial>\n"
-" <last-name>King</last-name>\n"
-" </name>\n"
-" ...\n"
-"</customer>]]>"
-msgstr ""
-
#. Tag: title
-#: xml.xml:165
#, no-c-format
msgid "Manipulating XML data"
-msgstr "æä½XMLæ°æ®"
+msgstr "æä½ XML æ°æ®"
#. Tag: para
-#: xml.xml:167
-#, fuzzy, no-c-format
-msgid ""
-"You can also re-read and update XML documents in the application. You can do "
-"this by obtaining a dom4j session:"
-msgstr ""
-"让æä»¬æ¥è¯»å
¥åæ´æ°åºç¨ç¨åºä¸çXMLææ¡£ãéè¿è·åä¸ä¸ªdom4jä¼è¯å¯ä»¥åå°è¿ä¸ç¹ï¼"
-
-#. Tag: programlisting
-#: xml.xml:172
#, no-c-format
-msgid ""
-"<![CDATA[Document doc = ....;\n"
-" \n"
-"Session session = factory.openSession();\n"
-"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
-"Transaction tx = session.beginTransaction();\n"
-"\n"
-"List results = dom4jSession\n"
-" .createQuery(\"from Customer c left join fetch c.accounts where c."
-"lastName like :lastName\")\n"
-" .list();\n"
-"for ( int i=0; i<results.size(); i++ ) {\n"
-" //add the customer data to the XML document\n"
-" Element customer = (Element) results.get(i);\n"
-" doc.add(customer);\n"
-"}\n"
-"\n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+msgid "You can also re-read and update XML documents in the application. You can do this by obtaining a dom4j session:"
+msgstr "ä½ ä¹å¯ä»¥éæ°è¯»å
¥åæ´æ°åºç¨ç¨åºä¸ç XML ææ¡£ãéè¿è·åä¸ä¸ª dom4j ä¼è¯å¯ä»¥åå°è¿ä¸ç¹ï¼"
-#. Tag: programlisting
-#: xml.xml:174
+#. Tag: para
#, no-c-format
-msgid ""
-"<![CDATA[Session session = factory.openSession();\n"
-"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
-"Transaction tx = session.beginTransaction();\n"
-"\n"
-"Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
-"for ( int i=0; i<results.size(); i++ ) {\n"
-" Element customer = (Element) results.get(i);\n"
-" //change the customer name in the XML and database\n"
-" Element name = customer.element(\"name\");\n"
-" name.element(\"first-name\").setText(firstName);\n"
-" name.element(\"initial\").setText(initial);\n"
-" name.element(\"last-name\").setText(lastName);\n"
-"}\n"
-"\n"
-"tx.commit();\n"
-"session.close();]]>"
-msgstr ""
+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 çæ°æ®å¯¼å
¥/导åºå°é常æç¨ã"
-#. Tag: para
-#: xml.xml:176
-#, fuzzy, no-c-format
-msgid ""
-"When implementing XML-based data import/export, it is useful to combine this "
-"feature with Hibernate's <literal>replicate()</literal> operation."
-msgstr ""
-"å°è¿ä¸ç¹è²ä¸Hibernateç<literal>replicate()</literal>æä½ç»åèµ·æ¥å¯¹äºå®ç°çåº"
-"äºXMLçæ°æ®å¯¼å
¥/导åºå°é常æç¨."
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"accountId\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"accountId\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class entity-name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\" \n"
+#~ " type=\"string\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customerId\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\" \n"
+#~ " entity-name=\"Customer\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\" \n"
+#~ " type=\"big_decimal\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class entity-name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\" \n"
+#~ " type=\"string\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customerId\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\" \n"
+#~ " entity-name=\"Customer\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\" \n"
+#~ " type=\"big_decimal\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\" \n"
+#~ " table=\"CUSTOMER\" \n"
+#~ " node=\"customer\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"CUST_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <map name=\"accounts\" \n"
+#~ " node=\".\" \n"
+#~ " embed-xml=\"true\">\n"
+#~ " <key column=\"CUSTOMER_ID\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"SHORT_DESC\" \n"
+#~ " node=\"@short-desc\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many entity-name=\"Account\"\n"
+#~ " embed-xml=\"false\" \n"
+#~ " node=\"account\"/>\n"
+#~ " </map>\n"
+#~ " \n"
+#~ " <component name=\"name\" \n"
+#~ " node=\"name\">\n"
+#~ " <property name=\"firstName\" \n"
+#~ " node=\"first-name\"/>\n"
+#~ " <property name=\"initial\" \n"
+#~ " node=\"initial\"/>\n"
+#~ " <property name=\"lastName\" \n"
+#~ " node=\"last-name\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Customer\" \n"
+#~ " table=\"CUSTOMER\" \n"
+#~ " node=\"customer\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"CUST_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <map name=\"accounts\" \n"
+#~ " node=\".\" \n"
+#~ " embed-xml=\"true\">\n"
+#~ " <key column=\"CUSTOMER_ID\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"SHORT_DESC\" \n"
+#~ " node=\"@short-desc\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many entity-name=\"Account\"\n"
+#~ " embed-xml=\"false\" \n"
+#~ " node=\"account\"/>\n"
+#~ " </map>\n"
+#~ " \n"
+#~ " <component name=\"name\" \n"
+#~ " node=\"name\">\n"
+#~ " <property name=\"firstName\" \n"
+#~ " node=\"first-name\"/>\n"
+#~ " <property name=\"initial\" \n"
+#~ " node=\"initial\"/>\n"
+#~ " <property name=\"lastName\" \n"
+#~ " node=\"last-name\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " ...\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"
+#~ " <account short-desc=\"Credit Card\">985612323</account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<customer id=\"123456789\">\n"
+#~ " <account short-desc=\"Savings\">987632567</account>\n"
+#~ " <account short-desc=\"Credit Card\">985612323</account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgid ""
+#~ "<![CDATA[<customer id=\"123456789\">\n"
+#~ " <account id=\"987632567\" short-desc=\"Savings\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>100.29</balance>\n"
+#~ " </account>\n"
+#~ " <account id=\"985612323\" short-desc=\"Credit Card\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>-2370.34</balance>\n"
+#~ " </account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<customer id=\"123456789\">\n"
+#~ " <account id=\"987632567\" short-desc=\"Savings\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>100.29</balance>\n"
+#~ " </account>\n"
+#~ " <account id=\"985612323\" short-desc=\"Credit Card\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>-2370.34</balance>\n"
+#~ " </account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgid ""
+#~ "<![CDATA[Document doc = ....;\n"
+#~ " \n"
+#~ "Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "List results = dom4jSession\n"
+#~ " .createQuery(\"from Customer c left join fetch c.accounts where c."
+#~ "lastName like :lastName\")\n"
+#~ " .list();\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " //add the customer data to the XML document\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " doc.add(customer);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Document doc = ....;\n"
+#~ " \n"
+#~ "Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "List results = dom4jSession\n"
+#~ " .createQuery(\"from Customer c left join fetch c.accounts where c."
+#~ "lastName like :lastName\")\n"
+#~ " .list();\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " //add the customer data to the XML document\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " doc.add(customer);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " //change the customer name in the XML and database\n"
+#~ " Element name = customer.element(\"name\");\n"
+#~ " name.element(\"first-name\").setText(firstName);\n"
+#~ " name.element(\"initial\").setText(initial);\n"
+#~ " name.element(\"last-name\").setText(lastName);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " //change the customer name in the XML and database\n"
+#~ " Element name = customer.element(\"name\");\n"
+#~ " name.element(\"first-name\").setText(firstName);\n"
+#~ " name.element(\"initial\").setText(initial);\n"
+#~ " name.element(\"last-name\").setText(lastName);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
Added: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Conventions.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,214 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2009-12-11T05:07:40\n"
+"PO-Revision-Date: 2009-12-11T05:07:40\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr ""
+
Added: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Feedback.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,34 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2009-12-11T05:07:40\n"
+"PO-Revision-Date: 2009-12-11T05:07:40\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr ""
+
+#. Tag: primary
+#, no-c-format
+msgid "feedback"
+msgstr ""
+
+#. Tag: secondary
+#, no-c-format
+msgid "contact information for this manual"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr ""
+
Added: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po (rev 0)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -0,0 +1,19 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2009-12-11T05:07:40\n"
+"PO-Revision-Date: 2009-12-11T05:07:40\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; 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 ""
+
Deleted: core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/legal_notice.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/legal_notice.po 2010-02-08 06:25:06 UTC (rev 18724)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/legal_notice.po 2010-02-08 06:30:52 UTC (rev 18725)
@@ -1,84 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-16 18:47+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-
-#. Tag: title
-#: legal_notice.xml:28
-#, no-c-format
-msgid "Legal Notice"
-msgstr "Legal Notice"
-
-#. Tag: address
-#: legal_notice.xml:30
-#, no-c-format
-msgid ""
-"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
-"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
-"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
-"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
-"<state>NC</state><postcode>27709</postcode><country>USA</country>"
-msgstr ""
-"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
-"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
-"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
-"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
-"<state>NC</state><postcode>27709</postcode><country>USA</country>"
-
-#. Tag: para
-#: legal_notice.xml:39
-#, fuzzy, no-c-format
-msgid ""
-"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
-"This copyrighted material is made available to anyone wishing to use, "
-"modify, copy, or redistribute it subject to the terms and conditions of the "
-"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
-"Public License</ulink>, as published by the Free Software Foundation."
-msgstr ""
-"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
-"This copyrighted material is made available to anyone wishing to use, "
-"modify, copy, or redistribute it subject to the terms and conditions of the "
-"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
-"Public License</ulink>, as published by the Free Software Foundation."
-
-#. Tag: para
-#: legal_notice.xml:45
-#, no-c-format
-msgid ""
-"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
-"Hat, Inc. in the United States and other countries."
-msgstr ""
-"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
-"Hat, Inc. in the United States and other countries."
-
-#. Tag: para
-#: legal_notice.xml:48
-#, no-c-format
-msgid ""
-"All other trademarks referenced herein are the property of their respective "
-"owners."
-msgstr ""
-"All other trademarks referenced herein are the property of their respective "
-"owners."
-
-#. Tag: para
-#: legal_notice.xml:51
-#, no-c-format
-msgid "The GPG fingerprint of the security at redhat.com key is:"
-msgstr "The GPG fingerprint of the security at redhat.com key is:"
-
-#. Tag: para
-#: legal_notice.xml:54
-#, no-c-format
-msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
-msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
-
-#~ msgid "ROLES_OF_TRANSLATORS"
-#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-#~ msgid "CREDIT_FOR_TRANSLATORS"
-#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
More information about the hibernate-commits
mailing list