[hibernate-commits] Hibernate SVN: r18772 - in core/branches/Branch_3_3/documentation/manual/src/main/docbook: de-DE/content and 15 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Feb 10 21:42:20 EST 2010


Author: rwilding
Date: 2010-02-10 21:42:15 -0500 (Wed, 10 Feb 2010)
New Revision: 18772

Modified:
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Author_Group.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Book_Info.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Revision_History.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/Preface.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/architecture.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/association_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/basic_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/batch.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/best_practices.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/collection_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/component_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/configuration.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/events.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_mappings.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_parentchild.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_weblog.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/filters.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/inheritance_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/performance.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/persistent_classes.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/portability.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_criteria.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_hql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_sql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/session_api.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/toolset_guide.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/transactions.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/tutorial.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/xml.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Author_Group.xml
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Book_Info.xml
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.ent
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.xml
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Author_Group.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Book_Info.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Revision_History.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/Preface.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/architecture.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/association_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/basic_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/batch.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/best_practices.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/collection_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/component_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/configuration.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/events.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_mappings.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_parentchild.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_weblog.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/filters.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/inheritance_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/performance.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/persistent_classes.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/portability.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_criteria.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_hql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_sql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/session_api.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/toolset_guide.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/transactions.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/tutorial.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/xml.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Author_Group.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Book_Info.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Revision_History.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/Preface.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/architecture.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/association_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/basic_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/batch.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/best_practices.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/collection_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/component_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/configuration.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/events.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_mappings.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_parentchild.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_weblog.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/filters.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/inheritance_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/performance.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/persistent_classes.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/portability.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_criteria.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_hql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_sql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/session_api.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/toolset_guide.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/transactions.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/tutorial.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/xml.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Author_Group.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Book_Info.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Revision_History.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/Preface.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/architecture.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/association_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/basic_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/batch.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/best_practices.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/collection_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/component_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/configuration.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/events.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_mappings.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_parentchild.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_weblog.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/filters.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/inheritance_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/performance.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/persistent_classes.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/portability.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_criteria.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_hql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_sql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/session_api.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/toolset_guide.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/transactions.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/tutorial.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/xml.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/architecture.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/association_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/basic_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/batch.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/best_practices.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/collection_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/component_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/configuration.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/events.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_mappings.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_parentchild.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_weblog.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/filters.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/inheritance_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/performance.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/persistent_classes.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/portability.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_criteria.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_hql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_sql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/session_api.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/toolset_guide.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/transactions.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/tutorial.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/xml.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Author_Group.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Book_Info.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Feedback.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Hibernate_Core_Reference_Guide.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Revision_History.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/Preface.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/architecture.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/association_mapping.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/basic_mapping.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/batch.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/best_practices.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/collection_mapping.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/component_mapping.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/configuration.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/events.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_mappings.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_parentchild.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_weblog.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/filters.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/inheritance_mapping.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/performance.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/persistent_classes.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/portability.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_criteria.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_hql.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_sql.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/session_api.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/toolset_guide.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/transactions.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/tutorial.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/xml.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Conventions.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Feedback.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Legal_Notice.pot
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Author_Group.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Book_Info.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Revision_History.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/Preface.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/architecture.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/association_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/basic_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/batch.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/best_practices.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/collection_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/component_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/configuration.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/events.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_mappings.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_parentchild.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_weblog.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/filters.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/inheritance_mapping.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/performance.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/persistent_classes.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/portability.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_criteria.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_hql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_sql.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/session_api.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/toolset_guide.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/transactions.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/tutorial.po
   core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/xml.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/Book_Info.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/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:
'changed Publican brand to jboss-community-hibernate, moved authors from Book_Info to Author_Group.xml, changed entities to match original community docs, updated pot and po files using jdocbook' 


Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Author_Group.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Author_Group.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Author_Group.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -283,3 +283,138 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.9.1\n"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr ""
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr ""
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Book_Info.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Book_Info.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Book_Info.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -276,7 +276,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-10 09:33+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -290,19 +290,21 @@
 msgid "Hibernate Core Reference Guide"
 msgstr "Hibernate Core Referenz-Handbuch"
 
-#. Tag: subtitle
+#. Tag: releaseinfo
 #, 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)"
+msgid "&version;"
 msgstr ""
-"von Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard und "
-"Steve Ebersole. Wir danken auch James Cobb (Grafisches Design) und "
-"Cheyenne Weaver (Grafisches Design)"
 
 #. Tag: para
 #, no-c-format
 msgid "The JBoss Hibernate Core 3.3.2.GA Reference Guide"
 msgstr "Das JBoss Hibernate Core 3.3.2.GA Referenz-Handbuch"
 
+#~ 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 ""
+#~ "von Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard "
+#~ "und Steve Ebersole. Wir danken auch James Cobb (Grafisches Design) und "
+#~ "Cheyenne Weaver (Grafisches Design)"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Revision_History.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Revision_History.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/Revision_History.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -276,7 +276,7 @@
 msgstr ""
 "Project-Id-Version: Revision_History\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-11 10:44+1100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -290,8 +290,22 @@
 msgid "Revision History"
 msgstr "Änderungsverzeichnis"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Ben"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Jared"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Richard"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Merged with EAP5 and translations added"
 msgstr "Mit EAP5 verbunden und Übersetzungen hinzugefügt"
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/Preface.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/Preface.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/Preface.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/architecture.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/architecture.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/architecture.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/association_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/association_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/association_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/basic_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/basic_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/basic_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -1233,9 +1233,9 @@
 "generiert Bezeichner, die für eine bestimmte Datenbank eindeutig sind."
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>seqhilo</literal>"
-msgstr ""
+msgstr "<literal>all</literal> Prüfung aller Spalten"
 
 #. Tag: para
 #, no-c-format
@@ -1327,9 +1327,9 @@
 "Primärschlüssels abgefragt wird."
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foreign</literal>"
-msgstr ""
+msgstr "<literal>name</literal>: Der Property-Name."
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -1578,13 +1578,16 @@
 "korrespondiert."
 
 #. Tag: para
-#, no-c-format
+#, 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>base</literal> (optional, standardmäßig <literal>0</literal>): Der "
+"Wert der Indexspalte, die mit dem ersten Element der Liste oder Array "
+"korrespondiert."
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -1712,9 +1715,9 @@
 "<literal>none</literal>): der \"Cascade-Style\" (Weitergabestil)."
 
 #. Tag: title
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "Identifier generator optimization"
-msgstr ""
+msgstr "Die \"Getter\"-Methode des Bezeichners"
 
 #. Tag: para
 #, no-c-format
@@ -3879,9 +3882,9 @@
 "literal>."
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>string</literal>"
-msgstr ""
+msgstr "<literal>name</literal>: Der Property-Name."
 
 #. Tag: para
 #, no-c-format

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/batch.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/batch.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/batch.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/best_practices.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/best_practices.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/best_practices.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/collection_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/collection_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/collection_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -751,11 +751,13 @@
 "im Stammelement deklarierte Schema außer Kraft setzt"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): a SQL formula used to evaluate the "
 "key of the map."
 msgstr ""
+"<literal>schema</literal> (optional) der Name eines Tabellenschemas, der das "
+"im Stammelement deklarierte Schema außer Kraft setzt"
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -773,11 +775,13 @@
 "im Stammelement deklarierte Schema außer Kraft setzt"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): a SQ formula used to evaluate the "
 "foreign key of the map key."
 msgstr ""
+"<literal>schema</literal> (optional) der Name eines Tabellenschemas, der das "
+"im Stammelement deklarierte Schema außer Kraft setzt"
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -868,11 +872,13 @@
 "<literal>class</literal> (erforderlich): Der Name der zugehörigen Klasse."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element foreign key value."
 msgstr ""
+"<literal>schema</literal> (optional) der Name eines Tabellenschemas, der das "
+"im Stammelement deklarierte Schema außer Kraft setzt"
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -1301,8 +1307,7 @@
 #, 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. <!-- TODO: Does this really "
-"result in some unnecessary update statements? -->"
+"responsible for updates to the foreign key."
 msgstr ""
 "Bitte beachten Sie, dass bei diesem Mapping das Collection-wertige Ende der "
 "Assoziation für Aktualisierungen am Fremdschlüssel verantwortlich ist. TODO: "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/component_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/component_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/component_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/configuration.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/configuration.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/configuration.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -418,11 +418,13 @@
 "erläutert)."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you want to get started quickly<filename>hibernate.properties</filename> "
 "is the easiest approach."
 msgstr ""
+"Legen Sie <literal>hibernate.properties</literal> in ein Stammverzeichnis "
+"des Klassenpfads."
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -546,9 +548,9 @@
 msgstr "hibernate.connection.url"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<emphasis>JDBC URL</emphasis>"
-msgstr ""
+msgstr "jdbc-Treiberklasse"
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -1531,8 +1533,8 @@
 msgstr ""
 "Falls aktiviert, wird die Session automatisch während der Vorabschlussphase "
 "der Transaktion geräumt. Eingebautes, automatisches Session-"
-"Kontextmanagement wird bevorzugt, siehe <xref linkend=\"architecture-"
-"current-session\"/>."
+"Kontextmanagement wird bevorzugt, siehe <xref linkend=\"architecture-current-"
+"session\"/>."
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -1570,8 +1572,8 @@
 msgstr ""
 "Geben Sie eine (anwenderdefinierte) Strategie für den Gültigkeitsbereich der "
 "\"aktuellen\" <literal>Session</literal> ein. Weitere Informationen zu "
-"eingebauten Strategien finden Sie unter <xref linkend=\"architecture-"
-"current-session\"/>."
+"eingebauten Strategien finden Sie unter <xref linkend=\"architecture-current-"
+"session\"/>."
 
 #. Tag: para
 #, fuzzy, no-c-format

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/events.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/events.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/events.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_mappings.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_mappings.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_mappings.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_parentchild.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_parentchild.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_parentchild.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -633,10 +633,9 @@
 "literal> als auch <literal>Child</literal> generierte Bezeichner-Properties "
 "des Typs <literal>Long</literal> besitzen. Hibernate wird den Bezeichner und "
 "den Property-Wert von Version/Zeitstempel verwenden, um zu bestimmen, welche "
-"der \"Children\" neu sind. (Siehe <xref linkend=\"objectstate-saveorupdate\"/>). "
-"<emphasis>In Hibernate3 ist es nicht mehr "
-"notwendig, explizit einen <literal>unsaved-value</literal> festzulegen.</"
-"emphasis>"
+"der \"Children\" neu sind. (Siehe <xref linkend=\"objectstate-saveorupdate\"/"
+">). <emphasis>In Hibernate3 ist es nicht mehr notwendig, explizit einen "
+"<literal>unsaved-value</literal> festzulegen.</emphasis>"
 
 #. Tag: para
 #, fuzzy, no-c-format

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_weblog.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_weblog.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/example_weblog.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/filters.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/filters.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/filters.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/inheritance_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/inheritance_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/inheritance_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -1140,6 +1140,10 @@
 #~ "    &lt;/joined-subclass&gt;\n"
 #~ "&lt;/class&gt;"
 
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "<entry>Tabelle-pro-Subklasse</entry>"
+
 #~ msgid "Features of inheritance mappings"
 #~ msgstr "Features von Vererbungsmappings"
 
@@ -1185,9 +1189,6 @@
 #~ msgid "supported"
 #~ msgstr "unterstützt"
 
-#~ msgid "<entry>table per subclass</entry>"
-#~ msgstr "<entry>Tabelle-pro-Subklasse</entry>"
-
 #~ msgid "&lt;any&gt;"
 #~ msgstr "&lt;any&gt;"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/performance.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/performance.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/performance.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/persistent_classes.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/persistent_classes.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/persistent_classes.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/portability.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/portability.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/portability.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_criteria.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_criteria.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_criteria.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_hql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_hql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_hql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -1736,6 +1736,10 @@
 #~ msgstr "from eg.Cat"
 
 #, fuzzy
+#~ msgid "<![CDATA[from Cat]]>"
+#~ msgstr "from eg.Cat"
+
+#, fuzzy
 #~ msgid "<![CDATA[from Cat as cat]]>"
 #~ msgstr "from Cat as cat"
 
@@ -1776,6 +1780,10 @@
 #~ msgstr "left outer join"
 
 #, fuzzy
+#~ msgid "right outer join"
+#~ msgstr "left outer join"
+
+#, fuzzy
 #~ msgid ""
 #~ "<![CDATA[from Cat as cat\n"
 #~ "    join cat.mate as mate\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_sql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_sql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/query_sql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -693,7 +693,7 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>A_NAME as {item.name}</literal>"
-msgstr "A_NAME as {item.name}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, no-c-format
@@ -720,12 +720,12 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>{[aliasname].class}</literal>"
-msgstr "{[aliasname].class}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>DISC as {item.class}</literal>"
-msgstr "DISC as {item.class}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, no-c-format
@@ -735,7 +735,7 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>{[aliasname].*}</literal>"
-msgstr "{[aliasname].*}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, fuzzy, no-c-format
@@ -750,12 +750,12 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>{[aliasname].key}</literal>"
-msgstr "{[aliasname].key}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>ORGID as {coll.key}</literal>"
-msgstr "ORGID als {coll.key}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, no-c-format
@@ -765,12 +765,12 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>{[aliasname].id}</literal>"
-msgstr "{[aliasname].id}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>EMPID as {coll.id}</literal>"
-msgstr "EMPID als {coll.id}"
+msgstr "oder als eine <literal>List</literal>,"
 
 #. Tag: entry
 #, no-c-format
@@ -780,12 +780,12 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element}</literal>"
-msgstr "{[aliasname].element}"
+msgstr "{coll.element.*}"
 
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>XID as {coll.element}</literal>"
-msgstr "XID als {coll.element}"
+msgstr "{coll.element.*}"
 
 #. Tag: entry
 #, fuzzy, no-c-format
@@ -800,7 +800,7 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>NAME as {coll.element.name}</literal>"
-msgstr "NAME als {coll.element.name}"
+msgstr "{coll.element.*}"
 
 #. Tag: entry
 #, no-c-format
@@ -810,7 +810,7 @@
 #. Tag: entry
 #, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.*}</literal>"
-msgstr "{[aliasname].element.*}"
+msgstr "{coll.element.*}"
 
 #. Tag: entry
 #, fuzzy, no-c-format
@@ -1388,9 +1388,61 @@
 #~ "        .addEntity(\"cat\", Cat.class)\n"
 #~ "        .addEntity(\"mother\", Cat.class).list()"
 
+#, fuzzy
+#~ msgid "A_NAME as {item.name}"
+#~ msgstr "A_NAME as {item.name}"
+
+#, fuzzy
+#~ msgid "{[aliasname].class}"
+#~ msgstr "{[aliasname].class}"
+
+#, fuzzy
+#~ msgid "DISC as {item.class}"
+#~ msgstr "DISC as {item.class}"
+
+#, fuzzy
+#~ msgid "{[aliasname].*}"
+#~ msgstr "{[aliasname].*}"
+
 #~ msgid "{item.*}"
 #~ msgstr "{item.*}"
 
+#, fuzzy
+#~ msgid "{[aliasname].key}"
+#~ msgstr "{[aliasname].key}"
+
+#, fuzzy
+#~ msgid "ORGID as {coll.key}"
+#~ msgstr "ORGID als {coll.key}"
+
+#, fuzzy
+#~ msgid "{[aliasname].id}"
+#~ msgstr "{[aliasname].id}"
+
+#, fuzzy
+#~ msgid "EMPID as {coll.id}"
+#~ msgstr "EMPID als {coll.id}"
+
+#, fuzzy
+#~ msgid "{[aliasname].element}"
+#~ msgstr "{[aliasname].element}"
+
+#, fuzzy
+#~ msgid "XID as {coll.element}"
+#~ msgstr "XID als {coll.element}"
+
+#, fuzzy
+#~ msgid "NAME as {coll.element.name}"
+#~ msgstr "NAME als {coll.element.name}"
+
+#, fuzzy
+#~ msgid "{[aliasname].element.*}"
+#~ msgstr "{[aliasname].element.*}"
+
+#, fuzzy
+#~ msgid "{coll.element.*}"
+#~ msgstr "{coll.*}"
+
 #~ msgid "{coll.*}"
 #~ msgstr "{coll.*}"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/session_api.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/session_api.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/session_api.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -624,7 +624,8 @@
 "An diesem Punkt stellt sich eine wichtige Frage: Wie viel lädt Hibernate aus "
 "der Datenbank und wie viele SQL <literal>SELECT</literal>s werden verwendet? "
 "Nun, das hängt von der <emphasis>Abrufstrategie</emphasis> (sog. \"fetching "
-"strategy\") ab und wird in <xref linkend=\"performance-fetching\"/> näher erläutert."
+"strategy\") ab und wird in <xref linkend=\"performance-fetching\"/> näher "
+"erläutert."
 
 #. Tag: title
 #, no-c-format
@@ -975,8 +976,7 @@
 "\" />."
 msgstr ""
 "Die <literal>Criteria</literal> und die zugehörige <literal>Example</"
-"literal>-API werden unter <xref linkend=\"querycriteria\"/> näher "
-"erläutert."
+"literal>-API werden unter <xref linkend=\"querycriteria\"/> näher erläutert."
 
 #. Tag: title
 #, no-c-format
@@ -1080,8 +1080,8 @@
 "Massenvorgängen in Konflikt zu objekt/relationalem Mapping für Anwendungen, "
 "die an der Bearbeitung von online Transaktionen orientiert sind. Zukünftige "
 "Versionen von Hibernate werden möglicherweise spezielle Funktionen für "
-"Massenvorgänge bieten. Unter <xref linkend=\"batch\"/> finden Sie "
-"einige mögliche Tricks zur Batch-Bearbeitung."
+"Massenvorgänge bieten. Unter <xref linkend=\"batch\"/> finden Sie einige "
+"mögliche Tricks zur Batch-Bearbeitung."
 
 #. Tag: title
 #, no-c-format
@@ -1602,8 +1602,7 @@
 "explizit erfolgt. Der letzte Modus ist insbesondere bei langen "
 "Arbeitseinheiten von Nutzen, wenn eine <literal>Session</literal> über "
 "längere Zeit hinweg geöffnet und abgekuppelt bleibt (siehe <xref linkend="
-"\"transactions-optimistic-longsession\"/"
-">)."
+"\"transactions-optimistic-longsession\"/>)."
 
 #. Tag: para
 #, fuzzy, no-c-format

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/toolset_guide.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/toolset_guide.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/toolset_guide.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"
@@ -355,11 +355,6 @@
 "Engineering\"-Wizard unterstützt anwenderdefinierte Templates."
 
 #. Tag: para
-#, no-c-format
-msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
-msgstr ""
-
-#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Please refer to the <emphasis>Hibernate Tools</emphasis> package "
@@ -675,7 +670,7 @@
 #. Tag: para
 #, fuzzy, no-c-format
 msgid "<literal>SQL column type</literal>"
-msgstr "SQL-Spaltentyp"
+msgstr "in <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -822,7 +817,7 @@
 #. Tag: para
 #, fuzzy, no-c-format
 msgid "<literal>--output=my_schema.ddl</literal>"
-msgstr "--output=my_schema.ddl"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -842,7 +837,7 @@
 #. Tag: para
 #, fuzzy, no-c-format
 msgid "<literal>--config=hibernate.cfg.xml</literal>"
-msgstr "--config=hibernate.cfg.xml"
+msgstr "in <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1265,9 +1260,17 @@
 #~ msgid "foreign-key"
 #~ msgstr "foreign-key"
 
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "foreign-key"
+
 #~ msgid "sql-type"
 #~ msgstr "sql-type"
 
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "SQL-Spaltentyp"
+
 #~ msgid "default"
 #~ msgstr "default"
 
@@ -1312,6 +1315,14 @@
 #~ msgid "--text"
 #~ msgstr "--text"
 
+#, fuzzy
+#~ msgid "--output=my_schema.ddl"
+#~ msgstr "--output=my_schema.ddl"
+
+#, fuzzy
+#~ msgid "--config=hibernate.cfg.xml"
+#~ msgstr "--config=hibernate.cfg.xml"
+
 #~ msgid "--properties=hibernate.properties"
 #~ msgstr "--properties=hibernate.properties"
 
@@ -1329,6 +1340,10 @@
 #~ "Configuration cfg = ....;\n"
 #~ "new SchemaExport(cfg).create(false, true);"
 
+#, fuzzy
+#~ msgid "hibernate.connection.driver_class"
+#~ msgstr "hibernate.connection.url"
+
 #~ msgid "hibernate.connection.url"
 #~ msgstr "hibernate.connection.url"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/transactions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/transactions.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/transactions.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/tutorial.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/tutorial.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/tutorial.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/xml.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/xml.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/de-DE/content/xml.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -275,7 +275,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2007-02-26 10:27+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <de at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Author_Group.xml
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Author_Group.xml	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Author_Group.xml	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,12 +1,195 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Hibernate_Annotations_Reference_Guide.ent">
-%BOOK_ENTITIES;
+<?xml version='1.0' encoding='UTF-8' ?>
+
+<!--
+  ~ Hibernate, Relational Persistence for Idiomatic Java
+  ~
+  ~ Copyright (c) 2009, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ 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
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!--<!ENTITY % BOOK_ENTITIES SYSTEM "Hibernate_Annotations_Reference_Guide.ent">
+%BOOK_ENTITIES;-->
 ]>
 
 <authorgroup>
-<author>
-      <firstname>The JBoss Community Group</firstname>
-      <surname></surname>
+   <author>
+      <firstname>Gavin</firstname>
+      <surname>King</surname>
    </author>
+   <author>
+      <firstname>Christian</firstname>
+      <surname>Bauer</surname>
+   </author>
+   <author>
+      <firstname>Max</firstname>
+      <othername>Rydahl</othername>
+      <surname>Andersen</surname>
+   </author>
+   <author>
+      <firstname>Emmanuel</firstname>
+      <surname>Bernard</surname>
+   </author>
+   <author>
+      <firstname>Steve</firstname>
+      <surname>Ebersole</surname>
+   </author>
+
+   <othercredit>
+      <firstname>James</firstname>
+      <surname>Cobb</surname>
+      <affiliation>
+         <shortaffil>Graphic Design</shortaffil>
+      </affiliation>
+   </othercredit>
+   <othercredit>
+      <firstname>Cheyenne</firstname>
+      <surname>Weaver</surname>
+      <affiliation>
+         <shortaffil>Graphic Design</shortaffil>
+      </affiliation>
+   </othercredit>
+
+    <!--
+        #######################################################################
+        # Spanish
+        #######################################################################
+    -->
+    <othercredit class="translator" lang="es-ES">
+        <othername><![CDATA[Bernardo Antonio Buffa Colom&#x00e9]]></othername>
+        <email>kreimer at bbs.frc.utn.edu.ar</email>
+    </othercredit>
+
+    <!--
+        #######################################################################
+        # French
+        #######################################################################
+    -->
+    <othercredit class="translator" lang="fr-FR">
+        <firstname>Vincent</firstname>
+        <surname>Ricard</surname>
+    </othercredit>
+    <othercredit class="translator" lang="fr-FR">
+        <firstname>Sebastien</firstname>
+        <surname>Cesbron</surname>
+    </othercredit>
+    <othercredit class="translator" lang="fr-FR">
+        <firstname>Michael</firstname>
+        <surname>Courcy</surname>
+    </othercredit>
+    <othercredit class="translator" lang="fr-FR">
+        <firstname>Vincent</firstname>
+        <surname>Giguère</surname>
+    </othercredit>
+    <othercredit class="translator" lang="fr-FR">
+        <firstname>Baptiste</firstname>
+        <surname>Mathus</surname>
+    </othercredit>
+    <othercredit class="translator" lang="fr-FR">
+        <firstname>Emmanuel</firstname>
+        <surname>Bernard</surname>
+    </othercredit>
+    <othercredit class="translator" lang="fr-FR">
+        <firstname>Anthony</firstname>
+        <surname>Patricio</surname>
+    </othercredit>
+
+    <!--
+        #######################################################################
+        # Portugese
+        #######################################################################
+    -->
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Alvaro</firstname>
+        <surname>Netto</surname>
+        <email>alvaronetto at cetip.com.br</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Anderson</firstname>
+        <surname>Braulio</surname>
+        <email>andersonbraulio at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Daniel Vieira</firstname>
+        <surname>Costa</surname>
+        <email>danielvc at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Francisco</firstname>
+        <surname>gamarra</surname>
+        <email>francisco.gamarra at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Gamarra</firstname>
+        <email>mauricio.gamarra at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Luiz Carlos</firstname>
+        <surname>Rodrigues</surname>
+        <email>luizcarlos_rodrigues at yahoo.com.br</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Marcel</firstname>
+        <surname>Castelo</surname>
+        <email>marcel.castelo at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Paulo</firstname>
+        <surname>César</surname>
+        <email>paulocol at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Pablo L.</firstname>
+        <surname>de Miranda</surname>
+        <email>pablolmiranda at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Renato</firstname>
+        <surname>Deggau</surname>
+        <email>rdeggau at gmail.com</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Rogério</firstname>
+        <surname>Araújo</surname>
+        <email>rgildoaraujo at yahoo.com.br</email>
+    </othercredit>
+    <othercredit class="translator" lang="pt-BR">
+        <firstname>Wanderson</firstname>
+        <surname>Siqueira</surname>
+        <email>wandersonxs at gmail.com</email>
+    </othercredit>
+
+    <!--
+        #######################################################################
+        # Chinese
+        #######################################################################
+    -->
+    <othercredit class="translator" lang="zh-CN">
+        <firstname>Cao</firstname>
+        <surname>Xiaogang</surname>
+        <affiliation>
+            <orgname>RedSaga</orgname>
+        </affiliation>
+        <contrib>Translation Lead</contrib>
+        <email>caoxg at yahoo.com</email>
+    </othercredit>
+
+   
 </authorgroup>

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Book_Info.xml
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Book_Info.xml	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Book_Info.xml	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,20 +1,20 @@
 <?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 <!ENTITY % BOOK_ENTITIES SYSTEM "Hibernate_Core_Reference_Guide.ent">
 %BOOK_ENTITIES;
 ]>
 
+
 <bookinfo id="Hibernate_Core_Reference_Guide">
 	<title>Hibernate Core Reference Guide</title>
-	<subtitle>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)</subtitle>
-	<edition>1.0</edition>
+	<subtitle></subtitle>
+        <releaseinfo>&version;</releaseinfo>
+        <productnumber>&version;</productnumber>
+        <edition>1.0</edition>
 	<pubsnumber>1</pubsnumber>
 	<productname>JBoss Hibernate Core</productname>
 	<productnumber></productnumber>
-	<pubdate>,  2009</pubdate>
+	<pubdate>&today;</pubdate>
 	<isbn>N/A</isbn>
 	<abstract><para>The JBoss Hibernate Core 3.3.2.GA Reference Guide</para>
 	</abstract>
@@ -26,12 +26,14 @@
 	  </inlinemediaobject>
 	</corpauthor>
 	<copyright>
-		<year>&YEAR;</year>
-		<holder>&HOLDER;</holder>
+		<year>&copyrightYear;</year>
+                <holder>&copyrightHolder;</holder>
 	</copyright>
+       <xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 	
-	<!--  Insert relevant fallback material here. Legal_Notice and Author Group is a relevant placement BookInfo.xml-->
-	
+	<!-- Insert relevant fallback material here. Legal_Notice and Author Group is a relevant placement BookInfo.xml-->
+
+      
 	<!-- No legal Notice in Community docs so commenting out -->
     <!--    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="Common_Content/Legal_Notice.xml">
@@ -51,3 +53,5 @@
 	-->
 	
 </bookinfo>
+
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.ent
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.ent	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.ent	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,6 +1,6 @@
-<!ENTITY HOLDER "Red Hat, Inc">
-<!ENTITY YEAR "2009">
-<!ENTITY JBPAPP "JBoss Enterprise Application Platform">
-<!ENTITY VER "5.0">
+<!ENTITY version "WORKING">
+<!ENTITY today "TODAY">
+<!ENTITY copyrightYear "2004">
+<!ENTITY copyrightHolder "Red Hat Middleware, LLC.">
 <!ENTITY semi ";">
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.xml
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.xml	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/en-US/Hibernate_Core_Reference_Guide.xml	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE Book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 <!ENTITY % BOOK_ENTITIES SYSTEM "Hibernate_Core_Reference_Guide.ent">
 %BOOK_ENTITIES;
 ]>

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Author_Group.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Author_Group.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Author_Group.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-10-08 08:55+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -23,6 +23,141 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr ""
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr ""
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr ""
+
 #~ msgid ""
 #~ "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
 #~ msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Book_Info.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Book_Info.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Book_Info.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-07 10:56+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -28,18 +28,21 @@
 msgid "Hibernate Core Reference Guide"
 msgstr "Manual de referencia de Hibernate Core"
 
-#. Tag: subtitle
+#. Tag: releaseinfo
 #, 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)"
+msgid "&version;"
 msgstr ""
-"por Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard y Steve Ebersole. Gracias a James Cobb (diseño gráfico) y Cheyenne Weaver "
-"(diseño gráfico)"
 
 #. Tag: para
 #, no-c-format
 msgid "The JBoss Hibernate Core 3.3.2.GA Reference Guide"
 msgstr "Manual de referencia de JBoss Hibernate Core 3.3.2.GA "
 
+#~ 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 ""
+#~ "por Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard y "
+#~ "Steve Ebersole. Gracias a James Cobb (diseño gráfico) y Cheyenne Weaver "
+#~ "(diseño gráfico)"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Revision_History.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Revision_History.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/Revision_History.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: Revision_History\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-07 10:57+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -28,8 +28,22 @@
 msgid "Revision History"
 msgstr "Historial de revisiones"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Ben"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Jared"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Richard"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Merged with EAP5 and translations added"
 msgstr "Combinado con EAP5 y traducciones agregadas"
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/Preface.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/Preface.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/Preface.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -15,7 +15,7 @@
 msgstr ""
 "Project-Id-Version: Preface\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-07 10:45+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -94,7 +94,7 @@
 "inclusive en Java por favor siga los siguientes pasos:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
 "instructions. The source code for the tutorial is included in the "
@@ -106,7 +106,7 @@
 "</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"architecture\" /> to understand the environments where "
 "Hibernate can be used."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/architecture.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/architecture.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/architecture.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: architecture\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-04 10:30+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -35,7 +35,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The diagram below provides a high-level view of the Hibernate architecture:"
+msgid ""
+"The diagram below provides a high-level view of the Hibernate architecture:"
 msgstr ""
 "El diagrama a continuación brinda una perspectiva a alto nivel de la "
 "arquitectura de Hibernate:"
@@ -218,8 +219,10 @@
 
 #. Tag: term
 #, 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
 #, no-c-format
@@ -233,7 +236,7 @@
 "desarrollador. "
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<emphasis>Extension Interfaces</emphasis>"
 msgstr "<emphasis>Interfaces de extensión</emphasis>"
 
@@ -409,20 +412,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Consult the JBoss AS user guide for more information about these options."
+msgid ""
+"Consult the JBoss AS user guide for more information about these options."
 msgstr ""
 "Para más información sobre estas opciones, consulte el Manual de Usuario de "
 "JBoss AS."
 
 #. Tag: para
-#, no-c-format
+#, 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 ""
-"Otra funcionalidad disponible como un servicio de JMX son las estadísticas en "
-"tiempo de ejecución de Hibernate. Consulte <xref linkend=\"configuration-optional-statistics\" /> para obtener mayor información."
+"Otra funcionalidad disponible como un servicio de JMX son las estadísticas "
+"en tiempo de ejecución de Hibernate. Consulte <xref linkend=\"configuration-"
+"optional-statistics\" /> para obtener mayor información."
 
 #. Tag: title
 #, no-c-format
@@ -568,7 +573,7 @@
 "<literal>Session</literal>."
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -587,15 +592,16 @@
 "sesión - una transacción de la base de datos\". También conocido y utilizado "
 "como una <emphasis>sesión-por-petición</emphasis>. El inicio y el final de "
 "una sesión Hibernate se define por la duración de una transacción de una "
-"base de datos. Si utiliza la demarcación de transacción programática en JSE sencillo sin JTA, se le aconseja que utilice el API "
-"<literal>Transaction</literal> de Hibernate para esconder el sistema de "
-"transacción subyacente de su código. Si utiliza JTA, utilice las interfaces "
-"JTA para demarcar transacciones. Si utiliza JTA, puede utilizar las interfaces JTA "
-"para demarcar transacciones. Si ejecuta en un contenedor EJB que soporta "
-"CMT, los límites de la transacción están definidos declarativamente y no "
-"necesita ninguna operación de demarcación de sesión o transacción en su "
-"código. Consulte <xref linkend=\"transactions\" /> para obtener más "
-"información y ejemplos de código."
+"base de datos. Si utiliza la demarcación de transacción programática en JSE "
+"sencillo sin JTA, se le aconseja que utilice el API <literal>Transaction</"
+"literal> de Hibernate para esconder el sistema de transacción subyacente de "
+"su código. Si utiliza JTA, utilice las interfaces JTA para demarcar "
+"transacciones. Si utiliza JTA, puede utilizar las interfaces JTA para "
+"demarcar transacciones. Si ejecuta en un contenedor EJB que soporta CMT, los "
+"límites de la transacción están definidos declarativamente y no necesita "
+"ninguna operación de demarcación de sesión o transacción en su código. "
+"Consulte <xref linkend=\"transactions\" /> para obtener más información y "
+"ejemplos de código."
 
 #. Tag: para
 #, no-c-format
@@ -621,4 +627,3 @@
 "literal>. Usualmente el valor de este parámetro sólamente nombraría la clase "
 "de implementación a utilizar. Sin embargo, para las tres implementaciones "
 "incluídas existen tress nombres cortos: \"jta\", \"thread\" y \"managed\"."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/association_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/association_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/association_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: association_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-09 12:44+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/basic_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/basic_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/basic_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: basic_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-05 17:34+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/batch.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/batch.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/batch.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: batch\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-07 10:48+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -203,7 +203,7 @@
 msgstr "Operaciones de estilo DML"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -261,7 +261,7 @@
 "cualquier referencia de la propiedad."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, 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-"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/best_practices.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/best_practices.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/best_practices.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: best_practices\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-09 09:46+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/collection_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/collection_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/collection_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: collection_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-07 09:44+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -357,7 +357,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgid ""
+"The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
 msgstr ""
 "La restricción de clave foránea puede utilizar <literal>ON DELETE CASCADE</"
 "literal>."
@@ -452,7 +453,9 @@
 msgid ""
 "<literal>column_name</literal> (required): the name of the column holding "
 "the collection index values."
-msgstr "<literal>column_name</literal> (requerido): el nombre de la columna que tiene los valores del índice de la colección."
+msgstr ""
+"<literal>column_name</literal> (requerido): el nombre de la columna que "
+"tiene los valores del índice de la colección."
 
 #. Tag: para
 #, no-c-format
@@ -462,21 +465,26 @@
 "or array."
 msgstr ""
 "<literal>base</literal> (opcional - por defecto es <literal>0</literal>): el "
-"valor de la columna índice que corresponde al primer elemento de la lista o el array."
+"valor de la columna índice que corresponde al primer elemento de la lista o "
+"el array."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection index values."
-msgstr "<literal>column</literal> (opcional): el nombre de la columna que tiene los valores del índice de colecciones."
+msgstr ""
+"<literal>column</literal> (opcional): el nombre de la columna que tiene los "
+"valores del índice de colecciones."
 
 #. 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> (opcional): una fórmula SQL que se usa para evaluar la clave del mapa."
+msgstr ""
+"<literal>formula</literal> (opcional): una fórmula SQL que se usa para "
+"evaluar la clave del mapa."
 
 #. Tag: para
 #, no-c-format
@@ -488,19 +496,26 @@
 msgid ""
 "<literal>column</literal> (optional): the name of the foreign key column for "
 "the collection index values."
-msgstr "<literal>column</literal> (opcional): el nombre de la columna de la clave foránea para los valores del índice de la colección."
+msgstr ""
+"<literal>column</literal> (opcional): el nombre de la columna de la clave "
+"foránea para los valores del índice de la colección."
 
 #. 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> (opcional): una fórmula SQ utilizada para evaluar la clave foránea de la clave de mapeos."
+msgstr ""
+"<literal>formula</literal> (opcional): una fórmula SQ utilizada para evaluar "
+"la clave foránea de la clave de mapeos."
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>class</literal> (required): the entity class used as the map key."
-msgstr "<literal>class</literal> (requerido): La clase de entidad que se usa como la clave mapeada. "
+msgid ""
+"<literal>class</literal> (required): the entity class used as the map key."
+msgstr ""
+"<literal>class</literal> (requerido): La clase de entidad que se usa como la "
+"clave mapeada. "
 
 #. Tag: para
 #, no-c-format
@@ -550,20 +565,23 @@
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection element values."
 msgstr ""
-"<literal>column</literal> (opcional): el nombre de la columna que tiene los valores de los elementos de la "
-"colección."
+"<literal>column</literal> (opcional): el nombre de la columna que tiene los "
+"valores de los elementos de la colección."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element."
-msgstr "<literal>formula</literal> (opcional): una fórmula SQL utilizada para evaluar el elemento."
+msgstr ""
+"<literal>formula</literal> (opcional): una fórmula SQL utilizada para "
+"evaluar el elemento."
 
 #. Tag: para
 #, no-c-format
 msgid "<literal>type</literal> (required): the type of the collection element."
-msgstr "<literal>type</literal> (requerido): el tipo del elemento de colección."
+msgstr ""
+"<literal>type</literal> (requerido): el tipo del elemento de colección."
 
 #. Tag: para
 #, no-c-format
@@ -571,22 +589,26 @@
 "A <emphasis>many-to-many association</emphasis> is specified using the "
 "<literal>&lt;many-to-many&gt;</literal> element."
 msgstr ""
-"Una <emphasis>asociación muchos-a-muchos</emphasis> se especifica usando el elemento "
-"<literal>&lt;many-to-many&gt;</literal>."
+"Una <emphasis>asociación muchos-a-muchos</emphasis> se especifica usando el "
+"elemento <literal>&lt;many-to-many&gt;</literal>."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the element foreign key "
 "column."
-msgstr "<literal>column</literal> (opcional): el nombre de la columna de clave foránea elemento."
+msgstr ""
+"<literal>column</literal> (opcional): el nombre de la columna de clave "
+"foránea elemento."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element foreign key value."
-msgstr "<literal>formula</literal> (opcional): una fórmula SQL utilizada para evaluar el valor de la clave foránea elemento."
+msgstr ""
+"<literal>formula</literal> (opcional): una fórmula SQL utilizada para "
+"evaluar el valor de la clave foránea elemento."
 
 #. Tag: para
 #, no-c-format
@@ -604,11 +626,13 @@
 "itself, but also with this attribute on the <literal>&lt;many-to-many&gt;</"
 "literal> nested element."
 msgstr ""
-"<literal>fetch</literal> (opcional - por defecto es <literal>join</literal>): "
-"habilita la búsqueda de selects secuenciales o de unión externa para esta asociación. Este es un caso especial; para búsqueda temprana completa en un solo <literal>SELECT</"
-"literal> de una entidad y sus relaciones muchos-a-muchos con otras entidades, "
-"habilitaría la búsqueda <literal>join</literal>,no solo de la colección misma, si no también con este atributo en el elemento anidado <literal>&lt;many-to-many&gt;</"
-"literal>."
+"<literal>fetch</literal> (opcional - por defecto es <literal>join</"
+"literal>): habilita la búsqueda de selects secuenciales o de unión externa "
+"para esta asociación. Este es un caso especial; para búsqueda temprana "
+"completa en un solo <literal>SELECT</literal> de una entidad y sus "
+"relaciones muchos-a-muchos con otras entidades, habilitaría la búsqueda "
+"<literal>join</literal>,no solo de la colección misma, si no también con "
+"este atributo en el elemento anidado <literal>&lt;many-to-many&gt;</literal>."
 
 #. Tag: para
 #, no-c-format
@@ -616,7 +640,10 @@
 "<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> (opcional): habilita la generación DDL de una restricción única para la columna de la clave foránea. Esto hace la multiplicidad de la asociación efectivamente uno-a-muchos."
+msgstr ""
+"<literal>unique</literal> (opcional): habilita la generación DDL de una "
+"restricción única para la columna de la clave foránea. Esto hace la "
+"multiplicidad de la asociación efectivamente uno-a-muchos."
 
 #. Tag: para
 #, no-c-format
@@ -627,7 +654,9 @@
 "association."
 msgstr ""
 "<literal>not-found</literal> (opcional - por defecto es <literal>exception</"
-"literal>): Especifica cómo serán manejadas las claves foráneas que hacen referencia a filas que falten: <literal>ignore</literal> tratará una fila que falte como una asociación nula."
+"literal>): Especifica cómo serán manejadas las claves foráneas que hacen "
+"referencia a filas que falten: <literal>ignore</literal> tratará una fila "
+"que falte como una asociación nula."
 
 #. Tag: para
 #, no-c-format
@@ -644,7 +673,10 @@
 "<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> (opcional): el nombre de una propiedad de la clase asociada que está unida a esta clave foránea. Si no se especifica entonces se utiliza la clave principal de la clase asociada."
+msgstr ""
+"<literal>property-ref</literal> (opcional): el nombre de una propiedad de la "
+"clase asociada que está unida a esta clave foránea. Si no se especifica "
+"entonces se utiliza la clave principal de la clase asociada."
 
 #. Tag: para
 #, no-c-format
@@ -1005,11 +1037,10 @@
 "literal>. En cambio, puede usar el siguiente mapeo:"
 
 #. Tag: para
-#, no-c-format
+#, 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. <!-- TODO: Does this really "
-"result in some unnecessary update statements? -->"
+"responsible for updates to the foreign key."
 msgstr ""
 "Note que en este mapeo, el extremo de la asociación valuado en colección es "
 "responsable de las actualizaciones de la clave foránea."
@@ -1047,7 +1078,7 @@
 "adelante."
 
 #. Tag: title
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Using an &lt;idbag&gt;</literal>"
 msgstr "<literal>Utilización de un &lt;idbag&gt;</literal>"
 
@@ -1132,7 +1163,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The following class has a collection of <literal>Child</literal> instances:"
+msgid ""
+"The following class has a collection of <literal>Child</literal> instances:"
 msgstr ""
 "La siguiente clase tiene una colección de instancias <literal>Child</"
 "literal>:"
@@ -1191,16 +1223,17 @@
 msgstr "Definiciones de tabla:"
 
 #. Tag: para
-#, no-c-format
+#, 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 ""
 "Para ver más ejemplos y encontrar una explicación completa sobre el mapeo de "
-"relaciones padre/hijo, consulte el <xref linkend=\"example-parentchild\" /> para obtener mayor información."
+"relaciones padre/hijo, consulte el <xref linkend=\"example-parentchild\" /> "
+"para obtener mayor información."
 
 #. Tag: para
 #, no-c-format
 msgid "Even more complex association mappings are covered in the next chapter."
-msgstr "En el próximo capítulo abordaremos los mapeos de asociaciones más complejas."
-
+msgstr ""
+"En el próximo capítulo abordaremos los mapeos de asociaciones más complejas."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/component_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/component_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/component_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: component_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-06 10:15+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/configuration.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/configuration.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/configuration.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: configuration\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-07 09:53+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/events.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/events.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/events.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-12 09:03+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_mappings.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_mappings.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_mappings.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: example_mappings\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-11-03 12:36+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_parentchild.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_parentchild.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_parentchild.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: example_parentchild\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 17:42+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -156,8 +156,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
-msgstr "un <literal>INSERT</literal> para crear el registro de <literal>c</literal>"
+msgid ""
+"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr ""
+"un <literal>INSERT</literal> para crear el registro de <literal>c</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -330,7 +332,7 @@
 msgstr "Cascadas y <literal>unsaved-value</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
 "literal>, made some changes in a UI action and wanted to persist these "
@@ -352,13 +354,14 @@
 "<literal>update()</literal>. El <literal>Parent</literal> contendrá una "
 "colección de hijos y ya que está habilitado el tratamiento en cascada, "
 "Hibernate necesita saber qué hijos están recién instanciados y cuáles "
-"representan filas existentes en la base de datos. También vamos a asumir que tanto "
-"<literal>Parent</literal> como <literal>Child</literal> tienen propiedades "
-"identificadoras generadas de tipo <literal>Long</literal>. Hibernate usará "
-"el identificador y el valor de la propiedad de versión/sello de fecha para "
-"determinar cuáles de los hijos son nuevos, (consulte la <xref linkend="
-"\"objectstate-saveorupdate\" />). <emphasis>En Hibernate3, ya no es necesario "
-"especificar un <literal>unsaved-value</literal> explícitamente.</emphasis>"
+"representan filas existentes en la base de datos. También vamos a asumir que "
+"tanto <literal>Parent</literal> como <literal>Child</literal> tienen "
+"propiedades identificadoras generadas de tipo <literal>Long</literal>. "
+"Hibernate usará el identificador y el valor de la propiedad de versión/sello "
+"de fecha para determinar cuáles de los hijos son nuevos, (consulte la <xref "
+"linkend=\"objectstate-saveorupdate\" />). <emphasis>En Hibernate3, ya no es "
+"necesario especificar un <literal>unsaved-value</literal> explícitamente.</"
+"emphasis>"
 
 #. Tag: para
 #, no-c-format
@@ -422,4 +425,3 @@
 "de elementos compuestos: los elementos compuestos no pueden poseer sus "
 "propias colecciones y no deben ser el hijo de cualquier otra entidad que no "
 "sea su padre único."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_weblog.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_weblog.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/example_weblog.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: example_weblog\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-11-03 12:25+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/filters.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/filters.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/filters.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: filters\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-11-11 08:28+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/inheritance_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/inheritance_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/inheritance_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: inheritance_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-08 11:55+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -44,9 +44,9 @@
 msgstr "tabla por jerarquía de clases"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "table per subclass"
-msgstr "tabla por subclase"
+msgstr "Tabla por subclase"
 
 #. Tag: para
 #, no-c-format
@@ -450,7 +450,7 @@
 msgstr "tabla por clase concreta (union-subclass)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code> (for <code>inverse="
 "\"true\"</code> only)"
@@ -487,3 +487,11 @@
 msgstr ""
 "No se soporta polimórfico uno-a-uno, polimórfico uno-a-muchos, uniones "
 "polimórficas y búsquedas de unión externa."
+
+#, fuzzy
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "tabla por subclase"
+
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "tabla por subclase"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/performance.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/performance.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/performance.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: performance\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-04 15:23+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -335,7 +335,8 @@
 #. Tag: para
 #, no-c-format
 msgid "HQL queries if <literal>subselect</literal> fetching is used"
-msgstr "las consultas HQL si se utiliza la recuperación <literal>subselect</literal>"
+msgstr ""
+"las consultas HQL si se utiliza la recuperación <literal>subselect</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -557,7 +558,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
 msgstr ""
 "Ciertas operaciones <emphasis>no</emphasis> requieren inicialización de "
 "proxies:"
@@ -826,8 +828,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
-msgstr "Hibernate ahora ejecutará sólamente tres consultas: el patrón es 10, 10, 5."
+msgid ""
+"Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgstr ""
+"Hibernate ahora ejecutará sólamente tres consultas: el patrón es 10, 10, 5."
 
 #. Tag: para
 #, no-c-format
@@ -942,7 +946,8 @@
 #. Tag: para
 #, no-c-format
 msgid "For bytecode instrumentation, use the following Ant task:"
-msgstr "Para la instrumentación del código byte, utilice la siguiente tarea Ant:"
+msgstr ""
+"Para la instrumentación del código byte, utilice la siguiente tarea Ant:"
 
 #. Tag: para
 #, no-c-format
@@ -1048,7 +1053,7 @@
 msgstr "Hashtable (no fue pensado para la utilización en producción)"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 
@@ -1068,7 +1073,7 @@
 msgstr "EHCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 
@@ -1083,7 +1088,7 @@
 msgstr "OSCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 
@@ -1093,7 +1098,7 @@
 msgstr "SwarmCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 
@@ -1113,7 +1118,7 @@
 msgstr "JBoss Cache 1.x"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 
@@ -1138,7 +1143,7 @@
 msgstr "JBoss Cache 2"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 msgstr "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 
@@ -1318,7 +1323,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "None of the cache providers support all of the cache concurrency strategies."
+msgid ""
+"None of the cache providers support all of the cache concurrency strategies."
 msgstr ""
 "Ninguno de los provedores de caché soporta todas las estrategias de "
 "concurrencia al caché. "
@@ -1733,7 +1739,8 @@
 
 #. Tag: title
 #, no-c-format
-msgid "Lists, maps, idbags and sets are the most efficient collections to update"
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
 msgstr ""
 "Las listas, mapas, idbags y conjuntos son las colecciones más eficientes de "
 "actualizar"
@@ -2102,4 +2109,3 @@
 "<literal>getQueries()</literal>, <literal>getEntityNames()</literal>, "
 "<literal>getCollectionRoleNames()</literal> y "
 "<literal>getSecondLevelCacheRegionNames()</literal>."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/persistent_classes.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/persistent_classes.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/persistent_classes.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: persistent_classes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-07 06:20+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -151,7 +151,7 @@
 "clases que declaran una propiedad identificadora: "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Transitive reattachment for detached objects (cascade update or cascade "
 "merge) - see <xref linkend=\"objectstate-transitive\" />"
@@ -160,12 +160,12 @@
 "cascada) - consulte <xref linkend=\"objectstate-transitive\" />"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.saveOrUpdate()</literal>"
 msgstr "<literal>Session.saveOrUpdate()</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.merge()</literal>"
 msgstr "<literal>Session.merge()</literal>"
 
@@ -376,7 +376,7 @@
 "emphasis>):"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -398,7 +398,7 @@
 msgstr "Nota"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis>The following features are currently considered experimental and "
 "may change in the near future.</emphasis>"
@@ -423,7 +423,7 @@
 "enfoque, sólamente archivos de mapeo. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "By default, Hibernate works in normal POJO mode. You can set a default "
 "entity representation mode for a particular <literal>SessionFactory</"
@@ -519,7 +519,7 @@
 "de la transacción y de la conexión a la unidad de trabajo primaria. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "More information about the XML representation capabilities can be found in "
 "<xref linkend=\"xml\" />."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/portability.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/portability.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/portability.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: portability\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-07 10:51+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -122,7 +122,7 @@
 "se podía sobreescribir."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Starting with version 3.3, Hibernate has a fare more powerful way to "
 "automatically determine which dialect to should be used by relying on a "
@@ -258,13 +258,13 @@
 "Hay especificamente 2 paquetes de generadores <emphasis>mejorados</emphasis>:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 msgstr ""
 "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_criteria.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_criteria.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_criteria.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: query_criteria\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 17:44+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -146,7 +146,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "There is also an alternate form that is useful in certain circumstances:"
+msgid ""
+"There is also an alternate form that is useful in certain circumstances:"
 msgstr "Hay una alternativa que es útil en ciertas circunstancias:"
 
 #. Tag: para
@@ -187,7 +188,7 @@
 "ejecución usando <literal>setFetchMode()</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "This query will fetch both <literal>mate</literal> and <literal>kittens</"
 "literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
@@ -228,7 +229,8 @@
 #. Tag: para
 #, no-c-format
 msgid "You can even use examples to place criteria upon associated objects."
-msgstr "Puede incluso usar ejemplos para colocar criterios sobre objetos asociados."
+msgstr ""
+"Puede incluso usar ejemplos para colocar criterios sobre objetos asociados."
 
 #. Tag: title
 #, no-c-format
@@ -375,4 +377,3 @@
 "Una vez que haya habilitado el caché de consulta de Hibernate, "
 "<literal>Restrictions.naturalId()</literal> le permite hacer uso del "
 "algoritmo de caché más eficiente."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_hql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_hql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_hql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: query_hql\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 17:47+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -160,14 +160,14 @@
 msgstr "<literal>inner join</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>left outer join</literal>"
-msgstr "<literal>left outer join</literal>"
+msgstr "<literal>inner join</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>right outer join</literal>"
-msgstr "<literal>right outer join</literal>"
+msgstr "<literal>inner join</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -193,7 +193,7 @@
 "<literal>with</literal> de HQL."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "A \"fetch\" join allows associations or collections of values to be "
 "initialized along with their parent objects using a single select. This is "
@@ -476,7 +476,7 @@
 msgstr "Las funciones de agregación soportadas son:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 
@@ -486,7 +486,7 @@
 msgstr "<literal>count(*)</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
 msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
 
@@ -626,7 +626,7 @@
 "sólamente propiedades sino también instancias:"
 
 #. Tag: para
-#, no-c-format
+#, 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-"
@@ -660,7 +660,7 @@
 msgstr "Una vez más, la segunda consulta no requiere una unión de tablas."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"queryhql-identifier-property\" /> for more information "
 "regarding referencing identifier properties)"
@@ -683,7 +683,7 @@
 "discriminador."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "You can also use components or composite user types, or properties of said "
 "component types. See <xref linkend=\"queryhql-components\" /> for more "
@@ -1149,7 +1149,7 @@
 "select o where."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Note that subqueries can also utilize <literal>row value constructor</"
 "literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
@@ -1267,7 +1267,7 @@
 msgstr "Declaraciones UPDATE y DELETE masivas"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "HQL now supports <literal>update</literal>, <literal>delete</literal> and "
 "<literal>insert ... select ...</literal> statements. See <xref linkend="
@@ -1447,3 +1447,11 @@
 "Algo que se debe tomar en consideración al decidir si quiere usar esta "
 "sintaxis es que la consulta dependerá del orden de las sub-propiedades "
 "componentes en los metadatos."
+
+#, fuzzy
+#~ msgid "left outer join"
+#~ msgstr "<literal>left outer join</literal>"
+
+#, fuzzy
+#~ msgid "right outer join"
+#~ msgstr "<literal>right outer join</literal>"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_sql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_sql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/query_sql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: query_sql\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 07:45+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -329,7 +329,8 @@
 #. Tag: para
 #, no-c-format
 msgid "The following form is not vulnerable to column name duplication:"
-msgstr "La siguiente forma no es vulnerable a la duplicación de nombres de columnas:"
+msgstr ""
+"La siguiente forma no es vulnerable a la duplicación de nombres de columnas:"
 
 #. Tag: para
 #, no-c-format
@@ -423,14 +424,14 @@
 msgstr "Una propiedad simple"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[propertyname]</literal>"
 msgstr "<literal>{[aliasname].[propertyname]</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>A_NAME as {item.name}</literal>"
-msgstr "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -438,12 +439,12 @@
 msgstr "Una propiedad compuesta"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
 "literal>"
@@ -457,14 +458,14 @@
 msgstr "Discriminador de una entidad"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].class}</literal>"
-msgstr "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>DISC as {item.class}</literal>"
-msgstr "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -472,9 +473,9 @@
 msgstr "Todas las propiedades de una entidad"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].*}</literal>"
-msgstr "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -487,14 +488,14 @@
 msgstr "Una clave de colección"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].key}</literal>"
-msgstr "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>ORGID as {coll.key}</literal>"
-msgstr "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -502,14 +503,14 @@
 msgstr "La identificación -id- de una colección"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].id}</literal>"
-msgstr "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>EMPID as {coll.id}</literal>"
-msgstr "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -517,14 +518,14 @@
 msgstr "El elemento de una colección"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element}</literal>"
-msgstr "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>XID as {coll.element}</literal>"
-msgstr "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -532,12 +533,12 @@
 msgstr "propiedad del elemento en la colección "
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>NAME as {coll.element.name}</literal>"
 msgstr "<literal>NAME as {coll.element.name}</literal>"
 
@@ -547,14 +548,14 @@
 msgstr "Todas las propiedades del elemeto en la colección"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.*}</literal>"
-msgstr "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{coll.element.*}</literal>"
-msgstr "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -960,7 +961,8 @@
 #. Tag: para
 #, no-c-format
 msgid "You can also declare your own SQL (or HQL) queries for entity loading:"
-msgstr "También puede declarar sus propias consultas SQL (o HQL) para cargar entidad:"
+msgstr ""
+"También puede declarar sus propias consultas SQL (o HQL) para cargar entidad:"
 
 #. Tag: para
 #, no-c-format
@@ -990,3 +992,50 @@
 "También puede definir un cargador de entidad que cargue una colección con "
 "una unión temprana:"
 
+#, fuzzy
+#~ msgid "A_NAME as {item.name}"
+#~ msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].class}"
+#~ msgstr "<literal>{[aliasname].class}</literal>"
+
+#, fuzzy
+#~ msgid "DISC as {item.class}"
+#~ msgstr "<literal>DISC as {item.class}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].*}"
+#~ msgstr "<literal>{[aliasname].*}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].key}"
+#~ msgstr "<literal>{[aliasname].key}</literal>"
+
+#, fuzzy
+#~ msgid "ORGID as {coll.key}"
+#~ msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].id}"
+#~ msgstr "<literal>{[aliasname].id}</literal>"
+
+#, fuzzy
+#~ msgid "EMPID as {coll.id}"
+#~ msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element}"
+#~ msgstr "<literal>{[aliasname].element}</literal>"
+
+#, fuzzy
+#~ msgid "XID as {coll.element}"
+#~ msgstr "<literal>XID as {coll.element}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element.*}"
+#~ msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#, fuzzy
+#~ msgid "{coll.element.*}"
+#~ msgstr "<literal>{coll.element.*}</literal>"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/session_api.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/session_api.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/session_api.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: session_api\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-07 10:43+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -359,7 +359,7 @@
 "propiedades del objeto."
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -368,8 +368,8 @@
 msgstr ""
 "¿Cuánto carga Hibernate de la base de datos y cuántos <literal>SELECT</"
 "literal>s de SQL utilizará? Esto depende de la <emphasis>estrategia de "
-"recuperación</emphasis>. Esto se explica en la <xref linkend="
-"\"performance-fetching\" />."
+"recuperación</emphasis>. Esto se explica en la <xref linkend=\"performance-"
+"fetching\" />."
 
 #. Tag: title
 #, no-c-format
@@ -518,7 +518,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "named parameters are insensitive to the order they occur in the query string"
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
 msgstr ""
 "los parámetros con nombre son insensibles al orden en que aparecen en la "
 "cadena de consulta"
@@ -705,15 +706,14 @@
 "consulta <literal>Criteria</literal> para estos casos: "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Criteria</literal> and the associated <literal>Example</"
 "literal> API are discussed in more detail in <xref linkend=\"querycriteria"
 "\" />."
 msgstr ""
 "Las APIs de <literal>Criteria</literal> y el <literal>Example</literal> "
-"asociado se discuten en más detalle en el xref linkend=\"querycriteria"
-"\" />."
+"asociado se discuten en más detalle en el xref linkend=\"querycriteria\" />."
 
 #. Tag: title
 #, no-c-format
@@ -737,7 +737,7 @@
 "alias de SQL entre llaves:"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -792,7 +792,7 @@
 "instancias separadas."
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -880,7 +880,7 @@
 "instancias separadas es la primera operación que se ejecuta."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The application should individually <literal>update()</literal> detached "
 "instances that are reachable from the given detached instance "
@@ -891,10 +891,9 @@
 "La aplicación debe actualizar <literal>update()</literal> individualmente "
 "las instancias separadas alcanzables por la instancia separada dada "
 "<emphasis>sólo</emphasis> si quiere que su estado se actualice. Esto puede "
-"ser automatizado la utilizando la <emphasis>persistencia transitiva</emphasis>. "
-"Consulte la <xref "
-"linkend=\"objectstate-transitive\" /> para obtener mayor "
-"información. "
+"ser automatizado la utilizando la <emphasis>persistencia transitiva</"
+"emphasis>. Consulte la <xref linkend=\"objectstate-transitive\" /> para "
+"obtener mayor información. "
 
 #. Tag: para
 #, no-c-format
@@ -921,7 +920,7 @@
 "re-unión no es el único caso de uso para <literal>lock()</literal>."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Other models for long units of work are discussed in <xref linkend="
 "\"transactions-optimistic\" />."
@@ -1054,7 +1053,8 @@
 #. Tag: para
 #, no-c-format
 msgid "otherwise <literal>update()</literal> the object"
-msgstr "de otra manera actualice el objeto llamando a <literal>update()</literal>"
+msgstr ""
+"de otra manera actualice el objeto llamando a <literal>update()</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1263,7 +1263,8 @@
 #. Tag: para
 #, no-c-format
 msgid "all collection element deletions, updates and insertions"
-msgstr "todos los borrados, actualizaciones e inserciones de elementos de colección"
+msgstr ""
+"todos los borrados, actualizaciones e inserciones de elementos de colección"
 
 #. Tag: para
 #, no-c-format
@@ -1305,7 +1306,7 @@
 "desactualizados o incorrectos."
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -1318,14 +1319,16 @@
 msgstr ""
 "Es posible cambiar el comportamiento predeterminado de modo que el vaciado "
 "ocurra con menos frecuencia. La clase <literal>FlushMode</literal> define "
-"tres modos diferentes: sólo en tiempo de guardar los cambios cuando la API de <literal>Transaction</literal> de Hibernate se utiliza, vaciado automático utilizando la rutina explicada, o nunca vaciar a menos de que se "
+"tres modos diferentes: sólo en tiempo de guardar los cambios cuando la API "
+"de <literal>Transaction</literal> de Hibernate se utiliza, vaciado "
+"automático utilizando la rutina explicada, o nunca vaciar a menos de que se "
 "llame a <literal>flush()</literal> explícitamente. El último modo es útil "
 "para unidades de trabajo largas, donde se mantiene abierta una "
 "<literal>Session</literal> y es desconectada por largo tiempo (vea la <xref "
 "linkend=\"transactions-optimistic-longsession\"/>)."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "During flush, an exception might occur (e.g. if a DML operation violates a "
 "constraint). Since handling exceptions involves some understanding of "
@@ -1335,8 +1338,7 @@
 "Durante el vaciado se puede presentar una excepción (por ejemplo, si una "
 "operación DML viola una restricción). Ya que el manejo de excepciones "
 "implica algo de comprensión del comportamiento transaccional de Hibernate, "
-"lo discutimos en <xref linkend="
-"\"transactions\" />."
+"lo discutimos en <xref linkend=\"transactions\" />."
 
 #. Tag: title
 #, no-c-format
@@ -1566,7 +1568,8 @@
 msgid ""
 "If a parent is deleted, all children are passed to <literal>delete()</"
 "literal>"
-msgstr "Si se borra un padre, se pasan todos los hijos a <literal>delete()</literal>"
+msgstr ""
+"Si se borra un padre, se pasan todos los hijos a <literal>delete()</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1635,4 +1638,3 @@
 "<literal>ClassMetadata</literal> y <literal>CollectionMetadata</literal> y "
 "la jerarquía <literal>Type</literal>. Las instancias de las interfaces de "
 "metadatos se pueden obtener de la <literal>SessionFactory</literal>."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/toolset_guide.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/toolset_guide.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/toolset_guide.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: toolset_guide\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 07:51+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -95,11 +95,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
-msgstr "<!-- <emphasis>Tareas Ant:</emphasis> -->"
-
-#. Tag: para
-#, no-c-format
 msgid ""
 "Please refer to the <emphasis>Hibernate Tools</emphasis> package "
 "documentation for more information."
@@ -371,9 +366,9 @@
 msgstr "<literal>unique-key</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>unique_key_name</literal>"
-msgstr "<literal>unique_key_name</literal>"
+msgstr "<literal>unique-key</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -386,9 +381,9 @@
 msgstr "<literal>foreign-key</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foreign_key_name</literal>"
-msgstr "<literal>foreign_key_name</literal>"
+msgstr "<literal>foreign-key</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -411,9 +406,9 @@
 msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>SQL column type</literal>"
-msgstr "<literal>SQL column type</literal>"
+msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -558,9 +553,9 @@
 msgstr "no exportar a la base de datos "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--output=my_schema.ddl</literal>"
-msgstr "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>scale</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -568,7 +563,7 @@
 msgstr "enviar la salida del script ddl a un archivo"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
 msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
 
@@ -578,7 +573,7 @@
 msgstr "seleccione un <literal>NamingStrategy</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--config=hibernate.cfg.xml</literal>"
 msgstr "<literal>--config=hibernate.cfg.xml</literal>"
 
@@ -588,9 +583,9 @@
 msgstr "lee la configuración de Hibernate de un archivo XML"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--properties=hibernate.properties</literal>"
-msgstr "<literal>--properties=hibernate.properties</literal>"
+msgstr "en <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -669,7 +664,7 @@
 msgstr "Nombre de la Propiedad"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.driver_class</literal>"
 msgstr "<literal>hibernate.connection.driver_class</literal>"
 
@@ -679,9 +674,9 @@
 msgstr "clase del controlador jdbc"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.url</literal>"
-msgstr "<literal>hibernate.connection.url</literal>"
+msgstr "en <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -689,9 +684,9 @@
 msgstr "url de jdbc"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.username</literal>"
-msgstr "<literal>hibernate.connection.username</literal>"
+msgstr "en <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -699,9 +694,9 @@
 msgstr "usuario de la base de datos"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.password</literal>"
-msgstr "<literal>hibernate.connection.password</literal>"
+msgstr "en <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -709,9 +704,9 @@
 msgstr "contraseña del usuario"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.dialect</literal>"
-msgstr "<literal>hibernate.dialect</literal>"
+msgstr "en <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -848,3 +843,50 @@
 #, no-c-format
 msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
 msgstr "Puede llamar <literal>SchemaValidator</literal> desde el scrip de Ant:"
+
+#, fuzzy
+#~ msgid "length"
+#~ msgstr "longitud de columna/precisión decimal"
+
+#, fuzzy
+#~ msgid "precision"
+#~ msgstr "expresión SQL"
+
+#, fuzzy
+#~ msgid "unique_key_name"
+#~ msgstr "<literal>unique_key_name</literal>"
+
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "<literal>foreign_key_name</literal>"
+
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "<literal>SQL column type</literal>"
+
+#, fuzzy
+#~ msgid "--output=my_schema.ddl"
+#~ msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#, fuzzy
+#~ msgid "--properties=hibernate.properties"
+#~ msgstr "<literal>--properties=hibernate.properties</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.url"
+#~ msgstr "<literal>hibernate.connection.url</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.username"
+#~ msgstr "<literal>hibernate.connection.username</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.password"
+#~ msgstr "<literal>hibernate.connection.password</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.dialect"
+#~ msgstr "<literal>hibernate.dialect</literal>"
+
+#~ msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+#~ msgstr "<!-- <emphasis>Tareas Ant:</emphasis> -->"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/transactions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/transactions.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/transactions.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: transactions\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-07 10:38+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -159,7 +159,7 @@
 msgstr "Unidad de trabajo"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "First, let's define a unit of work. A unit of work is a design pattern "
 "described by Martin Fowler as <quote> [maintaining] a list of objects "
@@ -273,7 +273,7 @@
 "capítulo."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Your application code can access a \"current session\" to process the "
 "request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
@@ -498,7 +498,7 @@
 msgstr "Identidad de Base de Datos"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
 msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
 
@@ -668,7 +668,7 @@
 "después de deshacer de todos modos."
 
 #. Tag: para
-#, no-c-format
+#, 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/tutorial.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/tutorial.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/tutorial.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: tutorial\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-07 10:05+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -379,7 +379,7 @@
 "estrategia."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>native</literal> is no longer considered the best strategy in terms "
 "of portability. for further discussion, see <xref linkend=\"portability-idgen"
@@ -603,7 +603,7 @@
 "particular que Hibernate genera."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Hibernate is able to correctly determine which dialect to use in most cases. "
 "See <xref linkend=\"portability-dialectresolver\" /> for more information."
@@ -917,7 +917,7 @@
 "muestra una aplicación web real, lo cual le ayudará a ilustrar esto."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"transactions\" /> for more information about transaction "
 "handling and demarcation. The previous example also skipped any error "
@@ -971,7 +971,7 @@
 msgstr "También agregamos un método <literal>listEvents()</literal>:"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -1735,7 +1735,7 @@
 "literal> en su directorio <literal>webapp</literal> Tomcat. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you do not have Tomcat installed, download it from <ulink url=\"http://"
 "tomcat.apache.org/\" /> and follow the installation instructions. Our "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/xml.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/xml.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/es-ES/content/xml.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 07:52+1000\n"
 "Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -29,13 +29,13 @@
 msgstr "Mapeo XML"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
 "currently under active development. </emphasis>"
 msgstr ""
-"<emphasis> El mapeo XML es una funcionalidad experimental en Hibernate 3.0 y se "
-"encuentra bajos desarrollo activo. </emphasis>"
+"<emphasis> El mapeo XML es una funcionalidad experimental en Hibernate 3.0 y "
+"se encuentra bajos desarrollo activo. </emphasis>"
 
 #. Tag: title
 #, no-c-format
@@ -149,12 +149,14 @@
 #. Tag: para
 #, no-c-format
 msgid "<literal>\"element-name\"</literal>: map to the named XML element"
-msgstr "<literal>\"element-name\"</literal> - mapea al elemento XML mencionado "
+msgstr ""
+"<literal>\"element-name\"</literal> - mapea al elemento XML mencionado "
 
 #. Tag: para
 #, no-c-format
 msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
-msgstr "<literal>\"@attribute-name\"</literal>: mapea al atributo XML mencionado"
+msgstr ""
+"<literal>\"@attribute-name\"</literal>: mapea al atributo XML mencionado"
 
 #. Tag: para
 #, no-c-format
@@ -245,4 +247,3 @@
 "Es útil combinar esta funcionalidad con la operación <literal>replicate()</"
 "literal> de Hibernate para implementar la importación/exportación de datos "
 "basada en XML."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Author_Group.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Author_Group.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Author_Group.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-10-28 15:14+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -16,6 +16,141 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr ""
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr ""
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr ""
+
 #~ msgid ""
 #~ "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
 #~ msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Book_Info.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Book_Info.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Book_Info.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-05 10:10+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -21,19 +21,21 @@
 msgid "Hibernate Core Reference Guide"
 msgstr "Guide de référence Hibernate Core"
 
-#. Tag: subtitle
+#. Tag: releaseinfo
 #, 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)"
+msgid "&version;"
 msgstr ""
-"par Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard, et "
-"Steve Ebersole. Merci à James Cobb (Graphismes) et à Cheyenne Weaver "
-"(Graphismes)"
 
 #. Tag: para
 #, no-c-format
 msgid "The JBoss Hibernate Core 3.3.2.GA Reference Guide"
 msgstr "Guide de référence Hibernate Core 3.3.2.GA"
 
+#~ 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 ""
+#~ "par Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard, "
+#~ "et Steve Ebersole. Merci à James Cobb (Graphismes) et à Cheyenne Weaver "
+#~ "(Graphismes)"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Revision_History.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Revision_History.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/Revision_History.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Revision_History\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-05 10:11+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -21,8 +21,22 @@
 msgid "Revision History"
 msgstr "Historique de révision  "
 
+#. Tag: firstname
+#, no-c-format
+msgid "Ben"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Jared"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Richard"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Merged with EAP5 and translations added"
 msgstr "Fusionnée avec EAP5 avec l'addition de traductions"
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/Preface.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/Preface.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/Preface.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Preface\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-05 09:43+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -86,7 +86,7 @@
 "Relationnel ou même Java, veuillez suivre les étapes suivantes :"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
 "instructions. The source code for the tutorial is included in the "
@@ -97,7 +97,7 @@
 "distribution du répertoire <literal>doc/reference/tutorial/</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"architecture\" /> to understand the environments where "
 "Hibernate can be used."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/architecture.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/architecture.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/architecture.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: architecture\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-04 16:40+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -28,7 +28,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The diagram below provides a high-level view of the Hibernate architecture:"
+msgid ""
+"The diagram below provides a high-level view of the Hibernate architecture:"
 msgstr ""
 "Le diagramme ci-dessus procure une vue - (très) haut niveau - de "
 "l'architecture Hibernate :"
@@ -211,8 +212,10 @@
 
 #. Tag: term
 #, 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
 #, no-c-format
@@ -226,7 +229,7 @@
 "développeur. "
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<emphasis>Extension Interfaces</emphasis>"
 msgstr "<emphasis>Interfaces d'extension</emphasis> "
 
@@ -405,20 +408,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Consult the JBoss AS user guide for more information about these options."
+msgid ""
+"Consult the JBoss AS user guide for more information about these options."
 msgstr ""
 "Consultez le guide d'utilisation de JBoss AS pour plus d'informations sur "
 "ces options."
 
 #. Tag: para
-#, no-c-format
+#, 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 ""
 "Les statistiques Hibernate (runtime) représentent une autre fonctionnalité "
-"qui est disponible en tant que service JMX. Voyez pour cela les <xref linkend=\"configuration-optional-statistics\" />."
+"qui est disponible en tant que service JMX. Voyez pour cela les <xref "
+"linkend=\"configuration-optional-statistics\" />."
 
 #. Tag: title
 #, no-c-format
@@ -563,7 +568,7 @@
 "ni ne nettoie ou ne ferme une <literal>Session</literal>."
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -588,8 +593,8 @@
 "jacent à votre code. Si vous exécutez sous un conteneur EJB qui prend en "
 "charge CMT, vous n'avez besoin d'aucune opération de démarcation de session "
 "ou transaction dans votre code puisque tout est géré de manière déclarative. "
-"Référez vous au <xref linkend=\"transactions\" /> pour plus "
-"d'informations et des exemples de code."
+"Référez vous au <xref linkend=\"transactions\" /> pour plus d'informations "
+"et des exemples de code."
 
 #. Tag: para
 #, no-c-format
@@ -616,4 +621,3 @@
 "d'implémentation à utiliser. Pour les trois implémentations prêtes à "
 "utiliser, toutefois, il y a trois noms brefs correspondants : \"jta\", "
 "\"thread\" et \"managed\"."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/association_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/association_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/association_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: association_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-10 14:49+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/basic_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/basic_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/basic_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: basic_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-04 17:01+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/batch.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/batch.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/batch.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: batch\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-04 17:03+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -199,7 +199,7 @@
 msgstr "Opérations de style DML"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -258,7 +258,7 @@
 "n'importe quelle référence de propriété d'être qualifiée."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, 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-"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/best_practices.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/best_practices.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/best_practices.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: best_practices\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-10 16:06+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/collection_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/collection_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/collection_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: collection_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-05 08:54+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -168,7 +168,8 @@
 #. Tag: para
 #, no-c-format
 msgid "<literal>name</literal>: the collection property name"
-msgstr "<literal>name</literal> : le nom de la propriété contenant la collection "
+msgstr ""
+"<literal>name</literal> : le nom de la propriété contenant la collection "
 
 #. Tag: para
 #, no-c-format
@@ -355,7 +356,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgid ""
+"The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
 msgstr ""
 "La contraite de la clé étrangère peut utiliser <literal>ON DELETE CASCADE</"
 "literal>. "
@@ -451,7 +453,9 @@
 msgid ""
 "<literal>column_name</literal> (required): the name of the column holding "
 "the collection index values."
-msgstr "<literal>column_name</literal> (champ requis): lenom de la lolonne qui contient les valeurs 'index' de la collection."
+msgstr ""
+"<literal>column_name</literal> (champ requis): lenom de la lolonne qui "
+"contient les valeurs 'index' de la collection."
 
 #. Tag: para
 #, no-c-format
@@ -460,22 +464,27 @@
 "value of the index column that corresponds to the first element of the list "
 "or array."
 msgstr ""
-"<literal>base</literal> (optionnel - par défaut = <literal>0</"
-"literal>) : la valeur de la colonne 'index' qui correspond au premier élément de la liste ou de la table."
+"<literal>base</literal> (optionnel - par défaut = <literal>0</literal>) : la "
+"valeur de la colonne 'index' qui correspond au premier élément de la liste "
+"ou de la table."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection index values."
-msgstr "<literal>colonne</literal> (optionnel) : le nom de la colonne qui contient les valeurs 'index' de la collection."
+msgstr ""
+"<literal>colonne</literal> (optionnel) : le nom de la colonne qui contient "
+"les valeurs 'index' de la collection."
 
 #. 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> (optionnel): formule SQL utilisée pour évaluer la clé de la mappe."
+msgstr ""
+"<literal>formula</literal> (optionnel): formule SQL utilisée pour évaluer la "
+"clé de la mappe."
 
 #. Tag: para
 #, no-c-format
@@ -487,19 +496,26 @@
 msgid ""
 "<literal>column</literal> (optional): the name of the foreign key column for "
 "the collection index values."
-msgstr "<literal>colonne</literal> (optionnel) : le nom de la colonne de clés étrangères pour la collection de valeurs 'index'."
+msgstr ""
+"<literal>colonne</literal> (optionnel) : le nom de la colonne de clés "
+"étrangères pour la collection de valeurs 'index'."
 
 #. 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> (optionnel): formule SQ utilisée pour évaluer la clé étrangère d'une clé de mappe."
+msgstr ""
+"<literal>formula</literal> (optionnel): formule SQ utilisée pour évaluer la "
+"clé étrangère d'une clé de mappe."
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>class</literal> (required): the entity class used as the map key."
-msgstr "<literal>class</literal> (requis) : le nom de la classe utilisée en tant que clé de mappe."
+msgid ""
+"<literal>class</literal> (required): the entity class used as the map key."
+msgstr ""
+"<literal>class</literal> (requis) : le nom de la classe utilisée en tant que "
+"clé de mappe."
 
 #. Tag: para
 #, no-c-format
@@ -548,14 +564,18 @@
 msgid ""
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection element values."
-msgstr "<literal>colonne</literal> (optionnel) : le nom de la colonne qui contient les valeurs des éléments de collection."
+msgstr ""
+"<literal>colonne</literal> (optionnel) : le nom de la colonne qui contient "
+"les valeurs des éléments de collection."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element."
-msgstr "<literal>formula</literal> (optionnel) : formule SQL utilisée pour évaluer l'élément."
+msgstr ""
+"<literal>formula</literal> (optionnel) : formule SQL utilisée pour évaluer "
+"l'élément."
 
 #. Tag: para
 #, no-c-format
@@ -568,22 +588,26 @@
 "A <emphasis>many-to-many association</emphasis> is specified using the "
 "<literal>&lt;many-to-many&gt;</literal> element."
 msgstr ""
-"Une association <emphasis>many-to-many</emphasis> est spécifiée en utilisant l'élément "
-"<literal>&lt;many-to-many&gt;</literal>."
+"Une association <emphasis>many-to-many</emphasis> est spécifiée en utilisant "
+"l'élément <literal>&lt;many-to-many&gt;</literal>."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the element foreign key "
 "column."
-msgstr "<literal>colonne</literal> (optionnel) : le nom de la colonne de clés étrangères des éléments."
+msgstr ""
+"<literal>colonne</literal> (optionnel) : le nom de la colonne de clés "
+"étrangères des éléments."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element foreign key value."
-msgstr "<literal>formula</literal> (optionnel): formule SQL utilisée pour évaluer la valeur des clés étrangères des éléments."
+msgstr ""
+"<literal>formula</literal> (optionnel): formule SQL utilisée pour évaluer la "
+"valeur des clés étrangères des éléments."
 
 #. Tag: para
 #, no-c-format
@@ -602,9 +626,13 @@
 "literal> nested element."
 msgstr ""
 "<literal>fetch</literal> (optionnel - par défaut <literal>join</literal>): "
-"permet la récupération par jointures externes ou bien par selects séquentiels pour cette association. Il s'agit d'un cas particulier de récupération. Pour que la récupération soit toujours rapportée en un seul <literal>SELECT</"
-"literal> d'entité ou à partir de ses relations many-to-many à d'autres entités, vous devrez activer la récupération <literal>join</literal>, non seulement pour la collection elle-même, mais aussi avec cet attribut qui se trouve sur l'élément <literal>&lt;many-to-many&gt;</"
-"literal>."
+"permet la récupération par jointures externes ou bien par selects "
+"séquentiels pour cette association. Il s'agit d'un cas particulier de "
+"récupération. Pour que la récupération soit toujours rapportée en un seul "
+"<literal>SELECT</literal> d'entité ou à partir de ses relations many-to-many "
+"à d'autres entités, vous devrez activer la récupération <literal>join</"
+"literal>, non seulement pour la collection elle-même, mais aussi avec cet "
+"attribut qui se trouve sur l'élément <literal>&lt;many-to-many&gt;</literal>."
 
 #. Tag: para
 #, no-c-format
@@ -612,7 +640,10 @@
 "<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> (optionnel): permet la génération DDL d'une seule contrainte pour la colonne de la clé étrangère. Cela transforme la muticiplicité de l'association en one-to-many."
+msgstr ""
+"<literal>unique</literal> (optionnel): permet la génération DDL d'une seule "
+"contrainte pour la colonne de la clé étrangère. Cela transforme la "
+"muticiplicité de l'association en one-to-many."
 
 #. Tag: para
 #, no-c-format
@@ -642,7 +673,10 @@
 "<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> (optionnel): nom d'une propriété de la classe associée associée à une clé étrangère. Si elle n'est pas précisée, la clé primaire de la classe associée sera alors utilisée."
+msgstr ""
+"<literal>property-ref</literal> (optionnel): nom d'une propriété de la "
+"classe associée associée à une clé étrangère. Si elle n'est pas précisée, la "
+"clé primaire de la classe associée sera alors utilisée."
 
 #. Tag: para
 #, no-c-format
@@ -666,7 +700,8 @@
 #. Tag: para
 #, no-c-format
 msgid "An array of entities, in this case, a many-to-many association:"
-msgstr "Un tableau d'entités - dans ce cas, une association plusieurs-à-plusieurs : "
+msgstr ""
+"Un tableau d'entités - dans ce cas, une association plusieurs-à-plusieurs : "
 
 #. Tag: para
 #, no-c-format
@@ -1006,15 +1041,14 @@
 "utiliserons le mappage suivant : "
 
 #. Tag: para
-#, no-c-format
+#, 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. <!-- TODO: Does this really "
-"result in some unnecessary update statements? -->"
+"responsible for updates to the foreign key."
 msgstr ""
 "Notez que dans ce mappage, l'extrémité de l'association contenant la "
-"collection est responsable des mise à jour de la clé étrangère. <!-- TODO: Does this really "
-"result in some unnecessary update statements? -->"
+"collection est responsable des mise à jour de la clé étrangère. <!-- TODO: "
+"Does this really result in some unnecessary update statements? -->"
 
 #. Tag: title
 #, no-c-format
@@ -1050,7 +1084,7 @@
 "discuterons plus tard. "
 
 #. Tag: title
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Using an &lt;idbag&gt;</literal>"
 msgstr "<literal>Using an &lt;idbag&gt;</literal>"
 
@@ -1139,7 +1173,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The following class has a collection of <literal>Child</literal> instances:"
+msgid ""
+"The following class has a collection of <literal>Child</literal> instances:"
 msgstr ""
 "La classe suivante possède une collection d'instances <literal>Child</"
 "literal>(filles) :"
@@ -1198,7 +1233,7 @@
 msgstr "Définitions des tables :"
 
 #. Tag: para
-#, no-c-format
+#, 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."
@@ -1212,4 +1247,3 @@
 msgstr ""
 "Des mappages d'association plus exotiques sont possibles, nous cataloguerons "
 "toutes les possibilités dans le prochain chapitre. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/component_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/component_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/component_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: component_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-11 08:51+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/configuration.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/configuration.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/configuration.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: configuration\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-05 09:05+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/events.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/events.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/events.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-11 09:16+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_mappings.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_mappings.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_mappings.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: example_mappings\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-11-11 09:19+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_parentchild.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_parentchild.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_parentchild.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: example_parentchild\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:05+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -151,7 +151,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgid ""
+"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
 msgstr ""
 "un <literal>INSERT</literal> pour créer l'enregistrement pour <literal>c</"
 "literal>"
@@ -326,10 +327,11 @@
 #. Tag: title
 #, no-c-format
 msgid "Cascades and <literal>unsaved-value</literal>"
-msgstr "Cascades et <literal>unsaved-value</literal> (valeurs non sauvegardées)"
+msgstr ""
+"Cascades et <literal>unsaved-value</literal> (valeurs non sauvegardées)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
 "literal>, made some changes in a UI action and wanted to persist these "
@@ -356,10 +358,9 @@
 "identifiants du type <literal>Long</literal>. Hibernate utilisera la "
 "propriété de l'identifiant et la propriété de la version/horodatage pour "
 "déterminer quels fils sont nouveaux (vous pouvez aussi utiliser la propriété "
-"version ou timestamp, consultez <xref linkend=\"objectstate-saveorupdate\" />.)"
-" <emphasis>Dans Hibernate3, il n'est plus "
-"nécessaire de spécifier une <literal>unsaved-value</literal> explicitement.</"
-"emphasis> "
+"version ou timestamp, consultez <xref linkend=\"objectstate-saveorupdate\" /"
+">.) <emphasis>Dans Hibernate3, il n'est plus nécessaire de spécifier une "
+"<literal>unsaved-value</literal> explicitement.</emphasis> "
 
 #. Tag: para
 #, no-c-format
@@ -425,4 +426,3 @@
 "les classes d'éléments composites : les éléments composites ne peuvent "
 "contenir de collections, et ils ne peuvent être les fils d'entités autres "
 "que l'unique parent. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_weblog.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_weblog.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/example_weblog.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: example_weblog\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-10-30 13:49+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/filters.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/filters.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/filters.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: filters\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-11-11 09:26+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/inheritance_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/inheritance_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/inheritance_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: inheritance_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:37+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -37,9 +37,9 @@
 msgstr "une table par hiérarchie de classe"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "table per subclass"
-msgstr "Une table par classe fille "
+msgstr "Une table par classe fille"
 
 #. Tag: para
 #, no-c-format
@@ -454,7 +454,7 @@
 msgstr "une table par classe concrète (union-classe fille)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code> (for <code>inverse="
 "\"true\"</code> only)"
@@ -492,3 +492,11 @@
 "Polymorphisme one-to-one, polymorphisme one-to-many, les jointures "
 "polymorphiques, et les récupération de jointures externes ne sont pas "
 "supportées."
+
+#, fuzzy
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "Une table par classe fille "
+
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "Une table par classe fille "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/performance.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/performance.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/performance.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: performance\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:38+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -314,12 +314,14 @@
 #. Tag: para
 #, no-c-format
 msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
-msgstr "La récupération via <literal>get()</literal> ou <literal>load()</literal>"
+msgstr ""
+"La récupération via <literal>get()</literal> ou <literal>load()</literal>"
 
 #. Tag: para
 #, no-c-format
 msgid "retrieval that happens implicitly when an association is navigated"
-msgstr "La récupération implicite lorsque l'on navigue à travers une association"
+msgstr ""
+"La récupération implicite lorsque l'on navigue à travers une association"
 
 #. Tag: para
 #, no-c-format
@@ -557,7 +559,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
 msgstr ""
 "Certaines opérations ne nécessitent <emphasis>pas</emphasis> "
 "l'initialisation du proxy :"
@@ -832,7 +835,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgid ""
+"Hibernate will now execute only three queries: the pattern is 10, 10, 5."
 msgstr ""
 "Hibernate exécutera désormais trois requêtes, en chargeant respectivement "
 "10, 10, et 5 entités. "
@@ -1061,7 +1065,7 @@
 msgstr "Table de hachage (ne pas utiliser en production)"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 
@@ -1081,7 +1085,7 @@
 msgstr "EHCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 
@@ -1096,7 +1100,7 @@
 msgstr "OSCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 
@@ -1106,7 +1110,7 @@
 msgstr "SwarmCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 
@@ -1126,7 +1130,7 @@
 msgstr "JBoss Cache 1.x"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 msgstr "    org.hibernate.cache.TreeCacheProvider"
 
@@ -1151,7 +1155,7 @@
 msgstr "JBoss Cache 2"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 msgstr "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 
@@ -1333,7 +1337,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "None of the cache providers support all of the cache concurrency strategies."
+msgid ""
+"None of the cache providers support all of the cache concurrency strategies."
 msgstr ""
 "Aucun des caches livrés ne supporte toutes les stratégies de concurrence. Le "
 "tableau suivant montre quels caches sont compatibles avec quelles stratégies "
@@ -1754,7 +1759,8 @@
 
 #. Tag: title
 #, no-c-format
-msgid "Lists, maps, idbags and sets are the most efficient collections to update"
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
 msgstr ""
 "Les lists, les maps, les idbags et les ensembles sont les collections les "
 "plus efficaces pour la mise à jour "
@@ -1825,7 +1831,8 @@
 #. Tag: title
 #, no-c-format
 msgid "Bags and lists are the most efficient inverse collections"
-msgstr "Les sacs et les listes sont les plus efficaces pour les collections inverses"
+msgstr ""
+"Les sacs et les listes sont les plus efficaces pour les collections inverses"
 
 #. Tag: para
 #, no-c-format
@@ -2128,4 +2135,3 @@
 "<literal>getQueries()</literal>, <literal>getEntityNames()</literal>, "
 "<literal>getCollectionRoleNames()</literal>, et "
 "<literal>getSecondLevelCacheRegionNames()</literal>. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/persistent_classes.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/persistent_classes.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/persistent_classes.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: persistent_classes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:39+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -147,7 +147,7 @@
 "déclarant un identifiant de propriété : "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Transitive reattachment for detached objects (cascade update or cascade "
 "merge) - see <xref linkend=\"objectstate-transitive\" />"
@@ -157,12 +157,12 @@
 "transitive\" />"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.saveOrUpdate()</literal>"
 msgstr "<literal>Session.saveOrUpdate()</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.merge()</literal>"
 msgstr "<literal>Session.merge()</literal>"
 
@@ -373,7 +373,7 @@
 "(une clé candidate <emphasis>naturelle</emphasis>) : "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -395,7 +395,7 @@
 msgstr "Remarque"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis>The following features are currently considered experimental and "
 "may change in the near future.</emphasis>"
@@ -421,7 +421,7 @@
 "de classes persistantes, seulement des fichiers de mappage. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "By default, Hibernate works in normal POJO mode. You can set a default "
 "entity representation mode for a particular <literal>SessionFactory</"
@@ -517,7 +517,7 @@
 "transaction et de la connexion à l'unité de travail primaire. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "More information about the XML representation capabilities can be found in "
 "<xref linkend=\"xml\" />."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/portability.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/portability.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/portability.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: portability\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:42+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -115,7 +115,7 @@
 "connues d'Hibernate et elle n'était ni configurable, ni remplaçable."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Starting with version 3.3, Hibernate has a fare more powerful way to "
 "automatically determine which dialect to should be used by relying on a "
@@ -253,13 +253,13 @@
 "livrés."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 msgstr ""
 "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_criteria.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_criteria.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_criteria.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: query_criteria\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:43+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -24,7 +24,8 @@
 #. Tag: para
 #, no-c-format
 msgid "Hibernate features an intuitive, extensible criteria query API."
-msgstr "Hibernate offre une API d'interrogation par critères intuitive et extensible."
+msgstr ""
+"Hibernate offre une API d'interrogation par critères intuitive et extensible."
 
 #. Tag: title
 #, no-c-format
@@ -138,7 +139,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "There is also an alternate form that is useful in certain circumstances:"
+msgid ""
+"There is also an alternate form that is useful in certain circumstances:"
 msgstr "La forme alternative suivante est utile dans certains cas :"
 
 #. Tag: para
@@ -179,7 +181,7 @@
 "association en utilisant <literal>setFetchMode()</literal>."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "This query will fetch both <literal>mate</literal> and <literal>kittens</"
 "literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
@@ -373,4 +375,3 @@
 "Une fois que vous aurez activé le cache de requête d'Hibernate, "
 "<literal>Restrictions.naturalId()</literal> vous permettra de rendre "
 "l'utilisation de l'algorithme de cache plus efficace."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_hql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_hql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_hql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: query_hql\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:46+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -157,14 +157,14 @@
 msgstr "<literal>inner join</literal> (jointure interne)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>left outer join</literal>"
-msgstr "<literal>left outer join</literal> (jointure ouverte par la gauche)"
+msgstr "<literal>inner join</literal> (jointure interne)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>right outer join</literal>"
-msgstr "<literal>right outer join</literal> (jointure ouverte par la droite)"
+msgstr "<literal>inner join</literal> (jointure interne)"
 
 #. Tag: para
 #, no-c-format
@@ -193,7 +193,7 @@
 "utilisant le mot-clef HQL <literal>with</literal>."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "A \"fetch\" join allows associations or collections of values to be "
 "initialized along with their parent objects using a single select. This is "
@@ -477,7 +477,7 @@
 msgstr "Les fonctions d'agrégation supportées sont :"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 
@@ -487,7 +487,7 @@
 msgstr "<literal>count(*)</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
 msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
 
@@ -630,7 +630,7 @@
 "des propriétés que des instances : "
 
 #. Tag: para
-#, no-c-format
+#, 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-"
@@ -665,7 +665,7 @@
 "Une fois de plus, la seconde requête ne nécessite pas de jointure de table. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"queryhql-identifier-property\" /> for more information "
 "regarding referencing identifier properties)"
@@ -688,7 +688,7 @@
 "valeur discriminante. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "You can also use components or composite user types, or properties of said "
 "component types. See <xref linkend=\"queryhql-components\" /> for more "
@@ -1155,7 +1155,7 @@
 "select ou where. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Note that subqueries can also utilize <literal>row value constructor</"
 "literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
@@ -1277,7 +1277,7 @@
 msgstr "Nombreuses mises à jour et suppressions "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "HQL now supports <literal>update</literal>, <literal>delete</literal> and "
 "<literal>insert ... select ...</literal> statements. See <xref linkend="
@@ -1460,3 +1460,12 @@
 "Si vous décidez d'utiliser cette syntaxe, il vous faudra prendre en "
 "considération le fait que la requête sera dépendante de la commande des sous-"
 "propriétés du composant dans les métadonnées. "
+
+#, fuzzy
+#~ msgid "left outer join"
+#~ msgstr "<literal>left outer join</literal> (jointure ouverte par la gauche)"
+
+#, fuzzy
+#~ msgid "right outer join"
+#~ msgstr ""
+#~ "<literal>right outer join</literal> (jointure ouverte par la droite)"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_sql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_sql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/query_sql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: query_sql\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:47+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -418,14 +418,14 @@
 msgstr "Une propriété simple"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[propertyname]</literal>"
 msgstr "<literal>{[aliasname].[propertyname]</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>A_NAME as {item.name}</literal>"
-msgstr "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -433,12 +433,12 @@
 msgstr "Une propriété composite"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
 "literal>"
@@ -452,14 +452,14 @@
 msgstr "Discriminateur d'une entité"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].class}</literal>"
-msgstr "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>DISC as {item.class}</literal>"
-msgstr "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -467,9 +467,9 @@
 msgstr "Toutes les propriétés d'une entité"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].*}</literal>"
-msgstr "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -482,14 +482,14 @@
 msgstr "La clé d'une collection"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].key}</literal>"
-msgstr "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>ORGID as {coll.key}</literal>"
-msgstr "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -497,14 +497,14 @@
 msgstr "L'id d'une collection"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].id}</literal>"
-msgstr "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>EMPID as {coll.id}</literal>"
-msgstr "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -512,14 +512,14 @@
 msgstr "L'élément d'une collection"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element}</literal>"
-msgstr "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>XID as {coll.element}</literal>"
-msgstr "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -527,12 +527,12 @@
 msgstr "Propriété de l'élément dans une collection "
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>NAME as {coll.element.name}</literal>"
 msgstr "<literal>NAME as {coll.element.name}</literal>"
 
@@ -542,14 +542,14 @@
 msgstr "Toutes les propriétés d'un élément dans la collection"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.*}</literal>"
-msgstr "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{coll.element.*}</literal>"
-msgstr "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -979,7 +979,8 @@
 #. Tag: para
 #, no-c-format
 msgid "You can even define a query for collection loading:"
-msgstr "Vous pouvez même définir une requête pour le chargement d'une collection : "
+msgstr ""
+"Vous pouvez même définir une requête pour le chargement d'une collection : "
 
 #. Tag: para
 #, no-c-format
@@ -990,3 +991,50 @@
 "Vous pourriez même définir un chargeur d'entité qui charge une collection "
 "par jointure : "
 
+#, fuzzy
+#~ msgid "A_NAME as {item.name}"
+#~ msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].class}"
+#~ msgstr "<literal>{[aliasname].class}</literal>"
+
+#, fuzzy
+#~ msgid "DISC as {item.class}"
+#~ msgstr "<literal>DISC as {item.class}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].*}"
+#~ msgstr "<literal>{[aliasname].*}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].key}"
+#~ msgstr "<literal>{[aliasname].key}</literal>"
+
+#, fuzzy
+#~ msgid "ORGID as {coll.key}"
+#~ msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].id}"
+#~ msgstr "<literal>{[aliasname].id}</literal>"
+
+#, fuzzy
+#~ msgid "EMPID as {coll.id}"
+#~ msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element}"
+#~ msgstr "<literal>{[aliasname].element}</literal>"
+
+#, fuzzy
+#~ msgid "XID as {coll.element}"
+#~ msgstr "<literal>XID as {coll.element}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element.*}"
+#~ msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#, fuzzy
+#~ msgid "{coll.element.*}"
+#~ msgstr "<literal>{coll.element.*}</literal>"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/session_api.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/session_api.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/session_api.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: session_api\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 09:57+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -281,7 +281,8 @@
 #. Tag: para
 #, no-c-format
 msgid "Alternatively, you can load state into a given instance:"
-msgstr "Alternativement, vous pouvez charger un état dans une instance donnée :"
+msgstr ""
+"Alternativement, vous pouvez charger un état dans une instance donnée :"
 
 #. Tag: para
 #, no-c-format
@@ -354,15 +355,14 @@
 "certaines propriétés de l'objet."
 
 #. Tag: para
-#, no-c-format
+#, 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 ""
-"Combien de "
-"données Hibernate charge-t-il de la base de données et combien de "
+"Combien de données Hibernate charge-t-il de la base de données et combien de "
 "<literal>SELECT</literal>s utilisera-t-il ? Cela dépend de la "
 "<emphasis>stratégie de récupération</emphasis> et cela est expliqué dans "
 "<xref linkend=\"performance-fetching\" />."
@@ -516,7 +516,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "named parameters are insensitive to the order they occur in the query string"
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
 msgstr ""
 "les paramètres nommés sont insensibles à l'ordre dans lequel ils "
 "apparaissent dans la chaîne de la requête"
@@ -607,7 +608,8 @@
 #. Tag: para
 #, no-c-format
 msgid "Parameter binding and executing is done programatically:"
-msgstr "La liaison de paramètres et l'exécution sont effectués par programmation :"
+msgstr ""
+"La liaison de paramètres et l'exécution sont effectués par programmation :"
 
 #. Tag: para
 #, no-c-format
@@ -705,7 +707,7 @@
 "intuitive de requête <literal>Criteria</literal> pour ces cas :"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Criteria</literal> and the associated <literal>Example</"
 "literal> API are discussed in more detail in <xref linkend=\"querycriteria"
@@ -736,7 +738,7 @@
 "mettre les alias SQL entre accolades : "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -791,7 +793,7 @@
 "instances détachées. "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -814,8 +816,8 @@
 "masse entre en conflit avec le mapping objet/relationnel pour les "
 "applications orientées processus de transactions en ligne. Les futures "
 "versions de Hibernate pourront cependant fournir des fonctions particulières "
-"d'opération de masse. Voir <xref linkend=\"batch\" /> pour des "
-"astuces possibles d'opérations groupées. "
+"d'opération de masse. Voir <xref linkend=\"batch\" /> pour des astuces "
+"possibles d'opérations groupées. "
 
 #. Tag: title
 #, no-c-format
@@ -881,7 +883,7 @@
 "exécutée. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The application should individually <literal>update()</literal> detached "
 "instances that are reachable from the given detached instance "
@@ -921,7 +923,7 @@
 "n'est pas le seul cas d'utilisation pour <literal>lock()</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Other models for long units of work are discussed in <xref linkend="
 "\"transactions-optimistic\" />."
@@ -1092,7 +1094,8 @@
 msgid ""
 "the given instance does not become associated with the session, it remains "
 "detached"
-msgstr "l'instance donnée ne devient pas associée à la session, elle reste détachée"
+msgstr ""
+"l'instance donnée ne devient pas associée à la session, elle reste détachée"
 
 #. Tag: title
 #, no-c-format
@@ -1230,7 +1233,8 @@
 #. Tag: para
 #, no-c-format
 msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
-msgstr "lors d'un appel à <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr ""
+"lors d'un appel à <literal>org.hibernate.Transaction.commit()</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1307,7 +1311,7 @@
 "jamais de données périmées, ni des données fausses. "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -1329,7 +1333,7 @@
 "moment (voir <xref linkend=\"transactions-optimistic-longsession\" />)."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "During flush, an exception might occur (e.g. if a DML operation violates a "
 "constraint). Since handling exceptions involves some understanding of "
@@ -1640,4 +1644,3 @@
 "literal> et <literal>CollectionMetadata</literal> et la hiérarchie "
 "<literal>Type</literal>. Les instances des interfaces de méta-données "
 "peuvent être obtenues à partir de la <literal>SessionFactory</literal>. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/toolset_guide.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/toolset_guide.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/toolset_guide.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: toolset_guide\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 10:05+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -89,11 +89,6 @@
 
 #. Tag: para
 #, 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."
@@ -363,9 +358,9 @@
 msgstr "<literal>unique-key</literal> (clé-unique)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>unique_key_name</literal>"
-msgstr "<literal>unique_key_name</literal>"
+msgstr "<literal>unique-key</literal> (clé-unique)"
 
 #. Tag: para
 #, no-c-format
@@ -378,9 +373,9 @@
 msgstr "<literal>foreign-key</literal> (clé étrangère)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foreign_key_name</literal>"
-msgstr "<literal>foreign_key_name</literal>"
+msgstr "<literal>foreign-key</literal> (clé étrangère)"
 
 #. Tag: para
 #, no-c-format
@@ -404,9 +399,9 @@
 msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>SQL column type</literal>"
-msgstr "<literal>SQL column type</literal> (type de colonne SQL)"
+msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -551,9 +546,9 @@
 msgstr "n'exporte pas vers la base de données "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--output=my_schema.ddl</literal>"
-msgstr "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>scale</literal> (échelle)"
 
 #. Tag: para
 #, no-c-format
@@ -561,7 +556,7 @@
 msgstr "écrit le script ddl vers un fichier"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
 msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
 
@@ -571,7 +566,7 @@
 msgstr "sélectionne une <literal>NamingStrategy</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--config=hibernate.cfg.xml</literal>"
 msgstr "<literal>--config=hibernate.cfg.xml</literal>"
 
@@ -581,9 +576,9 @@
 msgstr "lit la configuration Hibernate à partir d'un fichier XML"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--properties=hibernate.properties</literal>"
-msgstr "<literal>--properties=hibernate.properties</literal>"
+msgstr "dans <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -663,7 +658,7 @@
 msgstr "Nom de la propriété"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.driver_class</literal>"
 msgstr "<literal>hibernate.connection.driver_class</literal>"
 
@@ -673,9 +668,9 @@
 msgstr "classe du driver JDBC"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.url</literal>"
-msgstr "<literal>hibernate.connection.url</literal>"
+msgstr "dans <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -683,9 +678,9 @@
 msgstr "URL JDBC"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.username</literal>"
-msgstr "<literal>hibernate.connection.username</literal>"
+msgstr "dans <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -693,9 +688,9 @@
 msgstr "utilisateur de la base de données"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.password</literal>"
-msgstr "<literal>hibernate.connection.password</literal>"
+msgstr "dans <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -703,9 +698,9 @@
 msgstr "mot de passe de l'utilisateur"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.dialect</literal>"
-msgstr "<literal>hibernate.dialect</literal>"
+msgstr "dans <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -848,3 +843,50 @@
 msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
 msgstr ""
 "Vous pouvez appeler <literal>SchemaValidator</literal> depuis le script Ant:"
+
+#, fuzzy
+#~ msgid "length"
+#~ msgstr "taille d'une colonne"
+
+#, fuzzy
+#~ msgid "precision"
+#~ msgstr "Expression SQL"
+
+#, fuzzy
+#~ msgid "unique_key_name"
+#~ msgstr "<literal>unique_key_name</literal>"
+
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "<literal>foreign_key_name</literal>"
+
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "<literal>SQL column type</literal> (type de colonne SQL)"
+
+#, fuzzy
+#~ msgid "--output=my_schema.ddl"
+#~ msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#, fuzzy
+#~ msgid "--properties=hibernate.properties"
+#~ msgstr "<literal>--properties=hibernate.properties</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.url"
+#~ msgstr "<literal>hibernate.connection.url</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.username"
+#~ msgstr "<literal>hibernate.connection.username</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.password"
+#~ msgstr "<literal>hibernate.connection.password</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.dialect"
+#~ msgstr "<literal>hibernate.dialect</literal>"
+
+#~ msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+#~ msgstr "<!-- <emphasis>Ant Tasks:</emphasis> -->"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/transactions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/transactions.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/transactions.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: transactions\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 10:06+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -156,7 +156,7 @@
 msgstr "Unité de travail"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "First, let's define a unit of work. A unit of work is a design pattern "
 "described by Martin Fowler as <quote> [maintaining] a list of objects "
@@ -278,7 +278,7 @@
 "chapitre, afin de faciliter l'utilisation et la portabilité du code. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Your application code can access a \"current session\" to process the "
 "request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
@@ -508,7 +508,7 @@
 msgstr "Identité de database"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
 msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
 
@@ -687,7 +687,7 @@
 "après le rollback). "
 
 #. Tag: para
-#, no-c-format
+#, 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/tutorial.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/tutorial.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/tutorial.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: tutorial\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 10:08+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -376,7 +376,7 @@
 "points d'extension d'Hibernate et vous pouvez plug-in votre propre stratégie."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>native</literal> is no longer considered the best strategy in terms "
 "of portability. for further discussion, see <xref linkend=\"portability-idgen"
@@ -606,7 +606,7 @@
 "Hibernate va générer. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Hibernate is able to correctly determine which dialect to use in most cases. "
 "See <xref linkend=\"portability-dialectresolver\" /> for more information."
@@ -917,7 +917,7 @@
 "application (web) est affichée plus loin dans ce tutoriel. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"transactions\" /> for more information about transaction "
 "handling and demarcation. The previous example also skipped any error "
@@ -975,7 +975,7 @@
 "Nous ajoutons aussi une nouvelle méthode <literal>listEvents()</literal> : "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -1746,7 +1746,7 @@
 "le répertoire <literal>webapp</literal> de Tomcat. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you do not have Tomcat installed, download it from <ulink url=\"http://"
 "tomcat.apache.org/\" /> and follow the installation instructions. Our "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/xml.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/xml.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/fr-FR/content/xml.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-05 10:08+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
@@ -22,13 +22,13 @@
 msgstr "Mappage XML"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
 "currently under active development. </emphasis>"
 msgstr ""
-"<emphasis>Notez que cette fonctionnalité est expérimentale dans Hibernate 3.0 et est "
-"en développement extrêmement actif. </emphasis>"
+"<emphasis>Notez que cette fonctionnalité est expérimentale dans Hibernate "
+"3.0 et est en développement extrêmement actif. </emphasis>"
 
 #. Tag: title
 #, no-c-format
@@ -148,7 +148,8 @@
 #. Tag: para
 #, no-c-format
 msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
-msgstr "<literal>\"@attribute-name\"</literal> - mappe vers l'attribut XML nommé "
+msgstr ""
+"<literal>\"@attribute-name\"</literal> - mappe vers l'attribut XML nommé "
 
 #. Tag: para
 #, no-c-format
@@ -240,4 +241,3 @@
 "Il est extrêmement utile de combiner cette fonctionnalité avec l'opération "
 "<literal>replicate()</literal> de Hibernate pour implémenter des imports/"
 "exports de données XML. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Author_Group.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Author_Group.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Author_Group.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 17:14+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -12,3 +12,138 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr ""
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr ""
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Book_Info.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Book_Info.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Book_Info.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 17:14+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -18,12 +18,9 @@
 msgid "Hibernate Core Reference Guide"
 msgstr "Hibernate リファレンスガイド"
 
-#. Tag: subtitle
+#. Tag: releaseinfo
 #, 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)"
+msgid "&version;"
 msgstr ""
 
 #. Tag: para
@@ -31,6 +28,9 @@
 msgid "The JBoss Hibernate Core 3.3.2.GA Reference Guide"
 msgstr "Hibernate リファレンスガイド"
 
+#~ msgid "&HOLDER;"
+#~ msgstr "&HOLDER;"
+
 #, fuzzy
 #~ msgid "for Use with JBoss Enterprise Application Platform 5.0"
 #~ msgstr "JBoss Enterprise Application Platform"
@@ -41,6 +41,3 @@
 #~ "Reference Guide"
 #~ msgstr ""
 #~ "JBoss Enterprise Application Platform 版 Hibernate リファレンスガイド 3.2"
-
-#~ msgid "&HOLDER;"
-#~ msgstr "&HOLDER;"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Revision_History.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Revision_History.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/Revision_History.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2007-02-26 17:14+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -18,6 +18,21 @@
 msgid "Revision History"
 msgstr ""
 
+#. Tag: firstname
+#, no-c-format
+msgid "Ben"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Jared"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Richard"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Merged with EAP5 and translations added"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/Preface.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/Preface.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/Preface.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:43\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-21 17:17+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -79,7 +79,7 @@
 "な方は、 次の手順を行ってください。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
 "instructions. The source code for the tutorial is included in the "
@@ -91,7 +91,7 @@
 "にあります。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"architecture\" /> to understand the environments where "
 "Hibernate can be used."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/architecture.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/architecture.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/architecture.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-13 10:25+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -224,7 +224,7 @@
 "ケーションには公開されませんが、開発者が継承または実装することは可能です。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<emphasis>Extension Interfaces</emphasis>"
 msgstr "<emphasis>Extension Interfaces</emphasis>"
 
@@ -401,7 +401,7 @@
 "ザーガイドを参考にしてください。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Another feature available as a JMX service is runtime Hibernate statistics. "
 "See <xref linkend=\"configuration-optional-statistics\" /> for more "
@@ -551,7 +551,7 @@
 "ラッシュ、クローズしません。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/association_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/association_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/association_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-06 17:26+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/basic_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/basic_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/basic_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:44\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-06 10:49+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -849,9 +849,9 @@
 "は以下のショートカット名があります:"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>increment</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -867,9 +867,9 @@
 "emphasis> 。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>identity</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -883,9 +883,9 @@
 "literal> , <literal>int</literal> のいずれかです。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>sequence</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -899,9 +899,9 @@
 "<literal>short</literal> , <literal>int</literal> のいずれかです。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hilo</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -920,9 +920,9 @@
 "lo アルゴリズムは特定のデータベースに対してのみユニークな識別子を生成します。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>seqhilo</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -936,9 +936,9 @@
 "ベースシーケンスを与えます。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>uuid</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -952,9 +952,9 @@
 "進数字の文字列としてエンコードされます。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>guid</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -963,9 +963,9 @@
 "MS SQL サーバーと MySQL でデータベースが生成する GUID 文字列を使用します。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>native</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -979,9 +979,9 @@
 "す。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>assigned</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -995,9 +995,9 @@
 "定されていなければ、これがデフォルトの戦略になります。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>select</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1009,9 +1009,9 @@
 "割り当てた主キーを取得します。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foreign</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1235,12 +1235,14 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, 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>column</literal>(オプション - デフォルトは <literal>class</"
+"literal> ): 識別カラムの名前。"
 
 #. Tag: para
 #, no-c-format
@@ -1261,28 +1263,35 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, 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</literal> (オプション - デフォルトは <literal>false</"
+"literal> ): ルートクラスのすべてのインスタンスを検索する場合であっても、 "
+"Hibernate が使用できる識別カラムの指定を「強制」します。"
 
 #. Tag: para
-#, no-c-format
+#, 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>column</literal>(オプション - デフォルトは <literal>class</"
+"literal> ): 識別カラムの名前。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>optimizer</literal> (optional - defaults to <literal>none</"
 "literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" /"
 ">"
 msgstr ""
+"<literal>type</literal> (オプション - デフォルトは <literal>integer</"
+"literal> ):バージョン番号の型。"
 
 #. Tag: para
 #, no-c-format
@@ -1300,19 +1309,23 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, 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>type</literal> (オプション - デフォルトは <literal>integer</"
+"literal> ):バージョン番号の型。"
 
 #. Tag: para
-#, no-c-format
+#, 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>column</literal>(オプション - デフォルトは <literal>class</"
+"literal> ): 識別カラムの名前。"
 
 #. Tag: para
 #, no-c-format
@@ -1324,46 +1337,56 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, 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>access</literal> (オプション - デフォルトは <literal>property</"
+"literal> ): Hibernate がプロパティの値にアクセスするために使用すべき戦略。"
 
 #. Tag: para
-#, no-c-format
+#, 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>column</literal>(オプション - デフォルトは <literal>class</"
+"literal> ): 識別カラムの名前。"
 
 #. Tag: para
-#, no-c-format
+#, 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>type</literal> (オプション - デフォルトは <literal>integer</"
+"literal> ):バージョン番号の型。"
 
 #. Tag: para
-#, no-c-format
+#, 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>type</literal> (オプション - デフォルトは <literal>integer</"
+"literal> ):バージョン番号の型。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>optimizer</literal> (optional - defaults to <literal></literal>): "
 "See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
 msgstr ""
+"<literal>type</literal> (オプション - デフォルトは <literal>integer</"
+"literal> ):バージョン番号の型。"
 
 #. Tag: title
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "Identifier generator optimization"
-msgstr ""
+msgstr "識別子の getter メソッド"
 
 #. Tag: para
 #, no-c-format
@@ -3412,9 +3435,9 @@
 "または <literal>java.lang.Boolean</literal> の代替エンコードです。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>string</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -3495,9 +3518,9 @@
 "タンスは、それらの <literal>ID</literal> にマッピングされます。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>class</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -3511,9 +3534,9 @@
 "literal> はその完全修飾された名前にマッピングされます。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>binary</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -3521,9 +3544,9 @@
 msgstr "バイト配列は、適切な SQL のバイナリ型にマッピングされます。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>text</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -3535,9 +3558,9 @@
 "literal> 型にマッピングされます。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>serializable</literal>"
-msgstr ""
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -3552,9 +3575,9 @@
 "こともできます。"
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>clob, blob</literal>"
-msgstr ""
+msgstr "<literal>calendar, calendar_date</literal>"
 
 #. Tag: para
 #, no-c-format

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/batch.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/batch.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/batch.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:44\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-13 15:16+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -185,7 +185,7 @@
 msgstr "DML スタイルの操作"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -242,7 +242,7 @@
 "ば、どのようなプロパティ参照も修飾してはなりません。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, 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-"
@@ -271,7 +271,7 @@
 "した):"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
 "statements, by default, do not effect the version (<xref linkend=\"mapping-"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/best_practices.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/best_practices.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/best_practices.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-20 16:59+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/collection_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/collection_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/collection_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-06 16:08+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -431,26 +431,30 @@
 "納します (デフォルトでは0から番号が付けられます)。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>column_name</literal> (required): the name of the column holding "
 "the collection index values."
-msgstr ""
+msgstr "<literal>class</literal> (必須): 関連クラスの名前。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, 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>cascade</literal> (オプション - デフォルトは <literal>none</"
+"literal>):子エンティティへのカスケード操作を有効にします。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection index values."
 msgstr ""
+"<literal>schema</literal> (オプション):テーブルスキーマの名前。ルート要素"
+"で宣言されているスキーマより優先されます。"
 
 #. Tag: para
 #, no-c-format
@@ -460,16 +464,18 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>type</literal> (required): the type of the map keys."
-msgstr ""
+msgstr "<literal>class</literal> (必須): 関連クラスの名前。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the foreign key column for "
 "the collection index values."
 msgstr ""
+"<literal>schema</literal> (オプション):テーブルスキーマの名前。ルート要素"
+"で宣言されているスキーマより優先されます。"
 
 #. Tag: para
 #, no-c-format
@@ -479,10 +485,10 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>class</literal> (required): the entity class used as the map key."
-msgstr ""
+msgstr "<literal>class</literal> (必須): 関連クラスの名前。"
 
 #. Tag: para
 #, fuzzy, no-c-format
@@ -526,23 +532,27 @@
 "す。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection element values."
 msgstr ""
+"<literal>schema</literal> (オプション):テーブルスキーマの名前。ルート要素"
+"で宣言されているスキーマより優先されます。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element."
 msgstr ""
+"<literal>schema</literal> (オプション):テーブルスキーマの名前。ルート要素"
+"で宣言されているスキーマより優先されます。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>type</literal> (required): the type of the collection element."
-msgstr ""
+msgstr "<literal>class</literal> (必須): 関連クラスの名前。"
 
 #. Tag: para
 #, no-c-format
@@ -552,11 +562,11 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the element foreign key "
 "column."
-msgstr ""
+msgstr "<literal>class</literal> (必須): 関連クラスの名前。"
 
 #. Tag: para
 #, no-c-format
@@ -971,11 +981,10 @@
 "をマッピングできません。代わりに、次のようなマッピングが使えます:"
 
 #. Tag: para
-#, no-c-format
+#, 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. <!-- TODO: Does this really "
-"result in some unnecessary update statements? -->"
+"responsible for updates to the foreign key."
 msgstr ""
 "注意: このマッピングでは、関連のコレクション値の側は、外部キーをアップデート"
 "する責任があります。 <!-- TODO: これは本当にいくつかの不必要なアップデートス"
@@ -1013,7 +1022,7 @@
 "最後は composite 要素を使うアプローチです。これに関する議論は後ほど行います。"
 
 #. Tag: title
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Using an &lt;idbag&gt;</literal>"
 msgstr "&lt;idbag&gt;の使用"
 
@@ -1155,7 +1164,7 @@
 msgstr "テーブル定義は以下のようになります:"
 
 #. Tag: para
-#, no-c-format
+#, 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."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/component_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/component_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/component_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:44\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-07 09:28+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/configuration.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/configuration.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/configuration.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:44\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-21 17:12+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -145,11 +145,13 @@
 "filename> (後述)に設定します。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you want to get started quickly<filename>hibernate.properties</filename> "
 "is the easiest approach."
 msgstr ""
+"<literal>hibernate.properties</literal> をクラスパスのルートディレクトリに置"
+"きます。"
 
 #. Tag: para
 #, no-c-format
@@ -272,9 +274,9 @@
 msgstr "<property>hibernate.connection.url</property>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<emphasis>JDBC URL</emphasis>"
-msgstr ""
+msgstr "JDBC のドライバークラス"
 
 #. Tag: para
 #, no-c-format

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/events.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/events.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/events.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2010-01-13 11:47+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_mappings.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_mappings.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_mappings.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-20 15:40+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_parentchild.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_parentchild.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_parentchild.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-20 15:29+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -320,7 +320,7 @@
 msgstr "カスケードと unsaved-value"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
 "literal>, made some changes in a UI action and wanted to persist these "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_weblog.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_weblog.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/example_weblog.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-20 15:34+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/filters.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/filters.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/filters.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-18 15:28+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/inheritance_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/inheritance_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/inheritance_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-09T04:05:51\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-07 09:59+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -860,6 +860,10 @@
 #~ "    &lt;/joined-subclass&gt;\n"
 #~ "&lt;/class&gt;"
 
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "<entry>table per subclass</entry>"
+
 #~ msgid "Features of inheritance mappings"
 #~ msgstr "継承マッピングの機能"
 
@@ -905,9 +909,6 @@
 #~ msgid "supported"
 #~ msgstr "サポート"
 
-#~ msgid "<entry>table per subclass</entry>"
-#~ msgstr "<entry>table per subclass</entry>"
-
 #~ msgid "&lt;any&gt;"
 #~ msgstr "&lt;any&gt;"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/performance.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/performance.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/performance.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-20 14:25+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -1006,7 +1006,7 @@
 msgstr "Hashtable(製品用として意図していません)"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 
@@ -1026,7 +1026,7 @@
 msgstr "EHCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 
@@ -1041,7 +1041,7 @@
 msgstr "OSCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 
@@ -1051,7 +1051,7 @@
 msgstr "SwarmCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 
@@ -1071,7 +1071,7 @@
 msgstr ""
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 
@@ -1096,7 +1096,7 @@
 msgstr ""
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 msgstr "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/persistent_classes.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/persistent_classes.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/persistent_classes.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:45\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-04 13:58+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -134,7 +134,7 @@
 "す:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Transitive reattachment for detached objects (cascade update or cascade "
 "merge) - see <xref linkend=\"objectstate-transitive\" />"
@@ -143,12 +143,12 @@
 "linkend=\"objectstate-transitive\" />次を参照してください。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.saveOrUpdate()</literal>"
 msgstr "<xref linkend=\"objectstate-transitive\" />"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.merge()</literal>"
 msgstr "<literal>Session.merge()</literal>"
 
@@ -350,7 +350,7 @@
 "emphasis> 候補キー) を形成するプロパティだけを比較することを意味します。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -372,7 +372,7 @@
 msgstr "注意"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis>The following features are currently considered experimental and "
 "may change in the near future.</emphasis>"
@@ -396,7 +396,7 @@
 "ングファイルだけを書くことになります。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "By default, Hibernate works in normal POJO mode. You can set a default "
 "entity representation mode for a particular <literal>SessionFactory</"
@@ -488,7 +488,7 @@
 "of Work)に任せることができるということです。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "More information about the XML representation capabilities can be found in "
 "<xref linkend=\"xml\" />."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/portability.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/portability.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/portability.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:45\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-20 17:03+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -165,13 +165,13 @@
 msgstr ""
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 msgstr ""
 "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_criteria.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_criteria.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_criteria.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-18 13:38+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -175,7 +175,7 @@
 "よいです。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "This query will fetch both <literal>mate</literal> and <literal>kittens</"
 "literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_hql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_hql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_hql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:45\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-13 17:08+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -177,7 +177,7 @@
 "できます。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "A \"fetch\" join allows associations or collections of values to be "
 "initialized along with their parent objects using a single select. This is "
@@ -441,7 +441,7 @@
 msgstr "サポートしている集約関数は以下のものです。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 
@@ -451,7 +451,7 @@
 msgstr "<literal>count(*)</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
 msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
 
@@ -592,7 +592,7 @@
 "比較するためにも使われます。:"
 
 #. Tag: para
-#, no-c-format
+#, 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-"
@@ -644,7 +644,7 @@
 "め込まれた Java のクラス名はその discriminator 値に変換されます。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "You can also use components or composite user types, or properties of said "
 "component types. See <xref linkend=\"queryhql-components\" /> for more "
@@ -1100,7 +1100,7 @@
 "い。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Note that subqueries can also utilize <literal>row value constructor</"
 "literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
@@ -1214,7 +1214,7 @@
 msgstr "大量の UPDATE と DELETE"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "HQL now supports <literal>update</literal>, <literal>delete</literal> and "
 "<literal>insert ... select ...</literal> statements. See <xref linkend="
@@ -1322,7 +1322,7 @@
 msgstr "コンポーネントは <literal>order by</literal> 節でも使用可能です:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Another common use of components is in row value constructors (<xref linkend="
 "\"queryhql-tuple\" />)."
@@ -1390,6 +1390,10 @@
 #~ msgstr "from eg.Cat"
 
 #, fuzzy
+#~ msgid "<![CDATA[from Cat]]>"
+#~ msgstr "from eg.Cat"
+
+#, fuzzy
 #~ msgid "<![CDATA[from Cat as cat]]>"
 #~ msgstr "from Cat as cat"
 
@@ -1430,6 +1434,10 @@
 #~ msgstr "left outer join"
 
 #, fuzzy
+#~ msgid "right outer join"
+#~ msgstr "left outer join"
+
+#, fuzzy
 #~ msgid ""
 #~ "<![CDATA[from Cat as cat\n"
 #~ "    join cat.mate as mate\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_sql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_sql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/query_sql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-18 15:09+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -390,14 +390,14 @@
 msgstr "単純なプロパティ"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[propertyname]</literal>"
 msgstr "<literal>{[aliasname].[propertyname]</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>A_NAME as {item.name}</literal>"
-msgstr "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -405,12 +405,12 @@
 msgstr "複合プロパティ"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
 "literal>"
@@ -424,14 +424,14 @@
 msgstr "エンティティのクラスを識別する値"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].class}</literal>"
-msgstr "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>DISC as {item.class}</literal>"
-msgstr "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -439,9 +439,9 @@
 msgstr "エンティティの全プロパティ"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].*}</literal>"
-msgstr "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -454,14 +454,14 @@
 msgstr "コレクションのキー"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].key}</literal>"
-msgstr "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>ORGID as {coll.key}</literal>"
-msgstr "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -469,14 +469,14 @@
 msgstr "コレクションの ID"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].id}</literal>"
-msgstr "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>EMPID as {coll.id}</literal>"
-msgstr "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -484,14 +484,14 @@
 msgstr "コレクションの要素"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element}</literal>"
-msgstr "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>XID as {coll.element}</literal>"
-msgstr "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -499,14 +499,14 @@
 msgstr "コレクションの要素のプロパティ"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>NAME as {coll.element.name}</literal>"
-msgstr "<literal>NAME as {coll.element.name}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -514,9 +514,9 @@
 msgstr "コレクションの要素の全プロパティ"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.*}</literal>"
-msgstr "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1073,9 +1073,61 @@
 #~ "        .addEntity(\"cat\", Cat.class)\n"
 #~ "        .addEntity(\"mother\", Cat.class).list()"
 
+#, fuzzy
+#~ msgid "A_NAME as {item.name}"
+#~ msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].class}"
+#~ msgstr "<literal>{[aliasname].class}</literal>"
+
+#, fuzzy
+#~ msgid "DISC as {item.class}"
+#~ msgstr "<literal>DISC as {item.class}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].*}"
+#~ msgstr "<literal>{[aliasname].*}</literal>"
+
 #~ msgid "{item.*}"
 #~ msgstr "{item.*}"
 
+#, fuzzy
+#~ msgid "{[aliasname].key}"
+#~ msgstr "<literal>{[aliasname].key}</literal>"
+
+#, fuzzy
+#~ msgid "ORGID as {coll.key}"
+#~ msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].id}"
+#~ msgstr "<literal>{[aliasname].id}</literal>"
+
+#, fuzzy
+#~ msgid "EMPID as {coll.id}"
+#~ msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element}"
+#~ msgstr "<literal>{[aliasname].element}</literal>"
+
+#, fuzzy
+#~ msgid "XID as {coll.element}"
+#~ msgstr "<literal>XID as {coll.element}</literal>"
+
+#, fuzzy
+#~ msgid "NAME as {coll.element.name}"
+#~ msgstr "<literal>NAME as {coll.element.name}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element.*}"
+#~ msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#, fuzzy
+#~ msgid "{coll.element.*}"
+#~ msgstr "{coll.*}"
+
 #~ msgid "{coll.*}"
 #~ msgstr "{coll.*}"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/session_api.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/session_api.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/session_api.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-07 14:56+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -330,7 +330,7 @@
 "場合、このメソッドが役に立ちます。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -671,7 +671,7 @@
 "す。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Criteria</literal> and the associated <literal>Example</"
 "literal> API are discussed in more detail in <xref linkend=\"querycriteria"
@@ -702,7 +702,7 @@
 "くらなければなりません。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -755,7 +755,7 @@
 "スタンスを使用する方法です。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -841,7 +841,7 @@
 "のなかで最初に呼ばれるメソッドになります。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The application should individually <literal>update()</literal> detached "
 "instances that are reachable from the given detached instance "
@@ -880,7 +880,7 @@
 "はありません。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Other models for long units of work are discussed in <xref linkend="
 "\"transactions-optimistic\" />."
@@ -1260,7 +1260,7 @@
 "データや間違ったデータ返さないことを保証しています。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -1281,7 +1281,7 @@
 "してください)。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "During flush, an exception might occur (e.g. if a DML operation violates a "
 "constraint). Since handling exceptions involves some understanding of "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/toolset_guide.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/toolset_guide.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/toolset_guide.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-20 15:00+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -82,11 +82,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid ""
 "Please refer to the <emphasis>Hibernate Tools</emphasis> package "
 "documentation for more information."
@@ -389,9 +384,9 @@
 msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>SQL column type</literal>"
-msgstr "SQL のカラム型"
+msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -533,9 +528,9 @@
 msgstr "データベースにエクスポートしません"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--output=my_schema.ddl</literal>"
-msgstr "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>scale</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -543,7 +538,7 @@
 msgstr "DDL スクリプトをファイルに出力します"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
 msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
 
@@ -553,9 +548,9 @@
 msgstr "<literal>NamingStrategy</literal> を選択"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--config=hibernate.cfg.xml</literal>"
-msgstr "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -977,9 +972,17 @@
 #~ msgid "foreign-key"
 #~ msgstr "foreign-key"
 
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "foreign-key"
+
 #~ msgid "sql-type"
 #~ msgstr "sql-type"
 
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "SQL のカラム型"
+
 #~ msgid "default"
 #~ msgstr "default"
 
@@ -1024,6 +1027,14 @@
 #~ msgid "--text"
 #~ msgstr "--text"
 
+#, fuzzy
+#~ msgid "--output=my_schema.ddl"
+#~ msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#, fuzzy
+#~ msgid "--config=hibernate.cfg.xml"
+#~ msgstr "<literal>--config=hibernate.cfg.xml</literal>"
+
 #~ msgid "--properties=hibernate.properties"
 #~ msgstr "--properties=hibernate.properties"
 
@@ -1041,6 +1052,10 @@
 #~ "Configuration cfg = ....;\n"
 #~ "new SchemaExport(cfg).create(false, true);"
 
+#, fuzzy
+#~ msgid "hibernate.connection.driver_class"
+#~ msgstr "hibernate.connection.url"
+
 #~ msgid "hibernate.connection.url"
 #~ msgstr "hibernate.connection.url"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/transactions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/transactions.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/transactions.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-23T01:43:45\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-13 11:23+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -245,7 +245,7 @@
 "literal> API のほうがよいです。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Your application code can access a \"current session\" to process the "
 "request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
@@ -461,7 +461,7 @@
 msgstr "データベース識別子"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
 msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
 
@@ -620,7 +620,7 @@
 "らです。とにかくロールバックした後にやり直すべきです。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -769,7 +769,7 @@
 "す:"
 
 #. Tag: para
-#, no-c-format
+#, 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/tutorial.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/tutorial.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/tutorial.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-21 16:43+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -796,7 +796,7 @@
 "トリアルで後に見ることができます。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"transactions\" /> for more information about transaction "
 "handling and demarcation. The previous example also skipped any error "
@@ -1573,7 +1573,7 @@
 "Tomcat の <literal>webapp</literal> ディレクトリにコピーしてください。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you do not have Tomcat installed, download it from <ulink url=\"http://"
 "tomcat.apache.org/\" /> and follow the installation instructions. Our "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/xml.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/xml.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ja-JP/content/xml.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2010-01-18 15:42+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -19,7 +19,7 @@
 msgstr "XML マッピング"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
 "currently under active development. </emphasis>"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/architecture.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/architecture.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/architecture.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,26 +11,22 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: architecture.xml:30
 #, no-c-format
 msgid "Architecture"
 msgstr "아키텍처"
 
 #. Tag: title
-#: architecture.xml:33
 #, no-c-format
 msgid "Overview"
 msgstr "개요"
 
 #. Tag: para
-#: architecture.xml:35
 #, fuzzy, 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 "
@@ -45,7 +41,6 @@
 "의 최소 부분집합을 사용한다:"
 
 #. Tag: para
-#: architecture.xml:56
 #, fuzzy, no-c-format
 msgid ""
 "This next diagram illustrates how Hibernate utilizes database and "
@@ -56,7 +51,6 @@
 "해 데이터베이스와 컨피그레이션을 사용하는 Hibernate를 보여준다."
 
 #. Tag: para
-#: architecture.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "The \"minimal\" architecture has the application provide its own JDBC "
@@ -70,7 +64,6 @@
 "의 최소 부분집합을 사용한다:"
 
 #. Tag: para
-#: architecture.xml:78
 #, fuzzy, no-c-format
 msgid ""
 "The \"comprehensive\" architecture abstracts the application away from the "
@@ -80,7 +73,6 @@
 "Hibernate로 하여금 상세한 것을 처리하게 한다."
 
 #. Tag: para
-#: architecture.xml:92
 #, fuzzy, no-c-format
 msgid "Here are some definitions of the objects depicted in the diagrams:"
 msgstr ""
@@ -88,13 +80,11 @@
 "1/>"
 
 #. 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 "
@@ -109,13 +99,11 @@
 "캐시를 보관할 수도 있다."
 
 #. 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 "
@@ -130,13 +118,11 @@
 "들에 대한 필수적인(첫 번째 레벨의) 캐시를 보관한다."
 
 #. 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 "
@@ -155,13 +141,11 @@
 "직접적으로 프리젠테이션 계층으로부터 데이터 전송 객체들로서)."
 
 #. Tag: term
-#: architecture.xml:133
 #, no-c-format
 msgid "Transient and detached objects and collections"
 msgstr "전이(Transient, 필자 주-과도) 객체들과 콜렉션들"
 
 #. Tag: para
-#: architecture.xml:135
 #, fuzzy, no-c-format
 msgid ""
 "Instances of persistent classes that are not currently associated with a "
@@ -174,13 +158,11 @@
 "것들은 닫혀진<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>)"
 
 #. Tag: para
-#: architecture.xml:146
 #, fuzzy, no-c-format
 msgid ""
 "(Optional) A single-threaded, short-lived object used by the application to "
@@ -198,7 +180,6 @@
 "이 아니다!"
 
 #. Tag: term
-#: architecture.xml:157
 #, no-c-format
 msgid ""
 "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
@@ -208,7 +189,6 @@
 "literal>)"
 
 #. Tag: para
-#: architecture.xml:159
 #, fuzzy, no-c-format
 msgid ""
 "(Optional) A factory for, and pool of, JDBC connections. It abstracts the "
@@ -222,7 +202,6 @@
 "장/구현 된다."
 
 #. Tag: term
-#: architecture.xml:167
 #, no-c-format
 msgid ""
 "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
@@ -230,7 +209,6 @@
 "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 "
@@ -240,14 +218,12 @@
 "(옵션) <literal>Transaction</literal> 인스턴스들에 대한 팩토리. 어플리케이션"
 "에 노출되지는 않지만 개발자에 의해 확장/구현 된다."
 
-#. Tag: emphasis
-#: architecture.xml:176
-#, no-c-format
-msgid "Extension Interfaces"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<emphasis>Extension Interfaces</emphasis>"
 msgstr "Extension Interfaces"
 
 #. Tag: para
-#: architecture.xml:178
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate offers a range of optional extension interfaces you can implement "
@@ -258,7 +234,6 @@
 "는 선택적인 확장 인터페이스들을 제공한다. 상세한 것은 API 문서를 보라."
 
 #. Tag: para
-#: architecture.xml:187
 #, fuzzy, no-c-format
 msgid ""
 "Given a \"minimal\" architecture, the application bypasses the "
@@ -271,13 +246,11 @@
 "literal> 그리고/또는 <literal>ConnectionProvider</literal> API들을 무시한다."
 
 #. 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. "
@@ -290,13 +263,11 @@
 "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 "
@@ -306,13 +277,11 @@
 "것은 영속 식별자(프라이머리 키 값)을 갖지 않는다."
 
 #. Tag: term
-#: architecture.xml:214
 #, no-c-format
 msgid "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 "
@@ -327,13 +296,11 @@
 "위치)와 같다는 점을 <emphasis>보증한다</emphasis>."
 
 #. Tag: term
-#: architecture.xml:228
 #, no-c-format
 msgid "detached"
 msgstr "detached"
 
 #. Tag: para
-#: architecture.xml:230
 #, fuzzy, no-c-format
 msgid ""
 "The instance was once associated with a persistence context, but that "
@@ -348,13 +315,11 @@
 "는 영속 identity과 Java identity 사이의 관계를 보증하지 않는다."
 
 #. Tag: title
-#: architecture.xml:245
 #, no-c-format
 msgid "JMX Integration"
 msgstr "JMX 통합"
 
 #. Tag: para
-#: architecture.xml:247
 #, fuzzy, no-c-format
 msgid ""
 "JMX is the J2EE standard for the management of Java components. Hibernate "
@@ -367,7 +332,6 @@
 "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 "
@@ -379,7 +343,6 @@
 "일 당신이 JMX를 사용하여 배치할 경우 당신은 또한 다음 이점들을 얻는다:"
 
 #. Tag: para
-#: architecture.xml:261
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</"
@@ -402,7 +365,6 @@
 "literal>에 접근하기 위해 <literal>HibernateContext</literal>를 호출한다."
 
 #. Tag: para
-#: architecture.xml:273
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed "
@@ -421,7 +383,6 @@
 "당신의 HAR 파일 내에 있는 모든 매핑 파일들을 자동적으로 검출해낼 것이다."
 
 #. Tag: para
-#: architecture.xml:284
 #, no-c-format
 msgid ""
 "Consult the JBoss AS user guide for more information about these options."
@@ -430,24 +391,21 @@
 "라."
 
 #. 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 "
+"See <xref linkend=\"configuration-optional-statistics\" /> for more "
 "information."
 msgstr ""
 "JMX 서비스로서 이용 가능한 또다른 특징은 런타임 Hibernate 통계이다. <xref "
 "linkend=\"configuration-optional-statistics\"/>를 보라."
 
 #. Tag: title
-#: architecture.xml:295
 #, no-c-format
 msgid "JCA Support"
 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 "
@@ -459,13 +417,11 @@
 "다."
 
 #. Tag: title
-#: architecture.xml:303
 #, fuzzy, no-c-format
 msgid "Contextual sessions"
 msgstr "컨텍스트 상의 세션들"
 
 #. Tag: para
-#: architecture.xml:304
 #, fuzzy, no-c-format
 msgid ""
 "Most applications using Hibernate need some form of \"contextual\" session, "
@@ -489,7 +445,6 @@
 "같은 )제 3의 프레임웍들을 활용하는 경향이 있었다."
 
 #. Tag: para
-#: architecture.xml:313
 #, fuzzy, no-c-format
 msgid ""
 "Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
@@ -514,7 +469,6 @@
 "전부다."
 
 #. Tag: para
-#: architecture.xml:323
 #, fuzzy, no-c-format
 msgid ""
 "However, as of version 3.1, the processing behind <literal>SessionFactory."
@@ -532,7 +486,6 @@
 "스트의 플러그 가능성을 허용하기 위해 추가되었다."
 
 #. Tag: para
-#: architecture.xml:330
 #, fuzzy, no-c-format
 msgid ""
 "See the Javadocs for the <literal>org.hibernate.context."
@@ -549,7 +502,6 @@
 "페이스에 대한 세 개의 구현들을 부수적으로 포함하고 있다."
 
 #. Tag: para
-#: architecture.xml:340
 #, fuzzy, no-c-format
 msgid ""
 "<literal>org.hibernate.context.JTASessionContext</literal>: current sessions "
@@ -562,7 +514,6 @@
 "이전의 JTA-전용 접근과 정확하게 동일하다. 상세한 것은 javadocs를 보라."
 
 #. Tag: para
-#: architecture.xml:348
 #, fuzzy, no-c-format
 msgid ""
 "<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current "
@@ -572,7 +523,6 @@
 "세션들은 실행 쓰레드에 의해 추적된다. 상세한 것은 다시 javadocs를 보라."
 
 #. Tag: para
-#: architecture.xml:354
 #, fuzzy, no-c-format
 msgid ""
 "<literal>org.hibernate.context.ManagedSessionContext</literal>: current "
@@ -587,7 +537,6 @@
 "<literal>Session</literal>."
 
 #. Tag: para
-#: architecture.xml:363
 #, fuzzy, no-c-format
 msgid ""
 "The first two implementations provide a \"one session - one database "
@@ -600,7 +549,7 @@
 "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 "
+"operations in your code. Refer to <xref linkend=\"transactions\" /> for more "
 "information and code examples."
 msgstr ""
 "처음의 두 구현들은 <emphasis>session-per-request</emphasis>로 알려지고 사용되"
@@ -616,7 +565,6 @@
 "\"transactions\"/>를 참조하라."
 
 #. Tag: para
-#: architecture.xml:375
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>hibernate.current_session_context_class</literal> configuration "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/association_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/association_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/association_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,19 +11,16 @@
 "Content-Transfer-Encoding: 8bit\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
 msgid ""
 "Association mappings are often the most difficult thing to implement "
@@ -38,7 +35,6 @@
 "literal>과 <literal>Address</literal>를 사용할 것이다."
 
 #. Tag: para
-#: association_mapping.xml:43
 #, fuzzy, no-c-format
 msgid ""
 "Associations will be classified by multiplicity and whether or not they map "
@@ -48,7 +44,6 @@
 "multiplicity(다중성)에 따라 연관들을 분류할 것이다."
 
 #. Tag: para
-#: association_mapping.xml:48
 #, fuzzy, no-c-format
 msgid ""
 "Nullable foreign keys are not considered to be good practice in traditional "
@@ -62,19 +57,16 @@
 "경우 매핑들은 모두 동작할 것이다."
 
 #. Tag: title
-#: association_mapping.xml:58
 #, no-c-format
 msgid "Unidirectional associations"
 msgstr "단방향 연관들"
 
 #. Tag: title
-#: association_mapping.xml:61 association_mapping.xml:132
 #, fuzzy, no-c-format
 msgid "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 "
@@ -83,46 +75,12 @@
 "<emphasis>단방향 many-to-one 연관</emphasis>은 가장 공통적인 종류의 단방향 연"
 "관이다."
 
-#. Tag: programlisting
-#: association_mapping.xml:68
-#, 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"
 
 #. Tag: para
-#: association_mapping.xml:76
 #, no-c-format
 msgid ""
 "A <emphasis>unidirectional one-to-one association on a foreign key</"
@@ -132,40 +90,7 @@
 "<emphasis>foreign 키에 대한 단방향 one-to-one 연관은 대개 아주 동일하다.</"
 "emphasis> 유일한 차이점은 컬럼 유일(unique) 컨스트레인트이다."
 
-#. Tag: programlisting
-#: association_mapping.xml:81
-#, 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</"
@@ -176,44 +101,12 @@
 "개 특별한 id 생성기를 사용한다. (이 예제에서 연관의 방향이 역전되었음을 주목"
 "하라.)"
 
-#. Tag: programlisting
-#: association_mapping.xml:90
-#, 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 "one to many"
 
 #. Tag: para
-#: association_mapping.xml:98
 #, fuzzy, no-c-format
 msgid ""
 "A <emphasis>unidirectional one-to-many association on a foreign key</"
@@ -222,41 +115,7 @@
 "<emphasis>하나의 foreign 키에 대한 단방향 one-to-many 연관</emphasis>은 매우 "
 "색다른 경우이고, 실제로 권장되지 않는다."
 
-#. Tag: programlisting
-#: association_mapping.xml:103
-#, 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 ""
@@ -264,13 +123,11 @@
 "생각한다."
 
 #. Tag: title
-#: association_mapping.xml:115
 #, no-c-format
 msgid "Unidirectional associations with join tables"
 msgstr "join 테이블들에 대한 단방향 연관들"
 
 #. Tag: para
-#: association_mapping.xml:120
 #, fuzzy, no-c-format
 msgid ""
 "A <emphasis>unidirectional one-to-many association on a join table</"
@@ -281,43 +138,7 @@
 "다 더 선호된다. <literal>unique=\"true\"</literal>를 지정함으로써 우리는 "
 "many-to-many에서 one-to-many로 아중성(multiplicity)를 변경시켰음을 주목하라."
 
-#. Tag: programlisting
-#: association_mapping.xml:126
-#, 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</"
@@ -326,44 +147,7 @@
 "<emphasis>하나의 join 테이블에 대한 단방향 many-to-one 연관</emphasis>은 그 "
 "연관이 선택적일 때 매우 공통적이다."
 
-#. Tag: programlisting
-#: association_mapping.xml:139
-#, 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> "
@@ -372,52 +156,12 @@
 "<emphasis>하나의 join 테이블에 대한 단방향 one-to-one 연관</emphasis>은 극히 "
 "통상적이지 않지만 가능하다."
 
-#. Tag: programlisting
-#: association_mapping.xml:152
-#, 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"
 
 #. Tag: para
-#: association_mapping.xml:160
 #, fuzzy, no-c-format
 msgid ""
 "Finally, here is an example of a <emphasis>unidirectional many-to-many "
@@ -425,54 +169,17 @@
 msgstr ""
 "마지막으로, 우리는 <emphasis>단방향 many-to-many 연관</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 "양방향 연관들"
 
 #. Tag: title
-#: association_mapping.xml:175 association_mapping.xml:236
 #, fuzzy, no-c-format
 msgid "one-to-many / many-to-one"
 msgstr "one to many / many to one"
 
 #. Tag: para
-#: association_mapping.xml:177
 #, fuzzy, no-c-format
 msgid ""
 "A <emphasis>bidirectional many-to-one association</emphasis> is the most "
@@ -482,32 +189,7 @@
 "<emphasis>양방향 many-to-one 연관</emphasis>은 가장 공통된 종류의 연관이다."
 "(이것은 표준 부모/자식 관계이다. )"
 
-#. Tag: programlisting
-#: association_mapping.xml:183
-#, 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 "
@@ -524,33 +206,7 @@
 "literal>를 설정함으로써 다른 측을 가상적으로 inverse로 만들어) 그 콜렉션들 측"
 "으로부터 연관을 관리하도록 할 필요가 있다:"
 
-#. Tag: programlisting
-#: association_mapping.xml:195
-#, 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 "
@@ -567,7 +223,6 @@
 "</literal> 요소 상에 선언하라."
 
 #. Tag: para
-#: association_mapping.xml:212
 #, fuzzy, no-c-format
 msgid ""
 "A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
@@ -575,31 +230,7 @@
 msgstr ""
 "<emphasis>foreign에 대한 양방향 one-to-one 연관</emphasis>은 꽤 공통적이다."
 
-#. Tag: programlisting
-#: association_mapping.xml:217
-#, 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> "
@@ -608,36 +239,12 @@
 "<emphasis>하나의 프라이머리 키에 대한 양방향 one-to-one 연관</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 ""
-
 #. Tag: title
-#: association_mapping.xml:233
 #, no-c-format
 msgid "Bidirectional associations with join tables"
 msgstr "join 테이블들에 대한 양방향 연관들"
 
 #. Tag: para
-#: association_mapping.xml:238
 #, fuzzy, no-c-format
 msgid ""
 "The following is an example of a <emphasis>bidirectional one-to-many "
@@ -649,58 +256,12 @@
 "<literal>inverse=\"true\"</literal>는 연관의 어느 쪽 끝이든 콜렉션 측으로 또"
 "는 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
 msgid ""
 "A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
@@ -709,44 +270,7 @@
 "<emphasis>하나의 join 테이블에 대한 양방향 one-to-one 연관</emphasis>은 극히 "
 "통상적이지 않지만, 가능하다."
 
-#. Tag: programlisting
-#: association_mapping.xml:257
-#, 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</"
@@ -755,41 +279,12 @@
 "마지막으로, 우리는 하나의 <emphasis>양방향 many-to-many 연관</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
 msgid ""
 "More complex association joins are <emphasis>extremely</emphasis> rare. "
@@ -806,23 +301,7 @@
 "고 <literal>effectiveStartDate</literal> 컬럼들을 정의할 경우, 다음과 같이 매"
 "핑된다:"
 
-#. Tag: programlisting
-#: association_mapping.xml:289
-#, 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> "
@@ -832,20 +311,7 @@
 "(null <literal>effectiveEndDate</literal>을 가진 인스턴스)로 매핑시킬 수 있"
 "다:"
 
-#. Tag: programlisting
-#: association_mapping.xml:296
-#, 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 "
@@ -861,26 +327,7 @@
 "</emphasis> 고용주에 대한 하나의 연관(가장 최근의 <literal>startDate</"
 "literal>를 갖고 있는 것)이 다음 방법으로 매핑될 수 있다:"
 
-#. Tag: programlisting
-#: association_mapping.xml:306
-#, 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/basic_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/basic_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/basic_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,19 +11,16 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: basic_mapping.xml:29
 #, no-c-format
 msgid "Basic O/R Mapping"
 msgstr "기본 O/R 매핑"
 
 #. Tag: title
-#: basic_mapping.xml:32
 #, no-c-format
 msgid "Mapping declaration"
 msgstr "매핑 선언"
 
 #. Tag: para
-#: basic_mapping.xml:34
 #, fuzzy, no-c-format
 msgid ""
 "Object/relational mappings are usually defined in an XML document. The "
@@ -36,7 +33,6 @@
 "아닌, 영속 클래스 선언들로 생성된다는 의미에서 자바 중심적이다."
 
 #. 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 "
@@ -48,83 +44,11 @@
 "도구들이 존재한다는 점을 노트하라."
 
 #. Tag: para
-#: basic_mapping.xml:47
 #, fuzzy, no-c-format
 msgid "Here is an example mapping:"
 msgstr "예제 매핑으로 시작하자:"
 
-#. Tag: programlisting
-#: basic_mapping.xml:51
-#, 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:53
 #, fuzzy, no-c-format
 msgid ""
 "We will now discuss the content of the mapping document. We will only "
@@ -140,13 +64,11 @@
 "성.)"
 
 #. 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 "
@@ -164,13 +86,11 @@
 "당신의 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 "
@@ -186,7 +106,6 @@
 "의 다른 systemId namespace들을 인지해낸다."
 
 #. Tag: para
-#: basic_mapping.xml:85
 #, fuzzy, no-c-format
 msgid ""
 "a <literal>hibernate namespace</literal> is recognized whenever the resolver "
@@ -200,7 +119,6 @@
 "엔티티들을 해석하려고 시도한다."
 
 #. Tag: para
-#: basic_mapping.xml:94
 #, fuzzy, no-c-format
 msgid ""
 "a <literal>user namespace</literal> is recognized whenever the resolver "
@@ -215,52 +133,27 @@
 "스로더를 통해 이들 엔티티들을 해석하려고 시도할 것이다."
 
 #. Tag: para
-#: basic_mapping.xml:103
 #, fuzzy, no-c-format
 msgid "The following is an example of utilizing user namespacing:"
 msgstr "user namespacing을 활용하는 예제:"
 
-#. Tag: programlisting
-#: basic_mapping.xml:106
-#, 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:107
-#, no-c-format
+#, 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>."
+"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\">typedef</"
 "xref>를 포함한다."
 
 #. Tag: title
-#: basic_mapping.xml:115
 #, fuzzy, no-c-format
 msgid "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> "
@@ -284,35 +177,17 @@
 "를 지정한다. <literal>auto-import</literal> 속성은 디폴트로 우리가 질의 언어 "
 "속에서 수식어가 붙지 않은(unqualified) 클래스 이름들을 사용하게 할 것이다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:141
 #, fuzzy, no-c-format
 msgid "<literal>schema</literal> (optional): the name of a database schema."
 msgstr "<literal>schema</literal> (옵션): 데이터베이스 스키마의 이름."
 
 #. Tag: para
-#: basic_mapping.xml:146
 #, fuzzy, no-c-format
 msgid "<literal>catalog</literal> (optional): the name of a database catalog."
 msgstr "<literal>catalog</literal> (옵션): 데이터베이스 카다록의 이름."
 
 #. Tag: para
-#: basic_mapping.xml:151
 #, fuzzy, no-c-format
 msgid ""
 "<literal>default-cascade</literal> (optional - defaults to <literal>none</"
@@ -322,7 +197,6 @@
 "literal>): 디폴트 cascade 스타일."
 
 #. Tag: para
-#: basic_mapping.xml:157
 #, fuzzy, no-c-format
 msgid ""
 "<literal>default-access</literal> (optional - defaults to <literal>property</"
@@ -334,7 +208,6 @@
 "<literal>PropertyAccessor</literal>에 대한 맞춤형 구현일 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:164
 #, fuzzy, no-c-format
 msgid ""
 "<literal>default-lazy</literal> (optional - defaults to <literal>true</"
@@ -346,7 +219,6 @@
 "대한 디폴트 값."
 
 #. Tag: para
-#: basic_mapping.xml:171
 #, fuzzy, no-c-format
 msgid ""
 "<literal>auto-import</literal> (optional - defaults to <literal>true</"
@@ -358,7 +230,6 @@
 "이름들을 사용할 수 있는지를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:178
 #, fuzzy, no-c-format
 msgid ""
 "<literal>package</literal> (optional): specifies a package prefix to use for "
@@ -368,7 +239,6 @@
 "스 이름들에 대해 가정할 패키지 접두어를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:186
 #, fuzzy, no-c-format
 msgid ""
 "If you have two persistent classes with the same unqualified name, you "
@@ -381,7 +251,6 @@
 "할 경우에 Hibernate는 예외상황을 던질 것이다."
 
 #. Tag: para
-#: basic_mapping.xml:192
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>hibernate-mapping</literal> element allows you to nest several "
@@ -401,13 +270,11 @@
 "는 <literal>Animal.hbm.xml</literal>."
 
 #. Tag: title
-#: basic_mapping.xml:205
 #, fuzzy, no-c-format
 msgid "Class"
 msgstr "class"
 
 #. Tag: para
-#: basic_mapping.xml:207
 #, fuzzy, no-c-format
 msgid ""
 "You can declare a persistent class using the <literal>class</literal> "
@@ -416,38 +283,7 @@
 "당신은 <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 ""
-
 #. Tag: para
-#: basic_mapping.xml:238
 #, fuzzy, no-c-format
 msgid ""
 "<literal>name</literal> (optional): the fully qualified Java class name of "
@@ -459,7 +295,6 @@
 "고 가정된다."
 
 #. Tag: para
-#: basic_mapping.xml:245
 #, fuzzy, no-c-format
 msgid ""
 "<literal>table</literal> (optional - defaults to the unqualified class "
@@ -469,7 +304,6 @@
 "의 데이터베이스 테이블의 이름."
 
 #. Tag: para
-#: basic_mapping.xml:251
 #, fuzzy, no-c-format
 msgid ""
 "<literal>discriminator-value</literal> (optional - defaults to the class "
@@ -482,7 +316,6 @@
 "값들은<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>): "
@@ -492,7 +325,6 @@
 "들의 인스턴스들이 가변적인지를 (가변적이지 않은지를) 지정한다."
 
 #. 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 "
@@ -506,7 +338,6 @@
 "literal> 요소에 의해 지정된 스키마 이름을 오버라이드 시킨다"
 
 #. Tag: para
-#: basic_mapping.xml:270 basic_mapping.xml:2237
 #, fuzzy, no-c-format
 msgid ""
 "<literal>catalog</literal> (optional): overrides the catalog name specified "
@@ -520,7 +351,6 @@
 "literal> 요소에 의해 지정된 카타록 이름을 오버라이드 시킨다."
 
 #. Tag: para
-#: basic_mapping.xml:276
 #, fuzzy, no-c-format
 msgid ""
 "<literal>proxy</literal> (optional): specifies an interface to use for lazy "
@@ -530,7 +360,6 @@
 "스를 지정한다. 당신은 클래스 그 자체의 이름을 지정할 수 도 있다."
 
 #. Tag: para
-#: basic_mapping.xml:282
 #, fuzzy, no-c-format
 msgid ""
 "<literal>dynamic-update</literal> (optional - defaults to <literal>false</"
@@ -542,7 +371,6 @@
 "값들이 변경된 그들 컬럼들 만을 포함할 것인지를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:289
 #, fuzzy, no-c-format
 msgid ""
 "<literal>dynamic-insert</literal> (optional - defaults to <literal>false</"
@@ -554,7 +382,6 @@
 "의 값이 null이 아닌 컬럼들 만을 포함할 것인지를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:296
 #, fuzzy, no-c-format
 msgid ""
 "<literal>select-before-update</literal> (optional - defaults to "
@@ -574,7 +401,6 @@
 "Hibernate는 특별한 SQL <literal>SELECT</literal>를 실행할 것임을 의미한다."
 
 #. Tag: para
-#: basic_mapping.xml:306
 #, fuzzy, no-c-format
 msgid ""
 "<literal>polymorphism</literal> (optional - defaults to <literal>implicit</"
@@ -586,7 +412,6 @@
 "것인지를 결정한다."
 
 #. Tag: para
-#: basic_mapping.xml:312
 #, fuzzy, no-c-format
 msgid ""
 "<literal>where</literal> (optional): specifies an arbitrary SQL "
@@ -597,7 +422,6 @@
 "인 SQL <literal>WHERE</literal> 조건을 지정한다"
 
 #. Tag: para
-#: basic_mapping.xml:318
 #, fuzzy, no-c-format
 msgid ""
 "<literal>persister</literal> (optional): specifies a custom "
@@ -607,7 +431,6 @@
 "를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:323
 #, fuzzy, no-c-format
 msgid ""
 "<literal>batch-size</literal> (optional - defaults to <literal>1</literal>): "
@@ -618,7 +441,6 @@
 "에 의해 이 클래스의 인스턴스들을 페치시키는 \"배치 사이즈\"를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:329
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimistic-lock</literal> (optional - defaults to <literal>version</"
@@ -628,7 +450,6 @@
 "literal>): optimistic 잠금 방도를 결정한다."
 
 #. Tag: para
-#: basic_mapping.xml:335
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional): lazy fetching can be disabled by setting "
@@ -638,7 +459,6 @@
 "로써 Lazy fetching이 전체적으로 사용불가능하게 될 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:341
 #, fuzzy, no-c-format
 msgid ""
 "<literal>entity-name</literal> (optional - defaults to the class name): "
@@ -646,7 +466,7 @@
 "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."
+"classes-dynamicmodels\" /> and <xref linkend=\"xml\" /> for more information."
 msgstr ""
 "<literal>entity-name</literal>(옵션, 디폴트는 클래스 이름): Hibernate3는 하나"
 "의 클래스가 (잠정적으로 다른 테이블들로) 여러번 매핑되는 것을 허용해주고, "
@@ -659,7 +479,6 @@
 "\"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 "
@@ -670,7 +489,6 @@
 "<emphasis>check</emphasis> constraint를 생성시키는데 사용되는 SQL 표현식."
 
 #. Tag: para
-#: basic_mapping.xml:357
 #, fuzzy, no-c-format
 msgid ""
 "<literal>rowid</literal> (optional): Hibernate can use ROWIDs on databases. "
@@ -686,7 +504,6 @@
 "튜플(tuple)의 물리적이니 위치를 표현한다."
 
 #. Tag: para
-#: basic_mapping.xml:364
 #, fuzzy, no-c-format
 msgid ""
 "<literal>subselect</literal> (optional): maps an immutable and read-only "
@@ -698,7 +515,6 @@
 "용하지만, 사용을 자제하라. 추가 정보는 아래를 보라."
 
 #. Tag: para
-#: basic_mapping.xml:371
 #, fuzzy, no-c-format
 msgid ""
 "<literal>abstract</literal> (optional): is used to mark abstract "
@@ -708,7 +524,6 @@
 "literal> 계층 구조들 내에서 abstract 슈퍼클래스들을 마크하는데 사용된다."
 
 #. 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 "
@@ -724,7 +539,6 @@
 "Foo$Bar</literal>를 사용하여 클래스 이름을 지정해야 한다."
 
 #. Tag: para
-#: basic_mapping.xml:386
 #, fuzzy, no-c-format
 msgid ""
 "Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated "
@@ -736,7 +550,6 @@
 "떤 마이너 퍼포먼스 최적화를 행하게끔 허용해준다."
 
 #. Tag: para
-#: basic_mapping.xml:391
 #, fuzzy, no-c-format
 msgid ""
 "The optional <literal>proxy</literal> attribute enables lazy initialization "
@@ -751,7 +564,6 @@
 "출될 때 로드될 것이다. 아래 \"Lazy 초기화를 위한 프락시들\"을 보라."
 
 #. Tag: para
-#: basic_mapping.xml:398
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Implicit</emphasis> polymorphism means that instances of the class "
@@ -782,7 +594,6 @@
 "\"경량급\" 클래스를 허용한다)."
 
 #. Tag: para
-#: basic_mapping.xml:410
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>persister</literal> attribute lets you customize the "
@@ -804,7 +615,6 @@
 "<literal>org.hibernate.test.CustomPersister</literal>를 보라."
 
 #. Tag: para
-#: basic_mapping.xml:421
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> "
@@ -820,7 +630,6 @@
 "만 다른 경우들에서는 퍼포먼스를 실제로 감소시킬 수도 있다. 적절하게 사용하라."
 
 #. Tag: para
-#: basic_mapping.xml:429
 #, fuzzy, no-c-format
 msgid ""
 "Use of <literal>select-before-update</literal> will usually decrease "
@@ -834,7 +643,6 @@
 "방지하는데 매우 유용하다."
 
 #. Tag: para
-#: basic_mapping.xml:435
 #, no-c-format
 msgid ""
 "If you enable <literal>dynamic-update</literal>, you will have a choice of "
@@ -844,19 +652,16 @@
 "optimistic 잠금 전략들을 선택하게 될 것이다:"
 
 #. Tag: para
-#: basic_mapping.xml:441
 #, fuzzy, no-c-format
 msgid "<literal>version</literal>: check the version/timestamp columns"
 msgstr "<literal>version</literal>은 version/timestamp 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:446
 #, fuzzy, no-c-format
 msgid "<literal>all</literal>: check all columns"
 msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:451
 #, fuzzy, no-c-format
 msgid ""
 "<literal>dirty</literal>: check the changed columns, allowing some "
@@ -866,13 +671,11 @@
 "을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:456
 #, fuzzy, no-c-format
 msgid "<literal>none</literal>: do not use optimistic locking"
 msgstr "<literal>none</literal>은 optimistic 잠금을 사용하지 않는다"
 
 #. Tag: para
-#: basic_mapping.xml:461
 #, fuzzy, no-c-format
 msgid ""
 "It is <emphasis>strongly</emphasis> recommended that you use version/"
@@ -887,7 +690,6 @@
 "용될 때)."
 
 #. 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 "
@@ -904,26 +706,7 @@
 "터베이스 속에 뷰를 생성시킬 수 없다. 이 경우에, 당신은 불변의 읽기 전용 엔티"
 "티를 주어진 SQL subselect 표현식으로 매핑시킬 수 있다:"
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:478
 #, fuzzy, no-c-format
 msgid ""
 "Declare the tables to synchronize this entity with, ensuring that auto-flush "
@@ -937,13 +720,11 @@
 "양자로서 이용 가능하다."
 
 #. 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 "
@@ -957,38 +738,19 @@
 "는 자바빈즈-스타일 프로퍼티를 가질 것이다. <literal>&lt;id&gt;</literal> 요소"
 "는 그 프로퍼티로부터 프라이머리 키 컬럼으로의 매핑을 정의한다."
 
-#. Tag: programlisting
-#: basic_mapping.xml:505
-#, 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 ""
-
 #. 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> (옵션): 식별자 프로퍼티의 이름."
 
 #. 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 타입을 나타내는 이름."
 
 #. Tag: para
-#: basic_mapping.xml:518
 #, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional - defaults to the property name): the "
@@ -998,7 +760,6 @@
 "의 이름."
 
 #. Tag: para
-#: basic_mapping.xml:524
 #, fuzzy, no-c-format
 msgid ""
 "<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" "
@@ -1012,7 +773,6 @@
 "자 프로퍼티 값."
 
 #. Tag: para
-#: basic_mapping.xml:532
 #, fuzzy, no-c-format
 msgid ""
 "<literal>access</literal> (optional - defaults to <literal>property</"
@@ -1048,7 +808,6 @@
 "Hibernate가 프로퍼티 값에 접근하는데 사용할 방도."
 
 #. Tag: para
-#: basic_mapping.xml:540
 #, no-c-format
 msgid ""
 "If the <literal>name</literal> attribute is missing, it is assumed that the "
@@ -1058,7 +817,6 @@
 "다고 가정된다."
 
 #. Tag: para
-#: basic_mapping.xml:545
 #, no-c-format
 msgid ""
 "The <literal>unsaved-value</literal> attribute is almost never needed in "
@@ -1067,7 +825,6 @@
 "<literal>unsaved-value</literal> 속성은 Hibernate3에서는 거의 필요하지 않다."
 
 #. Tag: para
-#: basic_mapping.xml:549
 #, fuzzy, no-c-format
 msgid ""
 "There is an alternative <literal>&lt;composite-id&gt;</literal> declaration "
@@ -1079,13 +836,11 @@
 "것에 대한 그것의 사용에 대해 강력하게 반대한다."
 
 #. 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>&lt;generator&gt;</literal> child element names a Java "
@@ -1099,20 +854,7 @@
 "만일 임의의 파라미터들이 생성기 인스턴스를 구성하거나 초기화 시키는데 필요할 "
 "경우, 그것들은 <literal>&lt;param&gt;</literal> 요소 를 사용하여 전달된다."
 
-#. Tag: programlisting
-#: basic_mapping.xml:564
-#, 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:566
 #, fuzzy, no-c-format
 msgid ""
 "All generators implement the interface <literal>org.hibernate.id."
@@ -1127,14 +869,12 @@
 "미리 빈드된 구현들의 영역들을 제공한다. 빌드-인 생성기(generator)들에 대한 단"
 "축 이름들이 존재한다: <placeholder-1/>"
 
-#. Tag: literal
-#: basic_mapping.xml:574
-#, no-c-format
-msgid "increment"
-msgstr "increment"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>increment</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:576
 #, no-c-format
 msgid ""
 "generates identifiers of type <literal>long</literal>, <literal>short</"
@@ -1147,14 +887,12 @@
 "literal> 타입의 식별자들을 생성시킨다. <emphasis>클러스터 내에서는 사용하지 "
 "말라.</emphasis>"
 
-#. Tag: literal
-#: basic_mapping.xml:585
-#, no-c-format
-msgid "identity"
-msgstr "identity"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>identity</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:587
 #, no-c-format
 msgid ""
 "supports identity columns in DB2, MySQL, MS SQL Server, Sybase and "
@@ -1165,14 +903,12 @@
 "반환되는 식별자는 <literal>long</literal>, <literal>short</literal> 또는 "
 "<literal>int</literal> 타입이다."
 
-#. Tag: literal
-#: basic_mapping.xml:595
-#, no-c-format
-msgid "sequence"
-msgstr "sequence"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr "<literal>all</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 "
@@ -1183,14 +919,12 @@
 "생성기(generator)를 사용한다. 반환되는 식별자는 <literal>long</literal>, "
 "<literal>short</literal> 또는 <literal>int</literal> 타입이다."
 
-#. Tag: literal
-#: basic_mapping.xml:605
-#, no-c-format
-msgid "hilo"
-msgstr "hilo"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:607
 #, no-c-format
 msgid ""
 "uses a hi/lo algorithm to efficiently generate identifiers of type "
@@ -1206,14 +940,12 @@
 "들을 효과적으로 생성시키는데 hi/lo 알고리즘을 사용한다. hi/lo 알고리즘은 특"
 "정 데이터베이스에 대해서만 유일한 식별자들을 생성시킨다."
 
-#. Tag: literal
-#: basic_mapping.xml:617
-#, no-c-format
-msgid "seqhilo"
-msgstr "seqhilo"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:619
 #, no-c-format
 msgid ""
 "uses a hi/lo algorithm to efficiently generate identifiers of type "
@@ -1224,14 +956,12 @@
 "<literal>short</literal> 또는 <literal>int</literal> 타입의 식별자들을 효과적"
 "으로 생성시키는데 hi/lo 알고리즘을 사용한다."
 
-#. Tag: literal
-#: basic_mapping.xml:627
-#, no-c-format
-msgid "uuid"
-msgstr "uuid"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr "<literal>all</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 "
@@ -1242,26 +972,22 @@
 "위해 128 비트 UUID 알고리즘을 사용한다. UUID는 길이가 32인 16진수들의 문자열"
 "로서 인코딩 된다."
 
-#. Tag: literal
-#: basic_mapping.xml:637
-#, no-c-format
-msgid "guid"
-msgstr "guid"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>guid</literal>"
+msgstr "<literal>all</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 문자열을 사용한다."
 
-#. Tag: literal
-#: basic_mapping.xml:645
-#, no-c-format
-msgid "native"
-msgstr "native"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>native</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:647
 #, fuzzy, no-c-format
 msgid ""
 "selects <literal>identity</literal>, <literal>sequence</literal> or "
@@ -1271,14 +997,12 @@
 "기본 데이터베이스의 가용성들에 의존하여 <literal>identity</literal>, "
 "<literal>sequence</literal> 또는 <literal>hilo</literal>를 찾아낸다."
 
-#. Tag: literal
-#: basic_mapping.xml:655
-#, no-c-format
-msgid "assigned"
-msgstr "assigned"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:657
 #, fuzzy, no-c-format
 msgid ""
 "lets the application assign an identifier to the object before <literal>save"
@@ -1289,14 +1013,12 @@
 "체에 할당하도록 한다. <literal>&lt;generator&gt;</literal> 요소가 지정되지 않"
 "을 경우 이것이 디폴트 방도이다."
 
-#. Tag: literal
-#: basic_mapping.xml:665
-#, no-c-format
-msgid "select"
-msgstr "select"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>select</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:667
 #, fuzzy, no-c-format
 msgid ""
 "retrieves a primary key, assigned by a database trigger, by selecting the "
@@ -1305,14 +1027,12 @@
 "어떤 유일 키에 의해 행을 select하고 프라이머리 키 값을 검색함으로써 데이터베"
 "이스 트리거에 의해 할당된 프라이머리 키를 검색한다."
 
-#. Tag: literal
-#: basic_mapping.xml:674
-#, no-c-format
-msgid "foreign"
-msgstr "foreign"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:676
 #, fuzzy, no-c-format
 msgid ""
 "uses the identifier of another associated object. It is usually used in "
@@ -1322,14 +1042,12 @@
 "또 다른 연관된 객체의 식별자를 사용한다. 대개 <literal>&lt;one-to-one&gt;</"
 "literal> 프라이머리 키 연관관계와 함께 사용된다."
 
-#. Tag: literal
-#: basic_mapping.xml:683
-#, no-c-format
-msgid "sequence-identity"
-msgstr "sequence-identity"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:685
 #, fuzzy, no-c-format
 msgid ""
 "a specialized sequence generation strategy that utilizes a database sequence "
@@ -1347,13 +1065,11 @@
 "게 되어 있음을 노트하라."
 
 #. 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 "
@@ -1368,33 +1084,7 @@
 "\" 데이터베이스 테이블을 필요로 한다. 두 번째는 (지원되는) 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 ""
-
-#. Tag: programlisting
-#: basic_mapping.xml:712
-#, 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:714
 #, fuzzy, no-c-format
 msgid ""
 "Unfortunately, you cannot use <literal>hilo</literal> when supplying your "
@@ -1410,13 +1100,11 @@
 "해야 한다."
 
 #. Tag: title
-#: basic_mapping.xml:723
 #, no-c-format
 msgid "UUID algorithm"
 msgstr "UUID 알고리즘"
 
 #. 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 "
@@ -1430,13 +1118,11 @@
 "최상의 것이다."
 
 #. Tag: title
-#: basic_mapping.xml:733
 #, no-c-format
 msgid "Identity columns and sequences"
 msgstr "식별 컬럼들과 시퀀스들"
 
 #. Tag: para
-#: basic_mapping.xml:734
 #, fuzzy, no-c-format
 msgid ""
 "For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), "
@@ -1451,29 +1137,7 @@
 "당신은 <literal>sequence</literal> 스타일 키 생성을 사용할 수도 있다. 이들 방"
 "도들 모두 새로운 객체를 insert하기 위해 두 개의 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 ""
-
-#. Tag: programlisting
-#: basic_mapping.xml:744
-#, no-c-format
-msgid ""
-"<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0"
-"\">\n"
-"        <generator class=\"identity\"/>\n"
-"</id>]]>"
-msgstr ""
-
 #. Tag: para
-#: basic_mapping.xml:746
 #, fuzzy, no-c-format
 msgid ""
 "For cross-platform development, the <literal>native</literal> strategy will, "
@@ -1486,13 +1150,11 @@
 "literal>, <literal>hilo</literal> 방도 중에서 선택될 것이다."
 
 #. Tag: title
-#: basic_mapping.xml:754
 #, no-c-format
 msgid "Assigned identifiers"
 msgstr "할당된 식별자들"
 
 #. Tag: para
-#: basic_mapping.xml:755
 #, fuzzy, no-c-format
 msgid ""
 "If you want the application to assign identifiers, as opposed to having "
@@ -1512,7 +1174,6 @@
 "트 특징이다"
 
 #. Tag: para
-#: basic_mapping.xml:764
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>assigned</literal> generator makes Hibernate use "
@@ -1529,13 +1190,11 @@
 "록 한다."
 
 #. Tag: title
-#: basic_mapping.xml:774
 #, no-c-format
 msgid "Primary keys assigned by triggers"
 msgstr "트리거들에 의해 할당된 프라이머리 키들"
 
 #. Tag: para
-#: basic_mapping.xml:775
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
@@ -1543,19 +1202,7 @@
 "리거시 스키마에 대해서만(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 ""
-
 #. Tag: para
-#: basic_mapping.xml:781
 #, fuzzy, no-c-format
 msgid ""
 "In the above example, there is a unique valued property named "
@@ -1568,13 +1215,11 @@
 "생성되는 <literal>person_id</literal>로 명명된 대용키가 존재한다."
 
 #. Tag: title
-#: basic_mapping.xml:793
 #, no-c-format
 msgid "Enhanced identifier generators"
 msgstr "NOT TRANSLATED!Enhanced identifier generators"
 
 #. 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-"
@@ -1594,7 +1239,6 @@
 "current releases and can be referenced by FQN."
 
 #. Tag: para
-#: basic_mapping.xml:803
 #, fuzzy, no-c-format
 msgid ""
 "The first of these new generators is <literal>org.hibernate.id.enhanced."
@@ -1632,7 +1276,6 @@
 "<placeholder-1/>"
 
 #. Tag: para
-#: basic_mapping.xml:817
 #, fuzzy, no-c-format
 msgid ""
 "<literal>sequence_name</literal> (optional, defaults to "
@@ -1644,7 +1287,6 @@
 "to be used."
 
 #. Tag: para
-#: basic_mapping.xml:823
 #, fuzzy, no-c-format
 msgid ""
 "<literal>initial_value</literal> (optional, defaults to <literal>1</"
@@ -1658,7 +1300,6 @@
 "\"STARTS WITH\"."
 
 #. Tag: para
-#: basic_mapping.xml:830
 #, fuzzy, no-c-format
 msgid ""
 "<literal>increment_size</literal> (optional - defaults to <literal>1</"
@@ -1672,7 +1313,6 @@
 "named \"INCREMENT BY\"."
 
 #. Tag: para
-#: basic_mapping.xml:837
 #, fuzzy, no-c-format
 msgid ""
 "<literal>force_table_use</literal> (optional - defaults to <literal>false</"
@@ -1684,7 +1324,6 @@
 "though the dialect might support sequence?"
 
 #. Tag: para
-#: basic_mapping.xml:844
 #, fuzzy, no-c-format
 msgid ""
 "<literal>value_column</literal> (optional - defaults to <literal>next_val</"
@@ -1696,17 +1335,16 @@
 "table which is used to hold the value."
 
 #. Tag: para
-#: basic_mapping.xml:851
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimizer</literal> (optional - defaults to <literal>none</"
-"literal>): See"
+"literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" /"
+">"
 msgstr ""
-"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
-"cascade 스타일."
+"<literal>optimizer</literal> (optional, defaults to <literal>none</"
+"literal>): See <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."
@@ -1732,7 +1370,6 @@
 "parameters: <placeholder-1/>"
 
 #. Tag: para
-#: basic_mapping.xml:868
 #, fuzzy, no-c-format
 msgid ""
 "<literal>table_name</literal> (optional - defaults to "
@@ -1742,7 +1379,6 @@
 "<literal>hibernate_sequences</literal>): The name of the table to be used."
 
 #. Tag: para
-#: basic_mapping.xml:874
 #, fuzzy, no-c-format
 msgid ""
 "<literal>value_column_name</literal> (optional - defaults to "
@@ -1754,7 +1390,6 @@
 "used to hold the value."
 
 #. Tag: para
-#: basic_mapping.xml:880
 #, fuzzy, no-c-format
 msgid ""
 "<literal>segment_column_name</literal> (optional - defaults to "
@@ -1768,7 +1403,6 @@
 "identifies which increment value to use."
 
 #. Tag: para
-#: basic_mapping.xml:887
 #, fuzzy, no-c-format
 msgid ""
 "<literal>segment_value</literal> (optional - defaults to <literal>default</"
@@ -1780,7 +1414,6 @@
 "pull increment values for this generator."
 
 #. Tag: para
-#: basic_mapping.xml:894
 #, fuzzy, no-c-format
 msgid ""
 "<literal>segment_value_length</literal> (optional - defaults to "
@@ -1792,7 +1425,6 @@
 "segment key column."
 
 #. Tag: para
-#: basic_mapping.xml:900
 #, fuzzy, no-c-format
 msgid ""
 "<literal>initial_value</literal> (optional - defaults to <literal>1</"
@@ -1802,7 +1434,6 @@
 "literal>): The initial value to be retrieved from the table."
 
 #. Tag: para
-#: basic_mapping.xml:906
 #, fuzzy, no-c-format
 msgid ""
 "<literal>increment_size</literal> (optional - defaults to <literal>1</"
@@ -1812,23 +1443,20 @@
 "literal>): The value by which subsequent calls to the table should differ."
 
 #. Tag: para
-#: basic_mapping.xml:912
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimizer</literal> (optional - defaults to <literal></literal>): "
-"See"
+"See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
 msgstr ""
-"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
-"cascade 스타일."
+"<literal>optimizer</literal> (optional, defaults to <literal>none</"
+"literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
 
 #. Tag: title
-#: basic_mapping.xml:922
 #, no-c-format
 msgid "Identifier generator optimization"
 msgstr "NOT TRANSLATED! Identifier generator optimization"
 
 #. Tag: para
-#: basic_mapping.xml:923
 #, fuzzy, no-c-format
 msgid ""
 "For identifier generators that store values in the database, it is "
@@ -1836,7 +1464,7 @@
 "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\"/> "
+"enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced\" /> "
 "support this operation."
 msgstr ""
 "For identifier generators which store values in the database, it is "
@@ -1848,7 +1476,6 @@
 "\"/> support this notion. <placeholder-1/>"
 
 #. Tag: para
-#: basic_mapping.xml:931
 #, fuzzy, no-c-format
 msgid ""
 "<literal>none</literal> (generally this is the default if no optimizer was "
@@ -1860,7 +1487,6 @@
 "each and every request."
 
 #. Tag: para
-#: basic_mapping.xml:937
 #, fuzzy, no-c-format
 msgid ""
 "<literal>hilo</literal>: applies a hi/lo algorithm around the database "
@@ -1878,7 +1504,6 @@
 "define a group \"hi value\"."
 
 #. Tag: para
-#: basic_mapping.xml:946
 #, fuzzy, no-c-format
 msgid ""
 "<literal>pooled</literal>: as with the case of <literal>hilo</literal>, this "
@@ -1896,32 +1521,11 @@
 "refers to the values coming from the database."
 
 #. Tag: title
-#: basic_mapping.xml:959
 #, no-c-format
 msgid "composite-id"
 msgstr "composite-id"
 
-#. Tag: programlisting
-#: basic_mapping.xml:961
-#, 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 ""
-
 #. 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 "
@@ -1934,18 +1538,7 @@
 "는 자식 요소들로서 <literal>&lt;key-property&gt;</literal> 프로퍼티 매핑과 "
 "<literal>&lt;key-many-to-one&gt;</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 ""
-
 #. Tag: para
-#: basic_mapping.xml:972
 #, fuzzy, no-c-format
 msgid ""
 "The persistent class <emphasis>must</emphasis> override <literal>equals()</"
@@ -1958,7 +1551,6 @@
 "을 구현해야 한다."
 
 #. Tag: para
-#: basic_mapping.xml:978
 #, fuzzy, no-c-format
 msgid ""
 "Unfortunately, this approach means that a persistent object is its own "
@@ -1977,7 +1569,6 @@
 "composite 식별자로 부르고, 중대한 어플리케이션들에 대해 그것을 억제시킨다."
 
 #. Tag: para
-#: basic_mapping.xml:987
 #, no-c-format
 msgid ""
 "A second approach is what we call a <emphasis>mapped</emphasis> composite "
@@ -1990,18 +1581,7 @@
 "기서 식별자 프로퍼티들은 영속 클래스와 별도의 식별자 클래스 양자 상에 중복된"
 "다."
 
-#. 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</"
@@ -2019,14 +1599,12 @@
 "명백한&mdash;코드 중복이다."
 
 #. Tag: para
-#: basic_mapping.xml:1004
 #, no-c-format
 msgid ""
 "The following attributes are used to specify a mapped composite identifier:"
 msgstr "다음 속성들은 매핑된 composite 식별자를 지정하는데 사용된다:"
 
 #. Tag: para
-#: basic_mapping.xml:1010
 #, fuzzy, no-c-format
 msgid ""
 "<literal>mapped</literal> (optional - defaults to <literal>false</literal>): "
@@ -2039,7 +1617,6 @@
 "래스와 composite 식별자 클래스 양자를 참조함을 나타낸다."
 
 #. Tag: para
-#: basic_mapping.xml:1018
 #, fuzzy, no-c-format
 msgid ""
 "<literal>class</literal> (optional - but required for a mapped composite "
@@ -2049,12 +1626,11 @@
 "서는 필수적임): 하나의 composite 식별자로서 사용되는 클래스."
 
 #. 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 "
+"compositeid\" />. The attributes described below apply only to this "
 "alternative approach:"
 msgstr ""
 "우리는 <xref linkend=\"components-compositeid\"/>에서 composite 식별자가 하나"
@@ -2062,7 +1638,6 @@
 "이다. 아래에 설명되어 있는 속성들은 이 대체적인 접근법에만 적용된다:"
 
 #. Tag: para
-#: basic_mapping.xml:1033
 #, fuzzy, no-c-format
 msgid ""
 "<literal>name</literal> (optional - required for this approach): a property "
@@ -2073,9 +1648,6 @@
 "component 식별자를 소유하는 컴포넌트 타입의 프로퍼티(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</"
@@ -2110,7 +1682,6 @@
 "Hibernate가 프로퍼티 값에 접근하는데 사용할 방도."
 
 #. Tag: para
-#: basic_mapping.xml:1045
 #, fuzzy, no-c-format
 msgid ""
 "<literal>class</literal> (optional - defaults to the property type "
@@ -2121,7 +1692,6 @@
 "타입): 하나의 composite 식별자로서 사용되는 컴포넌트 클래스(다음 절을 보라)."
 
 #. Tag: para
-#: basic_mapping.xml:1052
 #, fuzzy, no-c-format
 msgid ""
 "The third approach, an <emphasis>identifier component</emphasis>, is "
@@ -2131,13 +1701,11 @@
 "리케이션들에 대해 우리가 권장하는 것이다."
 
 #. Tag: title
-#: basic_mapping.xml:1060
 #, fuzzy, no-c-format
 msgid "Discriminator"
 msgstr "discriminator"
 
 #. Tag: para
-#: basic_mapping.xml:1062
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;discriminator&gt;</literal> element is required for "
@@ -2159,21 +1727,7 @@
 "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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1083
 #, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional - defaults to <literal>class</literal>): "
@@ -2183,7 +1737,6 @@
 "discriminator 컬럼명."
 
 #. Tag: para
-#: basic_mapping.xml:1089
 #, fuzzy, no-c-format
 msgid ""
 "<literal>type</literal> (optional - defaults to <literal>string</literal>): "
@@ -2193,7 +1746,6 @@
 "Hibernate 타입을 나타내는 이름"
 
 #. Tag: para
-#: basic_mapping.xml:1095
 #, fuzzy, no-c-format
 msgid ""
 "<literal>force</literal> (optional - defaults to <literal>false</literal>): "
@@ -2205,7 +1757,6 @@
 "discriminator 값들을 지정하도록 \"강제한다\"."
 
 #. Tag: para
-#: basic_mapping.xml:1102
 #, fuzzy, no-c-format
 msgid ""
 "<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
@@ -2219,7 +1770,6 @@
 "literal>들 속에 그 컬럼을 포함하지 않도록 통보한다.)"
 
 #. Tag: para
-#: basic_mapping.xml:1110
 #, fuzzy, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an arbitrary SQL expression that is "
@@ -2230,7 +1780,6 @@
 "SQL 표현식. 컨텐츠 기반의 판별을 허용해준다."
 
 #. Tag: para
-#: basic_mapping.xml:1118
 #, no-c-format
 msgid ""
 "Actual values of the discriminator column are specified by the "
@@ -2242,7 +1791,6 @@
 "literal> 속성에 의해 지정된다."
 
 #. Tag: para
-#: basic_mapping.xml:1124
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>force</literal> attribute is only useful if the table contains "
@@ -2254,7 +1802,6 @@
 "그 경우가 아닐 것이다."
 
 #. Tag: para
-#: basic_mapping.xml:1130
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>formula</literal> attribute allows you to declare an arbitrary "
@@ -2263,23 +1810,12 @@
 "<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 ""
-
 #. Tag: title
-#: basic_mapping.xml:1140
 #, fuzzy, no-c-format
 msgid "Version (optional)"
 msgstr "version (옵션)"
 
 #. Tag: para
-#: basic_mapping.xml:1142
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;version&gt;</literal> element is optional and indicates "
@@ -2291,24 +1827,7 @@
 "를 포함한다는 것을 나타낸다. 이것은 당신이 <emphasis>긴 트랜잭션(long "
 "transaction)들</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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1161
 #, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional - defaults to the property name): the "
@@ -2318,14 +1837,12 @@
 "럼의 이름."
 
 #. 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>: 영속 클래스의 프로퍼티 명."
 
 #. Tag: para
-#: basic_mapping.xml:1172
 #, fuzzy, no-c-format
 msgid ""
 "<literal>type</literal> (optional - defaults to <literal>integer</literal>): "
@@ -2335,7 +1852,6 @@
 "호의 타입."
 
 #. Tag: para
-#: basic_mapping.xml:1178
 #, fuzzy, no-c-format
 msgid ""
 "<literal>access</literal> (optional - defaults to <literal>property</"
@@ -2370,7 +1886,6 @@
 "Hibernate가 프로퍼티 값에 접근하는데 사용할 방도."
 
 #. Tag: para
-#: basic_mapping.xml:1184
 #, fuzzy, no-c-format
 msgid ""
 "<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</"
@@ -2385,13 +1900,12 @@
 "(<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."
+"database. See the discussion of generated properties for more information "
+"(<xref linkend=\"mapping-generated\" />)."
 msgstr ""
 "<literal>generated</literal> (옵션 - 디폴트는 <literal>never</literal>): 이 "
 "version 프로퍼티 값이 데이터베이스에 의해 실제로 산출되는지를 지정한다. "
@@ -2399,7 +1913,6 @@
 "보라."
 
 #. Tag: para
-#: basic_mapping.xml:1200
 #, fuzzy, no-c-format
 msgid ""
 "<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
@@ -2413,7 +1926,6 @@
 "literal>로 설정될 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:1210
 #, fuzzy, no-c-format
 msgid ""
 "Version numbers can be of Hibernate type <literal>long</literal>, "
@@ -2425,7 +1937,6 @@
 "<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 "
@@ -2445,13 +1956,11 @@
 "히 유용하다!</emphasis>"
 
 #. Tag: title
-#: basic_mapping.xml:1226
 #, fuzzy, no-c-format
 msgid "Timestamp (optional)"
 msgstr "timestamp (옵션)"
 
 #. Tag: para
-#: basic_mapping.xml:1228
 #, fuzzy, no-c-format
 msgid ""
 "The optional <literal>&lt;timestamp&gt;</literal> element indicates that the "
@@ -2464,23 +1973,7 @@
 "Timestamp은 고유하게 optimistic 잠금에 대한 다소 안전한 구현이다. 하지만 때때"
 "로 어플리케이션은 다른 방법들로 timestamp들을 사용할 수도 있다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1247
 #, fuzzy, no-c-format
 msgid ""
 "<literal>column</literal> (optional - defaults to the property name): the "
@@ -2490,7 +1983,6 @@
 "는 컬럼 명."
 
 #. Tag: para
-#: basic_mapping.xml:1253
 #, fuzzy, no-c-format
 msgid ""
 "<literal>name</literal>: the name of a JavaBeans style property of Java type "
@@ -2501,7 +1993,6 @@
 "는 <literal>Timestamp</literal> 타입을 가진 자바빈즈 스타일의 프로퍼티 이름."
 
 #. Tag: para
-#: basic_mapping.xml:1266
 #, fuzzy, no-c-format
 msgid ""
 "<literal>unsaved-value</literal> (optional - defaults to <literal>null</"
@@ -2516,7 +2007,6 @@
 "(<literal>undefined</literal>는 식별자 프로퍼티 값이 사용될 것임을 지정한다.)"
 
 #. Tag: para
-#: basic_mapping.xml:1275
 #, fuzzy, no-c-format
 msgid ""
 "<literal>source</literal> (optional - defaults to <literal>vm</literal>): "
@@ -2538,26 +2028,23 @@
 "에 있어 사용이 안전하지 않을 수 있음을 노트하라(예를 들면 오라클 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."
+"generated by the database. See the discussion of generated properties for "
+"more information (<xref linkend=\"mapping-generated\" />)."
 msgstr ""
 "<literal>generated</literal> (옵션 - 디폴트는 <literal>never</literal>): 이 "
 "timestamp 프로퍼티 값이 데이터베이스에 의해 실제로 생성됨을 지정한다. <xref "
 "linkend=\"mapping-generated\">산출되는 프로퍼티들</xref>에 대한 논의들 보라."
 
 #. Tag: title
-#: basic_mapping.xml:1298 basic_mapping.xml:2890
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
-#: basic_mapping.xml:1299
 #, fuzzy, no-c-format
 msgid ""
 "<literal>&lt;Timestamp&gt;</literal> is equivalent to <literal>&lt;version "
@@ -2571,13 +2058,11 @@
 "literal>과 같다"
 
 #. Tag: title
-#: basic_mapping.xml:1311
 #, fuzzy, no-c-format
 msgid "Property"
 msgstr "프로퍼티"
 
 #. Tag: para
-#: basic_mapping.xml:1313
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;property&gt;</literal> element declares a persistent "
@@ -2586,34 +2071,7 @@
 "<literal>&lt;property&gt;</literal> 요소는 클래스의 자바빈즈 스타일의 영속 프"
 "로퍼티를 선언한다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1338
 #, no-c-format
 msgid ""
 "<literal>name</literal>: the name of the property, with an initial lowercase "
@@ -2621,7 +2079,6 @@
 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 "
@@ -2633,7 +2090,6 @@
 "literal> 요소(들)에 의해 지정될 수도 있다."
 
 #. Tag: para
-#: basic_mapping.xml:1356
 #, fuzzy, no-c-format
 msgid ""
 "<literal>update, insert</literal> (optional - defaults to <literal>true</"
@@ -2651,7 +2107,6 @@
 "기화 되는 순수하게 \"파생된(derived)\" 프로퍼티를 허용해준다."
 
 #. Tag: para
-#: basic_mapping.xml:1365
 #, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL expression that defines the "
@@ -2663,7 +2118,6 @@
 "매핑을 갖지 않는다."
 
 #. Tag: para
-#: basic_mapping.xml:1378
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
@@ -2675,7 +2129,6 @@
 "(빌드-시 바이트코드 수단을 필요로 한다)."
 
 #. Tag: para
-#: basic_mapping.xml:1385
 #, fuzzy, no-c-format
 msgid ""
 "<literal>unique</literal> (optional): enables the DDL generation of a unique "
@@ -2687,7 +2140,6 @@
 "는 것을 허용해준다."
 
 #. Tag: para
-#: basic_mapping.xml:1392
 #, fuzzy, no-c-format
 msgid ""
 "<literal>not-null</literal> (optional): enables the DDL generation of a "
@@ -2697,7 +2149,6 @@
 "DDL 생성을 가능하게 만든다."
 
 #. Tag: para
-#: basic_mapping.xml:1398 basic_mapping.xml:1581
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
@@ -2711,26 +2162,23 @@
 "버전 증가가 발생할 경우인지를 결정한다."
 
 #. 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."
+"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\">산출되는 프로퍼티들</xref>에 대한 논의를 보라."
 
 #. Tag: para
-#: basic_mapping.xml:1415
 #, no-c-format
 msgid "<emphasis>typename</emphasis> could be:"
 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, "
@@ -2740,7 +2188,6 @@
 "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, "
@@ -2752,13 +2199,11 @@
 "literal>)."
 
 #. Tag: para
-#: basic_mapping.xml:1433
 #, no-c-format
 msgid "The name of a serializable Java class."
 msgstr "serializable Java 클래스의 이름."
 
 #. Tag: para
-#: basic_mapping.xml:1438
 #, fuzzy, no-c-format
 msgid ""
 "The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
@@ -2768,7 +2213,6 @@
 "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 "
@@ -2788,7 +2232,6 @@
 "이를 구별하기 위해, 또는 맞춤 타입을 지정하기 위해.)"
 
 #. Tag: para
-#: basic_mapping.xml:1454
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>access</literal> attribute allows you to control how Hibernate "
@@ -2808,7 +2251,6 @@
 "티 접근을 위한 당신 자신의 방도를 지정할 수도 있다."
 
 #. Tag: para
-#: basic_mapping.xml:1463
 #, fuzzy, no-c-format
 msgid ""
 "A powerful feature is derived properties. These properties are by definition "
@@ -2821,21 +2263,7 @@
 "선언하고, 이것은 인스턴스를 로드시키는 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 ""
-
 #. 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 "
@@ -2849,13 +2277,11 @@
 "<literal>&lt;formula&gt;</literal> 매핑 요소를 사용할 수 있음을 노트하라."
 
 #. Tag: title
-#: basic_mapping.xml:1482
 #, fuzzy, no-c-format
 msgid "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 "
@@ -2868,43 +2294,12 @@
 "블 내에 있는 foreign 키는 대상 테이블의 프라이머리 키 컬럼(들)을 참조하고 있"
 "다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1515 basic_mapping.xml:1696 basic_mapping.xml:1882
 #, fuzzy, no-c-format
 msgid "<literal>name</literal>: the name of the property."
 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. "
@@ -2919,7 +2314,6 @@
 "된 <literal>&lt;column&gt;</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 "
@@ -2929,7 +2323,6 @@
 "타입): 연관된 클래스의 이름."
 
 #. Tag: para
-#: basic_mapping.xml:1533 basic_mapping.xml:1707
 #, fuzzy, no-c-format
 msgid ""
 "<literal>cascade</literal> (optional): specifies which operations should be "
@@ -2939,7 +2332,6 @@
 "객체로 케스케이드 될 것인지를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:1539 basic_mapping.xml:1722
 #, fuzzy, no-c-format
 msgid ""
 "<literal>fetch</literal> (optional - defaults to <literal>select</literal>): "
@@ -2953,7 +2345,6 @@
 "join 페칭 또는 순차적인 select 페칭 중에서 선택하라."
 
 #. Tag: para
-#: basic_mapping.xml:1545
 #, fuzzy, no-c-format
 msgid ""
 "<literal>update, insert</literal> (optional - defaults to <literal>true</"
@@ -2971,7 +2362,6 @@
 "연관관계 값을 허용한다."
 
 #. Tag: para
-#: basic_mapping.xml:1554
 #, fuzzy, no-c-format
 msgid ""
 "<literal>property-ref</literal> (optional): the name of a property of the "
@@ -2983,7 +2373,6 @@
 "다."
 
 #. Tag: para
-#: basic_mapping.xml:1567
 #, fuzzy, no-c-format
 msgid ""
 "<literal>unique</literal> (optional): enables the DDL generation of a unique "
@@ -2997,7 +2386,6 @@
 "일로 만든다."
 
 #. Tag: para
-#: basic_mapping.xml:1575
 #, fuzzy, no-c-format
 msgid ""
 "<literal>not-null</literal> (optional): enables the DDL generation of a "
@@ -3007,7 +2395,6 @@
 "스트레인트의 DDL 생성을 가능하도록 해준다."
 
 #. Tag: para
-#: basic_mapping.xml:1589
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
@@ -3024,7 +2411,6 @@
 "는 그 연관이 항상 eagerly 페치될 것임을 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:1599
 #, fuzzy, no-c-format
 msgid ""
 "<literal>not-found</literal> (optional - defaults to <literal>exception</"
@@ -3038,7 +2424,6 @@
 "것이다."
 
 #. 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 "
@@ -3046,7 +2431,6 @@
 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 "
@@ -3056,7 +2440,6 @@
 "대한 값을 정의하는 SQL 표현식."
 
 #. Tag: para
-#: basic_mapping.xml:1619
 #, fuzzy, no-c-format
 msgid ""
 "Setting a value of the <literal>cascade</literal> attribute to any "
@@ -3067,7 +2450,7 @@
 "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\"/> "
+"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 ""
@@ -3083,23 +2466,13 @@
 "과 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1638
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>property-ref</literal> attribute should only be used for "
@@ -3117,37 +2490,18 @@
 "(<literal>unique</literal> 속성은 SchemaExport 도구로 Hibernate의 DDL 생성을 "
 "제어한다.)"
 
-#. Tag: programlisting
-#: basic_mapping.xml:1647
-#, no-c-format
-msgid ""
-"<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" "
-"column=\"SERIAL_NUMBER\"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: basic_mapping.xml:1649
 #, no-c-format
 msgid "Then the mapping for <literal>OrderItem</literal> might use:"
 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
 msgid "This is not encouraged, however."
 msgstr "하지만 이것은 확실히 권장되지 않는다."
 
 #. Tag: para
-#: basic_mapping.xml:1659
 #, no-c-format
 msgid ""
 "If the referenced unique key comprises multiple properties of the associated "
@@ -3159,7 +2513,6 @@
 "매핑할 것이다."
 
 #. 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 "
@@ -3168,22 +2521,12 @@
 "만일 참조된 유일키가 컴포넌트의 프로퍼티일 경우, 당신은 하나의 프로퍼티 경로"
 "를 지정할 수 있다:"
 
-#. Tag: programlisting
-#: basic_mapping.xml:1668
-#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
-"\"OWNER_SSN\"/>]]>"
-msgstr ""
-
 #. Tag: title
-#: basic_mapping.xml:1673
 #, fuzzy, no-c-format
 msgid "One-to-one"
 msgstr "one-to-one"
 
 #. Tag: para
-#: basic_mapping.xml:1675
 #, no-c-format
 msgid ""
 "A one-to-one association to another persistent class is declared using a "
@@ -3192,29 +2535,7 @@
 "또 다른 영속 클래스에 대한 one-to-one 연관관계는 <literal>one-to-one</"
 "literal> 요소를 사용하여 선언된다."
 
-#. Tag: programlisting
-#: basic_mapping.xml:1693
-#, 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1713
 #, fuzzy, no-c-format
 msgid ""
 "<literal>constrained</literal> (optional): specifies that a foreign key "
@@ -3231,7 +2552,6 @@
 "(또한 스키마 내보내기 도구에 의해 사용된다)."
 
 #. Tag: para
-#: basic_mapping.xml:1728
 #, fuzzy, no-c-format
 msgid ""
 "<literal>property-ref</literal> (optional): the name of a property of the "
@@ -3243,7 +2563,6 @@
 "리 키가 사용된다."
 
 #. Tag: para
-#: basic_mapping.xml:1741
 #, fuzzy, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): almost all one-to-one associations "
@@ -3259,7 +2578,6 @@
 "라.)"
 
 #. Tag: para
-#: basic_mapping.xml:1749
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
@@ -3280,25 +2598,21 @@
 "eager 페치시킬 것이다!</emphasis>"
 
 #. Tag: para
-#: basic_mapping.xml:1767
 #, fuzzy, no-c-format
 msgid "There are two varieties of one-to-one associations:"
 msgstr "one-to-one 연관관계에는 두 가지 변종이 존재한다:"
 
 #. 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 "유일 foreign 키 연관관계들"
 
 #. 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 "
@@ -3313,7 +2627,6 @@
 "야 한다!"
 
 #. Tag: para
-#: basic_mapping.xml:1786
 #, fuzzy, no-c-format
 msgid ""
 "For a primary key association, add the following mappings to "
@@ -3322,22 +2635,7 @@
 "프라이머리 키 연관에 대해, 다음 매핑들을 <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 ""
-
-#. Tag: programlisting
-#: basic_mapping.xml:1792
-#, no-c-format
-msgid ""
-"<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true"
-"\"/>]]>"
-msgstr ""
-
 #. 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 "
@@ -3348,25 +2646,7 @@
 "이 동일함을 확실히 해야 한다! 우리는 <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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1802
 #, fuzzy, no-c-format
 msgid ""
 "A newly saved instance of <literal>Person</literal> is assigned the same "
@@ -3378,7 +2658,6 @@
 "된 <literal>Employee</literal> 인스턴스와 동일한 프라이머리 키를 할당받는다."
 
 #. Tag: para
-#: basic_mapping.xml:1808
 #, fuzzy, no-c-format
 msgid ""
 "Alternatively, a foreign key with a unique constraint, from "
@@ -3388,16 +2667,7 @@
 "달리, <literal>Employee</literal>로부터 <literal>Person</literal>으로의 유일 "
 "컨스트레인트를 가진 하나의 foreign key는 다음과 같이 표현될 수 있다:"
 
-#. Tag: programlisting
-#: basic_mapping.xml:1813
-#, no-c-format
-msgid ""
-"<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" "
-"unique=\"true\"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: basic_mapping.xml:1815
 #, fuzzy, no-c-format
 msgid ""
 "This association can be made bidirectional by adding the following to the "
@@ -3406,33 +2676,12 @@
 "그리고 이 연관은 다음을 <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 ""
-
 #. Tag: title
-#: basic_mapping.xml:1825
 #, fuzzy, no-c-format
 msgid "Natural-id"
 msgstr "natural-id"
 
-#. Tag: programlisting
-#: basic_mapping.xml:1827
-#, no-c-format
-msgid ""
-"<![CDATA[<natural-id mutable=\"true|false\"/>\n"
-"        <property ... />\n"
-"        <many-to-one ... />\n"
-"        ......\n"
-"</natural-id>]]>"
-msgstr ""
-
 #. Tag: para
-#: basic_mapping.xml:1829
 #, fuzzy, no-c-format
 msgid ""
 "Although we recommend the use of surrogate keys as primary keys, you should "
@@ -3452,7 +2701,6 @@
 "핑은 보다 자가 설명적이게 될 것이다."
 
 #. Tag: para
-#: basic_mapping.xml:1838
 #, fuzzy, no-c-format
 msgid ""
 "It is recommended that you implement <literal>equals()</literal> and "
@@ -3464,7 +2712,6 @@
 "력하게 권장한다."
 
 #. Tag: para
-#: basic_mapping.xml:1843
 #, fuzzy, no-c-format
 msgid ""
 "This mapping is not intended for use with entities that have natural primary "
@@ -3474,7 +2721,6 @@
 "아니다."
 
 #. Tag: para
-#: basic_mapping.xml:1849
 #, fuzzy, no-c-format
 msgid ""
 "<literal>mutable</literal> (optional - defaults to <literal>false</"
@@ -3485,13 +2731,11 @@
 "로, narutal 식별자 프로퍼티들은 변경될 수 없는 것(상수)으로 가정된다."
 
 #. Tag: title
-#: basic_mapping.xml:1859
 #, fuzzy, no-c-format
 msgid "Component and dynamic-component"
 msgstr "component, dynamic-component"
 
 #. Tag: para
-#: basic_mapping.xml:1861
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;component&gt;</literal> element maps properties of a child "
@@ -3503,30 +2747,7 @@
 "래스에 대한 테이블의 컬럼들로 매핑시킨다. 컴포넌트들은 그것들 자신의 프로퍼티"
 "들, 컴포넌트들, 또는 콜렉션들을 선언한다. 이래 \"컴포넌트들\"을 보라."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1887
 #, fuzzy, no-c-format
 msgid ""
 "<literal>class</literal> (optional - defaults to the property type "
@@ -3536,7 +2757,6 @@
 "타입): 컴포넌트(자식) 클래스의 이름."
 
 #. 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 "
@@ -3550,7 +2770,6 @@
 "에 나타날 것인가?"
 
 #. 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 "
@@ -3564,7 +2783,6 @@
 "에 나타날 것인가?"
 
 #. Tag: para
-#: basic_mapping.xml:1911
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
@@ -3576,7 +2794,6 @@
 "부를 지정한다 (빌드 시 바이트코드 수단을 필요로 한다)."
 
 #. Tag: para
-#: basic_mapping.xml:1918
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
@@ -3590,7 +2807,6 @@
 "발생할 것인지 여부를 결정한다."
 
 #. Tag: para
-#: basic_mapping.xml:1926 basic_mapping.xml:2002
 #, fuzzy, no-c-format
 msgid ""
 "<literal>unique</literal> (optional - defaults to <literal>false</literal>): "
@@ -3601,7 +2817,6 @@
 "스트레인트가 컴포넌트의 모든 매핑된 컬럼들에 대해 존재하는지 여부를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:1935
 #, no-c-format
 msgid ""
 "The child <literal>&lt;property&gt;</literal> tags map properties of the "
@@ -3611,7 +2826,6 @@
 "테이블 컬럼들로 매핑시킨다."
 
 #. Tag: para
-#: basic_mapping.xml:1940
 #, no-c-format
 msgid ""
 "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
@@ -3623,12 +2837,11 @@
 "요소를 허용한다."
 
 #. Tag: para
-#: basic_mapping.xml:1946
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;dynamic-component&gt;</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 "
+"refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for "
 "more information."
 msgstr ""
 "<literal>&lt;dynamic-component&gt;</literal> 요소는 컴포넌트로서 매핑될"
@@ -3636,13 +2849,11 @@
 "한다. <xref linkend=\"components-dynamic\"/>을 보라."
 
 #. Tag: title
-#: basic_mapping.xml:1955
 #, fuzzy, no-c-format
 msgid "Properties"
 msgstr "properties"
 
 #. Tag: para
-#: basic_mapping.xml:1957
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;properties&gt;</literal> element allows the definition of a "
@@ -3657,26 +2868,7 @@
 "준다는 점이다. 또한 그것은 다중 컬럼 유일 컨스트레인느를 정의하는 편리한 방법"
 "이다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:1976
 #, fuzzy, no-c-format
 msgid ""
 "<literal>name</literal>: the logical name of the grouping. It is "
@@ -3686,7 +2878,6 @@
 "<emphasis>아니다</emphasis>."
 
 #. Tag: para
-#: basic_mapping.xml:1994
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
@@ -3700,7 +2891,6 @@
 "생할 것인지 여부를 결정한다."
 
 #. Tag: para
-#: basic_mapping.xml:2011
 #, no-c-format
 msgid ""
 "For example, if we have the following <literal>&lt;properties&gt;</literal> "
@@ -3709,25 +2899,7 @@
 "예를 들어, 만일 우리가 다음 <literal>&lt;properties&gt;</literal> 매핑을 가"
 "질 경우:"
 
-#. Tag: programlisting
-#: basic_mapping.xml:2015
-#, 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2017
 #, fuzzy, no-c-format
 msgid ""
 "You might have some legacy data association that refers to this unique key "
@@ -3736,20 +2908,7 @@
 "그 때 우리는 프라이머리 키가 아닌, <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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2024
 #, fuzzy, no-c-format
 msgid ""
 "The use of this outside the context of mapping legacy data is not "
@@ -3759,13 +2918,11 @@
 "는 것을 권장하지 않는다."
 
 #. Tag: title
-#: basic_mapping.xml:2032
 #, fuzzy, no-c-format
 msgid "Subclass"
 msgstr "subclass"
 
 #. Tag: para
-#: basic_mapping.xml:2034
 #, fuzzy, no-c-format
 msgid ""
 "Polymorphic persistence requires the declaration of each subclass of the "
@@ -3776,28 +2933,7 @@
 "필요로 한다.(권장되는) table-per-class-hierarchy(테이블 당 클래스 계층구조) "
 "매핑 방도의 경우, <literal>&lt;subclass&gt;</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 ""
-
 #. 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."
@@ -3810,7 +2946,6 @@
 "<literal>name</literal>: 서브클래스의 전체 수식어가 붙은 클래스 명."
 
 #. Tag: para
-#: basic_mapping.xml:2055
 #, fuzzy, no-c-format
 msgid ""
 "<literal>discriminator-value</literal> (optional - defaults to the class "
@@ -3820,7 +2955,6 @@
 "서브클래스들을 구분짓는 값."
 
 #. Tag: para
-#: basic_mapping.xml:2061
 #, fuzzy, no-c-format
 msgid ""
 "<literal>proxy</literal> (optional): specifies a class or interface used for "
@@ -3837,7 +2971,6 @@
 "스 또는 인터페이스를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:2067
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
@@ -3855,7 +2988,6 @@
 "<literal>lazy=\"false\"</literal> 설정은 lazy 페칭을 사용불가능하게 만든다."
 
 #. Tag: para
-#: basic_mapping.xml:2075
 #, fuzzy, no-c-format
 msgid ""
 "Each subclass declares its own persistent properties and subclasses. "
@@ -3871,21 +3003,18 @@
 "다. none이 지정될 경우, 전체 수식어가 붙은 자바 클래스 이름이 사용된다."
 
 #. 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\"/"
-">."
+"For information about inheritance mappings see <xref linkend=\"inheritance"
+"\" />."
 msgstr "상속 매핑들에 대한 정보는 <xref linkend=\"inheritance\"/>을 보라."
 
 #. Tag: title
-#: basic_mapping.xml:2090
 #, fuzzy, no-c-format
 msgid "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-"
@@ -3897,40 +3026,12 @@
 "per-subclass 매핑 방도). 상속된 상태는 슈퍼클래스의 테이블과 조인함으로써 검"
 "색된다. 우리는 <literal>&lt;joined-subclass&gt;</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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2113 basic_mapping.xml:2176
 #, fuzzy, no-c-format
 msgid "<literal>table</literal>: the name of the subclass table."
 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 "
@@ -3947,7 +3048,6 @@
 "스 또는 인터페이스를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:2124 basic_mapping.xml:2187
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional, defaults to <literal>true</literal>): "
@@ -3965,7 +3065,6 @@
 "<literal>lazy=\"false\"</literal> 설정은 lazy 페칭을 사용불가능하게 만든다."
 
 #. Tag: para
-#: basic_mapping.xml:2132
 #, fuzzy, no-c-format
 msgid ""
 "A discriminator column is not required for this mapping strategy. Each "
@@ -3978,52 +3077,12 @@
 "는 테이블 컬럼을 선언해야 한다. 이 장의 시작 부분에 있는 매핑은 다음과 같이 "
 "다시 작성될 것이다:"
 
-#. 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 ""
-
 #. Tag: title
-#: basic_mapping.xml:2148
 #, fuzzy, no-c-format
 msgid "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 "
@@ -4045,46 +3104,18 @@
 "관)을 사용하고자 원할 경우, 당신은 <literal>&lt;union-subclass&gt;</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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2195
 #, no-c-format
 msgid ""
 "No discriminator column or key column is required for this mapping strategy."
 msgstr "이 매핑 방도에는 판별자 컬럼이나 키 컬럼이 필요하지 않다."
 
 #. Tag: title
-#: basic_mapping.xml:2206
 #, fuzzy, no-c-format
 msgid "Join"
 msgstr "join"
 
 #. Tag: para
-#: basic_mapping.xml:2208
 #, fuzzy, no-c-format
 msgid ""
 "Using the <literal>&lt;join&gt;</literal> element, it is possible to map "
@@ -4095,33 +3126,12 @@
 "존재할 때, 하나의 클래스에 속한 프로퍼티들을 여러 테이블들로 매핑시키는 것이 "
 "가능하다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2226
 #, fuzzy, no-c-format
 msgid "<literal>table</literal>: the name of the joined table."
 msgstr "<literal>table</literal>: 조인된 테이블의 이름."
 
 #. Tag: para
-#: basic_mapping.xml:2243
 #, fuzzy, no-c-format
 msgid ""
 "<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
@@ -4146,7 +3156,6 @@
 "<literal>&lt;join&gt;</literal>을 검색하는데 사용될 것이다."
 
 #. Tag: para
-#: basic_mapping.xml:2256
 #, fuzzy, no-c-format
 msgid ""
 "<literal>inverse</literal> (optional - defaults to <literal>false</"
@@ -4158,7 +3167,6 @@
 "이트하려고 시도하지 않을 것이다."
 
 #. Tag: para
-#: basic_mapping.xml:2263
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optional</literal> (optional - defaults to <literal>false</"
@@ -4172,7 +3180,6 @@
 "용할 것이다."
 
 #. Tag: para
-#: basic_mapping.xml:2272
 #, fuzzy, no-c-format
 msgid ""
 "For example, address information for a person can be mapped to a separate "
@@ -4181,26 +3188,7 @@
 "예를 들어, (모든 프로퍼티들에 대해 value 타입 의미를 유지하면서) 개인의 주소 "
 "정보는 별도의 테이블에 매핑될 수 있다:"
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2279
 #, fuzzy, no-c-format
 msgid ""
 "This feature is often only useful for legacy data models. We recommend fewer "
@@ -4214,13 +3202,11 @@
 "는 것에 유용하다."
 
 #. Tag: title
-#: basic_mapping.xml:2289
-#, no-c-format
-msgid "<title>Key</title>"
-msgstr ""
+#, fuzzy, no-c-format
+msgid "Key"
+msgstr "key"
 
 #. Tag: para
-#: basic_mapping.xml:2291
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;key&gt;</literal> element has featured a few times within "
@@ -4233,22 +3219,7 @@
 "타나고, 그것은 조인된 테이블의 foreign 키를 정의하고, 그것은 원래의 테이블의 "
 "프라이머리 키를 참조한다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2318
 #, fuzzy, no-c-format
 msgid ""
 "<literal>on-delete</literal> (optional - defaults to <literal>noaction</"
@@ -4260,7 +3231,6 @@
 "록 할 것인지 여부를 지정한다."
 
 #. Tag: para
-#: basic_mapping.xml:2325
 #, fuzzy, no-c-format
 msgid ""
 "<literal>property-ref</literal> (optional): specifies that the foreign key "
@@ -4271,7 +3241,6 @@
 "머리 키가 아닌 컬럼들을 참조함을 지정한다. (리거시 데이터에 제공됨.)"
 
 #. Tag: para
-#: basic_mapping.xml:2332
 #, fuzzy, no-c-format
 msgid ""
 "<literal>not-null</literal> (optional): specifies that the foreign key "
@@ -4282,7 +3251,6 @@
 "다(이것은 foreign 키가 또한 프라이머리 키의 부분일 때마다 함축된다)."
 
 #. Tag: para
-#: basic_mapping.xml:2339
 #, fuzzy, no-c-format
 msgid ""
 "<literal>update</literal> (optional): specifies that the foreign key should "
@@ -4293,7 +3261,6 @@
 "지정한다(이것은 foreign 키가 또한 프라이머리 키의 부분일 때마다 함축된다)."
 
 #. Tag: para
-#: basic_mapping.xml:2346
 #, fuzzy, no-c-format
 msgid ""
 "<literal>unique</literal> (optional): specifies that the foreign key should "
@@ -4305,7 +3272,6 @@
 "다)."
 
 #. Tag: para
-#: basic_mapping.xml:2354
 #, fuzzy, no-c-format
 msgid ""
 "For systems where delete performance is important, we recommend that all "
@@ -4323,7 +3289,6 @@
 "있어라."
 
 #. Tag: para
-#: basic_mapping.xml:2362
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>not-null</literal> and <literal>update</literal> attributes are "
@@ -4339,13 +3304,11 @@
 "emphasis>."
 
 #. Tag: title
-#: basic_mapping.xml:2372
 #, fuzzy, no-c-format
 msgid "Column and formula elements"
 msgstr "column 요소와 formula 요소"
 
 #. Tag: para
-#: basic_mapping.xml:2373
 #, fuzzy, no-c-format
 msgid ""
 "Mapping elements which accept a <literal>column</literal> attribute will "
@@ -4357,32 +3320,7 @@
 "column&gt;</literal> 서브요소를 수용할 것이다. 비슷하게 <literal>&lt;"
 "formula&gt;</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 ""
-
-#. 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 "
@@ -4393,25 +3331,12 @@
 "신종 조인 조건들을 표현하기 위해 동일한 property 또는 연관관계 매핑 내에 결합"
 "될 수 있다."
 
-#. 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 ""
-
 #. Tag: title
-#: basic_mapping.xml:2394
 #, fuzzy, no-c-format
 msgid "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 "
@@ -4426,24 +3351,7 @@
 "의존하기 보다 명시적으로 \"임포트 될 \" 것이다. 당신은 심지어 명시적으로 매핑"
 "되지 않는 클래스들과 인터페이스들을 임포트 시킬 수(가져오기 할 수) 있다."
 
-#. Tag: programlisting
-#: basic_mapping.xml:2403
-#, no-c-format
-msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: basic_mapping.xml:2410
-#, no-c-format
-msgid ""
-"<![CDATA[<import\n"
-"        class=\"ClassName\"\n"
-"        rename=\"ShortName\"\n"
-"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: basic_mapping.xml:2413
 #, fuzzy, no-c-format
 msgid ""
 "<literal>class</literal>: the fully qualified class name of any Java class."
@@ -4452,7 +3360,6 @@
 "름."
 
 #. Tag: para
-#: basic_mapping.xml:2418
 #, fuzzy, no-c-format
 msgid ""
 "<literal>rename</literal> (optional - defaults to the unqualified class "
@@ -4462,13 +3369,11 @@
 "질의 언어 내에서 사용될 이름."
 
 #. Tag: title
-#: basic_mapping.xml:2429
-#, no-c-format
-msgid "<title>Any</title>"
-msgstr ""
+#, fuzzy, no-c-format
+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>&lt;any&gt;</"
@@ -4490,7 +3395,6 @@
 "에서만 이것을 사용해야 한다."
 
 #. Tag: para
-#: basic_mapping.xml:2441
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>meta-type</literal> attribute allows the application to specify "
@@ -4504,54 +3408,17 @@
 "을 가진 영속 클래스들로 매핑시키는 맞춤형 타입을 지정하도록 한다. 당신은 "
 "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 ""
-
-#. 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>: 프로퍼티 이름."
 
 #. Tag: para
-#: basic_mapping.xml:2467
 #, no-c-format
 msgid "<literal>id-type</literal>: the identifier type."
 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</"
@@ -4561,7 +3428,6 @@
 "discriminator 매핑에 허용되는 임의의 타입."
 
 #. Tag: para
-#: basic_mapping.xml:2478
 #, no-c-format
 msgid ""
 "<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
@@ -4571,7 +3437,6 @@
 "cascade 스타일."
 
 #. Tag: para
-#: basic_mapping.xml:2490
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
@@ -4585,19 +3450,16 @@
 "할 것인지 여부를 정의한다."
 
 #. Tag: title
-#: basic_mapping.xml:2505
 #, fuzzy, no-c-format
 msgid "Hibernate types"
 msgstr "Hibernate 타입들"
 
 #. Tag: title
-#: basic_mapping.xml:2508
 #, no-c-format
 msgid "Entities and values"
 msgstr "엔티티들과 값들"
 
 #. Tag: para
-#: basic_mapping.xml:2510
 #, no-c-format
 msgid ""
 "In relation to the persistence service, Java language-level objects are "
@@ -4605,7 +3467,6 @@
 msgstr ""
 
 #. Tag: para
-#: basic_mapping.xml:2515
 #, fuzzy, no-c-format
 msgid ""
 "An <emphasis>entity</emphasis> exists independently of any other objects "
@@ -4628,7 +3489,6 @@
 "다. 그것들 또한 버전화 될 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:2526
 #, fuzzy, no-c-format
 msgid ""
 "An entity's persistent state consists of references to other entities and "
@@ -4651,7 +3511,6 @@
 "의 엔티티들이나 콜렉션들에 의해 공유될 수 없다."
 
 #. Tag: para
-#: basic_mapping.xml:2537
 #, fuzzy, no-c-format
 msgid ""
 "Until now, we have been using the term \"persistent class\" to refer to "
@@ -4678,13 +3537,11 @@
 "composition이나 aggregation은 대개 value 타입으로 변환된다."
 
 #. Tag: para
-#: basic_mapping.xml:2551
 #, fuzzy, no-c-format
 msgid "We will revisit both concepts throughout this reference guide."
 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 "
@@ -4710,7 +3567,6 @@
 "현할 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:2568
 #, fuzzy, no-c-format
 msgid ""
 "With the exception of collections, all built-in Hibernate types support null "
@@ -4719,13 +3575,11 @@
 "콜렉션들을 제외한 모든 미리 빌드된 Hibernate 타입들은 null 의미를 지원한다."
 
 #. Tag: title
-#: basic_mapping.xml:2575
 #, no-c-format
 msgid "Basic value types"
 msgstr "기본 value 타입들"
 
 #. Tag: para
-#: basic_mapping.xml:2577
 #, fuzzy, no-c-format
 msgid ""
 "The built-in <emphasis>basic mapping types</emphasis> can be roughly "
@@ -4734,18 +3588,16 @@
 "미리-만들어진 <emphasis>기본 매핑 타입들</emphasis>은 대략 다음과 같이 카테고"
 "리로 분류된다 <placeholder-1/>"
 
-#. Tag: literal
-#: basic_mapping.xml:2582
-#, no-c-format
+#. Tag: term
+#, fuzzy, no-c-format
 msgid ""
-"integer, long, short, float, double, character, byte, boolean, yes_no, "
-"true_false"
+"<literal>integer, long, short, float, double, character, byte, boolean, "
+"yes_no, true_false</literal>"
 msgstr ""
 "integer, long, short, float, double, character, byte, boolean, yes_no, "
 "true_false"
 
 #. Tag: para
-#: basic_mapping.xml:2585
 #, no-c-format
 msgid ""
 "Type mappings from Java primitives or wrapper classes to appropriate (vendor-"
@@ -4758,14 +3610,12 @@
 "<literal>true_false</literal>는 Java <literal>boolean</literal>이나 "
 "<literal>java.lang.Boolean</literal>에 대한 모든 대체적인 인코딩들이다."
 
-#. Tag: literal
-#: basic_mapping.xml:2594
-#, no-c-format
-msgid "string"
-msgstr "string"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>string</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:2596
 #, no-c-format
 msgid ""
 "A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</"
@@ -4774,14 +3624,12 @@
 "<literal>java.lang.String</literal>으로부터 <literal>VARCHAR</literal> (또는 "
 "Oracle <literal>VARCHAR2</literal>)로의 타입 매핑."
 
-#. Tag: literal
-#: basic_mapping.xml:2603
-#, no-c-format
-msgid "date, time, timestamp"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
 msgstr "date, time, timestamp"
 
 #. Tag: para
-#: basic_mapping.xml:2605
 #, no-c-format
 msgid ""
 "Type mappings from <literal>java.util.Date</literal> and its subclasses to "
@@ -4792,14 +3640,12 @@
 "<literal>DATE</literal>, <literal>TIME</literal>, <literal>TIMESTAMP</"
 "literal> (또는 등가물)로의 타입 매핑들."
 
-#. Tag: literal
-#: basic_mapping.xml:2613
-#, no-c-format
-msgid "calendar, calendar_date"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
 msgstr "calendar, calendar_date"
 
 #. Tag: para
-#: basic_mapping.xml:2615
 #, no-c-format
 msgid ""
 "Type mappings from <literal>java.util.Calendar</literal> to SQL types "
@@ -4808,14 +3654,12 @@
 "<literal>java.util.Calendar</literal>로부터 SQL 타입들인 <literal>TIMESTAMP</"
 "literal>, <literal>DATE</literal> (또는 등가물)로의 타입 매핑들."
 
-#. Tag: literal
-#: basic_mapping.xml:2623
-#, no-c-format
-msgid "big_decimal, big_integer"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
 msgstr "big_decimal, big_integer"
 
 #. Tag: para
-#: basic_mapping.xml:2625
 #, no-c-format
 msgid ""
 "Type mappings from <literal>java.math.BigDecimal</literal> and <literal>java."
@@ -4826,14 +3670,12 @@
 "literal>로부터 <literal>NUMERIC</literal> (또는 Oracle <literal>NUMBER</"
 "literal>)로의 타입 매핑들."
 
-#. Tag: literal
-#: basic_mapping.xml:2633
-#, no-c-format
-msgid "locale, timezone, currency"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
 msgstr "locale, timezone, currency"
 
 #. Tag: para
-#: basic_mapping.xml:2635
 #, no-c-format
 msgid ""
 "Type mappings from <literal>java.util.Locale</literal>, <literal>java.util."
@@ -4850,14 +3692,12 @@
 "매핑된다. <literal>TimeZone</literal>의 인스턴스들은 그것들의 <literal>ID</"
 "literal>로 매핑된다."
 
-#. Tag: literal
-#: basic_mapping.xml:2647
-#, no-c-format
-msgid "class"
-msgstr "class"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>class</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:2649
 #, no-c-format
 msgid ""
 "A type mapping from <literal>java.lang.Class</literal> to <literal>VARCHAR</"
@@ -4868,26 +3708,22 @@
 "Oracle <literal>VARCHAR2</literal>)로의 타입 매핑. <literal>Class</literal>"
 "는 그것의 전체 수식어가 붙은 이름으로 매핑된다."
 
-#. Tag: literal
-#: basic_mapping.xml:2657
-#, no-c-format
-msgid "binary"
-msgstr "binary"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>binary</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:2659
 #, no-c-format
 msgid "Maps byte arrays to an appropriate SQL binary type."
 msgstr "byte 배열들을 적절한 SQL binary 타입으로 매핑시킨다."
 
-#. Tag: literal
-#: basic_mapping.xml:2665
-#, no-c-format
-msgid "text"
-msgstr "text"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>text</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:2667
 #, no-c-format
 msgid ""
 "Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
@@ -4896,14 +3732,12 @@
 "long Java 문자열을 SQL <literal>CLOB</literal> 또는 <literal>TEXT</literal> "
 "타입으로 매핑시킨다"
 
-#. Tag: literal
-#: basic_mapping.xml:2674
-#, no-c-format
-msgid "serializable"
-msgstr "serializable"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr "<literal>all</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 "
@@ -4914,14 +3748,12 @@
 "한 디폴트로 기본 타입이 아닌 serializable 자바 클래스 또는 인터페이스의 이름"
 "을 가진 Hibernate 타입 <literal>serializable</literal>을 나타낼 수도 있다."
 
-#. Tag: literal
-#: basic_mapping.xml:2685
-#, no-c-format
-msgid "clob, blob"
-msgstr "clob, blob"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
 
 #. Tag: para
-#: basic_mapping.xml:2687
 #, fuzzy, no-c-format
 msgid ""
 "Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and "
@@ -4934,18 +3766,16 @@
 "냐하면 blob 또는 clob 객체는 트랜잭션 외부에서 재사용될 수 없기 때문이다.(게"
 "다가 드라이버 지원이 비일관적이고 페치되어야 한다)"
 
-#. Tag: literal
-#: basic_mapping.xml:2697
-#, no-c-format
+#. Tag: term
+#, fuzzy, no-c-format
 msgid ""
-"imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
-"imm_serializable, imm_binary"
+"<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
+"imm_serializable, imm_binary</literal>"
 msgstr ""
 "imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
 "imm_serializable, imm_binary"
 
 #. Tag: para
-#: basic_mapping.xml:2701
 #, fuzzy, no-c-format
 msgid ""
 "Type mappings for what are considered mutable Java types. This is where "
@@ -4965,7 +3795,6 @@
 "를 그 프로퍼티에 할당해야 한다."
 
 #. Tag: para
-#: basic_mapping.xml:2716
 #, fuzzy, no-c-format
 msgid ""
 "Unique identifiers of entities and collections can be of any basic type "
@@ -4978,7 +3807,6 @@
 "어느 것일 수 있다. (Composite 식별자들이 또한 허용된다. 아래를 보라.)"
 
 #. Tag: para
-#: basic_mapping.xml:2722
 #, no-c-format
 msgid ""
 "The basic value types have corresponding <literal>Type</literal> constants "
@@ -4992,13 +3820,11 @@
 "다."
 
 #. Tag: title
-#: basic_mapping.xml:2731
 #, no-c-format
 msgid "Custom value types"
 msgstr "맞춤형 value 타입들"
 
 #. Tag: para
-#: basic_mapping.xml:2733
 #, fuzzy, no-c-format
 msgid ""
 "It is relatively easy for developers to create their own value types. For "
@@ -5022,7 +3848,6 @@
 "literal>/ <literal>setName()</literal>를 가질 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:2744
 #, fuzzy, no-c-format
 msgid ""
 "To implement a custom type, implement either <literal>org.hibernate."
@@ -5036,19 +3861,7 @@
 "수식어가 붙은 클래스명을 사용하여 프로퍼티들을 선언하라. 가능한 종류의 것들"
 "을 보려면 <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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2754
 #, no-c-format
 msgid ""
 "Notice the use of <literal>&lt;column&gt;</literal> tags to map a property "
@@ -5058,7 +3871,6 @@
 "literal> 태그의 사용을 주목하라."
 
 #. Tag: para
-#: basic_mapping.xml:2759
 #, no-c-format
 msgid ""
 "The <literal>CompositeUserType</literal>, <literal>EnhancedUserType</"
@@ -5071,7 +3883,6 @@
 "literal> 인터페이스들은 더 많은 특화된 사용들을 위한 지원을 제공한다."
 
 #. Tag: para
-#: basic_mapping.xml:2765
 #, fuzzy, no-c-format
 msgid ""
 "You can even supply parameters to a <literal>UserType</literal> in the "
@@ -5086,19 +3897,7 @@
 "해야 한다. 당신의 맞춤형 타입에 파라미터들을 제공하기 위해, 당신은 당신의 매"
 "핑 파일들 속에 <literal>&lt;type&gt;</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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2775
 #, no-c-format
 msgid ""
 "The <literal>UserType</literal> can now retrieve the value for the parameter "
@@ -5110,7 +3909,6 @@
 "검색할 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:2780
 #, fuzzy, no-c-format
 msgid ""
 "If you regularly use a certain <literal>UserType</literal>, it is useful to "
@@ -5125,24 +3923,7 @@
 "고, 또한 만일 그 타입이 파라미터화 된 경우에 디폴트 파라미터 값들의 리스트를 "
 "포함할 수도 있다."
 
-#. 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 ""
-
-#. Tag: programlisting
-#: basic_mapping.xml:2789
-#, no-c-format
-msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: basic_mapping.xml:2791
 #, no-c-format
 msgid ""
 "It is also possible to override the parameters supplied in a typedef on a "
@@ -5152,7 +3933,6 @@
 "공된 파라미터들을 오버라이드 시키는 것이 가능하다."
 
 #. Tag: para
-#: basic_mapping.xml:2796
 #, fuzzy, no-c-format
 msgid ""
 "Even though Hibernate's rich range of built-in types and support for "
@@ -5175,13 +3955,11 @@
 "경들에 대해 장차 검증될 것이다."
 
 #. 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 "
@@ -5198,31 +3976,7 @@
 "할 때, 질의들을 작성할 때, 또는 명명된 엔티티에 대한 연관들을 매핑할 때 당신"
 "으로 하여금 엔티티 이름을 지정하도록 한다."
 
-#. 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2823
 #, fuzzy, no-c-format
 msgid ""
 "Associations are now specified using <literal>entity-name</literal> instead "
@@ -5232,13 +3986,11 @@
 "을 사용하여 어떻게 지정되는지를 주목하라."
 
 #. Tag: title
-#: basic_mapping.xml:2831
 #, no-c-format
 msgid "SQL quoted identifiers"
 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 "
@@ -5253,26 +4005,12 @@
 "할 것이다(대개 이중 인용부호 이지만, 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 ""
-
 #. Tag: title
-#: basic_mapping.xml:2845
 #, no-c-format
 msgid "Metadata alternatives"
 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 "
@@ -5282,13 +4020,11 @@
 "정의하는 몇몇 대안적인 방법들이 존재한다."
 
 #. 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 "
@@ -5303,130 +4039,17 @@
 "으로 간주되기 때문이다. 하지만 우리는 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2863
 #, fuzzy, no-c-format
 msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
 msgstr "XDoclet과 ibernate에 관한 추가 예제들은 Hibernate 웹 사이트를 보라."
 
 #. Tag: title
-#: basic_mapping.xml:2870
 #, no-c-format
 msgid "Using JDK 5.0 Annotations"
 msgstr "JDK 5.0 Annotations 사용하기"
 
 #. Tag: para
-#: basic_mapping.xml:2872
 #, fuzzy, no-c-format
 msgid ""
 "JDK 5.0 introduced XDoclet-style annotations at the language level that are "
@@ -5451,41 +4074,11 @@
 "(JSR-220)과 Hibernate3 metadata 양자가 지원된다."
 
 #. 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 엔티티 빈으로서 주석이 붙은 POJO 클래스에 관한 예제이다:"
 
-#. Tag: programlisting
-#: basic_mapping.xml:2887
-#, 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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2891
 #, fuzzy, no-c-format
 msgid ""
 "Support for JDK 5.0 Annotations (and JSR-220) is currently under "
@@ -5496,13 +4089,11 @@
 "완성되지 않았음을 노트하라. 상세한 것은 Hibernate Anotations를 참조하라."
 
 #. Tag: title
-#: basic_mapping.xml:2901
 #, fuzzy, no-c-format
 msgid "Generated properties"
 msgstr "산출되는 프로퍼티들"
 
 #. Tag: para
-#: basic_mapping.xml:2902
 #, fuzzy, no-c-format
 msgid ""
 "Generated properties are properties that have their values generated by the "
@@ -5522,14 +4113,13 @@
 "로 직후에 산출되는 값들을 검색하기 위해 하나의 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."
+"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로 마크된 프로퍼티들은 부가적으로 inser 가능하지 않아야 하고 update "
 "불가능해야 한다. 오직 Properties marked as generated must additionally be "
@@ -5539,7 +4129,6 @@
 "단순 프로퍼티들</xref> 만이 generated로 마크될 수 있다."
 
 #. Tag: para
-#: basic_mapping.xml:2918
 #, fuzzy, no-c-format
 msgid ""
 "<literal>never</literal> (the default): the given property value is not "
@@ -5549,15 +4138,14 @@
 "에 생성되지 않을 것임을 의미한다."
 
 #. 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."
+"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 시에 생성되지만, "
 "차후의 업데이트들에서 다시 생성되지 않을 것임을 기술한다. 생성-날짜와 같은 것"
@@ -5567,7 +4155,6 @@
 "라도, 이 옵션은 거기서 이용 불가능함을 노트하라..."
 
 #. Tag: para
-#: basic_mapping.xml:2930
 #, fuzzy, no-c-format
 msgid ""
 "<literal>always</literal>: the property value is generated both on insert "
@@ -5577,13 +4164,11 @@
 "성됨을 기술한다."
 
 #. Tag: title
-#: basic_mapping.xml:2937
 #, fuzzy, no-c-format
 msgid "Auxiliary database objects"
 msgstr "보조 데이터베이스 객체들"
 
 #. Tag: para
-#: basic_mapping.xml:2938
 #, fuzzy, no-c-format
 msgid ""
 "Auxiliary database objects allow for the CREATE and DROP of arbitrary "
@@ -5604,7 +4189,6 @@
 "을 정의하는 두 가지 모드들이 본질적으로 존재한다..."
 
 #. 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 "
@@ -5613,21 +4197,7 @@
 "첫 번째 모드는 매핑 파일 바깥에서 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 ""
-
 #. 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 "
@@ -5638,20 +4208,7 @@
 "춤 클래스를 제공하는 것이다. 이 맞춤 클래스는 <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 ""
-
 #. Tag: para
-#: basic_mapping.xml:2958
 #, fuzzy, no-c-format
 msgid ""
 "Additionally, these database objects can be optionally scoped so that they "
@@ -5660,21 +4217,77 @@
 "덧붙여 이들 데이터베이스 객체들은 어떤 dialect들이 사용될 때 그것들이 단지 적"
 "용될 수 있도록 선택적으로 변동될 수 있다."
 
-#. 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 "increment"
+#~ msgstr "increment"
 
+#~ msgid "identity"
+#~ msgstr "identity"
+
+#~ msgid "sequence"
+#~ msgstr "sequence"
+
+#~ msgid "hilo"
+#~ msgstr "hilo"
+
+#~ msgid "seqhilo"
+#~ msgstr "seqhilo"
+
+#~ msgid "uuid"
+#~ msgstr "uuid"
+
+#~ msgid "guid"
+#~ msgstr "guid"
+
+#~ msgid "native"
+#~ msgstr "native"
+
+#~ msgid "assigned"
+#~ msgstr "assigned"
+
+#~ msgid "select"
+#~ msgstr "select"
+
+#~ msgid "foreign"
+#~ msgstr "foreign"
+
+#~ msgid "sequence-identity"
+#~ msgstr "sequence-identity"
+
+#, fuzzy
 #~ msgid ""
+#~ "<literal>optimizer</literal> (optional - defaults to <literal>none</"
+#~ "literal>): See"
+#~ msgstr ""
+#~ "<literal>cascade</literal> (optional- defaults to <literal>none</"
+#~ "literal>): cascade 스타일."
+
+#, fuzzy
+#~ msgid ""
+#~ "<literal>optimizer</literal> (optional - defaults to <literal></"
+#~ "literal>): See"
+#~ msgstr ""
+#~ "<literal>cascade</literal> (optional- defaults to <literal>none</"
+#~ "literal>): cascade 스타일."
+
+#~ msgid "string"
+#~ msgstr "string"
+
+#~ msgid "class"
+#~ msgstr "class"
+
+#~ msgid "binary"
+#~ msgstr "binary"
+
+#~ msgid "text"
+#~ msgstr "text"
+
+#~ msgid "serializable"
+#~ msgstr "serializable"
+
+#~ msgid "clob, blob"
+#~ msgstr "clob, blob"
+
+#~ msgid ""
 #~ "<literal>type</literal> (optional): A name that indicates the Hibernate "
 #~ "type."
 #~ msgstr "<literal>type</literal> (옵션): Hibernate 타입을 나타내는 이름."
@@ -5705,31 +4318,9 @@
 #~ "영속 서비스에 관한 여러 Java 언어-레벨의 객체들을 이해하기 위해, 우리는 그"
 #~ "것들을 다음 두 개의 그룹들로 분류할 필요가 있다:"
 
-#, fuzzy
-#~ msgid "<literal>class</literal>"
-#~ msgstr "<literal>all</literal>은 모든 컬럼들을 체크한다"
-
-#~ msgid "id"
-#~ msgstr "id"
-
 #~ msgid ""
-#~ "<literal>optimizer</literal> (optional, defaults to <literal>none</"
-#~ "literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers"
-#~ "\"/>"
-#~ msgstr ""
-#~ "<literal>optimizer</literal> (optional, defaults to <literal>none</"
-#~ "literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers"
-#~ "\"/>"
-
-#~ msgid ""
 #~ "<literal>optimizer</literal> (optional, defaults to <literal/>): See "
 #~ "<xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
 #~ msgstr ""
 #~ "<literal>optimizer</literal> (optional, defaults to <literal/>): See "
 #~ "<xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
-
-#~ msgid "key"
-#~ msgstr "key"
-
-#~ msgid "any"
-#~ msgstr "any"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/batch.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/batch.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/batch.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: batch.xml:29
 #, no-c-format
 msgid "Batch processing"
 msgstr "Batch 처리"
 
 #. Tag: para
-#: batch.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "A naive approach to inserting 100,000 rows in the database using Hibernate "
@@ -26,22 +24,7 @@
 "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 ""
-
 #. Tag: para
-#: batch.xml:38
 #, fuzzy, no-c-format
 msgid ""
 "This would fall over with an <literal>OutOfMemoryException</literal> "
@@ -54,7 +37,6 @@
 "된 <literal>Customer</literal> 인스턴스들을 캐시시키기 때문이다."
 
 #. Tag: para
-#: batch.xml:45
 #, fuzzy, no-c-format
 msgid ""
 "If you are undertaking batch processing you will need to enable the use of "
@@ -67,14 +49,7 @@
 "우에 당신이 JDBC 배치 사용을 가능하게 하는 것은 절대적으로 필요하다. JDBC 배"
 "치 사이즈를 적당한 숫자(10-50)로 설정하라:"
 
-#. Tag: programlisting
-#: batch.xml:52
-#, no-c-format
-msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
-msgstr ""
-
 #. Tag: para
-#: batch.xml:54
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate disables insert batching at the JDBC level transparently if you "
@@ -85,7 +60,6 @@
 "라."
 
 #. 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 "
@@ -94,14 +68,7 @@
 "당신은 또한 second-level 캐시를 가진 상호작용이 완전하게 불가능한 프로세스 내"
 "에서 이런 종류의 작업을 행하고 싶어할 수도 있다:"
 
-#. Tag: programlisting
-#: batch.xml:64
-#, no-c-format
-msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
-msgstr ""
-
 #. Tag: para
-#: batch.xml:66
 #, no-c-format
 msgid ""
 "However, this is not absolutely necessary, since we can explicitly set the "
@@ -113,13 +80,11 @@
 "를 설정할 수 있기 때문이다."
 
 #. 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 "
@@ -130,35 +95,12 @@
 "위해 세션을 정기적으로 <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 ""
-
 #. 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 "
@@ -169,39 +111,12 @@
 "이터 행들을 반환하는 질의들에 대해 서버-측 커서들의 장점을 취하는데 "
 "<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 ""
-
 #. Tag: title
-#: batch.xml:98
 #, no-c-format
 msgid "The StatelessSession interface"
 msgstr "StatelessSession 인터페이스"
 
 #. Tag: para
-#: batch.xml:99
 #, fuzzy, no-c-format
 msgid ""
 "Alternatively, Hibernate provides a command-oriented API that can be used "
@@ -232,27 +147,7 @@
 "상태없는 세션은 기본 JDBC에 훨씬 더 가까운 하나의 보다 낮은 레벨의 추상화"
 "(abstraction)이다."
 
-#. 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 ""
-
 #. Tag: para
-#: batch.xml:116
 #, fuzzy, no-c-format
 msgid ""
 "In this code example, the <literal>Customer</literal> instances returned by "
@@ -264,7 +159,6 @@
 "않는다."
 
 #. Tag: para
-#: batch.xml:122
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>insert(), update()</literal> and <literal>delete()</literal> "
@@ -284,13 +178,11 @@
 "들과는 매우 다른 의미들을 갖는다."
 
 #. Tag: title
-#: batch.xml:135
 #, no-c-format
 msgid "DML-style operations"
 msgstr "DML-스타일 연산들"
 
 #. Tag: para
-#: batch.xml:137
 #, fuzzy, no-c-format
 msgid ""
 "As already discussed, automatic and transparent object/relational mapping is "
@@ -300,8 +192,8 @@
 "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>)."
+"is performed through the Hibernate Query Language (<xref linkend=\"queryhql"
+"\" />)."
 msgstr ""
 "이미 논의했듯이, 자동적이고 투명한 객체/관계형 매핑은 객체 상태에 대한 관리"
 "에 관계된다. 이것은 객체 상태가 메모리 내에서 이용 가능함을 의미하므로, (SQL "
@@ -313,7 +205,6 @@
 "실행을 위한 메소드들을 제공한다."
 
 #. Tag: para
-#: batch.xml:146
 #, fuzzy, no-c-format
 msgid ""
 "The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
@@ -325,19 +216,16 @@
 "where_conditions)?</literal>. 노트할 몇 가지:"
 
 #. Tag: para
-#: batch.xml:151
 #, no-c-format
 msgid "Some points to note:"
 msgstr ""
 
 #. Tag: para
-#: batch.xml:157
 #, no-c-format
 msgid "In the from-clause, the FROM keyword is optional"
 msgstr "from-절에서, 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, "
@@ -351,25 +239,22 @@
 "임의의 프로퍼티 참조들에 대해 수식되는 것은 규칙에 어긋난다."
 
 #. 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."
+"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 ""
 "<xref linkend=\"queryhql-joins-forms\">join들</xref>은 (함축적이든 명시적이"
 "든) 대량 HQL 질의 속에 지정될 수 없다. 서브-질의들이 where-절에 사용될 수 있"
 "다; 서브질의들 그 자신들은 조인들을 포함할 수 있다."
 
 #. Tag: para
-#: batch.xml:177
 #, no-c-format
 msgid "The where-clause is also optional."
 msgstr "where-절 또한 옵션이다."
 
 #. Tag: para
-#: batch.xml:183
 #, fuzzy, no-c-format
 msgid ""
 "As an example, to execute an HQL <literal>UPDATE</literal>, use the "
@@ -382,36 +267,16 @@
 "<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 ""
-
 #. 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 "
+"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 ""
@@ -424,24 +289,7 @@
 "적절하게 재설정하도록 강제할 수 있다. 이것은 <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 ""
-
 #. Tag: para
-#: batch.xml:203
 #, fuzzy, no-c-format
 msgid ""
 "Custom version types, <literal>org.hibernate.usertype.UserVersionType</"
@@ -453,7 +301,6 @@
 "용되지 않음을 노트하라."
 
 #. Tag: para
-#: batch.xml:208
 #, no-c-format
 msgid ""
 "To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
@@ -462,24 +309,7 @@
 "HQL <literal>DELETE</literal>를 실행하려면, 같은 메소드 <literal>Query."
 "executeUpdate()</literal>를 사용하라:"
 
-#. Tag: programlisting
-#: batch.xml:213
-#, 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 ""
-
 #. Tag: para
-#: batch.xml:215
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
@@ -505,7 +335,6 @@
 "다."
 
 #. Tag: para
-#: batch.xml:226
 #, no-c-format
 msgid ""
 "The pseudo-syntax for <literal>INSERT</literal> statements is: "
@@ -518,7 +347,6 @@
 "EntityName properties_list select_statement</literal>. 노트할 몇 가지:"
 
 #. Tag: para
-#: batch.xml:234
 #, no-c-format
 msgid ""
 "Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
@@ -528,7 +356,6 @@
 "VALUES ... 형식은 지원되지 않는다."
 
 #. Tag: para
-#: batch.xml:237
 #, fuzzy, no-c-format
 msgid ""
 "The properties_list is analogous to the <literal>column specification</"
@@ -546,7 +373,6 @@
 "다형적이지 않다."
 
 #. Tag: para
-#: batch.xml:247
 #, fuzzy, no-c-format
 msgid ""
 "select_statement can be any valid HQL select query, with the caveat that the "
@@ -571,7 +397,6 @@
 "literal>으로 정의된 프로퍼티 사이에 불일치 쟁점들을 일으킨다."
 
 #. Tag: para
-#: batch.xml:259
 #, fuzzy, no-c-format
 msgid ""
 "For the id property, the insert statement gives you two options. You can "
@@ -602,7 +427,6 @@
 "에 사용될 수 없는 <literal>org.hibernate.id.TableHiLoGenerator</literal>이다."
 
 #. Tag: para
-#: batch.xml:274
 #, fuzzy, no-c-format
 msgid ""
 "For properties mapped as either <literal>version</literal> or "
@@ -620,24 +444,8 @@
 "<literal>seed value</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> 문장 실행:"
-
-#. 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/ko-KR/content/best_practices.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/best_practices.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/best_practices.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: best_practices.xml:29
 #, no-c-format
 msgid "Best Practices"
 msgstr "최상의 실전 경험들"
 
 #. Tag: term
-#: best_practices.xml:33
 #, fuzzy, no-c-format
 msgid ""
 "Write fine-grained classes and map them using <literal>&lt;component&gt;</"
@@ -27,7 +25,6 @@
 "하여 그것들을 매핑하라."
 
 #. Tag: para
-#: best_practices.xml:35
 #, no-c-format
 msgid ""
 "Use an <literal>Address</literal> class to encapsulate <literal>street</"
@@ -41,13 +38,11 @@
 "화 시킨다."
 
 #. Tag: term
-#: best_practices.xml:43
 #, fuzzy, no-c-format
 msgid "Declare identifier properties on persistent classes:"
 msgstr "영속 클래스들에 대해 식별자 프로퍼티들을 선언하라."
 
 #. Tag: para
-#: best_practices.xml:45
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate makes identifier properties optional. There are a range of reasons "
@@ -59,13 +54,11 @@
 "(synthetic)'이 되는(비지니스 의미 없이 생성되는) 것을 권장한다."
 
 #. Tag: term
-#: best_practices.xml:53
 #, fuzzy, no-c-format
 msgid "Identify natural keys:"
 msgstr "고유 키들을 식별하라."
 
 #. Tag: para
-#: best_practices.xml:55
 #, no-c-format
 msgid ""
 "Identify natural keys for all entities, and map them using <literal>&lt;"
@@ -79,13 +72,11 @@
 "라."
 
 #. Tag: term
-#: best_practices.xml:63
 #, fuzzy, no-c-format
 msgid "Place each class mapping in its own file:"
 msgstr "각각의 클래스 매핑을 그것 자신의 파일 내에 위치지워라."
 
 #. Tag: para
-#: best_practices.xml:65
 #, fuzzy, no-c-format
 msgid ""
 "Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
@@ -97,25 +88,21 @@
 "서 특히 좋은 의미를 준다."
 
 #. Tag: term
-#: best_practices.xml:73
 #, fuzzy, no-c-format
 msgid "Load mappings as resources:"
 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
 msgid "Consider externalizing query strings:"
 msgstr "질의 문자열들을 객관화 시키는 것을 고려하라."
 
 #. Tag: para
-#: best_practices.xml:83
 #, fuzzy, no-c-format
 msgid ""
 "This is recommended if your queries call non-ANSI-standard SQL functions. "
@@ -127,13 +114,11 @@
 "이식성 있도록 만들어줄 것이다."
 
 #. Tag: term
-#: best_practices.xml:91
 #, no-c-format
 msgid "Use bind variables."
 msgstr "바인드 변수들을 사용하라."
 
 #. Tag: para
-#: best_practices.xml:93
 #, fuzzy, no-c-format
 msgid ""
 "As in JDBC, always replace non-constant values by \"?\". Do not use string "
@@ -145,13 +130,11 @@
 "된 파라미터들을 사용하는 것을 고려하라."
 
 #. Tag: term
-#: best_practices.xml:101
 #, fuzzy, no-c-format
 msgid "Do not manage your own JDBC connections:"
 msgstr "당신 자신의 JDBC 커넥션들을 관리하지 말라."
 
 #. Tag: para
-#: best_practices.xml:103
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate allows the application to manage JDBC connections, but his "
@@ -166,13 +149,11 @@
 "라."
 
 #. Tag: term
-#: best_practices.xml:111
 #, fuzzy, no-c-format
 msgid "Consider using a custom type:"
 msgstr "맞춤형 타입 사용을 고려하라."
 
 #. Tag: para
-#: best_practices.xml:113
 #, fuzzy, no-c-format
 msgid ""
 "Suppose you have a Java type from a library that needs to be persisted but "
@@ -188,13 +169,11 @@
 "을 구현하는 것으로부터 어플리케이션 코드를 자유롭게 해준다."
 
 #. Tag: term
-#: best_practices.xml:122
 #, fuzzy, no-c-format
 msgid "Use hand-coded JDBC in bottlenecks:"
 msgstr "병목 지점들에서 수작업으로 코딩된 JDBC를 사용하라."
 
 #. Tag: para
-#: best_practices.xml:124
 #, fuzzy, no-c-format
 msgid ""
 "In performance-critical areas of the system, some kinds of operations might "
@@ -214,13 +193,11 @@
 "히 사용할 수 있다"
 
 #. Tag: term
-#: best_practices.xml:134
 #, fuzzy, no-c-format
 msgid "Understand <literal>Session</literal> flushing:"
 msgstr "<literal>Session</literal> flushing을 이해하라."
 
 #. Tag: para
-#: best_practices.xml:136
 #, fuzzy, no-c-format
 msgid ""
 "Sometimes the Session synchronizes its persistent state with the database. "
@@ -236,14 +213,12 @@
 "소화 시킬 수 있다."
 
 #. Tag: term
-#: best_practices.xml:145
 #, fuzzy, no-c-format
 msgid "In a three tiered architecture, consider using detached objects:"
 msgstr ""
 "3-tier 아키텍처에서, <literal>saveOrUpdate()</literal> 사용을 고려하라."
 
 #. Tag: para
-#: best_practices.xml:147
 #, fuzzy, no-c-format
 msgid ""
 "When using a servlet/session bean architecture, you can pass persistent "
@@ -259,14 +234,12 @@
 "</literal>를 사용하라."
 
 #. Tag: term
-#: best_practices.xml:156
 #, fuzzy, no-c-format
 msgid "In a two tiered architecture, consider using long persistence contexts:"
 msgstr ""
 "2-tier 아키텍처에서, 수명이 긴 영속 컨텍스트들을 사용하는 것을 고려하라."
 
 #. Tag: para
-#: best_practices.xml:158
 #, fuzzy, no-c-format
 msgid ""
 "Database Transactions have to be as short as possible for best scalability. "
@@ -295,13 +268,11 @@
 "이다."
 
 #. Tag: term
-#: best_practices.xml:172
 #, fuzzy, no-c-format
 msgid "Do not treat exceptions as recoverable:"
 msgstr "예외상황들을 복구가능한 것으로서 다루지 말라."
 
 #. Tag: para
-#: best_practices.xml:174
 #, fuzzy, no-c-format
 msgid ""
 "This is more of a necessary practice than a \"best\" practice. When an "
@@ -321,13 +292,11 @@
 "get()</literal> 또는 하나의 질의를 사용하라."
 
 #. Tag: term
-#: best_practices.xml:184
 #, fuzzy, no-c-format
 msgid "Prefer lazy fetching for associations:"
 msgstr "연관들에 대한 lazy 페칭을 선호하라."
 
 #. Tag: para
-#: best_practices.xml:186
 #, fuzzy, no-c-format
 msgid ""
 "Use eager fetching sparingly. Use proxies and lazy collections for most "
@@ -346,7 +315,6 @@
 "절할 때, 하나의 <literal>left join fetch</literal>를 가진 질의를 사용하라."
 
 #. Tag: term
-#: best_practices.xml:196
 #, fuzzy, no-c-format
 msgid ""
 "Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
@@ -357,7 +325,6 @@
 "단계(assembly phase)</emphasis>를 사용하라."
 
 #. Tag: para
-#: best_practices.xml:201
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
@@ -387,13 +354,11 @@
 "다."
 
 #. Tag: term
-#: best_practices.xml:215
 #, fuzzy, no-c-format
 msgid "Consider abstracting your business logic from Hibernate:"
 msgstr "Hibernate에서 당신의 비지니스 로직을 추상화 시키는 것을 고려하라."
 
 #. Tag: para
-#: best_practices.xml:217
 #, fuzzy, no-c-format
 msgid ""
 "Hide Hibernate data-access code behind an interface. Combine the "
@@ -411,13 +376,11 @@
 "을 가진 어플리케이션에 대해서는 적절하지 않다!)"
 
 #. Tag: term
-#: best_practices.xml:227
 #, fuzzy, no-c-format
 msgid "Do not use exotic association mappings:"
 msgstr "신종의 연관 매핑을 사용하지 말라."
 
 #. Tag: para
-#: best_practices.xml:229
 #, fuzzy, no-c-format
 msgid ""
 "Practical test cases for real many-to-many associations are rare. Most of "
@@ -435,13 +398,11 @@
 "를 당신 스스로 질문하라."
 
 #. Tag: term
-#: best_practices.xml:239
 #, fuzzy, no-c-format
 msgid "Prefer bidirectional associations:"
 msgstr "양방향 연관들을 선호하라."
 
 #. Tag: para
-#: best_practices.xml:241
 #, no-c-format
 msgid ""
 "Unidirectional associations are more difficult to query. In a large "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/collection_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/collection_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/collection_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,19 +11,16 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: collection_mapping.xml:29
 #, fuzzy, no-c-format
 msgid "Collection mapping"
 msgstr "콜렉션 매핑들"
 
 #. Tag: title
-#: collection_mapping.xml:32
 #, no-c-format
 msgid "Persistent collections"
 msgstr "영속 콜렉션들"
 
 #. Tag: para
-#: collection_mapping.xml:34
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate requires that persistent collection-valued fields be declared as "
@@ -32,23 +29,7 @@
 "예를 들어 Hibernate는 영속 콜렉션-값을 가진 필드들이 인터페이스 타입으로서 선"
 "언될 것을 필요로 한다:"
 
-#. 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:41
 #, fuzzy, no-c-format
 msgid ""
 "The actual interface might be <literal>java.util.Set</literal>, "
@@ -66,7 +47,6 @@
 "UserCollectionType</literal>에 대한 구현을 작성해야 함을 의미한다.)"
 
 #. Tag: para
-#: collection_mapping.xml:50
 #, fuzzy, no-c-format
 msgid ""
 "Notice how the instance variable was initialized with an instance of "
@@ -85,23 +65,7 @@
 "Hibernate 자신의 구현의 인스턴스로 대체시킬 것이다. 다음과 같은 오류들을 관찰"
 "하라:"
 
-#. 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:62
 #, fuzzy, no-c-format
 msgid ""
 "The persistent collections injected by Hibernate behave like "
@@ -115,7 +79,6 @@
 "이 행위한다."
 
 #. Tag: para
-#: collection_mapping.xml:69
 #, fuzzy, no-c-format
 msgid ""
 "Collections instances have the usual behavior of value types. They are "
@@ -136,7 +99,6 @@
 "Hibernate는 null 콜렉션 참조와 공백의 콜렉션 사이를 구별 짓지 않는다."
 
 #. Tag: para
-#: collection_mapping.xml:80
 #, fuzzy, no-c-format
 msgid ""
 "Use persistent collections the same way you use ordinary Java collections. "
@@ -149,13 +111,11 @@
 "됨)."
 
 #. Tag: title
-#: collection_mapping.xml:89
 #, no-c-format
 msgid "Collection mappings"
 msgstr "콜렉션 매핑들"
 
 #. Tag: para
-#: collection_mapping.xml:92
 #, fuzzy, no-c-format
 msgid ""
 "There are quite a range of mappings that can be generated for collections "
@@ -168,7 +128,6 @@
 "방법을 당신이 느끼려면 스키마 생성 도구로 실험할 것을 우리는 제안한다."
 
 #. Tag: para
-#: collection_mapping.xml:99
 #, fuzzy, no-c-format
 msgid ""
 "The Hibernate mapping element used for mapping a collection depends upon the "
@@ -179,21 +138,7 @@
 "다. 예를 들어<literal>&lt;set&gt;</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 ""
-
 #. Tag: para
-#: collection_mapping.xml:107
 #, no-c-format
 msgid ""
 "Apart from <literal>&lt;set&gt;</literal>, there is also <literal>&lt;"
@@ -207,43 +152,12 @@
 "<literal>&lt;array&gt;</literal>, 그리고 <literal>&lt;map&gt;</literal> 매핑 "
 "요소들이 존재한다. <literal>&lt;map&gt;</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
 msgid "<literal>name</literal>: the collection property name"
 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 "
@@ -253,7 +167,6 @@
 "(one-to-many 연관관계들에 대해서는 사용되지 않음)"
 
 #. Tag: para
-#: collection_mapping.xml:146
 #, fuzzy, no-c-format
 msgid ""
 "<literal>schema</literal> (optional): the name of a table schema to override "
@@ -263,7 +176,6 @@
 "키는 테이블 스키마의 이름"
 
 #. Tag: para
-#: collection_mapping.xml:152
 #, fuzzy, no-c-format
 msgid ""
 "<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
@@ -278,7 +190,6 @@
 "용 가능하도록 하는데(매우 큰 콜렉션들에 적당함) 사용될 수 있다"
 
 #. Tag: para
-#: collection_mapping.xml:161
 #, fuzzy, no-c-format
 msgid ""
 "<literal>inverse</literal> (optional - defaults to <literal>false</"
@@ -289,7 +200,6 @@
 "션을 양방향 연관관계의 \"inverse\" 끝(end)으로 표시한다"
 
 #. Tag: para
-#: collection_mapping.xml:167
 #, fuzzy, no-c-format
 msgid ""
 "<literal>cascade</literal> (optional - defaults to <literal>none</literal>): "
@@ -299,7 +209,6 @@
 "션들이 자식 엔티티들에 대해 케스케이드하는 것을 이용 가능하게 한다"
 
 #. Tag: para
-#: collection_mapping.xml:173
 #, fuzzy, no-c-format
 msgid ""
 "<literal>sort</literal> (optional): specifies a sorted collection with "
@@ -309,7 +218,6 @@
 "(sorted) 콜렉션 또는 주어진 comparator 클래스를 지정한다"
 
 #. Tag: para
-#: collection_mapping.xml:179
 #, fuzzy, no-c-format
 msgid ""
 "<literal>order-by</literal> (optional, JDK1.4 only): specifies a table "
@@ -322,7 +230,6 @@
 "literal> 또는 bag의 반복 순서를 정의하는 테이블 컬럼(또는 컬럼들)을 지정한다"
 
 #. Tag: para
-#: collection_mapping.xml:186
 #, fuzzy, no-c-format
 msgid ""
 "<literal>where</literal> (optional): specifies an arbitrary SQL "
@@ -335,7 +242,6 @@
 "이터의 부분집합 만을 포함할 경우에 유용하다)"
 
 #. Tag: para
-#: collection_mapping.xml:193
 #, fuzzy, no-c-format
 msgid ""
 "<literal>fetch</literal> (optional, defaults to <literal>select</literal>): "
@@ -347,7 +253,6 @@
 "선택하라."
 
 #. Tag: para
-#: collection_mapping.xml:200
 #, fuzzy, no-c-format
 msgid ""
 "<literal>batch-size</literal> (optional, defaults to <literal>1</literal>): "
@@ -357,7 +262,6 @@
 "의 lazily fetching 인스턴스에 대해 \"배치 사이즈\"를 지정하라."
 
 #. Tag: para
-#: collection_mapping.xml:206
 #, fuzzy, no-c-format
 msgid ""
 "<literal>access</literal> (optional - defaults to <literal>property</"
@@ -368,7 +272,6 @@
 "Hibernate가 콜렉션 프로퍼티 값에 접근하는데 사용할 방도."
 
 #. Tag: para
-#: collection_mapping.xml:212
 #, fuzzy, no-c-format
 msgid ""
 "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
@@ -382,7 +285,6 @@
 "하는 것이 종종 합당하다.)"
 
 #. Tag: para
-#: collection_mapping.xml:220
 #, fuzzy, no-c-format
 msgid ""
 "<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
@@ -395,13 +297,11 @@
 "다. (몇몇 경우들에서 마이너 퍼포먼스 최적화)."
 
 #. Tag: title
-#: collection_mapping.xml:230
 #, no-c-format
 msgid "Collection foreign keys"
 msgstr "콜렉션 foreign 키들"
 
 #. Tag: para
-#: collection_mapping.xml:232
 #, fuzzy, no-c-format
 msgid ""
 "Collection instances are distinguished in the database by the foreign key of "
@@ -416,7 +316,6 @@
 "<literal>&lt;key&gt;</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 "
@@ -429,14 +328,7 @@
 "우, foreign 키는 디폴트로 null 허용 가능하여서, 당신은 <literal>not-null="
 "\"true\"</literal>를 지정할 필요가 있을 수 있다."
 
-#. Tag: programlisting
-#: collection_mapping.xml:247
-#, no-c-format
-msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: collection_mapping.xml:249
 #, fuzzy, no-c-format
 msgid ""
 "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
@@ -444,14 +336,7 @@
 "foreign 키 컨스트레인트는 <literal>ON DELETE CASCADE</literal>를 사용할 수도 "
 "있다."
 
-#. Tag: programlisting
-#: collection_mapping.xml:253
-#, no-c-format
-msgid "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: collection_mapping.xml:255
 #, no-c-format
 msgid ""
 "See the previous chapter for a full definition of the <literal>&lt;key&gt;</"
@@ -459,13 +344,11 @@
 msgstr "<literal>&lt;key&gt;</literal> 요소에 대한 전체 정의는 앞 장을 보라."
 
 #. Tag: title
-#: collection_mapping.xml:263
 #, no-c-format
 msgid "Collection elements"
 msgstr "콜렉션 요소들"
 
 #. Tag: para
-#: collection_mapping.xml:265
 #, fuzzy, no-c-format
 msgid ""
 "Collections can contain almost any other Hibernate type, including: basic "
@@ -484,7 +367,6 @@
 "들 사이의 \"링크\" 만이 그 콜렉션에 의해 소유된 상태로 간주된다."
 
 #. Tag: para
-#: collection_mapping.xml:274
 #, no-c-format
 msgid ""
 "The contained type is referred to as the <emphasis>collection element type</"
@@ -502,13 +384,11 @@
 "데 사용된다."
 
 #. Tag: title
-#: collection_mapping.xml:286
 #, no-c-format
 msgid "Indexed collections"
 msgstr "인덱싱 된 콜렉션들"
 
 #. Tag: para
-#: collection_mapping.xml:288
 #, fuzzy, no-c-format
 msgid ""
 "All collection mappings, except those with set and bag semantics, need an "
@@ -534,56 +414,74 @@
 "</literal> 요소를 사용하여 매핑된다. 매핑된 컬럼은 순차적인 정수들을 포함한다"
 "(디폴트로 0에서 시작하는 번호가 붙여짐)."
 
-#. Tag: sect2
-#: collection_mapping.xml:299
-#, no-c-format
+#. Tag: para
+#, fuzzy, 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>"
+"<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 ""
+"<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
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the column holding the "
+"collection index values."
+msgstr ""
+"<literal>column</literal> (옵션): 콜렉션 인덱스 값들을 보관하는 컬럼의 이름."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): a SQL formula used to evaluate the "
+"key of the map."
+msgstr ""
+"<literal>formula</literal> (옵션): map의 키를 평가하는데 사용되는 SQL "
+"formula."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>type</literal> (required): the type of the map keys."
+msgstr "<literal>type</literal> (필수): The type of the map 키들의 타입"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the foreign key column for "
+"the collection index values."
+msgstr ""
+"<literal>column</literal> (옵션): 콜렉션 인덱스 값들에 대한 foreign 키 컬럼"
+"의 이름."
+
+#. Tag: para
+#, fuzzy, 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> (옵션): map의 foreign 키를 평가하는데 사용되는 "
+"SQL formula."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (required): the entity class used as the map key."
+msgstr "<literal>class</literal> (필수): map 키로서 사용되는 엔티티 클래스."
+
+#. Tag: para
+#, 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>&lt;bag&gt;</emphasis>. A bag does not retain its order "
@@ -597,13 +495,11 @@
 "로 정렬(sorting)되거나 ordering될 수도 있다."
 
 #. Tag: title
-#: collection_mapping.xml:390
 #, no-c-format
 msgid "Collections of values and many-to-many associations"
 msgstr "값들을 가진 콜렉션들과 many-to-many 연관들"
 
 #. Tag: para
-#: collection_mapping.xml:392
 #, fuzzy, no-c-format
 msgid ""
 "Any collection of values or many-to-many associations requires a dedicated "
@@ -616,7 +512,6 @@
 "들이나 컬럼들을 가진 전용 <emphasis>콜렉션 테이블</emphasis>을 필요로 한다."
 
 #. Tag: para
-#: collection_mapping.xml:399
 #, fuzzy, no-c-format
 msgid ""
 "For a collection of values use the <literal>&lt;element&gt;</literal> tag. "
@@ -625,101 +520,133 @@
 "값들을 가진 콜렉션의 경우, 우리는 <literal>&lt;element&gt;</literal> 태그를 "
 "사용한다."
 
-#. Tag: sect2
-#: collection_mapping.xml:401
-#, no-c-format
+#. Tag: para
+#, fuzzy, 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>&lt;many-to-many&gt;</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> "
+"collection element values."
+msgstr ""
+"<literal>column</literal> (옵션): 콜렉션 요소 값들을 소유하는 컬럼의 이름."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
 "<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> "
+"element."
+msgstr ""
+"<literal>formula</literal> (옵션): 요소를 평가하는데 사용되는 SQL formula."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>type</literal> (required): the type of the collection element."
+msgstr "<literal>type</literal> (필수): 콜렉션 요소의 타입."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>many-to-many association</emphasis> is specified using the "
+"<literal>&lt;many-to-many&gt;</literal> element."
+msgstr ""
+"<emphasis>many-to-many association</emphasis> 연관은 <literal>&lt;many-to-"
+"many&gt;</literal> 요소를 사용하여 지정된다."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the element foreign key "
+"column."
+msgstr "<literal>column</literal> (옵션): 요소 foreign 키 컬럼의 이름."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): an SQL formula used to evaluate the "
+"element foreign key value."
+msgstr ""
+"<literal>formula</literal> (옵션): 요소 foreign 키 값을 평가하는데 사용되는 "
+"SQL formula."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr "<literal>class</literal> (필수): 연관된 클래스의 이름."
+
+#. Tag: para
+#, fuzzy, no-c-format
+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>&lt;many-to-many&gt;</"
-"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>"
+"literal> nested element."
 msgstr ""
+"<literal>fetch</literal> (옵션 - 디폴트는 <literal>join</literal>): 이 연관"
+"에 대해 outer-join 페칭 또는 sequential select 페칭을 이용 가능하게 만든다. "
+"이것은 특별한 경우이다; 엔티티 그리고 다른 엔티티들과 그것의 many-to-many 관"
+"계들에 대한 (하나의 <literal>SELECT</literal> 내에서) 전체 eager 페칭의 경"
+"우, 당신은 콜렉션 그 자체에 대해서 뿐만 아니라 내포된 요소 <literal>&lt;many-"
+"to-many&gt;</literal> 상의 이 속성에 대해 <literal>join</literal> 페칭을 이"
+"용 가능하게 할 것이다."
 
 #. Tag: para
-#: collection_mapping.xml:506
+#, fuzzy, no-c-format
+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> (옵션): foreign-key 컬럼에 대한 유일 컨스트레인트"
+"의 DDL 생성을 가능하도록 한다. 이것은 연관 다중성 (association multiplicity)"
+"을 효율적으로 one to many로 만든다."
+
+#. Tag: para
+#, 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>): "
+"누락된 행들을 참조하는 foreign 키들이 어떻게 처리될 것인지를 지정한다: "
+"<literal>ignore</literal>는 누락된 한 행을 한 개의 연관으로 다룰 것이다."
+
+#. Tag: para
+#, 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>entity-name</literal> (옵션): <literal>class</literal>에 대한 하나"
+"의 대안으로서, 연관된 클래스의 엔티티 이름.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>entity-name</literal> (옵션): <literal>class</literal>에 대한 대안으"
+"로서, 연관된 클래스의 엔티티 이름."
+
+#. Tag: para
+#, 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>: (옵션) 이 foreign 키에 조인된 연관 클래스의 "
+"프로퍼티의 이름. 지정되지 않을 경우, 연관 클래스의 프라이머리 키가 사용된다."
+
+#. Tag: para
 #, no-c-format
 msgid "Here are some examples."
 msgstr ""
 
 #. Tag: para
-#: collection_mapping.xml:509
 #, no-c-format
 msgid "A set of strings:"
 msgstr ""
 
-#. Tag: programlisting
-#: collection_mapping.xml:513
-#, 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:515
 #, fuzzy, no-c-format
 msgid ""
 "A bag containing integers with an iteration order determined by the "
@@ -728,87 +655,27 @@
 "(<literal>order-by</literal> 속성에 의해 결정되는 반복 순서를 가진) 정수들을 "
 "포함하는 bag :"
 
-#. Tag: programlisting
-#: collection_mapping.xml:520
-#, 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:522
 #, fuzzy, no-c-format
 msgid "An array of entities, in this case, a many-to-many association:"
 msgstr "엔티티들을 가진 배열 - 이 경우에, many to many 연관 :"
 
-#. Tag: programlisting
-#: collection_mapping.xml:526
-#, 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:528
 #, no-c-format
 msgid "A map from string indices to dates:"
 msgstr "날짜들에 대한 문자열 인덱스들을 가진 map :"
 
-#. Tag: programlisting
-#: collection_mapping.xml:532
-#, 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:534
 #, fuzzy, no-c-format
 msgid "A list of components (this is discussed in the next chapter):"
 msgstr "컴포넌트들의 리스트(다음 장에서 논의됨):"
 
-#. Tag: programlisting
-#: collection_mapping.xml:538
-#, 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 ""
-
 #. Tag: title
-#: collection_mapping.xml:543
 #, no-c-format
 msgid "One-to-many associations"
 msgstr "One-to-many 연관들"
 
 #. Tag: para
-#: collection_mapping.xml:545
 #, fuzzy, no-c-format
 msgid ""
 "A <emphasis>one-to-many association</emphasis> links the tables of two "
@@ -820,7 +687,6 @@
 "렉션들의 어떤 의미를 상실한다:"
 
 #. Tag: para
-#: collection_mapping.xml:553
 #, fuzzy, no-c-format
 msgid ""
 "An instance of the contained entity class cannot belong to more than one "
@@ -830,7 +696,6 @@
 "않을 수 있다"
 
 #. Tag: para
-#: collection_mapping.xml:559
 #, fuzzy, no-c-format
 msgid ""
 "An instance of the contained entity class cannot appear at more than one "
@@ -840,7 +705,6 @@
 "지 않을 수 있다"
 
 #. Tag: para
-#: collection_mapping.xml:566
 #, fuzzy, no-c-format
 msgid ""
 "An association from <literal>Product</literal> to <literal>Part</literal> "
@@ -853,28 +717,8 @@
 "한다. <literal>&lt;one-to-many&gt;</literal> 태그는 이것이 one to many 연관임"
 "을 나타낸다."
 
-#. Tag: programlisting
-#: collection_mapping.xml:579
-#, 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:582
 #, fuzzy, no-c-format
-msgid "<literal>class</literal> (required): the name of the associated class."
-msgstr "<literal>class</literal> (필수): 연관된 클래스의 이름."
-
-#. 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 "
@@ -886,23 +730,8 @@
 "<literal>ignore</literal>는 누락된 한 행을 한 개의 연관으로 다룰 것이다."
 
 #. 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>entity-name</literal> (옵션): <literal>class</literal>에 대한 하나"
-"의 대안으로서, 연관된 클래스의 엔티티 이름.\n"
-"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
-"<literal>entity-name</literal> (옵션): <literal>class</literal>에 대한 대안으"
-"로서, 연관된 클래스의 엔티티 이름."
-
-#. Tag: para
-#: collection_mapping.xml:602
-#, fuzzy, no-c-format
-msgid ""
 "The <literal>&lt;one-to-many&gt;</literal> element does not need to declare "
 "any columns. Nor is it necessary to specify the <literal>table</literal> "
 "name anywhere."
@@ -912,7 +741,6 @@
 "수적이지 않다."
 
 #. Tag: para
-#: collection_mapping.xml:609
 #, fuzzy, no-c-format
 msgid ""
 "If the foreign key column of a <literal>&lt;one-to-many&gt;</literal> "
@@ -930,7 +758,6 @@
 "들에 대한 논의는 이 장의 뒷부분을 보라."
 
 #. Tag: para
-#: collection_mapping.xml:619
 #, fuzzy, no-c-format
 msgid ""
 "The following example shows a map of <literal>Part</literal> entities by "
@@ -941,32 +768,17 @@
 "기서 <literal>partName</literal>은 <literal>Part</literal>의 영속 프로퍼티이"
 "다). formula-기반 index의 사용을 주목하라."
 
-#. Tag: programlisting
-#: collection_mapping.xml:625
-#, 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 ""
-
 #. Tag: title
-#: collection_mapping.xml:631
 #, no-c-format
 msgid "Advanced collection mappings"
 msgstr "개선된 콜렉션 매핑들"
 
 #. Tag: title
-#: collection_mapping.xml:634
 #, no-c-format
 msgid "Sorted collections"
 msgstr "Sorted 콜렉션들"
 
 #. Tag: para
-#: collection_mapping.xml:636
 #, no-c-format
 msgid ""
 "Hibernate supports collections implementing <literal>java.util.SortedMap</"
@@ -977,26 +789,7 @@
 "SortedSet</literal>를 구현하는 콜렉션들을 지원한다. 당신은 매핑 파일 속에 하"
 "나의 comparator를 지정해야 한다:"
 
-#. 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 "
@@ -1008,7 +801,6 @@
 "구현하는 클래스의 이름이다."
 
 #. Tag: para
-#: collection_mapping.xml:649
 #, no-c-format
 msgid ""
 "Sorted collections actually behave like <literal>java.util.TreeSet</literal> "
@@ -1018,7 +810,6 @@
 "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 "
@@ -1035,31 +826,12 @@
 "또는 <literal>LinkedHashMap</literal>을 사용하여 구현된다). 이것은 메모리 내"
 "가 아닌, SQL 질의 내에서 순서지움(ordering)을 수행한다."
 
-#. 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 ""
-
 #. Tag: title
-#: collection_mapping.xml:666
 #, no-c-format
 msgid "Note"
 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, "
@@ -1069,7 +841,6 @@
 "순서지움(ordering)임을 노트하라!"
 
 #. Tag: para
-#: collection_mapping.xml:673
 #, fuzzy, no-c-format
 msgid ""
 "Associations can even be sorted by arbitrary criteria at runtime using a "
@@ -1078,22 +849,12 @@
 "연관들은 콜렉션 <literal>filter()</literal>를 사용하여 실행 시에 어떤 임의의 "
 "criteria(기준)을 사용하여 정렬(sort)될 수도 있다."
 
-#. Tag: programlisting
-#: collection_mapping.xml:678
-#, no-c-format
-msgid ""
-"<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this.name"
-"\" ).list();]]>"
-msgstr ""
-
 #. Tag: title
-#: collection_mapping.xml:683
 #, no-c-format
 msgid "Bidirectional associations"
 msgstr "양방향 연관들"
 
 #. Tag: para
-#: collection_mapping.xml:685
 #, fuzzy, no-c-format
 msgid ""
 "A <emphasis>bidirectional association</emphasis> allows navigation from both "
@@ -1104,31 +865,26 @@
 "을 허용한다. 두 가지 종류의 양방향 연관들이 지원된다: <placeholder-1/>"
 
 #. 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
 msgid "set or bag valued at one end and single-valued at the other"
 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 값을 가진 연관"
 
 #. Tag: para
-#: collection_mapping.xml:711
 #, fuzzy, no-c-format
 msgid ""
 "You can specify a bidirectional many-to-many association by mapping two many-"
@@ -1141,7 +897,6 @@
 "many 연관을 지정할 수도 있다."
 
 #. Tag: para
-#: collection_mapping.xml:718
 #, fuzzy, no-c-format
 msgid ""
 "Here is an example of a bidirectional many-to-many association that "
@@ -1151,33 +906,7 @@
 "다음은 양방향 many-to-many 연관에 관한 예제이다; 각각의 카테고리는 많은 아이"
 "템들을 가질 수 있고 각각의 아이템은 많은 카테고리들 속에 있을 수 있다:"
 
-#. 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:725
 #, fuzzy, no-c-format
 msgid ""
 "Changes made only to the inverse end of the association are <emphasis>not</"
@@ -1192,23 +921,7 @@
 "의 또 다른 링크. 만일 당신이 자바 객체 모형에 대해 그리고 자바에서 many-to-"
 "many 관계를 생성시키는 방법에 대해 생각하면 이것은 이해하기가 더 쉽다:"
 
-#. 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:735
 #, no-c-format
 msgid ""
 "The non-inverse side is used to save the in-memory representation to the "
@@ -1216,7 +929,6 @@
 msgstr "non-inverse 측은 메모리 내 표상을 데이터베이스로 저장하는데 사용된다."
 
 #. 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-"
@@ -1227,31 +939,7 @@
 "컬럼(들)로 매핑하고 many-값을 가진 끝(end)을 <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 ""
-
 #. Tag: para
-#: collection_mapping.xml:747
 #, fuzzy, no-c-format
 msgid ""
 "Mapping one end of an association with <literal>inverse=\"true\"</literal> "
@@ -1262,13 +950,11 @@
 "다!"
 
 #. 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>&lt;"
@@ -1283,35 +969,7 @@
 "는 콜렉션 매핑 상에 <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 ""
-
 #. 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 "
@@ -1326,36 +984,7 @@
 "<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 ""
-
 #. Tag: para
-#: collection_mapping.xml:774
 #, fuzzy, no-c-format
 msgid ""
 "Note that in this mapping, the collection-valued end of the association is "
@@ -1365,13 +994,11 @@
 "이 있음을 노트하라."
 
 #. 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 "
@@ -1380,30 +1007,7 @@
 "세 겹의 연관을 매핑하는 세 가지 가능한 접근법들이 존재한다. 하나의 접근법은 "
 "그것의 인덱스로서 연관관계를 가진 <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 ""
-
-#. Tag: programlisting
-#: collection_mapping.xml:791
-#, 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 ""
-
 #. 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 "
@@ -1413,7 +1017,6 @@
 "이것은 우리가 가장 공통적으로 사용하는 접근법이다."
 
 #. Tag: para
-#: collection_mapping.xml:798
 #, fuzzy, no-c-format
 msgid ""
 "A final alternative is to use composite elements, which will be discussed "
@@ -1421,14 +1024,12 @@
 msgstr ""
 "마지막 대안은 우리가 나중에 논의하게 될 composite 요소들을 사용하는 것이다."
 
-#. Tag: literal
-#: collection_mapping.xml:805
-#, no-c-format
-msgid "Using an &lt;idbag&gt;"
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "<literal>Using an &lt;idbag&gt;</literal>"
 msgstr "<literal>&lt;idbag&gt;</literal> 사용하기"
 
 #. Tag: para
-#: collection_mapping.xml:807
 #, fuzzy, no-c-format
 msgid ""
 "The majority of the many-to-many associations and collections of values "
@@ -1451,7 +1052,6 @@
 "는 것을 당신에게 허용해주는 특징을 제공한다."
 
 #. Tag: para
-#: collection_mapping.xml:817
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;idbag&gt;</literal> element lets you map a <literal>List</"
@@ -1461,21 +1061,7 @@
 "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 ""
-
 #. Tag: para
-#: collection_mapping.xml:824
 #, fuzzy, no-c-format
 msgid ""
 "An <literal>&lt;idbag&gt;</literal> has a synthetic id generator, just like "
@@ -1489,7 +1075,6 @@
 "즘을 제공하지 않는다."
 
 #. Tag: para
-#: collection_mapping.xml:831
 #, fuzzy, no-c-format
 msgid ""
 "The update performance of an <literal>&lt;idbag&gt;</literal> supersedes a "
@@ -1503,7 +1088,6 @@
 "로 업데이트 하거나 삭제시킬 수 있다."
 
 #. Tag: para
-#: collection_mapping.xml:837
 #, no-c-format
 msgid ""
 "In the current implementation, the <literal>native</literal> identifier "
@@ -1514,48 +1098,22 @@
 "idbag&gt;</literal> 콜렉션 식별자들에 대해 지원되지 않는다."
 
 #. Tag: title
-#: collection_mapping.xml:861
 #, no-c-format
 msgid "Collection examples"
 msgstr "콜렉션 예제들"
 
 #. Tag: para
-#: collection_mapping.xml:863
 #, fuzzy, no-c-format
 msgid "This section covers collection examples."
 msgstr "콜렉션 예제들"
 
 #. Tag: para
-#: collection_mapping.xml:867
 #, no-c-format
 msgid ""
 "The following class has a collection of <literal>Child</literal> instances:"
 msgstr ""
 
-#. 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-"
@@ -1565,50 +1123,12 @@
 "일 각각의 자식이 최소한 한 개의 부모를 가질 경우, 대부분의 고유한 매핑은 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 ""
-
 #. 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-"
@@ -1617,54 +1137,12 @@
 "만일 부모가 <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> 컨스트레인트를 주목하라:"
 
-#. 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 "
@@ -1675,34 +1153,7 @@
 "우, 당신은 <literal>&lt;key&gt;</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 ""
-
 #. 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 "
@@ -1711,65 +1162,21 @@
 "반면에, 만일 자식이 여러 부모들을 가질 수 있을 경우, 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 ""
-
 #. Tag: para
-#: collection_mapping.xml:915
 #, no-c-format
 msgid "Table definitions:"
 msgstr "테이블 정의들:"
 
-#. Tag: programlisting
-#: collection_mapping.xml:919
-#, 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 ""
-
 #. 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."
+"mapping, see <xref linkend=\"example-parentchild\" /> for more information."
 msgstr ""
 "부모/자식 관계 매핑을 연습하는 더 많은 예제들과 전체 리허설은 <xref linkend="
 "\"example-parentchild\"/>를 보라."
 
 #. Tag: para
-#: collection_mapping.xml:926
 #, fuzzy, no-c-format
 msgid "Even more complex association mappings are covered in the next chapter."
 msgstr ""
@@ -1786,134 +1193,3 @@
 #~ "The previous sections are pretty confusing. So lets look at an example. "
 #~ "This class:"
 #~ msgstr "앞의 절들은 꽤 혼동스럽다. 따라서 예제를 살펴보자. 다음 클래스:"
-
-#~ msgid ""
-#~ "<literal>column_name</literal> (required): The name of the column holding "
-#~ "the collection index values."
-#~ msgstr ""
-#~ "<literal>column_name</literal> (필수): 콜렉션 인덱스 값들을 보관하는 컬럼"
-#~ "의 이름."
-
-#~ 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>): 리스트 또"
-#~ "는 배열의 첫 번째 요소에 대응하는 인덱스 컬럼의 값."
-
-#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the column holding the "
-#~ "collection index values."
-#~ msgstr ""
-#~ "<literal>column</literal> (옵션): 콜렉션 인덱스 값들을 보관하는 컬럼의 이"
-#~ "름."
-
-#~ msgid ""
-#~ "<literal>formula</literal> (optional): A SQL formula used to evaluate the "
-#~ "key of the map."
-#~ msgstr ""
-#~ "<literal>formula</literal> (옵션): map의 키를 평가하는데 사용되는 SQL "
-#~ "formula."
-
-#~ msgid "<literal>type</literal> (reguired): The type of the map keys."
-#~ msgstr "<literal>type</literal> (필수): The type of the map 키들의 타입"
-
-#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the foreign key column "
-#~ "for the collection index values."
-#~ msgstr ""
-#~ "<literal>column</literal> (옵션): 콜렉션 인덱스 값들에 대한 foreign 키 컬"
-#~ "럼의 이름."
-
-#~ msgid ""
-#~ "<literal>formula</literal> (optional): A SQL formula used to evaluate the "
-#~ "foreign key of the map key."
-#~ msgstr ""
-#~ "<literal>formula</literal> (옵션): map의 foreign 키를 평가하는데 사용되는 "
-#~ "SQL formula."
-
-#~ msgid ""
-#~ "<literal>class</literal> (required): The entity class used as the map key."
-#~ msgstr "<literal>class</literal> (필수): map 키로서 사용되는 엔티티 클래스."
-
-#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the column holding the "
-#~ "collection element values."
-#~ msgstr ""
-#~ "<literal>column</literal> (옵션): 콜렉션 요소 값들을 소유하는 컬럼의 이름."
-
-#~ msgid ""
-#~ "<literal>formula</literal> (optional): An SQL formula used to evaluate "
-#~ "the element."
-#~ msgstr ""
-#~ "<literal>formula</literal> (옵션): 요소를 평가하는데 사용되는 SQL formula."
-
-#~ msgid ""
-#~ "<literal>type</literal> (required): The type of the collection element."
-#~ msgstr "<literal>type</literal> (필수): 콜렉션 요소의 타입."
-
-#~ msgid ""
-#~ "A <emphasis>many-to-many association</emphasis> is specified using the "
-#~ "<literal>&lt;many-to-many&gt;</literal> element."
-#~ msgstr ""
-#~ "<emphasis>many-to-many association</emphasis> 연관은 <literal>&lt;many-to-"
-#~ "many&gt;</literal> 요소를 사용하여 지정된다."
-
-#~ msgid ""
-#~ "<literal>column</literal> (optional): The name of the element foreign key "
-#~ "column."
-#~ msgstr "<literal>column</literal> (옵션): 요소 foreign 키 컬럼의 이름."
-
-#~ msgid ""
-#~ "<literal>formula</literal> (optional): An SQL formula used to evaluate "
-#~ "the element foreign key value."
-#~ msgstr ""
-#~ "<literal>formula</literal> (옵션): 요소 foreign 키 값을 평가하는데 사용되"
-#~ "는 SQL formula."
-
-#~ 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>&lt;many-to-many&gt;</literal> nested element."
-#~ msgstr ""
-#~ "<literal>fetch</literal> (옵션 - 디폴트는 <literal>join</literal>): 이 연"
-#~ "관에 대해 outer-join 페칭 또는 sequential select 페칭을 이용 가능하게 만든"
-#~ "다. 이것은 특별한 경우이다; 엔티티 그리고 다른 엔티티들과 그것의 many-to-"
-#~ "many 관계들에 대한 (하나의 <literal>SELECT</literal> 내에서) 전체 eager 페"
-#~ "칭의 경우, 당신은 콜렉션 그 자체에 대해서 뿐만 아니라 내포된 요소 "
-#~ "<literal>&lt;many-to-many&gt;</literal> 상의 이 속성에 대해 "
-#~ "<literal>join</literal> 페칭을 이용 가능하게 할 것이다."
-
-#~ 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."
-#~ msgstr ""
-#~ "<literal>unique</literal> (옵션): foreign-key 컬럼에 대한 유일 컨스트레인"
-#~ "트의 DDL 생성을 가능하도록 한다. 이것은 연관 다중성 (association "
-#~ "multiplicity)을 효율적으로 one to many로 만든다."
-
-#~ 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>): 누락된 행들을 참조하는 foreign 키들이 어떻게 처리될 것인지를 지"
-#~ "정한다: <literal>ignore</literal>는 누락된 한 행을 한 개의 연관으로 다룰 "
-#~ "것이다."
-
-#~ 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>: (옵션) 이 foreign 키에 조인된 연관 클래스"
-#~ "의 프로퍼티의 이름. 지정되지 않을 경우, 연관 클래스의 프라이머리 키가 사용"
-#~ "된다."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/component_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/component_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/component_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\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 "
@@ -27,13 +25,11 @@
 "컨텍스트들 내에서 재사용된다."
 
 #. Tag: title
-#: component_mapping.xml:37
 #, no-c-format
 msgid "Dependent objects"
 msgstr "종속 객체들"
 
 #. 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 "
@@ -46,68 +42,7 @@
 "composition(구성,합성)에 대한 객체-지향적인 개념을 언급한다. 예를 들어 당신"
 "은 다음과 같이 개인을 모형화 시킬 수도 있다:"
 
-#. 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 ""
-
-#. Tag: programlisting
-#: component_mapping.xml:47
-#, 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 ""
-
 #. Tag: para
-#: component_mapping.xml:49
 #, fuzzy, no-c-format
 msgid ""
 "Now <literal>Name</literal> can be persisted as a component of "
@@ -121,31 +56,11 @@
 "퍼티들을 선언하는 것을 필요로 하지 않음을 주목하라."
 
 #. Tag: para
-#: component_mapping.xml:56
 #, fuzzy, no-c-format
 msgid "Our Hibernate mapping would look like this:"
 msgstr "우리의 Hibernate 매핑은 다음과 같을 것이다:"
 
-#. Tag: programlisting
-#: component_mapping.xml:60
-#, 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 ""
-
 #. Tag: para
-#: component_mapping.xml:62
 #, no-c-format
 msgid ""
 "The person table would have the columns <literal>pid</literal>, "
@@ -157,7 +72,6 @@
 "literal> 컬럼들을 가질 것이다."
 
 #. Tag: para
-#: component_mapping.xml:70
 #, fuzzy, no-c-format
 msgid ""
 "Like value types, components do not support shared references. In other "
@@ -176,7 +90,6 @@
 "체 컴포넌트가 null이라고 가정할 것이다. 이것은 대부분의 용도에 맞을 것이다."
 
 #. Tag: para
-#: component_mapping.xml:78
 #, fuzzy, no-c-format
 msgid ""
 "The properties of a component can be of any Hibernate type (collections, "
@@ -190,7 +103,6 @@
 "을 지원하도록 고안되어있다."
 
 #. Tag: para
-#: component_mapping.xml:85
 #, no-c-format
 msgid ""
 "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
@@ -201,33 +113,12 @@
 "되는 엔티티에 대한 역 참조로서 매핑시키는 <literal>&lt;parent&gt;</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 "종속 객체들을 가진 콜렉션들"
 
 #. Tag: para
-#: component_mapping.xml:98
 #, fuzzy, no-c-format
 msgid ""
 "Collections of components are supported (e.g. an array of type "
@@ -240,22 +131,7 @@
 "composite-element&gt;</literal> 태그로 대체시켜서 당신의 컴포넌트 콜렉션을 선"
 "언하라."
 
-#. Tag: programlisting
-#: component_mapping.xml:105
-#, 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 ""
-
 #. Tag: para
-#: component_mapping.xml:108
 #, fuzzy, no-c-format
 msgid ""
 "If you define a <literal>Set</literal> of composite elements, it is "
@@ -267,7 +143,6 @@
 "게 구현하는 것이 매우 중요하다."
 
 #. Tag: para
-#: component_mapping.xml:115
 #, fuzzy, no-c-format
 msgid ""
 "Composite elements can contain components but not collections. If your "
@@ -287,7 +162,6 @@
 "들이 동일할지라도, 관계형 모형과 영속화 의미들은 여전히 약간 다르다."
 
 #. Tag: para
-#: component_mapping.xml:127
 #, fuzzy, no-c-format
 msgid ""
 "A composite element mapping does not support null-able properties if you are "
@@ -309,7 +183,6 @@
 "야 한다."
 
 #. 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 "
@@ -328,27 +201,7 @@
 "<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 ""
-
 #. Tag: para
-#: component_mapping.xml:150
 #, fuzzy, no-c-format
 msgid ""
 "There cannot be a reference to the purchase on the other side for "
@@ -364,29 +217,11 @@
 "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
-#, 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 ""
-
 #. Tag: para
-#: component_mapping.xml:162
 #, fuzzy, no-c-format
 msgid ""
 "Composite elements can appear in queries using the same syntax as "
@@ -396,13 +231,11 @@
 "들 내에 나타날 수도 있다."
 
 #. Tag: title
-#: component_mapping.xml:170
 #, no-c-format
 msgid "Components as Map indices"
 msgstr "Map 인덱스들로서 컴포넌트들"
 
 #. Tag: para
-#: component_mapping.xml:172
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>&lt;composite-map-key&gt;</literal> element allows you to map a "
@@ -416,13 +249,11 @@
 "literal>를 정확하게 오버라이드 시키도록 하라."
 
 #. Tag: title
-#: component_mapping.xml:181
 #, no-c-format
 msgid "Components as composite identifiers"
 msgstr "composite 식별자들로서 컴포넌트들"
 
 #. 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 "
@@ -432,13 +263,11 @@
 "할 수도 있다. 당신의 컴포넌트 클래스는 어떤 사양들을 충족시켜야 한다:"
 
 #. Tag: para
-#: component_mapping.xml:190
 #, no-c-format
 msgid "It must implement <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()</"
@@ -449,13 +278,11 @@
 "한다."
 
 #. Tag: title
-#: component_mapping.xml:204
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
-#: component_mapping.xml:205
 #, fuzzy, no-c-format
 msgid ""
 "In Hibernate3, although the second requirement is not an absolutely hard "
@@ -465,7 +292,6 @@
 "니다. 그러나 아무튼 그것을 행하라."
 
 #. Tag: para
-#: component_mapping.xml:211
 #, fuzzy, no-c-format
 msgid ""
 "You cannot use an <literal>IdentifierGenerator</literal> to generate "
@@ -475,7 +301,6 @@
 "사용할 수 없다. 대신에 어플리케이션은 그것 자신의 식별자들을 할당해야 한다."
 
 #. Tag: para
-#: component_mapping.xml:216
 #, fuzzy, no-c-format
 msgid ""
 "Use the <literal>&lt;composite-id&gt;</literal> tag, with nested "
@@ -490,32 +315,7 @@
 "<literal>Order</literal>의 (composite) 프라이머리 키에 의존하는 프라이머리 키"
 "를 갖는다."
 
-#. 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 ""
-
 #. Tag: para
-#: component_mapping.xml:226
 #, fuzzy, no-c-format
 msgid ""
 "Any foreign keys referencing the <literal>OrderLine</literal> table are now "
@@ -527,30 +327,16 @@
 "야 한다. <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 ""
-
 #. 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>"
+"The <literal>&lt;column&gt;</literal> tag is an alternative to the "
+"<literal>column</literal> attribute everywhere. Using the <literal>&lt;"
+"column&gt;</literal> tag just gives more declaration options, which are "
+"mostly useful when utilizing <literal>hbm2ddl</literal>."
 msgstr ""
 
 #. Tag: para
-#: component_mapping.xml:244
 #, no-c-format
 msgid ""
 "A <literal>many-to-many</literal> association to <literal>OrderLine</"
@@ -559,22 +345,7 @@
 "<literal>OrderLine</literal>에 대한 <literal>many-to-many</literal> 연관은 또"
 "한 composite foreign 키를 사용한다:"
 
-#. 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> "
@@ -583,21 +354,7 @@
 "<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
 msgid "The <literal>&lt;one-to-many&gt;</literal> element declares no columns."
 msgstr ""
@@ -605,7 +362,6 @@
 "않는다.)"
 
 #. Tag: para
-#: component_mapping.xml:262
 #, no-c-format
 msgid ""
 "If <literal>OrderLine</literal> itself owns a collection, it also has a "
@@ -614,52 +370,17 @@
 "만일 <literal>OrderLine</literal> 자체가 하나의 콜렉션을 소유할 경우, 그것은 "
 "또한 하나의 composite foreign 키를 갖는다."
 
-#. 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 "동적인 컴포넌트들"
 
 #. Tag: para
-#: component_mapping.xml:274
 #, fuzzy, no-c-format
 msgid "You can also map a property of type <literal>Map</literal>:"
 msgstr "당신은 <literal>Map</literal> 타입의 프로퍼티를 매핑시킬 수도 있다:"
 
-#. Tag: programlisting
-#: component_mapping.xml:278
-#, 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 ""
-
 #. Tag: para
-#: component_mapping.xml:280
 #, fuzzy, no-c-format
 msgid ""
 "The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/configuration.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/configuration.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/configuration.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\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 "
@@ -34,13 +32,11 @@
 "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> "
@@ -55,7 +51,6 @@
 "를 빌드하는데 사용된다. 매핑들은 여러 XML 매핑 파일들로부터 컴파일 된다."
 
 #. Tag: para
-#: configuration.xml:49
 #, fuzzy, no-c-format
 msgid ""
 "You can obtain a <classname>org.hibernate.cfg.Configuration</classname> "
@@ -68,17 +63,7 @@
 "다. 만일 매핑 파일들이 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 ""
-
 #. Tag: para
-#: configuration.xml:57
 #, fuzzy, no-c-format
 msgid ""
 "An alternative way is to specify the mapped class and allow Hibernate to "
@@ -87,17 +72,7 @@
 "(때때로 더 나은) 다른 방법은 매핑된 클래스를 지정하는 것이고, 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 ""
-
 #. Tag: para
-#: configuration.xml:64
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate will then search for mapping files named <filename>/org/hibernate/"
@@ -111,7 +86,6 @@
 "제거한다."
 
 #. Tag: para
-#: configuration.xml:70
 #, fuzzy, no-c-format
 msgid ""
 "A <classname>org.hibernate.cfg.Configuration</classname> also allows you to "
@@ -120,22 +94,7 @@
 "<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 ""
-
 #. Tag: para
-#: configuration.xml:77
 #, fuzzy, no-c-format
 msgid ""
 "This is not the only way to pass configuration properties to Hibernate. Some "
@@ -145,7 +104,6 @@
 "여러 가지 옵션들은 다음을 포함한다:"
 
 #. Tag: para
-#: configuration.xml:84
 #, fuzzy, no-c-format
 msgid ""
 "Pass an instance of <classname>java.util.Properties</classname> to "
@@ -155,7 +113,6 @@
 "setProperties()</literal>에 전달한다 ."
 
 #. Tag: para
-#: configuration.xml:90
 #, fuzzy, no-c-format
 msgid ""
 "Place a file named <filename>hibernate.properties</filename> in a root "
@@ -165,7 +122,6 @@
 "운다."
 
 #. Tag: para
-#: configuration.xml:95
 #, no-c-format
 msgid ""
 "Set <literal>System</literal> properties using <literal>java -"
@@ -175,7 +131,6 @@
 "literal> 프로퍼티들을 설정한다."
 
 #. Tag: para
-#: configuration.xml:100
 #, fuzzy, no-c-format
 msgid ""
 "Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate."
@@ -185,7 +140,6 @@
 "소들을 포함한다 (나중에 논의됨)."
 
 #. Tag: para
-#: configuration.xml:107
 #, no-c-format
 msgid ""
 "If you want to get started quickly<filename>hibernate.properties</filename> "
@@ -193,7 +147,6 @@
 msgstr ""
 
 #. Tag: para
-#: configuration.xml:111
 #, fuzzy, no-c-format
 msgid ""
 "The <classname>org.hibernate.cfg.Configuration</classname> is intended as a "
@@ -204,50 +157,39 @@
 "<literal>SessionFactory</literal>가 생성되면 폐기되게끔 예정되어 있다."
 
 #. Tag: title
-#: configuration.xml:119
 #, no-c-format
 msgid "Obtaining a 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:"
+"<classname>org.hibernate.Session</classname> 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 ""
-
 #. 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."
+"<classname>org.hibernate.SessionFactory</classname>. This is useful if you "
+"are using more than one database."
 msgstr ""
 "하지만 Hibernate는 당신의 어플리케이션이 하나 이상의 "
 "<literal>SessionFactory</literal>를 초기화 시키는 것을 허용한다. 이것은 당신"
 "이 하나 이상의 데이터베이스를 사용하는 경우에 유용하다."
 
 #. Tag: title
-#: configuration.xml:138
 #, no-c-format
 msgid "JDBC connections"
 msgstr "JDBC 커넥션들"
 
 #. Tag: para
-#: configuration.xml:140
 #, fuzzy, no-c-format
 msgid ""
 "It is advisable to have the <interfacename>org.hibernate.SessionFactory</"
@@ -259,15 +201,7 @@
 "션들을 생성시키고 풀링시키는 것을 원한다. 만일 당신이 이 접근법을 취할 경우, "
 "한 개의 <literal>Session</literal>을 여는 것은 다음과 같이 간단하다:"
 
-#. Tag: programlisting
-#: configuration.xml:146
-#, no-c-format
-msgid ""
-"<![CDATA[Session session = sessions.openSession(); // open a new Session]]>"
-msgstr ""
-
 #. Tag: para
-#: configuration.xml:148
 #, fuzzy, no-c-format
 msgid ""
 "Once you start a task that requires access to the database, a JDBC "
@@ -277,7 +211,6 @@
 "JDBC 커넥션이 그 풀로부터 얻어질 것이다."
 
 #. Tag: para
-#: configuration.xml:153
 #, fuzzy, no-c-format
 msgid ""
 "Before you can do this, you first need to pass some JDBC connection "
@@ -292,7 +225,6 @@
 "우리는 이제 JDBC 커넥션 구성을 위한 가장 중요한 설정들을 설명할 것이다."
 
 #. Tag: para
-#: configuration.xml:159
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate will obtain and pool connections using <classname>java.sql."
@@ -303,89 +235,71 @@
 "이다):"
 
 #. Tag: title
-#: configuration.xml:165
 #, no-c-format
 msgid "Hibernate JDBC Properties"
 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
-#, no-c-format
-msgid "hibernate.connection.driver_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
 msgstr "hibernate.connection.driver_class"
 
-#. Tag: emphasis
-#: configuration.xml:181
-#, no-c-format
-msgid "JDBC driver class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
 msgstr "jdbc 드라이버 클래스"
 
-#. Tag: property
-#: configuration.xml:186
-#, no-c-format
-msgid "hibernate.connection.url"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.url</property>"
 msgstr "hibernate.connection.url"
 
-#. Tag: emphasis
-#: configuration.xml:189
+#. Tag: para
 #, no-c-format
-msgid "JDBC URL"
-msgstr "jdbc URL"
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr ""
 
-#. Tag: property
-#: configuration.xml:194 configuration.xml:288
-#, no-c-format
-msgid "hibernate.connection.username"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.username</property>"
 msgstr "hibernate.connection.username"
 
-#. Tag: emphasis
-#: configuration.xml:197
-#, no-c-format
-msgid "database user"
-msgstr "데이터베이스 사용자"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr "데이터베이스 사용자 패스워드"
 
-#. Tag: property
-#: configuration.xml:202 configuration.xml:296
-#, no-c-format
-msgid "hibernate.connection.password"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.password</property>"
 msgstr "hibernate.connection.password"
 
-#. Tag: emphasis
-#: configuration.xml:205
-#, no-c-format
-msgid "database user password"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis>database user password</emphasis>"
 msgstr "데이터베이스 사용자 패스워드"
 
-#. Tag: property
-#: configuration.xml:210
-#, no-c-format
-msgid "hibernate.connection.pool_size"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
 msgstr "hibernate.connection.pool_size"
 
-#. Tag: emphasis
-#: configuration.xml:213
-#, no-c-format
-msgid "maximum number of pooled connections"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
 msgstr "풀링된 커넥션들의 최대 개수"
 
 #. Tag: para
-#: configuration.xml:220
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate's own connection pooling algorithm is, however, quite rudimentary. "
@@ -404,7 +318,6 @@
 "부 pool을 오프시킬 것이다. 예를 들어 당신은 C3P0를 사용할 수도 있다."
 
 #. Tag: para
-#: configuration.xml:230
 #, fuzzy, no-c-format
 msgid ""
 "C3P0 is an open source JDBC connection pool distributed along with Hibernate "
@@ -423,7 +336,6 @@
 "literal>를 참조하고 추가 정보는 Hibernate 웹 사이트를 참조하라."
 
 #. Tag: para
-#: configuration.xml:238
 #, fuzzy, no-c-format
 msgid ""
 "The following is an example <filename>hibernate.properties</filename> file "
@@ -432,23 +344,7 @@
 "다음은 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 ""
-
 #. Tag: para
-#: configuration.xml:244
 #, fuzzy, no-c-format
 msgid ""
 "For use inside an application server, you should almost always configure "
@@ -462,63 +358,53 @@
 "있을 것이다."
 
 #. Tag: title
-#: configuration.xml:251
 #, no-c-format
 msgid "Hibernate Datasource Properties"
 msgstr "Hibernate Datasource Properties"
 
-#. Tag: property
-#: configuration.xml:264
-#, no-c-format
-msgid "hibernate.connection.datasource"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
 msgstr "hibernate.connection.datasource"
 
-#. Tag: emphasis
-#: configuration.xml:267
-#, no-c-format
-msgid "datasource JNDI name"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
 msgstr "데이터소스 JNDI 이름"
 
-#. Tag: property
-#: configuration.xml:272
-#, no-c-format
-msgid "hibernate.jndi.url"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
 msgstr "hibernate.jndi.url"
 
-#. Tag: entry
-#: configuration.xml:274
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
 msgstr "JNDI 프로바이더의 URL"
 
-#. Tag: property
-#: configuration.xml:280
-#, no-c-format
-msgid "hibernate.jndi.class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
 msgstr "hibernate.jndi.class"
 
-#. Tag: entry
-#: configuration.xml:282
+#. Tag: para
 #, no-c-format
 msgid ""
 "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
 "emphasis> (optional)"
 msgstr ""
 
-#. Tag: entry
-#: configuration.xml:290
+#. Tag: para
 #, no-c-format
 msgid "<emphasis>database user</emphasis> (optional)"
 msgstr ""
 
-#. Tag: entry
-#: configuration.xml:298
+#. Tag: para
 #, no-c-format
 msgid "<emphasis>database user password</emphasis> (optional)"
 msgstr ""
 
 #. Tag: para
-#: configuration.xml:306
 #, fuzzy, no-c-format
 msgid ""
 "Here is an example <filename>hibernate.properties</filename> file for an "
@@ -527,20 +413,7 @@
 "다음은 어플리케이션 서버 제공 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 ""
-
 #. Tag: para
-#: configuration.xml:313
 #, no-c-format
 msgid ""
 "JDBC connections obtained from a JNDI datasource will automatically "
@@ -550,7 +423,6 @@
 "의해 관리되는 트랜잭션들에 자동적으로 참여할 것이다."
 
 #. Tag: para
-#: configuration.xml:318
 #, fuzzy, no-c-format
 msgid ""
 "Arbitrary connection properties can be given by prepending "
@@ -564,7 +436,6 @@
 "literal>을 지정할 수도 있다."
 
 #. Tag: para
-#: configuration.xml:324
 #, fuzzy, no-c-format
 msgid ""
 "You can define your own plugin strategy for obtaining JDBC connections by "
@@ -579,13 +450,11 @@
 "하여 맞춤형 구현을 선택할 수도 있다."
 
 #. 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 "
@@ -594,14 +463,13 @@
 "실행 시에 Hibernate의 행위를 제어하는 많은 다른 프로퍼티들이 존재한다. 모든 "
 "것이 옵션이지만 합당한 디폴트 값들을 갖는다."
 
-#. Tag: warning
-#: configuration.xml:341
+#. Tag: para
 #, 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."
+"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 ""
 "<emphasis>경고: 이들 프로퍼티들 중 몇몇은 \"system-level\" 전용이다.</"
 "emphasis> 시스템 레벨 프로퍼티들은 오직 <literal>java -Dproperty=value</"
@@ -610,19 +478,16 @@
 "emphasis>."
 
 #. Tag: title
-#: configuration.xml:347
 #, no-c-format
 msgid "Hibernate Configuration Properties"
 msgstr "Hibernate 구성 프로퍼티들"
 
-#. Tag: property
-#: configuration.xml:360
-#, no-c-format
-msgid "hibernate.dialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.dialect</property>"
 msgstr "hibernate.dialect"
 
-#. Tag: entry
-#: configuration.xml:362
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</"
@@ -633,7 +498,6 @@
 "해주는 Hibernate <placeholder-1/>의 클래스명. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:365
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of."
@@ -643,7 +507,6 @@
 "<literal>false</literal>"
 
 #. Tag: para
-#: configuration.xml:369
 #, no-c-format
 msgid ""
 "In most cases Hibernate will actually be able to choose the correct "
@@ -651,14 +514,12 @@
 "the <literal>JDBC metadata</literal> returned by the JDBC driver."
 msgstr ""
 
-#. Tag: property
-#: configuration.xml:378
-#, no-c-format
-msgid "hibernate.show_sql"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.show_sql</property>"
 msgstr "hibernate.show_sql"
 
-#. Tag: entry
-#: configuration.xml:380
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Write all SQL statements to console. This is an alternative to setting the "
@@ -669,11 +530,6 @@
 "<placeholder-2/>로 설정하는 것에 대한 하나의 다른 방법이다. <placeholder-3/>"
 
 #. 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> | "
@@ -682,26 +538,22 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:392
-#, no-c-format
-msgid "hibernate.format_sql"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.format_sql</property>"
 msgstr "hibernate.format_sql"
 
-#. Tag: entry
-#: configuration.xml:394
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "Pretty print the SQL in the log and console."
 msgstr "로그와 콘솔 속에 SQL을 깔끔하게 프린트한다. <placeholder-1/>"
 
-#. Tag: property
-#: configuration.xml:404
-#, no-c-format
-msgid "hibernate.default_schema"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_schema</property>"
 msgstr "hibernate.default_schema"
 
-#. Tag: entry
-#: configuration.xml:406
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Qualify unqualified table names with the given schema/tablespace in "
@@ -711,7 +563,6 @@
 "한다. <placeholder-1/>"
 
 #. Tag: para
-#: configuration.xml:409
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
@@ -719,14 +570,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:417
-#, no-c-format
-msgid "hibernate.default_catalog"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
 msgstr "hibernate.default_catalog"
 
-#. Tag: entry
-#: configuration.xml:419
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Qualifies unqualified table names with the given catalog in generated SQL."
@@ -735,7 +584,6 @@
 "<placeholder-1/>"
 
 #. Tag: para
-#: configuration.xml:422
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
@@ -743,14 +591,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:430
-#, no-c-format
-msgid "hibernate.session_factory_name"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
 msgstr "hibernate.session_factory_name"
 
-#. Tag: entry
-#: configuration.xml:432
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "The <interfacename>org.hibernate.SessionFactory</interfacename> will be "
@@ -760,7 +606,6 @@
 "드 될 것이다. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:435 configuration.xml:875
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
@@ -769,14 +614,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:443
-#, no-c-format
-msgid "hibernate.max_fetch_depth"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
 msgstr "hibernate.max_fetch_depth"
 
-#. Tag: entry
-#: configuration.xml:445
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Sets a maximum \"depth\" for the outer join fetch tree for single-ended "
@@ -788,7 +631,6 @@
 "을 사용불가능하게 만든다. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:449
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
@@ -797,21 +639,18 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>0</literal>과 <literal>3</"
 "literal> 사이의 값들이권장된다"
 
-#. Tag: property
-#: configuration.xml:458
-#, no-c-format
-msgid "hibernate.default_batch_fetch_size"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
 msgstr "hibernate.default_batch_fetch_size"
 
-#. Tag: entry
-#: configuration.xml:460
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "Sets a default size for Hibernate batch fetching of associations."
 msgstr ""
 "연관들의 Hibernate 배치 페칭에 대한 디폴트 크기를 설정한다. <placeholder-1/>"
 
 #. Tag: para
-#: configuration.xml:462
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</"
@@ -820,24 +659,21 @@
 "<emphasis role=\"strong\">예.</emphasis> 권장되는 값들은 <literal>4</"
 "literal>, <literal>8</literal>, <literal>16</literal>"
 
-#. Tag: property
-#: configuration.xml:471
-#, no-c-format
-msgid "hibernate.default_entity_mode"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
 msgstr "hibernate.default_entity_mode"
 
-#. Tag: entry
-#: configuration.xml:473
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Sets a default mode for entity representation for all sessions opened from "
-"this <literal>SessionFactory</literal>"
+"this <literal>SessionFactory</literal>."
 msgstr ""
 "이 <placeholder-1/>로부터 열려진 모든 세션들에 대해 엔티티 표현을 디폴트 모드"
 "로 설정한다 <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:476
 #, no-c-format
 msgid ""
 "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
@@ -846,14 +682,12 @@
 "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
 "literal>"
 
-#. Tag: property
-#: configuration.xml:484
-#, no-c-format
-msgid "hibernate.order_updates"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.order_updates</property>"
 msgstr "hibernate.order_updates"
 
-#. Tag: entry
-#: configuration.xml:486
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Forces Hibernate to order SQL updates by the primary key value of the items "
@@ -864,14 +698,12 @@
 "(ordering)지워지도록 Hibernate에게 강제시킨다. 이것은 고도의 동시성 시스템들"
 "에서 더 적은 트랜잭션 데드락(deadlock)들로 귀결될 것이다 <placeholder-1/>"
 
-#. Tag: property
-#: configuration.xml:498
-#, no-c-format
-msgid "hibernate.generate_statistics"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
 msgstr "hibernate.generate_statistics"
 
-#. Tag: entry
-#: configuration.xml:500
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "If enabled, Hibernate will collect statistics useful for performance tuning."
@@ -879,14 +711,12 @@
 "이용 가능하게 되면, Hibernate는 퍼포먼스 튜닝에 유용한 통계들을 수집할 것이"
 "다. <placeholder-1/>"
 
-#. Tag: property
-#: configuration.xml:511
-#, no-c-format
-msgid "hibernate.use_identifier_rollback"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
 msgstr "hibernate.use_identifer_rollback"
 
-#. Tag: entry
-#: configuration.xml:513
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "If enabled, generated identifier properties will be reset to default values "
@@ -895,14 +725,12 @@
 "이용 가능하게 되면, 객체가 삭제될 때 생성된 식별자 프로퍼티들은 디폴트 값들"
 "로 재설정될 것이다. <placeholder-1/>"
 
-#. Tag: property
-#: configuration.xml:524
-#, no-c-format
-msgid "hibernate.use_sql_comments"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
 msgstr "hibernate.use_sql_comments"
 
-#. Tag: entry
-#: configuration.xml:526
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "If turned on, Hibernate will generate comments inside the SQL, for easier "
@@ -912,19 +740,16 @@
 "성시킬 것이다. 디폴트는 <placeholder-1/>. <placeholder-2/>"
 
 #. Tag: title
-#: configuration.xml:540
 #, no-c-format
 msgid "Hibernate JDBC and Connection Properties"
 msgstr "Hibernate JDBC 및 커넥션 프로퍼티들"
 
-#. Tag: property
-#: configuration.xml:553
-#, no-c-format
-msgid "hibernate.jdbc.fetch_size"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
 msgstr "hibernate.jdbc.fetch_size"
 
-#. Tag: entry
-#: configuration.xml:555
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "A non-zero value determines the JDBC fetch size (calls <literal>Statement."
@@ -932,14 +757,12 @@
 msgstr ""
 "0 아닌 값은 JDBC fetch 사이즈를 결정한다(<placeholder-1/>을 호출한다 )."
 
-#. Tag: property
-#: configuration.xml:562
-#, no-c-format
-msgid "hibernate.jdbc.batch_size"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
 msgstr "hibernate.jdbc.batch_size"
 
-#. Tag: entry
-#: configuration.xml:564
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
 msgstr ""
@@ -947,7 +770,6 @@
 "다. <placeholder-1/>"
 
 #. Tag: para
-#: configuration.xml:566
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
@@ -956,14 +778,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>5</literal>와 <literal>30</"
 "literal> 사이의 값들이 권장된다"
 
-#. Tag: property
-#: configuration.xml:574
-#, no-c-format
-msgid "hibernate.jdbc.batch_versioned_data"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
 msgstr "hibernate.jdbc.batch_versioned_data"
 
-#. Tag: entry
-#: configuration.xml:576
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Set this property to <literal>true</literal> if your JDBC driver returns "
@@ -977,14 +797,12 @@
 "치화된(batched) DML을 사용할 것이다. 디폴트는 <placeholder-3/>. <placeholder-"
 "4/>"
 
-#. Tag: property
-#: configuration.xml:589
-#, no-c-format
-msgid "hibernate.jdbc.factory_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
 msgstr "hibernate.jdbc.factory_class"
 
-#. Tag: entry
-#: configuration.xml:591
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
@@ -994,7 +812,6 @@
 "티를 필요로 하지 않을 것이다. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:594
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
@@ -1003,14 +820,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:602
-#, no-c-format
-msgid "hibernate.jdbc.use_scrollable_resultset"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
 msgstr "hibernate.jdbc.use_scrollable_resultset"
 
-#. Tag: entry
-#: configuration.xml:604
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Enables use of JDBC2 scrollable resultsets by Hibernate. This property is "
@@ -1021,14 +836,12 @@
 "로퍼티는 사용자가 제공한 JDBC커넥션들을 사용할 때에만 필수적이고, 그 밖의 경"
 "우 Hibernate는 커넥션 메타데이터를 사용한다. <placeholder-1/>"
 
-#. Tag: property
-#: configuration.xml:616
-#, no-c-format
-msgid "hibernate.jdbc.use_streams_for_binary"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
 msgstr "hibernate.jdbc.use_streams_for_binary"
 
-#. Tag: entry
-#: configuration.xml:618
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Use streams when writing/reading <literal>binary</literal> or "
@@ -1038,14 +851,12 @@
 "FUZZY! <placeholder-1/> 또는 <placeholder-2/> 타입들을 읽어들일 때 스트림들"
 "을 사용한다(시스템-레벨 프로퍼티). <placeholder-3/>"
 
-#. Tag: property
-#: configuration.xml:629
-#, no-c-format
-msgid "hibernate.jdbc.use_get_generated_keys"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
 msgstr "hibernate.jdbc.use_get_generated_keys"
 
-#. Tag: entry
-#: configuration.xml:631
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> "
@@ -1061,22 +872,18 @@
 "라. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:637 configuration.xml:767 configuration.xml:779
-#: configuration.xml:793 configuration.xml:831
 #, fuzzy, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
 msgstr ""
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:645
-#, no-c-format
-msgid "hibernate.connection.provider_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
 msgstr "hibernate.connection.provider_class"
 
-#. Tag: entry
-#: configuration.xml:647
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "The classname of a custom <interfacename>org.hibernate.connection."
@@ -1087,7 +894,6 @@
 "<placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:650
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
@@ -1096,14 +902,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:658
-#, no-c-format
-msgid "hibernate.connection.isolation"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
 msgstr "hibernate.connection.isolation"
 
-#. Tag: entry
-#: configuration.xml:660
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Sets the JDBC transaction isolation level. Check <interfacename>java.sql."
@@ -1116,35 +920,30 @@
 "않음을 노트하라. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:664
 #, fuzzy, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
 msgstr ""
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: property
-#: configuration.xml:672
-#, no-c-format
-msgid "hibernate.connection.autocommit"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
 msgstr "hibernate.connection.autocommit"
 
-#. Tag: entry
-#: configuration.xml:674
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
 msgstr ""
 "JDBC 풀링된 커넥션들에 대해 자동커밋을 이용 가능하도록 한다(권장되지 않음). "
 "<placeholder-1/>"
 
-#. Tag: property
-#: configuration.xml:684
-#, no-c-format
-msgid "hibernate.connection.release_mode"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
 msgstr "hibernate.connection.release_mode"
 
-#. Tag: entry
-#: configuration.xml:686
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Specifies when Hibernate should release JDBC connections. By default, a JDBC "
@@ -1167,7 +966,6 @@
 "5/>를 선택할 것이다. <placeholder-6/><placeholder-7/>"
 
 #. Tag: para
-#: configuration.xml:697
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) "
@@ -1179,7 +977,6 @@
 "<literal>after_statement</literal>"
 
 #. Tag: para
-#: configuration.xml:702
 #, fuzzy, no-c-format
 msgid ""
 "This setting only affects <literal>Session</literal>s returned from "
@@ -1187,7 +984,8 @@
 "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"
+"<literal>Session</literal>s. See <xref linkend=\"architecture-current-session"
+"\" />"
 msgstr ""
 "이 설정이 <literal>SessionFactory.openSession</literal>로부터 반환된 "
 "<literal>Session</literal>들에만 영향을 준다는 점을 노트하라. "
@@ -1197,31 +995,27 @@
 "literal>들에 대한 연결 해제를 제어한다. <xref linkend=\"architecture-current-"
 "session\"/>를 보라."
 
-#. Tag: entry
-#: configuration.xml:713
+#. Tag: para
 #, no-c-format
 msgid ""
 "<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</"
 "emphasis>"
 msgstr ""
 
-#. Tag: entry
-#: configuration.xml:716
+#. Tag: para
 #, no-c-format
 msgid ""
 "Pass the JDBC property <emphasis>&lt;propertyName&gt;</emphasis> to "
 "<literal>DriverManager.getConnection()</literal>."
 msgstr ""
 
-#. Tag: entry
-#: configuration.xml:722
+#. Tag: para
 #, no-c-format
 msgid ""
 "<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
 msgstr ""
 
-#. Tag: entry
-#: configuration.xml:725
+#. Tag: para
 #, no-c-format
 msgid ""
 "Pass the property <emphasis>&lt;propertyName&gt;</emphasis> to the JNDI "
@@ -1229,25 +1023,21 @@
 msgstr ""
 
 #. Tag: title
-#: configuration.xml:735
 #, no-c-format
 msgid "Hibernate Cache Properties"
 msgstr "Hibernate Cache 프로퍼티들"
 
-#. Tag: literal
-#: configuration.xml:748
-#, no-c-format
-msgid "hibernate.cache.provider_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
 msgstr "hibernate.cache.provider_class"
 
-#. Tag: entry
-#: configuration.xml:750
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "The classname of a custom <literal>CacheProvider</literal>."
 msgstr "맞춤형 <placeholder-1/>의 클래스명. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:752
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
@@ -1256,14 +1046,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: literal
-#: configuration.xml:760
-#, no-c-format
-msgid "hibernate.cache.use_minimal_puts"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
 msgstr "hibernate.cache.use_minimal_puts"
 
-#. Tag: entry
-#: configuration.xml:762
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Optimizes second-level cache operation to minimize writes, at the cost of "
@@ -1275,14 +1063,12 @@
 "고, Hibernate3에서는 클러스터링된 캐시 구현들에 대해 디폴트로 이용 가능하다. "
 "<placeholder-1/>"
 
-#. Tag: literal
-#: configuration.xml:775
-#, no-c-format
-msgid "hibernate.cache.use_query_cache"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
 msgstr "hibernate.cache.use_query_cache"
 
-#. Tag: entry
-#: configuration.xml:777
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Enables the query cache. Individual queries still have to be set cachable."
@@ -1290,14 +1076,12 @@
 "질의 캐시를 가능하게 만든다. 개별 질의들은 여전히 캐시 가능한 것으로 설정되어"
 "야 한다. <placeholder-1/>"
 
-#. Tag: literal
-#: configuration.xml:787
-#, no-c-format
-msgid "hibernate.cache.use_second_level_cache"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
 msgstr "hibernate.cache.use_second_level_cache"
 
-#. Tag: entry
-#: configuration.xml:789
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Can be used to completely disable the second level cache, which is enabled "
@@ -1308,14 +1092,12 @@
 "<placeholder-1/> 매핑을 지정하는 클래스들에 대해 디폴트로 이용 가능이다. "
 "<placeholder-2/>"
 
-#. Tag: literal
-#: configuration.xml:801
-#, no-c-format
-msgid "hibernate.cache.query_cache_factory"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
 msgstr "hibernate.cache.query_cache_factory"
 
-#. Tag: entry
-#: configuration.xml:803
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "The classname of a custom <literal>QueryCache</literal> interface, defaults "
@@ -1325,7 +1107,6 @@
 "<placeholder-2/>. <placeholder-3/>"
 
 #. Tag: para
-#: configuration.xml:806
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
@@ -1334,34 +1115,29 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: literal
-#: configuration.xml:814
-#, no-c-format
-msgid "hibernate.cache.region_prefix"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
 msgstr "hibernate.cache.region_prefix"
 
-#. Tag: entry
-#: configuration.xml:816
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "A prefix to use for second-level cache region names."
 msgstr "second-level 캐시 영역 이름들에 사용할 접두어. <placeholder-1/>"
 
 #. Tag: para
-#: configuration.xml:818
 #, fuzzy, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
 msgstr ""
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: literal
-#: configuration.xml:826
-#, no-c-format
-msgid "hibernate.cache.use_structured_entries"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
 msgstr "hibernate.cache.use_structured_entries"
 
-#. Tag: entry
-#: configuration.xml:828
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Forces Hibernate to store data in the second-level cache in a more human-"
@@ -1371,19 +1147,16 @@
 "Hibernate에게 강제시킨다.. <placeholder-1/>"
 
 #. Tag: title
-#: configuration.xml:842
 #, no-c-format
 msgid "Hibernate Transaction Properties"
 msgstr "Hibernate 트랜잭션 프로퍼티들"
 
-#. Tag: literal
-#: configuration.xml:855
-#, no-c-format
-msgid "hibernate.transaction.factory_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
 msgstr "hibernate.transaction.factory_class"
 
-#. Tag: entry
-#: configuration.xml:857
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "The classname of a <literal>TransactionFactory</literal> to use with "
@@ -1394,7 +1167,6 @@
 "트는 <placeholder-3/>). <placeholder-4/>"
 
 #. Tag: para
-#: configuration.xml:861
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
@@ -1403,14 +1175,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: literal
-#: configuration.xml:869
-#, no-c-format
-msgid "jta.UserTransaction"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
 msgstr "jta.UserTransaction"
 
-#. Tag: entry
-#: configuration.xml:871
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
@@ -1419,14 +1189,12 @@
 "어플리케이션 서버로부터 JTA <placeholder-1/>을 얻기 위해 <placeholder-2/>에 "
 "의해 사용되는 JNDI 이름. <placeholder-3/>"
 
-#. Tag: literal
-#: configuration.xml:883
-#, no-c-format
-msgid "hibernate.transaction.manager_lookup_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction. manager_lookup_class</literal>"
 msgstr "hibernate.transaction.manager_lookup_class"
 
-#. Tag: entry
-#: configuration.xml:885
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "The classname of a <literal>TransactionManagerLookup</literal>. It is "
@@ -1437,7 +1205,6 @@
 "서 hilo generator를 사용할 때 필요하다. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:889
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
@@ -1446,19 +1213,17 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: literal
-#: configuration.xml:897
-#, no-c-format
-msgid "hibernate.transaction.flush_before_completion"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction. flush_before_completion</literal>"
 msgstr "hibernate.transaction.flush_before_completion"
 
-#. Tag: entry
-#: configuration.xml:899
+#. Tag: para
 #, 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\"/"
+"management is preferred, see <xref linkend=\"architecture-current-session\" /"
 ">."
 msgstr ""
 "만일 사용가능하도록 되면, 세션은 트랜잭션의 before completion 단계 동안에 자"
@@ -1466,50 +1231,44 @@
 "는데, <xref linkend=\"architecture-current-session\"/>를 보라. <placeholder-"
 "1/>"
 
-#. Tag: literal
-#: configuration.xml:912
-#, no-c-format
-msgid "hibernate.transaction.auto_close_session"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction. auto_close_session</literal>"
 msgstr "hibernate.transaction.auto_close_session"
 
-#. Tag: entry
-#: configuration.xml:914
+#. Tag: para
 #, 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\"/"
+"management is preferred, see <xref linkend=\"architecture-current-session\" /"
 ">."
 msgstr ""
 "만일 사용가능토록 하면, after completion 단계 동안에 세션이 자동적으로 닫혀"
 "질 것이다. (CMT에 대해 Hibernate를 사용할 때 매우 유용하다.) <placeholder-1/>"
 
 #. Tag: title
-#: configuration.xml:930
 #, no-c-format
 msgid "Miscellaneous Properties"
 msgstr "여러가지 프로퍼티들"
 
-#. Tag: literal
-#: configuration.xml:943
-#, no-c-format
-msgid "hibernate.current_session_context_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate. current_session_context_class</literal>"
 msgstr "hibernate.current_session_context_class"
 
-#. Tag: entry
-#: configuration.xml:945
+#. Tag: para
 #, 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."
+"\" /> for more information about the built-in strategies."
 msgstr ""
 "\"현재\" <placeholder-1/>의 영역화를 위한 하나의 (맞춤) 방도를 제공한다. 빌드"
 "되어 있는 방도들에 대한 추가 정보는 <xref linkend=\"architecture-current-"
 "session\"/>를 보라. <placeholder-2/>"
 
 #. Tag: para
-#: configuration.xml:950
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | "
@@ -1520,20 +1279,17 @@
 "<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
 "Class</literal>"
 
-#. Tag: literal
-#: configuration.xml:959
-#, no-c-format
-msgid "hibernate.query.factory_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
 msgstr "hibernate.query.factory_class"
 
-#. Tag: entry
-#: configuration.xml:961
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "Chooses the HQL parser implementation."
 msgstr "Chooses the HQL 파서 구현을 선택한다. <placeholder-1/>"
 
 #. Tag: para
-#: configuration.xml:963
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>org.hibernate.hql.ast."
@@ -1544,14 +1300,12 @@
 "ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
 "ClassicQueryTranslatorFactory</literal>"
 
-#. Tag: literal
-#: configuration.xml:972
-#, no-c-format
-msgid "hibernate.query.substitutions"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
 msgstr "hibernate.query.substitutions"
 
-#. Tag: entry
-#: configuration.xml:974
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Is used to map from tokens in Hibernate queries to SQL tokens (tokens might "
@@ -1561,7 +1315,6 @@
 "수 이름 또는 리터럴 이름일 수 있다). <placeholder-1/>"
 
 #. Tag: para
-#: configuration.xml:977
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
@@ -1570,14 +1323,12 @@
 "<emphasis role=\"strong\">예.</emphasis><literal>true</literal> | "
 "<literal>false</literal>"
 
-#. Tag: literal
-#: configuration.xml:985
-#, no-c-format
-msgid "hibernate.hbm2ddl.auto"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
 msgstr "hibernate.hbm2ddl.auto"
 
-#. Tag: entry
-#: configuration.xml:987
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Automatically validates or exports schema DDL to the database when the "
@@ -1590,7 +1341,6 @@
 "적으로 닫혀질 때 데이터베이스 스키마가 드롭될 것이다. <placeholder-4/>"
 
 #. Tag: para
-#: configuration.xml:993
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | "
@@ -1601,14 +1351,12 @@
 "<literal>update</literal> | <literal>create</literal> | <literal>create-"
 "drop</literal>"
 
-#. Tag: literal
-#: configuration.xml:1002
-#, no-c-format
-msgid "hibernate.cglib.use_reflection_optimizer"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cglib. use_reflection_optimizer</literal>"
 msgstr "hibernate.cglib.use_reflection_optimizer"
 
-#. Tag: entry
-#: configuration.xml:1004
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Enables the use of CGLIB instead of runtime reflection (System-level "
@@ -1622,13 +1370,11 @@
 "<placeholder-1/> 속에 이 프로퍼티를 설정할수 없다. <placeholder-2/>"
 
 #. Tag: title
-#: configuration.xml:1020
 #, no-c-format
 msgid "SQL Dialects"
 msgstr "SQL Dialects"
 
 #. Tag: para
-#: configuration.xml:1022
 #, fuzzy, no-c-format
 msgid ""
 "Always set the <literal>hibernate.dialect</literal> property to the correct "
@@ -1644,307 +1390,256 @@
 "몇몇에 대해 의미있는 디폴트들을 사용할 것이다."
 
 #. Tag: title
-#: configuration.xml:1030
 #, no-c-format
 msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
 msgstr "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
 
-#. Tag: entry
-#: configuration.xml:1036
+#. Tag: para
 #, no-c-format
 msgid "RDBMS"
 msgstr "RDBMS"
 
-#. Tag: entry
-#: configuration.xml:1037
+#. Tag: para
 #, no-c-format
 msgid "Dialect"
 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
-#, no-c-format
-msgid "org.hibernate.dialect.DB2Dialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
 msgstr "org.hibernate.dialect.DB2Dialect"
 
-#. Tag: entry
-#: configuration.xml:1045
+#. Tag: para
 #, no-c-format
 msgid "DB2 AS/400"
 msgstr "DB2 AS/400"
 
-#. Tag: literal
-#: configuration.xml:1045
-#, no-c-format
-msgid "org.hibernate.dialect.DB2400Dialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
 msgstr "org.hibernate.dialect.DB2400Dialect"
 
-#. Tag: entry
-#: configuration.xml:1048
+#. Tag: para
 #, no-c-format
 msgid "DB2 OS390"
 msgstr "DB2 OS390"
 
-#. Tag: literal
-#: configuration.xml:1048
-#, no-c-format
-msgid "org.hibernate.dialect.DB2390Dialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
 msgstr "org.hibernate.dialect.DB2390Dialect"
 
-#. Tag: entry
-#: configuration.xml:1051
+#. Tag: para
 #, no-c-format
 msgid "PostgreSQL"
 msgstr "PostgreSQL"
 
-#. Tag: literal
-#: configuration.xml:1051
-#, no-c-format
-msgid "org.hibernate.dialect.PostgreSQLDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
 msgstr "org.hibernate.dialect.PostgreSQLDialect"
 
-#. Tag: entry
-#: configuration.xml:1054
+#. Tag: para
 #, no-c-format
 msgid "MySQL"
 msgstr "MySQL"
 
-#. Tag: literal
-#: configuration.xml:1054
-#, no-c-format
-msgid "org.hibernate.dialect.MySQLDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
 msgstr "org.hibernate.dialect.MySQLDialect"
 
-#. Tag: entry
-#: configuration.xml:1057
+#. Tag: para
 #, no-c-format
 msgid "MySQL with InnoDB"
 msgstr "MySQL with InnoDB"
 
-#. Tag: literal
-#: configuration.xml:1057
-#, no-c-format
-msgid "org.hibernate.dialect.MySQLInnoDBDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
 msgstr "org.hibernate.dialect.MySQLInnoDBDialect"
 
-#. Tag: entry
-#: configuration.xml:1060
+#. Tag: para
 #, no-c-format
 msgid "MySQL with MyISAM"
 msgstr "MySQL with MyISAM"
 
-#. Tag: literal
-#: configuration.xml:1060
-#, no-c-format
-msgid "org.hibernate.dialect.MySQLMyISAMDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
 msgstr "org.hibernate.dialect.MySQLMyISAMDialect"
 
-#. Tag: entry
-#: configuration.xml:1063
+#. Tag: para
 #, no-c-format
 msgid "Oracle (any version)"
 msgstr "Oracle (any version)"
 
-#. Tag: literal
-#: configuration.xml:1063
-#, no-c-format
-msgid "org.hibernate.dialect.OracleDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
 msgstr "org.hibernate.dialect.OracleDialect"
 
-#. Tag: entry
-#: configuration.xml:1066
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "Oracle 9i"
 msgstr "Oracle 9i/10g"
 
-#. Tag: literal
-#: configuration.xml:1066
+#. Tag: para
 #, fuzzy, no-c-format
-msgid "org.hibernate.dialect.Oracle9iDialect"
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
 msgstr "org.hibernate.dialect.Oracle9Dialect"
 
-#. Tag: entry
-#: configuration.xml:1069
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "Oracle 10g"
 msgstr "Oracle 9i/10g"
 
-#. Tag: literal
-#: configuration.xml:1069
+#. Tag: para
 #, fuzzy, no-c-format
-msgid "org.hibernate.dialect.Oracle10gDialect"
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
 msgstr "org.hibernate.dialect.OracleDialect"
 
-#. Tag: entry
-#: configuration.xml:1072
+#. Tag: para
 #, no-c-format
 msgid "Sybase"
 msgstr "Sybase"
 
-#. Tag: literal
-#: configuration.xml:1072
-#, no-c-format
-msgid "org.hibernate.dialect.SybaseDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
 msgstr "org.hibernate.dialect.SybaseDialect"
 
-#. Tag: entry
-#: configuration.xml:1075
+#. Tag: para
 #, no-c-format
 msgid "Sybase Anywhere"
 msgstr "Sybase Anywhere"
 
-#. Tag: literal
-#: configuration.xml:1075
-#, no-c-format
-msgid "org.hibernate.dialect.SybaseAnywhereDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
 msgstr "org.hibernate.dialect.SybaseAnywhereDialect"
 
-#. Tag: entry
-#: configuration.xml:1078
+#. Tag: para
 #, no-c-format
 msgid "Microsoft SQL Server"
 msgstr "Microsoft SQL Server"
 
-#. Tag: literal
-#: configuration.xml:1078
-#, no-c-format
-msgid "org.hibernate.dialect.SQLServerDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
 msgstr "org.hibernate.dialect.SQLServerDialect"
 
-#. Tag: entry
-#: configuration.xml:1081
+#. Tag: para
 #, no-c-format
 msgid "SAP DB"
 msgstr "SAP DB"
 
-#. Tag: literal
-#: configuration.xml:1081
-#, no-c-format
-msgid "org.hibernate.dialect.SAPDBDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
 msgstr "org.hibernate.dialect.SAPDBDialect"
 
-#. Tag: entry
-#: configuration.xml:1084
+#. Tag: para
 #, no-c-format
 msgid "Informix"
 msgstr "Informix"
 
-#. Tag: literal
-#: configuration.xml:1084
-#, no-c-format
-msgid "org.hibernate.dialect.InformixDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
 msgstr "org.hibernate.dialect.InformixDialect"
 
-#. Tag: entry
-#: configuration.xml:1087
+#. Tag: para
 #, no-c-format
 msgid "HypersonicSQL"
 msgstr "HypersonicSQL"
 
-#. Tag: literal
-#: configuration.xml:1087
-#, no-c-format
-msgid "org.hibernate.dialect.HSQLDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
 msgstr "org.hibernate.dialect.HSQLDialect"
 
-#. Tag: entry
-#: configuration.xml:1090
+#. Tag: para
 #, no-c-format
 msgid "Ingres"
 msgstr "Ingres"
 
-#. Tag: literal
-#: configuration.xml:1090
-#, no-c-format
-msgid "org.hibernate.dialect.IngresDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
 msgstr "org.hibernate.dialect.IngresDialect"
 
-#. Tag: entry
-#: configuration.xml:1093
+#. Tag: para
 #, no-c-format
 msgid "Progress"
 msgstr "Progress"
 
-#. Tag: literal
-#: configuration.xml:1093
-#, no-c-format
-msgid "org.hibernate.dialect.ProgressDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
 msgstr "org.hibernate.dialect.ProgressDialect"
 
-#. Tag: entry
-#: configuration.xml:1096
+#. Tag: para
 #, no-c-format
 msgid "Mckoi SQL"
 msgstr "Mckoi SQL"
 
-#. Tag: literal
-#: configuration.xml:1096
-#, no-c-format
-msgid "org.hibernate.dialect.MckoiDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
 msgstr "org.hibernate.dialect.MckoiDialect"
 
-#. Tag: entry
-#: configuration.xml:1099
+#. Tag: para
 #, no-c-format
 msgid "Interbase"
 msgstr "Interbase"
 
-#. Tag: literal
-#: configuration.xml:1099
-#, no-c-format
-msgid "org.hibernate.dialect.InterbaseDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
 msgstr "org.hibernate.dialect.InterbaseDialect"
 
-#. Tag: entry
-#: configuration.xml:1102
+#. Tag: para
 #, no-c-format
 msgid "Pointbase"
 msgstr "Pointbase"
 
-#. Tag: literal
-#: configuration.xml:1102
-#, no-c-format
-msgid "org.hibernate.dialect.PointbaseDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
 msgstr "org.hibernate.dialect.PointbaseDialect"
 
-#. Tag: entry
-#: configuration.xml:1105
+#. Tag: para
 #, no-c-format
 msgid "FrontBase"
 msgstr "FrontBase"
 
-#. Tag: literal
-#: configuration.xml:1105
-#, no-c-format
-msgid "org.hibernate.dialect.FrontbaseDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
 msgstr "org.hibernate.dialect.FrontbaseDialect"
 
-#. Tag: entry
-#: configuration.xml:1108
+#. Tag: para
 #, no-c-format
 msgid "Firebird"
 msgstr "Firebird"
 
-#. Tag: literal
-#: configuration.xml:1108
-#, no-c-format
-msgid "org.hibernate.dialect.FirebirdDialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
 msgstr "org.hibernate.dialect.FirebirdDialect"
 
 #. Tag: title
-#: configuration.xml:1117
 #, no-c-format
 msgid "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, "
@@ -1964,7 +1659,6 @@
 "<literal>SELECT</literal> 속에서 검색되게끔 허용해준다."
 
 #. Tag: para
-#: configuration.xml:1128
 #, fuzzy, no-c-format
 msgid ""
 "Outer join fetching can be disabled <emphasis>globally</emphasis> by setting "
@@ -1980,19 +1674,16 @@
 "outer join fetching을 사용 가능하도록 만든다."
 
 #. Tag: para
-#: configuration.xml:1136
-#, no-c-format
-msgid "See <xref linkend=\"performance-fetching\"/> for more information."
+#, fuzzy, no-c-format
+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"
 
 #. Tag: para
-#: configuration.xml:1145
 #, fuzzy, no-c-format
 msgid ""
 "Oracle limits the size of <literal>byte</literal> arrays that can be passed "
@@ -2008,31 +1699,27 @@
 "능하게 해야 할 것이다. <emphasis>이것은 오직 시스템 레벨 설정이다.</emphasis>"
 
 #. Tag: title
-#: configuration.xml:1156
 #, no-c-format
 msgid "Second-level and query cache"
 msgstr "Second-level 캐시와 query 캐시"
 
 #. 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."
+"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 "Query Language 치환"
 
 #. Tag: para
-#: configuration.xml:1170
 #, fuzzy, no-c-format
 msgid ""
 "You can define new Hibernate query tokens using <literal>hibernate.query."
@@ -2041,14 +1728,7 @@
 "당신은 <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"
-
 #. Tag: para
-#: configuration.xml:1177
 #, fuzzy, no-c-format
 msgid ""
 "This would cause the tokens <literal>true</literal> and <literal>false</"
@@ -2057,14 +1737,7 @@
 "은<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"
-
 #. Tag: para
-#: configuration.xml:1184
 #, fuzzy, no-c-format
 msgid ""
 "This would allow you to rename the SQL <literal>LOWER</literal> function."
@@ -2073,13 +1746,11 @@
 "허용해 줄 것이다"
 
 #. Tag: title
-#: configuration.xml:1191
 #, no-c-format
 msgid "Hibernate statistics"
 msgstr "Hibernate 통계"
 
 #. Tag: para
-#: configuration.xml:1193
 #, fuzzy, no-c-format
 msgid ""
 "If you enable <literal>hibernate.generate_statistics</literal>, Hibernate "
@@ -2096,13 +1767,11 @@
 "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 "
@@ -2120,7 +1789,6 @@
 msgstr ""
 
 #. Tag: para
-#: configuration.xml:1218
 #, fuzzy, no-c-format
 msgid ""
 "It is recommended that you familiarize yourself with Hibernate's log "
@@ -2135,67 +1803,56 @@
 "다음에 있다:"
 
 #. Tag: title
-#: configuration.xml:1227
 #, no-c-format
 msgid "Hibernate Log Categories"
 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
-#, no-c-format
-msgid "org.hibernate.SQL"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
 msgstr "org.hibernate.SQL"
 
-#. Tag: entry
-#: configuration.xml:1240
+#. Tag: para
 #, no-c-format
 msgid "Log all SQL DML statements as they are executed"
 msgstr "SQL DML 문장들이 실행될 때 그것들 모두를 로그 시킨다"
 
-#. Tag: literal
-#: configuration.xml:1243
-#, no-c-format
-msgid "org.hibernate.type"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
 msgstr "org.hibernate.type"
 
-#. Tag: entry
-#: configuration.xml:1244
+#. Tag: para
 #, no-c-format
 msgid "Log all JDBC parameters"
 msgstr "모든 JDBC 파라미터들을 로그시킨다"
 
-#. Tag: literal
-#: configuration.xml:1247
-#, no-c-format
-msgid "org.hibernate.tool.hbm2ddl"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.tool. hbm2ddl</literal>"
 msgstr "org.hibernate.tool.hbm2ddl"
 
-#. Tag: entry
-#: configuration.xml:1248
+#. Tag: para
 #, no-c-format
 msgid "Log all SQL DDL statements as they are executed"
 msgstr "SQL DDL 문장들이 실행될 때 그것들 모두를 로그 시킨다"
 
-#. Tag: literal
-#: configuration.xml:1251
-#, no-c-format
-msgid "org.hibernate.pretty"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
 msgstr "org.hibernate.pretty"
 
-#. Tag: entry
-#: configuration.xml:1252
+#. Tag: para
 #, no-c-format
 msgid ""
 "Log the state of all entities (max 20 entities) associated with the session "
@@ -2204,74 +1861,62 @@
 "flush 시점에서 세션과 연관된 모든 엔티티들(최대 20개의 엔티티들)의 상태를 로"
 "그 시킨다"
 
-#. Tag: literal
-#: configuration.xml:1258
-#, no-c-format
-msgid "org.hibernate.cache"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
 msgstr "org.hibernate.cache"
 
-#. Tag: entry
-#: configuration.xml:1259
+#. Tag: para
 #, no-c-format
 msgid "Log all second-level cache activity"
 msgstr "모든 second-level 캐시 액티비티를 로그시킨다"
 
-#. Tag: literal
-#: configuration.xml:1262
-#, no-c-format
-msgid "org.hibernate.transaction"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate. transaction</literal>"
 msgstr "org.hibernate.transaction"
 
-#. Tag: entry
-#: configuration.xml:1263
+#. Tag: para
 #, no-c-format
 msgid "Log transaction related activity"
 msgstr "트랜잭션 관련 액티비티를 로그 시킨다"
 
-#. Tag: literal
-#: configuration.xml:1266
-#, no-c-format
-msgid "org.hibernate.jdbc"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
 msgstr "org.hibernate.jdbc"
 
-#. Tag: entry
-#: configuration.xml:1267
+#. Tag: para
 #, no-c-format
 msgid "Log all JDBC resource acquisition"
 msgstr "모든 JDBC 리소스 취득을 로그 시킨다"
 
-#. Tag: literal
-#: configuration.xml:1270
-#, no-c-format
-msgid "org.hibernate.hql.ast.AST"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.hql. ast.AST</literal>"
 msgstr "org.hibernate.hql.ast.AST"
 
-#. Tag: entry
-#: configuration.xml:1271
+#. Tag: para
 #, no-c-format
 msgid "Log HQL and SQL ASTs during query parsing"
 msgstr "질의 파싱 동안에 HQL AST와 SQL AST를 로그시킨다"
 
-#. Tag: literal
-#: configuration.xml:1276
-#, no-c-format
-msgid "org.hibernate.secure"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
 msgstr "org.hibernate.secure"
 
-#. Tag: entry
-#: configuration.xml:1277
+#. Tag: para
 #, no-c-format
 msgid "Log all JAAS authorization requests"
 msgstr "모든 JAAS 허가 요청들을 로그시킨다"
 
-#. Tag: literal
-#: configuration.xml:1280
-#, no-c-format
-msgid "org.hibernate"
-msgstr "org.hibernate"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr "JNDI-bound <literal>SessionFactory</literal>"
 
-#. Tag: entry
-#: configuration.xml:1281
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "Log everything. This is a lot of information but it is useful for "
@@ -2279,7 +1924,6 @@
 msgstr "모든 것을 로그시킨다(많은 정보이지만, 문제해결에 매우 유용하다)"
 
 #. Tag: para
-#: configuration.xml:1290
 #, no-c-format
 msgid ""
 "When developing applications with Hibernate, you should almost always work "
@@ -2293,13 +1937,11 @@
 "티를 이용가능하게 하여 작업해야 할 것이다."
 
 #. Tag: title
-#: configuration.xml:1300
 #, no-c-format
 msgid "Implementing a <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 "
@@ -2310,7 +1952,6 @@
 "용해준다."
 
 #. Tag: para
-#: configuration.xml:1307
 #, fuzzy, no-c-format
 msgid ""
 "You can provide rules for automatically generating database identifiers from "
@@ -2328,7 +1969,6 @@
 "주 작은 작품이다."
 
 #. Tag: para
-#: configuration.xml:1316
 #, fuzzy, no-c-format
 msgid ""
 "You can specify a different strategy by calling <literal>Configuration."
@@ -2337,19 +1977,7 @@
 "당신은 매핑들을 추가하기 이전에 <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 ""
-
 #. Tag: para
-#: configuration.xml:1323
 #, no-c-format
 msgid ""
 "<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> is a built-in "
@@ -2359,13 +1987,11 @@
 "션들에 대한 유용한 시작점일 수 있는 미리 빌드된 방도이다."
 
 #. Tag: title
-#: configuration.xml:1331
 #, no-c-format
 msgid "XML configuration file"
 msgstr "XML 구성 파일"
 
 #. Tag: para
-#: configuration.xml:1333
 #, no-c-format
 msgid ""
 "An alternative approach to configuration is to specify a full configuration "
@@ -2379,7 +2005,6 @@
 "로퍼티들을 중복정의하는데 사용될 수 있다."
 
 #. 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 "
@@ -2388,52 +2013,7 @@
 "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 ""
-
 #. Tag: para
-#: configuration.xml:1347
 #, fuzzy, no-c-format
 msgid ""
 "The advantage of this approach is the externalization of the mapping file "
@@ -2451,48 +2031,26 @@
 "것임을 노트하라."
 
 #. Tag: para
-#: configuration.xml:1356
 #, fuzzy, no-c-format
 msgid "With the XML configuration, starting Hibernate is then as simple as:"
 msgstr "Hibernate 구성으로, 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
 msgid "You can select a different XML configuration file using:"
 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 어플리케이션 서버 통합"
 
 #. Tag: para
-#: configuration.xml:1373
 #, no-c-format
 msgid "Hibernate has the following integration points for J2EE infrastructure:"
 msgstr "Hibernate는 J2EE 인프라스트럭처에 대한 다음 통합 점들을 갖고 있다:"
 
 #. Tag: para
-#: configuration.xml:1379
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC "
@@ -2513,7 +2071,6 @@
 "Hibernate <literal>Transaction</literal> API를 사용하고자 원할 수도 있다."
 
 #. Tag: para
-#: configuration.xml:1394
 #, no-c-format
 msgid ""
 "<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its "
@@ -2523,7 +2080,6 @@
 "<literal>SessionFactory</literal>를 JNDI에 바인드 시킬 수 있다."
 
 #. Tag: para
-#: configuration.xml:1403
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>JTA Session binding:</emphasis> the Hibernate <literal>Session</"
@@ -2543,7 +2099,6 @@
 "UserTransaction))이다."
 
 #. Tag: para
-#: configuration.xml:1416
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>JMX deployment:</emphasis> if you have a JMX capable application "
@@ -2563,7 +2118,6 @@
 "Hibernate가 시작되기 전에 이용 가능해야 한다)."
 
 #. Tag: para
-#: configuration.xml:1427
 #, no-c-format
 msgid ""
 "Depending on your environment, you might have to set the configuration "
@@ -2576,13 +2130,11 @@
 "될 수도 있다."
 
 #. 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 "
@@ -2600,7 +2152,6 @@
 "<literal>UserTransaction</literal>을 호출하고자 원할 수 있다."
 
 #. Tag: para
-#: configuration.xml:1444
 #, no-c-format
 msgid ""
 "To keep your code portable between these two (and other) environments we "
@@ -2618,31 +2169,26 @@
 "다."
 
 #. Tag: para
-#: configuration.xml:1451
 #, fuzzy, no-c-format
 msgid "There are three standard, or built-in, choices:"
 msgstr "세 개의 표준(미리 만들어진) 선택들이 존재한다:"
 
-#. Tag: literal
-#: configuration.xml:1457
-#, no-c-format
-msgid "org.hibernate.transaction.JDBCTransactionFactory"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
 msgstr "org.hibernate.transaction.JDBCTransactionFactory"
 
 #. Tag: para
-#: configuration.xml:1459
 #, no-c-format
 msgid "delegates to database (JDBC) transactions (default)"
 msgstr "데이터베이스 (JDBC) 트랜잭션들에게 위임시킨다(디폴트)"
 
-#. Tag: literal
-#: configuration.xml:1463
-#, no-c-format
-msgid "org.hibernate.transaction.JTATransactionFactory"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
 msgstr "org.hibernate.transaction.JTATransactionFactory"
 
 #. Tag: para
-#: configuration.xml:1465
 #, fuzzy, no-c-format
 msgid ""
 "delegates to container-managed transactions if an existing transaction is "
@@ -2653,20 +2199,17 @@
 "중일 경우에 container-managed transaction에게 위임시키고, 그 밖의 경우 새로"
 "운 트랜잭션이 시작되고 bean-managed transaction이 사용된다."
 
-#. Tag: literal
-#: configuration.xml:1473
-#, no-c-format
-msgid "org.hibernate.transaction.CMTTransactionFactory"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
 msgstr "org.hibernate.transaction.CMTTransactionFactory"
 
 #. Tag: para
-#: configuration.xml:1475
 #, no-c-format
 msgid "delegates to container-managed JTA transactions"
 msgstr "container-managed JTA 트랜잭션들에게 위임시킨다"
 
 #. Tag: para
-#: configuration.xml:1480
 #, fuzzy, no-c-format
 msgid ""
 "You can also define your own transaction strategies (for a CORBA transaction "
@@ -2676,7 +2219,6 @@
 "의할 수도 있다."
 
 #. Tag: para
-#: configuration.xml:1485
 #, fuzzy, no-c-format
 msgid ""
 "Some features in Hibernate (i.e., the second level cache, Contextual "
@@ -2693,151 +2235,139 @@
 "한다. 왜냐하면 J2EE가 한 개의 메커니즘을 표준화 시키고 있지 않기 때문이다:"
 
 #. 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 "트랜잭션 팩토리"
 
-#. Tag: entry
-#: configuration.xml:1500
+#. Tag: para
 #, no-c-format
 msgid "Application Server"
 msgstr "어플리케이션 서버"
 
-#. Tag: literal
-#: configuration.xml:1505
-#, no-c-format
-msgid "org.hibernate.transaction.JBossTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
 msgstr "org.hibernate.transaction.JBossTransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1506
+#. Tag: para
 #, no-c-format
 msgid "JBoss"
 msgstr "JBoss"
 
-#. Tag: literal
-#: configuration.xml:1509
-#, no-c-format
-msgid "org.hibernate.transaction.WeblogicTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</"
+"literal>"
 msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1510
+#. Tag: para
 #, no-c-format
 msgid "Weblogic"
 msgstr "Weblogic"
 
-#. Tag: literal
-#: configuration.xml:1513
-#, no-c-format
-msgid "org.hibernate.transaction.WebSphereTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</"
+"literal>"
 msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1514
+#. Tag: para
 #, no-c-format
 msgid "WebSphere"
 msgstr "WebSphere"
 
-#. Tag: literal
-#: configuration.xml:1517
-#, no-c-format
-msgid "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</"
+"literal>"
 msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
 
-#. Tag: entry
-#: configuration.xml:1518
+#. Tag: para
 #, no-c-format
 msgid "WebSphere 6"
 msgstr "WebSphere 6"
 
-#. Tag: literal
-#: configuration.xml:1521
-#, no-c-format
-msgid "org.hibernate.transaction.OrionTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
 msgstr "org.hibernate.transaction.OrionTransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1522
+#. Tag: para
 #, no-c-format
 msgid "Orion"
 msgstr "Orion"
 
-#. Tag: literal
-#: configuration.xml:1525
-#, no-c-format
-msgid "org.hibernate.transaction.ResinTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
 msgstr "org.hibernate.transaction.ResinTransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1526
+#. Tag: para
 #, no-c-format
 msgid "Resin"
 msgstr "Resin"
 
-#. Tag: literal
-#: configuration.xml:1529
-#, no-c-format
-msgid "org.hibernate.transaction.JOTMTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
 msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1530
+#. Tag: para
 #, no-c-format
 msgid "JOTM"
 msgstr "JOTM"
 
-#. Tag: literal
-#: configuration.xml:1533
-#, no-c-format
-msgid "org.hibernate.transaction.JOnASTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
 msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1534
+#. Tag: para
 #, no-c-format
 msgid "JOnAS"
 msgstr "JOnAS"
 
-#. Tag: literal
-#: configuration.xml:1537
-#, no-c-format
-msgid "org.hibernate.transaction.JRun4TransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
 msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup"
 
-#. Tag: entry
-#: configuration.xml:1538
+#. Tag: para
 #, no-c-format
 msgid "JRun4"
 msgstr "JRun4"
 
-#. Tag: literal
-#: configuration.xml:1541
-#, no-c-format
-msgid "org.hibernate.transaction.BESTransactionManagerLookup"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
 msgstr "org.hibernate.transaction.BESTransactionManagerLookup"
 
-#. 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-bound <literal>SessionFactory</literal>"
 
 #. Tag: para
-#: configuration.xml:1553
 #, fuzzy, no-c-format
 msgid ""
 "A JNDI-bound Hibernate <literal>SessionFactory</literal> can simplify the "
@@ -2851,7 +2381,6 @@
 "단순하게 둘 다 동일한 레지스트리를 사용한다는 점을 노트하라!"
 
 #. Tag: para
-#: configuration.xml:1560
 #, fuzzy, no-c-format
 msgid ""
 "If you wish to have the <literal>SessionFactory</literal> bound to a JNDI "
@@ -2870,7 +2399,6 @@
 "다.)"
 
 #. Tag: para
-#: configuration.xml:1568
 #, no-c-format
 msgid ""
 "When binding the <literal>SessionFactory</literal> to JNDI, Hibernate will "
@@ -2885,7 +2413,6 @@
 "될 것이다."
 
 #. Tag: para
-#: configuration.xml:1575
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate will automatically place the <literal>SessionFactory</literal> in "
@@ -2902,7 +2429,6 @@
 "떤 시작 코드 (또는 유틸리티 클래스) 내에서 이것을 호출할 것임을 의미한다."
 
 #. Tag: para
-#: configuration.xml:1582
 #, fuzzy, no-c-format
 msgid ""
 "If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other "
@@ -2914,7 +2440,6 @@
 "literal>를 얻을 수 있다."
 
 #. Tag: para
-#: configuration.xml:1587
 #, fuzzy, no-c-format
 msgid ""
 "It is recommended that you bind the <literal>SessionFactory</literal> to "
@@ -2934,19 +2459,17 @@
 "임을 노트하라&mdash; 1장을 보라."
 
 #. Tag: title
-#: configuration.xml:1599
 #, no-c-format
 msgid "Current Session context management with JTA"
 msgstr "Current Session context management with JTA"
 
 #. 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 "
+"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()</"
@@ -3001,13 +2524,11 @@
 "의 경우에 선언적인 트랜잭션 경계설정이 선호된다."
 
 #. Tag: title
-#: configuration.xml:1624
 #, no-c-format
 msgid "JMX deployment"
 msgstr "JMX 배치"
 
 #. Tag: para
-#: configuration.xml:1626
 #, fuzzy, no-c-format
 msgid ""
 "The line <literal>cfg.buildSessionFactory()</literal> still has to be "
@@ -3023,7 +2544,6 @@
 "<emphasis>managed service</emphasis>로서 배치할 수 있다."
 
 #. Tag: para
-#: configuration.xml:1634
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</"
@@ -3036,59 +2556,7 @@
 "다. 실제 배치와 구성은 벤더 지정적이다. 다음은 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 ""
-
 #. Tag: para
-#: configuration.xml:1643
 #, fuzzy, no-c-format
 msgid ""
 "This file is deployed in a directory called <literal>META-INF</literal> and "
@@ -3110,6 +2578,21 @@
 "위해 메인 서비스 아카이브 속에 이 EJB JAR 파일을 포함시킬 수도 있다. JMX 서비"
 "스와 EJB 배치에 관한 추가 정보는 JBoss AS 문서를 참조하라."
 
+#~ msgid "JDBC URL"
+#~ msgstr "jdbc URL"
+
+#~ msgid "database user"
+#~ msgstr "데이터베이스 사용자"
+
+#~ 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 ""
 #~ "<literal>hibernate.properties</literal> is the easiest approach if you "
 #~ "want to get started quickly."
@@ -3306,6 +2789,3 @@
 
 #~ msgid "hibernate.cfg.xml"
 #~ msgstr "hibernate.cfg.xml"
-
-#~ msgid "DB2"
-#~ msgstr "DB2"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/events.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/events.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/events.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: events.xml:29
 #, no-c-format
 msgid "Interceptors and events"
 msgstr "인터셉터들과 이벤트들"
 
 #. Tag: para
-#: events.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "It is useful for the application to react to certain events that occur "
@@ -29,13 +27,11 @@
 "기능의 구현을 허용해준다."
 
 #. Tag: title
-#: events.xml:38
 #, no-c-format
 msgid "Interceptors"
 msgstr "인터셉터들"
 
 #. Tag: para
-#: events.xml:40
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>Interceptor</literal> interface provides callbacks from the "
@@ -58,7 +54,6 @@
 "literal> 프로퍼티를 업데이트 한다."
 
 #. Tag: para
-#: events.xml:51
 #, fuzzy, no-c-format
 msgid ""
 "You can either implement <literal>Interceptor</literal> directly or extend "
@@ -67,97 +62,7 @@
 "당신은 <literal>Interceptor</literal>를 직접 구현해야 하거나 (더 좋게는) "
 "<literal>EmptyInterceptor</literal>를 확장(extend)해야 한다."
 
-#. Tag: programlisting
-#: events.xml:56
-#, 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 "
@@ -167,7 +72,6 @@
 "화 그리고 <literal>SessionFactory</literal>-영역화."
 
 #. Tag: para
-#: events.xml:63
 #, no-c-format
 msgid ""
 "A <literal>Session</literal>-scoped interceptor is specified when a session "
@@ -178,14 +82,7 @@
 "<literal>Interceptor</literal>를 수용하는 오버로드된 SessionFactory."
 "openSession() 메소드들 중 하나를 사용하여 열릴 때 지정된다."
 
-#. Tag: programlisting
-#: events.xml:69
-#, 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 "
@@ -206,21 +103,12 @@
 "야 한다. 왜냐하면 다중 세션들은 (잠정적으로) 이 인터셉터를 동시적으로 사용할 "
 "것이기 때문이다."
 
-#. 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 "이벤트 시스템"
 
 #. Tag: para
-#: events.xml:87
 #, fuzzy, no-c-format
 msgid ""
 "If you have to react to particular events in your persistence layer, you can "
@@ -233,7 +121,6 @@
 "있다."
 
 #. Tag: para
-#: events.xml:93
 #, fuzzy, no-c-format
 msgid ""
 "All the methods of the <literal>Session</literal> interface correlate to an "
@@ -266,7 +153,6 @@
 "이 있을 것이다."
 
 #. Tag: para
-#: events.xml:108
 #, fuzzy, no-c-format
 msgid ""
 "The listeners should be considered singletons. This means they are shared "
@@ -277,7 +163,6 @@
 "장하지 말아야 함을 의미한다."
 
 #. Tag: para
-#: events.xml:113
 #, fuzzy, no-c-format
 msgid ""
 "A custom listener implements the appropriate interface for the event it "
@@ -297,25 +182,7 @@
 "에 지정될 수 있다 (properties 파일을 통한 선언적인 구성은 지원되지 않는다). "
 "다음은 맞춤형 load 이벤트 리스너에 대한 예제이다:"
 
-#. 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 "
@@ -324,40 +191,12 @@
 "당신은 또한 디폴트 리스너에 덧붙여 그 리스너를 사용하도록 Hibernate에게 알려"
 "주는 구성 엔트리를 필요로 한다:"
 
-#. Tag: programlisting
-#: events.xml:130
-#, 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 ""
-
 #. 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 "
@@ -373,7 +212,6 @@
 "당신은 프로그래밍 방식의 등록 접근법을 사용해야 한다."
 
 #. Tag: para
-#: events.xml:146
 #, fuzzy, no-c-format
 msgid ""
 "Why implement an interface and define the specific type during "
@@ -388,13 +226,11 @@
 "전환시키는 것을 더 쉽게 해준다."
 
 #. Tag: title
-#: events.xml:156
 #, no-c-format
 msgid "Hibernate declarative security"
 msgstr "Hibernate 선언적인 보안"
 
 #. Tag: para
-#: events.xml:157
 #, fuzzy, no-c-format
 msgid ""
 "Usually, declarative security in Hibernate applications is managed in a "
@@ -408,7 +244,6 @@
 "션 기능이다."
 
 #. Tag: para
-#: events.xml:163
 #, no-c-format
 msgid ""
 "First, you must configure the appropriate event listeners, to enable the use "
@@ -417,22 +252,7 @@
 "먼저, 당신은 JAAS authorization 사용을 이용 가능하도록 하기 위해 적절한 이벤"
 "트 리스터들을 구성해야 한다."
 
-#. Tag: programlisting
-#: events.xml:168
-#, 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>&lt;listener type=\"...\" class=\"...\"/&gt;</literal> is "
@@ -446,7 +266,6 @@
 "축형임을 노트하라."
 
 #. Tag: para
-#: events.xml:176
 #, fuzzy, no-c-format
 msgid ""
 "Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
@@ -455,17 +274,7 @@
 "다음으로, 여전히 <literal>hibernate.cfg.xml</literal> 내에서 퍼미션들을 role"
 "들에 바인드 시킨다 :"
 
-#. 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_mappings.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_mappings.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_mappings.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,25 +11,21 @@
 "Content-Transfer-Encoding: 8bit\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
 msgid "This chapters explores some more complex association mappings."
 msgstr "이 장은 몇몇 보다 복잡한 연관 매핑들을 보여준다."
 
 #. Tag: title
-#: example_mappings.xml:37
 #, no-c-format
 msgid "Employer/Employee"
 msgstr "Employer/Employee"
 
 #. Tag: para
-#: example_mappings.xml:39
 #, fuzzy, no-c-format
 msgid ""
 "The following model of the relationship between <literal>Employer</literal> "
@@ -45,124 +41,23 @@
 "화 시키는데 사용된다."
 
 #. Tag: para
-#: example_mappings.xml:56
 #, fuzzy, no-c-format
 msgid "Here is a possible mapping document:"
 msgstr "다음은 가능한 매핑 문서이다:"
 
-#. Tag: programlisting
-#: example_mappings.xml:60
-#, 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>에 의해 생성된 테이블 스키마이"
 "다."
 
-#. 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"
 
 #. Tag: para
-#: example_mappings.xml:73
 #, fuzzy, no-c-format
 msgid ""
 "Consider the following model of the relationships between <literal>Work</"
@@ -182,71 +77,12 @@
 "것이다."
 
 #. 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
-#, 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>, "
@@ -261,55 +97,12 @@
 "을 작업들에 연결시키는 연관 테이블이다. 다음은 <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"
 
 #. Tag: para
-#: example_mappings.xml:112
 #, fuzzy, no-c-format
 msgid ""
 "In this section we consider a model of the relationships between "
@@ -333,56 +126,11 @@
 "다."
 
 #. Tag: para
-#: example_mappings.xml:132
 #, fuzzy, no-c-format
 msgid "The mapping document will look like this:"
 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>, "
@@ -396,54 +144,12 @@
 "<literal>line_items</literal>는 또한 주문들을 제품들과 연결시키는 연관 테이블"
 "로서 동작한다."
 
-#. 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
 msgid ""
 "These examples are available from the Hibernate test suite. You will find "
@@ -455,337 +161,29 @@
 "literal> 폴더를 살펴보라."
 
 #. Tag: title
-#: example_mappings.xml:161
 #, no-c-format
 msgid "\"Typed\" one-to-one association"
 msgstr "\"형식화된(Typed)\" one-to-one 연관"
 
-#. 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 키 예제"
 
-#. 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"
 
-#. 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 "내용 기반 판별"
 
-#. 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 "대체 키들에 대한 연관들"
 
-#. 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 "TODO: put words around this stuff"
 #~ msgstr "TODO: 이 내용을 둘러싼 말들을 집어넣을 것."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_parentchild.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_parentchild.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_parentchild.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: example_parentchild.xml:29
 #, no-c-format
 msgid "Example: Parent/Child"
 msgstr "예제: 부모/자식"
 
 #. Tag: para
-#: example_parentchild.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "One of the first things that new users want to do with Hibernate is to model "
@@ -49,13 +47,11 @@
 "다!"
 
 #. Tag: title
-#: example_parentchild.xml:45
 #, no-c-format
 msgid "A note about collections"
 msgstr "콜렉션들에 관한 노트"
 
 #. Tag: para
-#: example_parentchild.xml:47
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate collections are considered to be a logical part of their owning "
@@ -67,7 +63,6 @@
 "음은 다음 결과들을 갖는다:"
 
 #. Tag: para
-#: example_parentchild.xml:54
 #, fuzzy, no-c-format
 msgid ""
 "When you remove/add an object from/to a collection, the version number of "
@@ -77,7 +72,6 @@
 "버전 번호가 증가된다."
 
 #. Tag: para
-#: example_parentchild.xml:60
 #, fuzzy, no-c-format
 msgid ""
 "If an object that was removed from a collection is an instance of a value "
@@ -92,7 +86,6 @@
 "가시키는 것은 그것의 상태가 즉시 영속화 되도록 강제시킬 것이다."
 
 #. Tag: para
-#: example_parentchild.xml:68
 #, fuzzy, no-c-format
 msgid ""
 "Conversely, if an entity is removed from a collection (a one-to-many or many-"
@@ -108,7 +101,6 @@
 "티가 영속화 되도록 강제시키지 않는다."
 
 #. Tag: para
-#: example_parentchild.xml:78
 #, fuzzy, no-c-format
 msgid ""
 "Adding an entity to a collection, by default, merely creates a link between "
@@ -124,13 +116,11 @@
 "있다."
 
 #. Tag: title
-#: example_parentchild.xml:88
 #, no-c-format
 msgid "Bidirectional one-to-many"
 msgstr "ì–‘ë°©í–¥ one-to-many"
 
 #. Tag: para
-#: example_parentchild.xml:90
 #, no-c-format
 msgid ""
 "Suppose we start with a simple <literal>&lt;one-to-many&gt;</literal> "
@@ -139,41 +129,17 @@
 "<literal>Parent</literal>로부터 <literal>Child</literal>로의 간단한 "
 "<literal>&lt;one-to-many&gt;</literal> 연관관계로 시작한다고 가정하자."
 
-#. 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 ""
-
 #. Tag: para
-#: example_parentchild.xml:97
 #, fuzzy, no-c-format
 msgid "If we were to execute the following code:"
 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 문장들을 실행할 것이다:"
 
 #. Tag: para
-#: example_parentchild.xml:109
 #, no-c-format
 msgid ""
 "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
@@ -181,7 +147,6 @@
 "<literal>c</literal>에 대한 레코드를 생성시키는 <literal>INSERT</literal>"
 
 #. Tag: para
-#: example_parentchild.xml:112
 #, no-c-format
 msgid ""
 "an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
@@ -191,7 +156,6 @@
 "<literal>UPDATE</literal>"
 
 #. Tag: para
-#: example_parentchild.xml:119
 #, fuzzy, no-c-format
 msgid ""
 "This is not only inefficient, but also violates any <literal>NOT NULL</"
@@ -204,24 +168,12 @@
 "에서 <literal>not-null=\"true\"</literal>를 지정함으로써 null 허용 가능 컨스"
 "트레인트 위반을 정정할 수 있다:"
 
-#. 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
 msgid ""
 "The underlying cause of this behavior is that the link (the foreign key "
@@ -236,16 +188,7 @@
 "지 않는다는 점이다. 따라서 해결책은 <literal>Child</literal> 매핑의 링크 부분"
 "을 만드는 것이다."
 
-#. Tag: programlisting
-#: example_parentchild.xml:137
-#, 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 "
@@ -255,7 +198,6 @@
 "래스에 추가시킬 필요가 있다.)"
 
 #. Tag: para
-#: example_parentchild.xml:143
 #, fuzzy, no-c-format
 msgid ""
 "Now that the <literal>Child</literal> entity is managing the state of the "
@@ -266,44 +208,19 @@
 "고, 우리는 링크를 업데이트 시키지 말도록 콜렉션에게 통보한다. 우리는 "
 "<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
 msgid "The following code would be used to add a new <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
 msgid "Only one SQL <literal>INSERT</literal> would now be issued."
 msgstr ""
 "그리고 이제, 유일하게 한 개의 SQL <literal>INSERT</literal>가 실행될 것이다!"
 
 #. Tag: para
-#: example_parentchild.xml:160
 #, fuzzy, no-c-format
 msgid ""
 "You could also create an <literal>addChild()</literal> method of "
@@ -312,41 +229,17 @@
 "약간 거칠게, 우리는 <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
 msgid "The code to add a <literal>Child</literal> looks like this:"
 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 "케스케이딩 생명주기"
 
 #. Tag: para
-#: example_parentchild.xml:178
 #, fuzzy, no-c-format
 msgid ""
 "You can address the frustrations of the explicit call to <literal>save()</"
@@ -355,34 +248,12 @@
 "<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
 msgid "This simplifies the code above to:"
 msgstr "다음은 위의 코드를 단순화 시킨다"
 
-#. Tag: programlisting
-#: example_parentchild.xml:189
-#, 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 "
@@ -393,34 +264,12 @@
 "해 반복하는 것을 필요로 하지 않는다. 다음은 데이터베이스로부터 <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
 msgid "However, the following code:"
 msgstr "하지만, 다음 코드"
 
-#. Tag: programlisting
-#: example_parentchild.xml:202
-#, 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 "
@@ -434,19 +283,7 @@
 "적으로 <literal>Child</literal>를 <literal>delete()</literal> 시킬 필요가 있"
 "다."
 
-#. Tag: programlisting
-#: example_parentchild.xml:210
-#, 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 "
@@ -459,19 +296,7 @@
 "literal>를 제거할 경우, 우리는 그것이 정말로 삭제되기를 원한다. 이를 위해 우"
 "리는 <literal>cascade=\"all-delete-orphan\"</literal>을 사용해야 한다."
 
-#. Tag: programlisting
-#: example_parentchild.xml:218
-#, 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\"</"
@@ -487,13 +312,11 @@
 "</literal>를 호출하는 것으로는 충분하지 않다."
 
 #. Tag: title
-#: example_parentchild.xml:230
 #, no-c-format
 msgid "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</"
@@ -506,7 +329,7 @@
 "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 ""
@@ -524,7 +347,6 @@
 "로 지정할 필요가 없다.</emphasis>"
 
 #. Tag: para
-#: example_parentchild.xml:244
 #, fuzzy, no-c-format
 msgid ""
 "The following code will update <literal>parent</literal> and <literal>child</"
@@ -533,20 +355,7 @@
 "다음 코드는 <literal>parent</literal>와 <literal>child</literal>를 업데이트하"
 "고 <literal>newChild</literal>를 삽입시킬 것이다."
 
-#. Tag: programlisting
-#: example_parentchild.xml:249
-#, 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 "
@@ -566,13 +375,11 @@
 "존재하는지를 알기 위해 데이터베이스를 질의할 것이다."
 
 #. Tag: title
-#: example_parentchild.xml:284
 #, no-c-format
 msgid "Conclusion"
 msgstr "ê²°ë¡ "
 
 #. Tag: para
-#: example_parentchild.xml:286
 #, fuzzy, no-c-format
 msgid ""
 "The sections we have just covered can be a bit confusing. However, in "
@@ -584,7 +391,6 @@
 "들은 많은 장소들에서 부모/자식 패턴을 사용한다."
 
 #. Tag: para
-#: example_parentchild.xml:291
 #, fuzzy, no-c-format
 msgid ""
 "We mentioned an alternative in the first paragraph. None of the above issues "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_weblog.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_weblog.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/example_weblog.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,19 +11,16 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: example_weblog.xml:29
 #, no-c-format
 msgid "Example: Weblog Application"
 msgstr "예제: Weblog 어플리케이션"
 
 #. Tag: title
-#: example_weblog.xml:32
 #, no-c-format
 msgid "Persistent Classes"
 msgstr "영속 클래스들"
 
 #. Tag: para
-#: example_weblog.xml:34
 #, fuzzy, no-c-format
 msgid ""
 "The persistent classes here represent a weblog and an item posted in a "
@@ -34,203 +31,22 @@
 "표준 부모/자식 관계로 모형화 될 것이지만, 우리는 set 대신에 순서지워진 bag를 "
 "사용할 것이다."
 
-#. 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
 msgid "The XML mappings are now straightforward. For example:"
 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
 msgid ""
 "The following class demonstrates some of the kinds of things we can do with "
@@ -238,247 +54,3 @@
 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/filters.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/filters.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/filters.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: filters.xml:29
 #, no-c-format
 msgid "Filtering data"
 msgstr "데이터 필터링하기"
 
 #. Tag: para
-#: filters.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate3 provides an innovative new approach to handling data with "
@@ -31,13 +29,11 @@
 "라미터화 된 필터이다."
 
 #. Tag: title
-#: filters.xml:38
 #, no-c-format
 msgid "Hibernate filters"
 msgstr "Hibernate 필터들"
 
 #. Tag: para
-#: filters.xml:40
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate3 has the ability to pre-define filter criteria and attach those "
@@ -59,7 +55,6 @@
 "화 된다."
 
 #. Tag: para
-#: filters.xml:50
 #, no-c-format
 msgid ""
 "In order to use filters, they must first be defined and then attached to the "
@@ -71,56 +66,22 @@
 "가되어야 한다. 필터를 정의하기 위해, <literal>&lt;hibernate-mapping/&gt;</"
 "literal> 요소 내부에 <literal>&lt;filter-def/&gt;</literal> 요소를 사용하라:"
 
-#. Tag: programlisting
-#: filters.xml:56
-#, no-c-format
-msgid ""
-"<![CDATA[<filter-def name=\"myFilter\">\n"
-"    <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
-"</filter-def>]]>"
-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 ""
-
 #. 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 "또는 동시에 양자에(또는 각각의 여러번) 첨가될 수 있다."
 
 #. Tag: para
-#: filters.xml:74
 #, fuzzy, no-c-format
 msgid ""
 "The methods on <literal>Session</literal> are: <literal>enableFilter(String "
@@ -141,16 +102,7 @@
 "<literal>Filter</literal> 인터페이스의 인스턴스를 반환한다. 위에 정의된 간단"
 "한 필터를 사용하면, 이것은 다음과 같을 것이다:"
 
-#. Tag: programlisting
-#: filters.xml:83
-#, 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 "
@@ -160,53 +112,13 @@
 "method-chaining을 허용한다는 점을 노트하라."
 
 #. Tag: para
-#: filters.xml:89
 #, fuzzy, no-c-format
 msgid ""
 "The following is a full example, using temporal data with an effective "
 "record date pattern:"
 msgstr "유효한 기록 날짜 패턴을 가진 시간 데이터를 사용하는 전체 예제 :"
 
-#. Tag: programlisting
-#: filters.xml:93
-#, 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, "
@@ -215,22 +127,7 @@
 "그때 당신이 현재 유효한 레코드들을 항상 얻는 것을 확실히 하기 위해, employee "
 "데이터를 검색하기 전에 세션 상에 필터를 간단하게 이용 가능하게 하라:"
 
-#. Tag: programlisting
-#: filters.xml:100
-#, 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 "
@@ -243,7 +140,6 @@
 "인 현재 채용중인 직원들만을 반환할 것이다."
 
 #. Tag: para
-#: filters.xml:108
 #, fuzzy, no-c-format
 msgid ""
 "If you want to use filters with outer joining, either through HQL or load "
@@ -257,7 +153,6 @@
 "첫번째에 파라미터를 위치지워라."
 
 #. Tag: para
-#: filters.xml:115
 #, fuzzy, no-c-format
 msgid ""
 "After being defined, a filter might be attached to multiple entities and/or "
@@ -271,17 +166,7 @@
 "다. 따라서 <literal>&lt;filter-def/&gt;</literal>은 attribute 든 CDATA 든 어"
 "느것이든 디폴트 조건을 정의하는 것을 허용해준다:"
 
-#. Tag: programlisting
-#: filters.xml:122
-#, 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/inheritance_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/inheritance_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/inheritance_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,43 +11,36 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: inheritance_mapping.xml:29
 #, fuzzy, no-c-format
 msgid "Inheritance mapping"
 msgstr "상속 매핑"
 
 #. Tag: title
-#: inheritance_mapping.xml:32
 #, fuzzy, no-c-format
 msgid "The three strategies"
 msgstr "세 가지 방도들"
 
 #. Tag: para
-#: inheritance_mapping.xml:34
 #, no-c-format
 msgid "Hibernate supports the three basic inheritance mapping strategies:"
 msgstr "Hibernate는 세 가지 기본적인 상속 매핑 방도들을 지원한다:"
 
 #. Tag: para
-#: inheritance_mapping.xml:40
 #, no-c-format
 msgid "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 "table per subclass"
+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"
 
 #. Tag: para
-#: inheritance_mapping.xml:56
 #, no-c-format
 msgid ""
 "In addition, Hibernate supports a fourth, slightly different kind of "
@@ -55,13 +48,11 @@
 msgstr "게다가 Hibernate는 네 번째의 약간 다른 종류의 다형성을 지원한다:"
 
 #. Tag: para
-#: inheritance_mapping.xml:63
 #, no-c-format
 msgid "implicit polymorphism"
 msgstr "implicit polymorphism(함축적인 다형성)"
 
 #. Tag: para
-#: inheritance_mapping.xml:69
 #, fuzzy, no-c-format
 msgid ""
 "It is possible to use different mapping strategies for different branches of "
@@ -86,7 +77,6 @@
 "도와 table per subclass 방도를 함께 혼합시키는 것이 가능하다(아래를 보라)."
 
 #. Tag: para
-#: inheritance_mapping.xml:83
 #, fuzzy, no-c-format
 msgid ""
 "It is possible to define <literal>subclass</literal>, <literal>union-"
@@ -110,27 +100,12 @@
 "의 순서는 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"
 
 #. Tag: para
-#: inheritance_mapping.xml:100
 #, fuzzy, no-c-format
 msgid ""
 "Suppose we have an interface <literal>Payment</literal> with the "
@@ -143,32 +118,7 @@
 "<literal>Payment</literal>를 갖고 있다고 가정하자. table per hierarchy 매핑"
 "은 다음과 같을 것이다:"
 
-#. Tag: programlisting
-#: inheritance_mapping.xml:107
-#, 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 "
@@ -180,45 +130,16 @@
 "은 <literal>NOT NULL</literal> 컨스트레인트들을 가질 수 없다."
 
 #. Tag: title
-#: inheritance_mapping.xml:118
 #, no-c-format
 msgid "Table per subclass"
 msgstr "Table per subclass"
 
 #. Tag: para
-#: inheritance_mapping.xml:120
 #, fuzzy, no-c-format
 msgid "A table per subclass mapping looks like this:"
 msgstr "table per subclass 매핑은 다음과 같을 것이다:"
 
-#. 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
 msgid ""
 "Four tables are required. The three subclass tables have primary key "
@@ -230,13 +151,11 @@
 "one 연관이다)."
 
 #. Tag: title
-#: inheritance_mapping.xml:135
 #, fuzzy, no-c-format
 msgid "Table per subclass: using a discriminator"
 msgstr "discriminator를 사용하는, table per subclass"
 
 #. Tag: para
-#: inheritance_mapping.xml:137
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate's implementation of table per subclass does not require a "
@@ -257,41 +176,7 @@
 "이 <literal>&lt;subclass&gt;</literal>와 <literal>&lt;join&gt;</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 "
@@ -303,13 +188,11 @@
 "치시키지 않도록 Hibernate에게 알려준다."
 
 #. Tag: title
-#: inheritance_mapping.xml:160
 #, no-c-format
 msgid "Mixing table per class hierarchy with table per subclass"
 msgstr "table per class hierarchy와 table per subclass를 혼합하기"
 
 #. Tag: para
-#: inheritance_mapping.xml:162
 #, fuzzy, no-c-format
 msgid ""
 "You can even mix the table per hierarchy and table per subclass strategies "
@@ -318,34 +201,7 @@
 "당신은 이 접근법을 사용하여 table per hierarchy 방도와 table per subclass 방"
 "도를 혼합시킬 수 있다:"
 
-#. 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 "
@@ -356,22 +212,12 @@
 "대한 하나의 다형성 연관은 <literal>&lt;many-to-one&gt;</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"
 
 #. Tag: para
-#: inheritance_mapping.xml:182
 #, fuzzy, no-c-format
 msgid ""
 "There are two ways we can map the table per concrete class strategy. First, "
@@ -381,31 +227,7 @@
 "이 존재한다. 첫 번째는 <literal>&lt;union-subclass&gt;</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 "
@@ -415,7 +237,6 @@
 "퍼티들을 포함하여, 그 클래스의 모든 프로퍼티들에 대한 컬럼들을 정의한다."
 
 #. Tag: para
-#: inheritance_mapping.xml:194
 #, fuzzy, no-c-format
 msgid ""
 "The limitation of this approach is that if a property is mapped on the "
@@ -431,7 +252,6 @@
 "계층구조의 모든 unioned 서브클래스들을 가로질러 공유되어야 한다."
 
 #. Tag: para
-#: inheritance_mapping.xml:203
 #, fuzzy, no-c-format
 msgid ""
 "If your superclass is abstract, map it with <literal>abstract=\"true\"</"
@@ -445,48 +265,16 @@
 "스들을 소유하는데 필요하다."
 
 #. Tag: title
-#: inheritance_mapping.xml:213
 #, fuzzy, no-c-format
 msgid "Table per concrete class using implicit polymorphism"
 msgstr "함축적인 다형성을 사용하는, table per concrete class"
 
 #. 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 "
@@ -494,7 +282,7 @@
 "mapped in each of the subclasses. If you want to avoid duplication, consider "
 "using XML entities (for example, <literal>[ &lt;!ENTITY allproperties SYSTEM "
 "\"allproperties.xml\"&gt; ]</literal> in the <literal>DOCTYPE</literal> "
-"declaration and <literal>&amp;allproperties;</literal> in the mapping)."
+"declaration and <literal>&amp;allproperties&semi;</literal> in the mapping)."
 msgstr ""
 "어느 곳에서도 우리가 명시적으로 <literal>Payment</literal> 인터페이스를 언급"
 "하지 않음을 주목하라. 또한 <literal>Payment</literal>의 프로퍼티들이 서브클래"
@@ -505,7 +293,6 @@
 "literal>)."
 
 #. Tag: para
-#: inheritance_mapping.xml:231
 #, no-c-format
 msgid ""
 "The disadvantage of this approach is that Hibernate does not generate SQL "
@@ -515,7 +302,6 @@
 "<literal>UNION</literal>들을 생성시키는 않는다는 점이다."
 
 #. Tag: para
-#: inheritance_mapping.xml:236
 #, no-c-format
 msgid ""
 "For this mapping strategy, a polymorphic association to <literal>Payment</"
@@ -524,27 +310,12 @@
 "이 매핑 방도의 경우, <literal>Payment</literal>에 대한 하나의 다형성 연관은 "
 "대개 <literal>&lt;any&gt;</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
 msgid ""
 "Since the subclasses are each mapped in their own <literal>&lt;class&gt;</"
@@ -559,41 +330,7 @@
 "게 또 다른 상속 계층구조의 부분일 수 있다! (그리고 당신은 <literal>Payment</"
 "literal> 인터페이스에 대해 여전히 다형성 질의들을 사용할 수 있다.)"
 
-#. Tag: programlisting
-#: inheritance_mapping.xml:256
-#, 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 "
@@ -613,13 +350,11 @@
 "<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
 msgid ""
 "There are limitations to the \"implicit polymorphism\" approach to the table "
@@ -631,189 +366,158 @@
 "서는 다소 덜 제한적인 제약들이 존재한다:"
 
 #. Tag: para
-#: inheritance_mapping.xml:282
-#, no-c-format
+#, fuzzy, 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 ""
 "다음 표는 Hibernate에서 table per concrete-class 매핑들에 대한 제약들, 그리"
 "고 함축적인 다형성에 대한 제약들을 보여준다."
 
-#. Tag: title
-#: inheritance_mapping.xml:288
-#, no-c-format
-msgid "Features of inheritance mappings"
-msgstr "상속 매핑들의 특징들"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "table per class-heirarchy"
+msgstr "table per class-hierarchy"
 
-#. Tag: entry
-#: inheritance_mapping.xml:301
+#. Tag: para
 #, no-c-format
-msgid "Inheritance strategy"
-msgstr "상속 방도"
+msgid "Polymorphic many-to-one: <code>&lt;many-to-one&gt;</code>"
+msgstr ""
 
-#. Tag: entry
-#: inheritance_mapping.xml:302
+#. Tag: para
 #, no-c-format
-msgid "Polymorphic many-to-one"
-msgstr "다형성 다대일"
+msgid "Polymorphic one-to-one: <code>&lt;one-to-one&gt;</code>"
+msgstr ""
 
-#. Tag: entry
-#: inheritance_mapping.xml:303
+#. Tag: para
 #, no-c-format
-msgid "Polymorphic one-to-one"
-msgstr "다형성 일대일"
+msgid "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code>"
+msgstr ""
 
-#. Tag: entry
-#: inheritance_mapping.xml:304
+#. Tag: para
 #, no-c-format
-msgid "Polymorphic one-to-many"
-msgstr "다형성 일대다"
+msgid "Polymorphic many-to-many: <code>&lt;many-to-many&gt;</code>"
+msgstr ""
 
-#. Tag: entry
-#: inheritance_mapping.xml:305
+#. Tag: para
 #, no-c-format
-msgid "Polymorphic many-to-many"
-msgstr "다형성 다대다"
+msgid ""
+"Polymorphic <literal>load()</literal> or <literal>get()</literal>: <code>s."
+"get(Payment.class, id)</code>"
+msgstr ""
 
-#. Tag: entry
-#: inheritance_mapping.xml:306
+#. Tag: para
 #, no-c-format
-msgid "Polymorphic <literal>load()/get()</literal>"
+msgid "Polymorphic queries: <code>from Payment p</code>"
 msgstr ""
 
-#. Tag: entry
-#: inheritance_mapping.xml:307
-#, no-c-format
-msgid "Polymorphic queries"
-msgstr "다형성 질의들"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Polymorphic joins: <code>from Order o join o.payment p</code>"
+msgstr "from Order o join o.payment p"
 
-#. Tag: entry
-#: inheritance_mapping.xml:308
-#, no-c-format
-msgid "Polymorphic joins"
-msgstr "다형성 조인들"
-
-#. Tag: entry
-#: inheritance_mapping.xml:309
-#, no-c-format
-msgid "Outer join fetching"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Outer join fetching is supported."
 msgstr "Outer 조인 페칭"
 
-#. Tag: entry
-#: inheritance_mapping.xml:314
+#. Tag: term
 #, no-c-format
-msgid "table per class-hierarchy"
-msgstr "table per class-hierarchy"
+msgid "table per concrete-class (union-subclass)"
+msgstr "table per concrete-class (union-subclass)"
 
-#. Tag: literal
-#: inheritance_mapping.xml:315 inheritance_mapping.xml:326
-#: inheritance_mapping.xml:337
+#. Tag: para
 #, no-c-format
-msgid "&lt;many-to-one&gt;"
-msgstr "&lt;many-to-one&gt;"
+msgid ""
+"Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code> (for <code>inverse="
+"\"true\"</code> only)"
+msgstr ""
 
-#. Tag: literal
-#: inheritance_mapping.xml:316 inheritance_mapping.xml:327
-#: inheritance_mapping.xml:338
-#, no-c-format
-msgid "&lt;one-to-one&gt;"
-msgstr "&lt;one-to-one&gt;"
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "table per concrete class (implicit polymorphism"
+msgstr "table per concrete class (implicit polymorphism)"
 
-#. Tag: literal
-#: inheritance_mapping.xml:317 inheritance_mapping.xml:328
-#, no-c-format
-msgid "&lt;one-to-many&gt;"
-msgstr "&lt;one-to-many&gt;"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Polymorphic many-to-one: <code>&lt;any&gt;</code>"
+msgstr "다형성 다대일"
 
-#. Tag: literal
-#: inheritance_mapping.xml:318 inheritance_mapping.xml:329
-#: inheritance_mapping.xml:340
-#, no-c-format
-msgid "&lt;many-to-many&gt;"
-msgstr "&lt;many-to-many&gt;"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Polymorphic <literal>load()</literal> or <literal>get()</literal>: <code>s."
+"createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</"
+"code>"
+msgstr ""
+"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
 
-#. 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 ""
 
-#. 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"
+#, fuzzy
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "table per subclass"
 
-#. 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"
+#~ msgid "Features of inheritance mappings"
+#~ msgstr "상속 매핑들의 특징들"
 
-#. Tag: emphasis
-#: inheritance_mapping.xml:322 inheritance_mapping.xml:333
-#: inheritance_mapping.xml:344
-#, no-c-format
-msgid "supported"
-msgstr "지원됨"
+#~ msgid "Inheritance strategy"
+#~ msgstr "상속 방도"
 
-#. Tag: entry
-#: inheritance_mapping.xml:325
-#, fuzzy, no-c-format
-msgid "<entry>table per subclass</entry>"
-msgstr "table per subclass"
+#~ msgid "Polymorphic one-to-one"
+#~ msgstr "다형성 일대일"
 
-#. Tag: entry
-#: inheritance_mapping.xml:336
-#, no-c-format
-msgid "table per concrete-class (union-subclass)"
-msgstr "table per concrete-class (union-subclass)"
+#~ msgid "Polymorphic one-to-many"
+#~ msgstr "다형성 일대다"
 
-#. Tag: entry
-#: inheritance_mapping.xml:339
-#, no-c-format
-msgid ""
-"<literal>&lt;one-to-many&gt;</literal> (for <literal>inverse=\"true\"</"
-"literal> only)"
-msgstr ""
+#~ msgid "Polymorphic many-to-many"
+#~ msgstr "다형성 다대다"
 
-#. Tag: entry
-#: inheritance_mapping.xml:347
-#, no-c-format
-msgid "table per concrete class (implicit polymorphism)"
-msgstr "table per concrete class (implicit polymorphism)"
+#~ msgid "Polymorphic queries"
+#~ msgstr "다형성 질의들"
 
-#. Tag: literal
-#: inheritance_mapping.xml:348
-#, no-c-format
-msgid "&lt;any&gt;"
-msgstr "&lt;any&gt;"
+#~ msgid "Polymorphic joins"
+#~ msgstr "다형성 조인들"
 
-#. 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 "지원되지 않음"
+#~ msgid "&lt;many-to-one&gt;"
+#~ msgstr "&lt;many-to-one&gt;"
 
-#. Tag: literal
-#: inheritance_mapping.xml:351
-#, no-c-format
-msgid "&lt;many-to-any&gt;"
-msgstr "&lt;many-to-any&gt;"
+#~ msgid "&lt;one-to-one&gt;"
+#~ msgstr "&lt;one-to-one&gt;"
 
-#. 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()"
+#~ msgid "&lt;one-to-many&gt;"
+#~ msgstr "&lt;one-to-many&gt;"
 
+#~ msgid "&lt;many-to-many&gt;"
+#~ msgstr "&lt;many-to-many&gt;"
+
+#~ msgid "s.get(Payment.class, id)"
+#~ msgstr "s.get(Payment.class, id)"
+
+#~ msgid "from Payment p"
+#~ msgstr "from Payment p"
+
+#~ msgid "supported"
+#~ msgstr "지원됨"
+
+#, fuzzy
+#~ msgid "<entry>table per subclass</entry>"
+#~ msgstr "table per subclass"
+
+#~ msgid "&lt;any&gt;"
+#~ msgstr "&lt;any&gt;"
+
+#~ msgid "not supported"
+#~ msgstr "지원되지 않음"
+
+#~ msgid "&lt;many-to-any&gt;"
+#~ msgstr "&lt;many-to-any&gt;"
+
 #~ msgid "load()/get()"
 #~ msgstr "load()/get()"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/performance.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/performance.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/performance.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,19 +11,16 @@
 "Content-Transfer-Encoding: 8bit\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 "페칭 방도들"
 
 #. Tag: para
-#: performance.xml:34
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate uses a <emphasis>fetching strategy</emphasis> to retrieve "
@@ -37,13 +34,11 @@
 "<literal>Criteria</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 "
@@ -55,7 +50,6 @@
 "을 검색한다."
 
 #. Tag: para
-#: performance.xml:54
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Select fetching</emphasis>: a second <literal>SELECT</literal> is "
@@ -69,7 +63,6 @@
 "이 두 번째 select는 당신이 그 연관에 실제로 액세스할 때 오직 실행될 것이다."
 
 #. Tag: para
-#: performance.xml:63
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Subselect fetching</emphasis>: a second <literal>SELECT</literal> "
@@ -85,7 +78,6 @@
 "그 연관에 접근할 때 오직 실행될 것이다."
 
 #. Tag: para
-#: performance.xml:72
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Batch fetching</emphasis>: an optimization strategy for select "
@@ -99,13 +91,11 @@
 "를 검색한다."
 
 #. Tag: para
-#: performance.xml:81
 #, no-c-format
 msgid "Hibernate also distinguishes between:"
 msgstr "Hibernate는 또한 다음 사이를 구별 짓는다:"
 
 #. Tag: para
-#: performance.xml:87
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Immediate fetching</emphasis>: an association, collection or "
@@ -115,7 +105,6 @@
 "성이 즉시 페치된다."
 
 #. Tag: para
-#: performance.xml:93
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Lazy collection fetching</emphasis>: a collection is fetched when "
@@ -127,7 +116,6 @@
 "다.)"
 
 #. Tag: para
-#: performance.xml:100
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>\"Extra-lazy\" collection fetching</emphasis>: individual elements "
@@ -140,7 +128,6 @@
 "체 콜렉션을 메모리 내로 페치하려고 시도하지 않는다(매우 큰 콜렉션에 적합함)"
 
 #. Tag: para
-#: performance.xml:108
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Proxy fetching</emphasis>: a single-valued association is fetched "
@@ -151,7 +138,6 @@
 "객체에 대해 호출될 때 단일 값 연관이 페치된다."
 
 #. Tag: para
-#: performance.xml:115
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>\"No-proxy\" fetching</emphasis>: a single-valued association is "
@@ -168,7 +154,6 @@
 "코드 수단을 필요로 하며 드물게 필요하다."
 
 #. Tag: para
-#: performance.xml:125
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Lazy attribute fetching</emphasis>: an attribute or single valued "
@@ -180,7 +165,6 @@
 "게 필요하다."
 
 #. Tag: para
-#: performance.xml:134
 #, fuzzy, no-c-format
 msgid ""
 "We have two orthogonal notions here: <emphasis>when</emphasis> is the "
@@ -198,13 +182,11 @@
 "할 수 있다."
 
 #. Tag: title
-#: performance.xml:143
 #, no-c-format
 msgid "Working with lazy associations"
 msgstr "lazy 연관들로 작업하기"
 
 #. Tag: para
-#: performance.xml:145
 #, fuzzy, no-c-format
 msgid ""
 "By default, Hibernate3 uses lazy select fetching for collections and lazy "
@@ -216,7 +198,6 @@
 "션들에서 거의 모든 연관들에 대해 유의미하다."
 
 #. Tag: para
-#: performance.xml:151
 #, fuzzy, no-c-format
 msgid ""
 "If you set <literal>hibernate.default_batch_fetch_size</literal>, Hibernate "
@@ -229,7 +210,6 @@
 "에서 이용 가능할 수 있다)."
 
 #. Tag: para
-#: performance.xml:158
 #, fuzzy, no-c-format
 msgid ""
 "Please be aware that access to a lazy association outside of the context of "
@@ -239,25 +219,7 @@
 "Hibernate 세션 컨텍스트 외부에서 lazy 연관에 대한 접근은 예외상황으로 귀결될 "
 "것이다. 예를 들면 :"
 
-#. 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 ""
-
 #. Tag: para
-#: performance.xml:166
 #, fuzzy, no-c-format
 msgid ""
 "Since the permissions collection was not initialized when the "
@@ -273,7 +235,6 @@
 "키는 것이다."
 
 #. Tag: para
-#: performance.xml:174
 #, fuzzy, no-c-format
 msgid ""
 "Alternatively, you can use a non-lazy collection or association, by "
@@ -291,7 +252,6 @@
 "될 것이다!"
 
 #. 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, "
@@ -306,13 +266,11 @@
 "단일 값 연관들과 콜렉션들에 대해 동일하다."
 
 #. Tag: title
-#: performance.xml:194
 #, no-c-format
 msgid "Tuning fetch strategies"
 msgstr "페치 방도들을 튜닝하기"
 
 #. Tag: para
-#: performance.xml:196
 #, no-c-format
 msgid ""
 "Select fetching (the default) is extremely vulnerable to N+1 selects "
@@ -321,25 +279,7 @@
 "select 페칭(디폴트)은 N+1 selects 문제점들에 매우 취약해서, 우리는 매핑 문서"
 "에서 join 페칭을 사용 가능하게 하기를 원할 수도 있다:"
 
-#. 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 "
@@ -348,31 +288,26 @@
 "매핑 문서 내에 정의된 <literal>fetch</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>를 통한 검색"
 
 #. 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 "<literal>Criteria</literal> 질의들"
 
 #. Tag: para
-#: performance.xml:226
 #, no-c-format
 msgid "HQL queries if <literal>subselect</literal> fetching is used"
 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 "
@@ -384,7 +319,6 @@
 "사용되는 몇몇 즉시적인 select들로 귀결될 수 있음을 노트하라."
 
 #. Tag: para
-#: performance.xml:238
 #, fuzzy, no-c-format
 msgid ""
 "Usually, the mapping document is not used to customize fetching. Instead, we "
@@ -402,7 +336,6 @@
 "<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> "
@@ -413,18 +346,7 @@
 "용된 페칭 방도를 변경시킬 수 있기를 당신이 원한다고 느낄 경우, 단순하게 "
 "<literal>Criteria</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 ""
-
 #. Tag: para
-#: performance.xml:255
 #, fuzzy, no-c-format
 msgid ""
 "This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan"
@@ -434,7 +356,6 @@
 "등가물이다.)"
 
 #. Tag: para
-#: performance.xml:259
 #, fuzzy, no-c-format
 msgid ""
 "A completely different approach to problems with N+1 selects is to use the "
@@ -444,13 +365,11 @@
 "시를 사용하는 것이다."
 
 #. Tag: title
-#: performance.xml:267
 #, no-c-format
 msgid "Single-ended association proxies"
 msgstr "Single-ended 연관 프락시"
 
 #. Tag: para
-#: performance.xml:269
 #, fuzzy, no-c-format
 msgid ""
 "Lazy fetching for collections is implemented using Hibernate's own "
@@ -467,7 +386,6 @@
 "기화 프락시들을 구현한다."
 
 #. Tag: para
-#: performance.xml:277
 #, fuzzy, no-c-format
 msgid ""
 "At startup, Hibernate3 generates proxies by default for all persistent "
@@ -479,7 +397,6 @@
 "관에 대해 lazy 페칭을 이용 가능하게 하는데 그것들을 사용한다."
 
 #. Tag: para
-#: performance.xml:283
 #, fuzzy, no-c-format
 msgid ""
 "The mapping file may declare an interface to use as the proxy interface for "
@@ -495,7 +412,6 @@
 "든 영속 클래스들에 대해 이 생성자를 권장한다!</emphasis>"
 
 #. Tag: para
-#: performance.xml:290
 #, fuzzy, no-c-format
 msgid ""
 "There are potential problems to note when extending this approach to "
@@ -504,20 +420,7 @@
 "다형성 클래스들에 대해 이 접근법을 확장할 때 의식해야 하는 몇몇 난처함들이 존"
 "재한다. 예를 들면."
 
-#. 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 ""
-
 #. Tag: para
-#: performance.xml:296
 #, no-c-format
 msgid ""
 "Firstly, instances of <literal>Cat</literal> will never be castable to "
@@ -528,39 +431,12 @@
 "인 경우조차도, <literal>Cat</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
 msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
 msgstr "두번째로, 프락시 <literal>==</literal>를 파기할 가능성이 있다."
 
-#. Tag: programlisting
-#: performance.xml:308
-#, 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 ""
-
 #. Tag: para
-#: performance.xml:310
 #, no-c-format
 msgid ""
 "However, the situation is not quite as bad as it looks. Even though we now "
@@ -571,16 +447,7 @@
 "프락시 객체들에 대한 두 개의 참조를 가질지라도, 기본 인스턴스는 여전히 동일"
 "한 객체들일 것이다:"
 
-#. Tag: programlisting
-#: performance.xml:315
-#, 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 ""
-
 #. Tag: para
-#: performance.xml:317
 #, fuzzy, no-c-format
 msgid ""
 "Third, you cannot use a CGLIB proxy for a <literal>final</literal> class or "
@@ -590,7 +457,6 @@
 "literal> 메소드들을 가진 클래스에 대해 CGLIB 프락시를 사용하지 않을 수 있다."
 
 #. Tag: para
-#: performance.xml:322
 #, fuzzy, no-c-format
 msgid ""
 "Finally, if your persistent object acquires any resources upon instantiation "
@@ -604,7 +470,6 @@
 "브클래스이다."
 
 #. Tag: para
-#: performance.xml:328
 #, fuzzy, no-c-format
 msgid ""
 "These problems are all due to fundamental limitations in Java's single "
@@ -620,20 +485,7 @@
 "지니스 메소드들을 선언하는 인터페이스를 구현해야 한다. 당신은 매핑 파일 속에 "
 "이들 인터페이스들을 지정해야 한다. 예를 들면."
 
-#. 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 ""
-
 #. Tag: para
-#: performance.xml:338
 #, fuzzy, no-c-format
 msgid ""
 "Then proxies for instances of <literal>Cat</literal> and "
@@ -644,30 +496,17 @@
 "인 경우조차도, <literal>Cat</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 ""
-
 #. Tag: title
-#: performance.xml:346
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
-#: performance.xml:347
 #, fuzzy, no-c-format
 msgid "<literal>list()</literal> does not usually return proxies."
 msgstr "<literal>Criteria</literal> 질의들"
 
 #. Tag: para
-#: performance.xml:352
 #, no-c-format
 msgid ""
 "Relationships are also lazily initialized. This means you must declare any "
@@ -679,7 +518,6 @@
 "야 함을 의미한다."
 
 #. Tag: para
-#: performance.xml:357
 #, fuzzy, no-c-format
 msgid ""
 "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
@@ -687,7 +525,6 @@
 "어떤 오퍼레이션들은 프락시 초기화를 필요로 하지 <emphasis>않는다</emphasis>"
 
 #. Tag: para
-#: performance.xml:363
 #, fuzzy, no-c-format
 msgid ""
 "<literal>equals()</literal>: if the persistent class does not override "
@@ -697,7 +534,6 @@
 "를 오버라이드 시키지 않는 경우"
 
 #. Tag: para
-#: performance.xml:369
 #, fuzzy, no-c-format
 msgid ""
 "<literal>hashCode()</literal>: if the persistent class does not override "
@@ -707,13 +543,11 @@
 "literal>를 오버라이드 시키지 않는 경우"
 
 #. Tag: para
-#: performance.xml:375
 #, no-c-format
 msgid "The identifier getter method"
 msgstr "식별자 getter 메소드"
 
 #. Tag: para
-#: performance.xml:381
 #, no-c-format
 msgid ""
 "Hibernate will detect persistent classes that override <literal>equals()</"
@@ -723,7 +557,6 @@
 "오버라이드 시키는 영속 클래스들을 검출할 것이다."
 
 #. Tag: para
-#: performance.xml:386
 #, fuzzy, no-c-format
 msgid ""
 "By choosing <literal>lazy=\"no-proxy\"</literal> instead of the default "
@@ -737,13 +570,11 @@
 "프락시 초기화로 귀결될 것이다."
 
 #. Tag: title
-#: performance.xml:396
 #, no-c-format
 msgid "Initializing collections and proxies"
 msgstr "콜렉션들과 프락시들을 초기화 시키기"
 
 #. Tag: para
-#: performance.xml:398
 #, fuzzy, no-c-format
 msgid ""
 "A <literal>LazyInitializationException</literal> will be thrown by Hibernate "
@@ -757,7 +588,6 @@
 "literal>이 Hibernate에 의해 던져질 것이다."
 
 #. Tag: para
-#: performance.xml:404
 #, fuzzy, no-c-format
 msgid ""
 "Sometimes a proxy or collection needs to be initialized before closing the "
@@ -773,7 +603,6 @@
 "코드로 편의적이지 않다."
 
 #. Tag: para
-#: performance.xml:411
 #, fuzzy, no-c-format
 msgid ""
 "The static methods <literal>Hibernate.initialize()</literal> and "
@@ -793,7 +622,6 @@
 "kittens의 콜렉션에 대해 유사한 효과를 갖는다."
 
 #. Tag: para
-#: performance.xml:420
 #, fuzzy, no-c-format
 msgid ""
 "Another option is to keep the <literal>Session</literal> open until all "
@@ -812,7 +640,6 @@
 "히 하는 문제일 수 있다. 이 쟁점을 다루는 두 가지 기본 방법들이 존재한다:"
 
 #. Tag: para
-#: performance.xml:431
 #, fuzzy, no-c-format
 msgid ""
 "In a web-based application, a servlet filter can be used to close the "
@@ -834,7 +661,6 @@
 "다. 이 \"Open Session in View\" 패턴에 관한 예제들은 Hibernate 위키를 보라."
 
 #. Tag: para
-#: performance.xml:444
 #, fuzzy, no-c-format
 msgid ""
 "In an application with a separate business tier, the business logic must "
@@ -861,7 +687,6 @@
 "emphasis> 패턴을 채택할 경우에 더 쉽다."
 
 #. Tag: para
-#: performance.xml:459
 #, fuzzy, no-c-format
 msgid ""
 "You can also attach a previously loaded object to a new <literal>Session</"
@@ -878,7 +703,6 @@
 "이기 때문이다!"
 
 #. Tag: para
-#: performance.xml:469
 #, fuzzy, no-c-format
 msgid ""
 "Sometimes you do not want to initialize a large collection, but still need "
@@ -889,7 +713,6 @@
 "의 사이즈와 같은) 그것에 대한 어떤 정보 또는 데이터의 부분집합을 필요로 한다."
 
 #. Tag: para
-#: performance.xml:474
 #, no-c-format
 msgid ""
 "You can use a collection filter to get the size of a collection without "
@@ -898,16 +721,7 @@
 "당신은 그것을 초기화 시키지 않고서 콜렉션의 사이즈를 얻는데 콜렉션 필터를 사"
 "용할 수 있다:"
 
-#. 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 "
@@ -917,22 +731,12 @@
 "<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 "batch 페칭 사용하기"
 
 #. Tag: para
-#: performance.xml:492
 #, fuzzy, no-c-format
 msgid ""
 "Using batch fetching, Hibernate can load several uninitialized proxies if "
@@ -947,7 +751,6 @@
 "고 콜렉션 레벨에서."
 
 #. Tag: para
-#: performance.xml:498
 #, fuzzy, no-c-format
 msgid ""
 "Batch fetching for classes/entities is easier to understand. Consider the "
@@ -973,14 +776,7 @@
 "<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 ""
-
 #. Tag: para
-#: performance.xml:510
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
@@ -989,7 +785,6 @@
 "다."
 
 #. Tag: para
-#: performance.xml:514
 #, fuzzy, no-c-format
 msgid ""
 "You can also enable batch fetching of collections. For example, if each "
@@ -1010,19 +805,7 @@
 "batch 페칭을 사용가능하게 할 경우, 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 ""
-
 #. Tag: para
-#: performance.xml:525
 #, no-c-format
 msgid ""
 "With a <literal>batch-size</literal> of 3, Hibernate will load 3, 3, 3, 1 "
@@ -1036,7 +819,6 @@
 "에 의존한다."
 
 #. Tag: para
-#: performance.xml:531
 #, fuzzy, no-c-format
 msgid ""
 "Batch fetching of collections is particularly useful if you have a nested "
@@ -1050,13 +832,11 @@
 "은 옵션일 수 있을지라도) 콜렉션들에 대한 batch 페칭이 특히 유용하다."
 
 #. Tag: title
-#: performance.xml:540
 #, no-c-format
 msgid "Using subselect fetching"
 msgstr "subselect 페칭 사용하기"
 
 #. Tag: para
-#: performance.xml:542
 #, fuzzy, no-c-format
 msgid ""
 "If one lazy collection or single-valued proxy has to be fetched, Hibernate "
@@ -1068,13 +848,11 @@
 "다. 이것은 조각난 로딩 없이 batch 페칭과 동일한 방식으로 동작한다."
 
 #. Tag: title
-#: performance.xml:553
 #, no-c-format
 msgid "Using lazy property fetching"
 msgstr "lazy 프로퍼티 페칭 사용하기"
 
 #. Tag: para
-#: performance.xml:555
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate3 supports the lazy fetching of individual properties. This "
@@ -1093,7 +871,6 @@
 "몇 프로퍼티들을 로드시키는 것 만이 유용할 수도 있다."
 
 #. Tag: para
-#: performance.xml:564
 #, no-c-format
 msgid ""
 "To enable lazy property loading, set the <literal>lazy</literal> attribute "
@@ -1102,24 +879,7 @@
 "lazy 프로퍼티 로딩을 이용가능하게 하려면, 당신의 특정 property 매핑들에 대해 "
 "<literal>lazy</literal> 속성을 설정하라:"
 
-#. Tag: programlisting
-#: performance.xml:569
-#, 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 ""
-
 #. Tag: para
-#: performance.xml:571
 #, fuzzy, no-c-format
 msgid ""
 "Lazy property loading requires buildtime bytecode instrumentation. If your "
@@ -1131,33 +891,11 @@
 "시하고 즉각적인 페칭으로 후퇴할 것이다."
 
 #. Tag: para
-#: performance.xml:577
 #, no-c-format
 msgid "For bytecode instrumentation, use the following Ant task:"
 msgstr "bytecode 수단으로, 다음 Ant 태스크를 사용하라:"
 
-#. Tag: programlisting
-#: performance.xml:581
-#, 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 ""
-
 #. Tag: para
-#: performance.xml:583
 #, fuzzy, no-c-format
 msgid ""
 "A different way of avoiding unnecessary column reads, at least for read-only "
@@ -1171,7 +909,6 @@
 "호되는 해결책이다."
 
 #. Tag: para
-#: performance.xml:590
 #, fuzzy, no-c-format
 msgid ""
 "You can force the usual eager fetching of properties using <literal>fetch "
@@ -1181,13 +918,11 @@
 "에 대한 통상의 eager 페칭을 강제시킬 수 있다."
 
 #. Tag: title
-#: performance.xml:600
 #, no-c-format
 msgid "The Second Level Cache"
 msgstr "두번째 레벨 캐시"
 
 #. Tag: para
-#: performance.xml:602
 #, fuzzy, no-c-format
 msgid ""
 "A Hibernate <literal>Session</literal> is a transaction-level cache of "
@@ -1206,7 +941,6 @@
 "른 어플리케이션에 의해 영속 저장소에 대해 행해진 변경들을 결코 알지 못한다."
 
 #. Tag: para
-#: performance.xml:610
 #, fuzzy, no-c-format
 msgid ""
 "You have the option to tell Hibernate which caching implementation to use by "
@@ -1240,43 +974,36 @@
 "폴트 내장이 아니다."
 
 #. Tag: title
-#: performance.xml:621
 #, no-c-format
 msgid "Cache Providers"
 msgstr "캐시 프로바이더들"
 
 #. Tag: entry
-#: performance.xml:630 performance.xml:818
 #, no-c-format
 msgid "Cache"
 msgstr "캐시"
 
 #. Tag: entry
-#: performance.xml:631
 #, no-c-format
 msgid "Provider class"
 msgstr "프로바이더 클래스"
 
 #. Tag: entry
-#: performance.xml:632
 #, no-c-format
 msgid "Type"
 msgstr "타입"
 
 #. Tag: entry
-#: performance.xml:633
 #, no-c-format
 msgid "Cluster Safe"
 msgstr "클러스터 안전"
 
 #. Tag: entry
-#: performance.xml:634
 #, no-c-format
 msgid "Query Cache Supported"
 msgstr "질의 캐시 지원"
 
 #. Tag: entry
-#: performance.xml:639 performance.xml:827
 #, fuzzy, no-c-format
 msgid "Hashtable (not intended for production use)"
 msgstr ""
@@ -1285,139 +1012,144 @@
 "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
 "Hashtable (제품용으로 고안되지 않음)"
 
-#. Tag: literal
-#: performance.xml:640
-#, no-c-format
-msgid "org.hibernate.cache.HashtableCacheProvider"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 msgstr "org.hibernate.cache.HashtableCacheProvider"
 
 #. 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>"
+#, fuzzy, no-c-format
+msgid "yes"
 msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"yes\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"yes\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"yes\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"
+"예"
 
 #. Tag: entry
-#: performance.xml:646 performance.xml:834
 #, no-c-format
 msgid "EHCache"
 msgstr "EHCache"
 
-#. Tag: literal
-#: performance.xml:647
-#, no-c-format
-msgid "org.hibernate.cache.EhCacheProvider"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 msgstr "org.hibernate.cache.EhCacheProvider"
 
 #. Tag: entry
-#: performance.xml:648 performance.xml:655
 #, no-c-format
 msgid "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
-#, no-c-format
-msgid "org.hibernate.cache.OSCacheProvider"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 msgstr "org.hibernate.cache.OSCacheProvider"
 
 #. Tag: entry
-#: performance.xml:660 performance.xml:848
 #, no-c-format
 msgid "SwarmCache"
 msgstr "SwarmCache"
 
-#. Tag: literal
-#: performance.xml:661
-#, no-c-format
-msgid "org.hibernate.cache.SwarmCacheProvider"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 msgstr "org.hibernate.cache.SwarmCacheProvider"
 
 #. 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
 msgid "JBoss Cache 1.x"
 msgstr "JBoss TreeCache"
 
-#. Tag: literal
-#: performance.xml:668
-#, no-c-format
-msgid "org.hibernate.cache.TreeCacheProvider"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 msgstr "org.hibernate.cache.TreeCacheProvider"
 
 #. 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
 msgid "JBoss Cache 2"
 msgstr "JBoss TreeCache"
 
-#. Tag: literal
-#: performance.xml:675
+#. Tag: entry
 #, fuzzy, no-c-format
-msgid "org.hibernate.cache.jbc2.JBossCacheRegionFactory"
+msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 msgstr "org.hibernate.cache.EhCacheProvider"
 
 #. Tag: entry
-#: performance.xml:677
 #, fuzzy, no-c-format
 msgid "yes (replication or invalidation)"
 msgstr "yes (clustered invalidation)"
 
 #. Tag: title
-#: performance.xml:685
 #, no-c-format
 msgid "Cache mappings"
 msgstr "Cache 매핑들"
 
 #. Tag: para
-#: performance.xml:687
 #, no-c-format
 msgid ""
 "The <literal>&lt;cache&gt;</literal> element of a class or collection "
@@ -1426,19 +1158,7 @@
 "클래스 또는 콜렉션 매핑의 <literal>&lt;cache&gt;</literal> 요소는 다음 형식"
 "을 갖는다:"
 
-#. Tag: programlisting
-#: performance.xml:698
-#, 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 ""
-
 #. Tag: para
-#: performance.xml:701
 #, no-c-format
 msgid ""
 "<literal>usage</literal> (required) specifies the caching strategy: "
@@ -1450,7 +1170,6 @@
 "literal> 또는 <literal>read-only</literal>"
 
 #. Tag: para
-#: performance.xml:710
 #, fuzzy, no-c-format
 msgid ""
 "<literal>region</literal> (optional: defaults to the class or collection "
@@ -1460,7 +1179,6 @@
 "second level 캐시 영역의 이름을 지정한다"
 
 #. Tag: para
-#: performance.xml:717
 #, fuzzy, no-c-format
 msgid ""
 "<literal>include</literal> (optional: defaults to <literal>all</literal>) "
@@ -1474,7 +1192,6 @@
 "다"
 
 #. Tag: para
-#: performance.xml:727
 #, fuzzy, no-c-format
 msgid ""
 "Alternatively, you can specify <literal>&lt;class-cache&gt;</literal> and "
@@ -1486,7 +1203,6 @@
 "</literal> 요소들을 지정할 수도 있다."
 
 #. Tag: para
-#: performance.xml:732
 #, no-c-format
 msgid ""
 "The <literal>usage</literal> attribute specifies a <emphasis>cache "
@@ -1496,13 +1212,11 @@
 "한다."
 
 #. Tag: title
-#: performance.xml:739
 #, no-c-format
 msgid "Strategy: read only"
 msgstr "방도: 읽기 전용"
 
 #. Tag: para
-#: performance.xml:741
 #, fuzzy, no-c-format
 msgid ""
 "If your application needs to read, but not modify, instances of a persistent "
@@ -1515,24 +1229,12 @@
 "다. 이것은 가장 간단한 최상의 퍼포먼스를 위한 방도이다. 그것은 클러스터 내 사"
 "용에는 완벽하게 안전하다."
 
-#. 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 ""
-
 #. Tag: title
-#: performance.xml:753
 #, no-c-format
 msgid "Strategy: read/write"
 msgstr "방도: 읽기/쓰기"
 
 #. Tag: para
-#: performance.xml:755
 #, fuzzy, no-c-format
 msgid ""
 "If the application needs to update data, a <literal>read-write</literal> "
@@ -1559,28 +1261,12 @@
 "실히 해야 한다. 미리 만들어진 캐시 프로바이더들은 그렇게 행하지 <emphasis>않"
 "는다</emphasis>."
 
-#. 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 ""
-
 #. Tag: title
-#: performance.xml:771
 #, no-c-format
 msgid "Strategy: nonstrict read/write"
 msgstr "방도: 엄격하지 않은 읽기/쓰기"
 
 #. Tag: para
-#: performance.xml:773
 #, fuzzy, no-c-format
 msgid ""
 "If the application only occasionally needs to update data (i.e. if it is "
@@ -1602,13 +1288,11 @@
 "literal>가 호출될 때 트랜잭션이 완료되도록 확실히 해야 한다."
 
 #. Tag: title
-#: performance.xml:785
 #, no-c-format
 msgid "Strategy: transactional"
 msgstr "방도: transactional"
 
 #. Tag: para
-#: performance.xml:787
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>transactional</literal> cache strategy provides support for "
@@ -1622,13 +1306,11 @@
 "manager_lookup_class</literal>를 지정해야 한다."
 
 #. Tag: title
-#: performance.xml:796
 #, fuzzy, no-c-format
 msgid "Cache-provider/concurrency-strategy compatibility"
 msgstr "캐시 동시성 방도 지원"
 
 #. Tag: para
-#: performance.xml:799
 #, fuzzy, no-c-format
 msgid ""
 "None of the cache providers support all of the cache concurrency strategies."
@@ -1637,7 +1319,6 @@
 "음 테이블은 어느 프로바이더들이 어느 동시성 방도들과 호환되는지를 보여준다."
 
 #. Tag: para
-#: performance.xml:804
 #, fuzzy, no-c-format
 msgid ""
 "The following table shows which providers are compatible with which "
@@ -1647,43 +1328,36 @@
 "음 테이블은 어느 프로바이더들이 어느 동시성 방도들과 호환되는지를 보여준다."
 
 #. Tag: title
-#: performance.xml:809
 #, no-c-format
 msgid "Cache Concurrency Strategy Support"
 msgstr "캐시 동시성 방도 지원"
 
 #. Tag: entry
-#: performance.xml:819
 #, no-c-format
 msgid "read-only"
 msgstr "읽기 전용"
 
 #. Tag: entry
-#: performance.xml:820
 #, no-c-format
 msgid "nonstrict-read-write"
 msgstr "엄격하지 않은 읽기-쓰기"
 
 #. Tag: entry
-#: performance.xml:821
 #, no-c-format
 msgid "read-write"
 msgstr "읽기-쓰기"
 
 #. 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 "캐시들을 관리하기"
 
 #. Tag: para
-#: performance.xml:879
 #, fuzzy, no-c-format
 msgid ""
 "Whenever you pass an object to <literal>save()</literal>, <literal>update()</"
@@ -1701,7 +1375,6 @@
 "다."
 
 #. Tag: para
-#: performance.xml:886
 #, fuzzy, no-c-format
 msgid ""
 "When <literal>flush()</literal> is subsequently called, the state of that "
@@ -1717,21 +1390,7 @@
 "을 경우, <literal>evict()</literal> 메소드는 first-level 캐시로부터 그 객체"
 "와 그것의 콜렉션들을 제거하는데 사용될 수 있다."
 
-#. 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 ""
-
 #. Tag: para
-#: performance.xml:896
 #, no-c-format
 msgid ""
 "The <literal>Session</literal> also provides a <literal>contains()</literal> "
@@ -1741,7 +1400,6 @@
 "하는데 <literal>contains()</literal> 메소드를 제공한다."
 
 #. Tag: para
-#: performance.xml:901
 #, fuzzy, no-c-format
 msgid ""
 "To evict all objects from the session cache, call <literal>Session.clear()</"
@@ -1751,7 +1409,6 @@
 "clear()</literal>를 호출하라."
 
 #. Tag: para
-#: performance.xml:905
 #, no-c-format
 msgid ""
 "For the second-level cache, there are methods defined on "
@@ -1762,20 +1419,7 @@
 "전체 콜렉션 role의 캐시된 상태를 퇴거시키는 <literal>SessionFactory</"
 "literal> 상에 정의된 메소드들이 존재한다."
 
-#. Tag: programlisting
-#: performance.xml:911
-#, 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 ""
-
 #. Tag: para
-#: performance.xml:913
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>CacheMode</literal> controls how a particular session interacts "
@@ -1785,7 +1429,6 @@
 "용하는지를 제어한다"
 
 #. Tag: para
-#: performance.xml:920
 #, fuzzy, no-c-format
 msgid ""
 "<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
@@ -1795,7 +1438,6 @@
 "들이고 second-level 캐시로 아이템들을 기록한다"
 
 #. Tag: para
-#: performance.xml:925
 #, fuzzy, no-c-format
 msgid ""
 "<literal>CacheMode.GET</literal>: will read items from the second-level "
@@ -1805,7 +1447,6 @@
 "이지만, 데이터를 업데이트할 때를 제외하면 second-level 캐시로 기록하지 않는다"
 
 #. Tag: para
-#: performance.xml:931
 #, fuzzy, no-c-format
 msgid ""
 "<literal>CacheMode.PUT</literal>: will write items to the second-level "
@@ -1815,7 +1456,6 @@
 "만, second-level 캐시로부터 읽어들이지 않는다"
 
 #. Tag: para
-#: performance.xml:937
 #, fuzzy, no-c-format
 msgid ""
 "<literal>CacheMode.REFRESH</literal>: will write items to the second-level "
@@ -1829,7 +1469,6 @@
 "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 "
@@ -1838,17 +1477,7 @@
 "second-level 캐시 또는 질의 캐시 영역의 내용물을 브라우징하려면 "
 "<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 "
@@ -1858,22 +1487,12 @@
 "을 보다 인간에게 이해가능한 형식으로 유지시키도록 강제시키는 것이 필요할 것이"
 "다:"
 
-#. Tag: programlisting
-#: performance.xml:957
-#, no-c-format
-msgid ""
-"<![CDATA[hibernate.generate_statistics true\n"
-"hibernate.cache.use_structured_entries true]]>"
-msgstr ""
-
 #. Tag: title
-#: performance.xml:962
 #, no-c-format
 msgid "The Query Cache"
 msgstr "질의 캐시"
 
 #. Tag: para
-#: performance.xml:964
 #, fuzzy, no-c-format
 msgid ""
 "Query result sets can also be cached. This is only useful for queries that "
@@ -1884,14 +1503,7 @@
 "주 실행되는 질의들에만 유용하다. 질의 캐시를 사용하기 위해 당신은 먼저 그것"
 "을 이용 가능하도록 해야 한다:"
 
-#. Tag: programlisting
-#: performance.xml:969
-#, no-c-format
-msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
-msgstr ""
-
 #. Tag: para
-#: performance.xml:971
 #, fuzzy, no-c-format
 msgid ""
 "This setting creates two new cache regions: one holding cached query result "
@@ -1911,7 +1523,6 @@
 "의 캐시는 항상 second-level 캐시와 함께 사용되어야 한다."
 
 #. Tag: para
-#: performance.xml:981
 #, fuzzy, no-c-format
 msgid ""
 "Most queries do not benefit from caching, so by default, queries are not "
@@ -1925,7 +1536,6 @@
 "거나 질의가 실행될 때 그것의 결과들을 캐시에 추가하는 것을 허용해준다."
 
 #. Tag: para
-#: performance.xml:988
 #, fuzzy, no-c-format
 msgid ""
 "If you require fine-grained control over query cache expiration policies, "
@@ -1936,21 +1546,7 @@
 "은 <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 ""
-
 #. Tag: para
-#: performance.xml:996
 #, no-c-format
 msgid ""
 "If the query should force a refresh of its query cache region, you should "
@@ -1970,13 +1566,11 @@
 "시키는 보다 효과적인 대안이다."
 
 #. Tag: title
-#: performance.xml:1008
 #, no-c-format
 msgid "Understanding Collection performance"
 msgstr "콜렉션 퍼포먼스 이해하기"
 
 #. Tag: para
-#: performance.xml:1010
 #, no-c-format
 msgid ""
 "In the previous sections we have covered collections and their applications. "
@@ -1985,37 +1579,31 @@
 msgstr ""
 
 #. Tag: title
-#: performance.xml:1017
 #, no-c-format
 msgid "Taxonomy"
 msgstr "분류"
 
 #. Tag: para
-#: performance.xml:1019
 #, no-c-format
 msgid "Hibernate defines three basic kinds of collections:"
 msgstr "Hibernate는 세 가지 기본적인 종류의 콜렉션들을 정의한다:"
 
 #. Tag: para
-#: performance.xml:1023
 #, no-c-format
 msgid "collections of values"
 msgstr "값들을 가진 콜렉션들"
 
 #. Tag: para
-#: performance.xml:1026
 #, fuzzy, no-c-format
 msgid "one-to-many associations"
 msgstr "one to many 연관들"
 
 #. Tag: para
-#: performance.xml:1029
 #, fuzzy, no-c-format
 msgid "many-to-many associations"
 msgstr "many to many 연관들"
 
 #. Tag: para
-#: performance.xml:1033
 #, no-c-format
 msgid ""
 "This classification distinguishes the various table and foreign key "
@@ -2032,25 +1620,21 @@
 "한다. 이것은 다음 분류를 제안한다:"
 
 #. Tag: para
-#: performance.xml:1044
 #, no-c-format
 msgid "indexed collections"
 msgstr "인덱싱 된 콜렉션들"
 
 #. Tag: para
-#: performance.xml:1047
 #, no-c-format
 msgid "sets"
 msgstr "set들"
 
 #. Tag: para
-#: performance.xml:1050
 #, no-c-format
 msgid "bags"
 msgstr "bag들"
 
 #. Tag: para
-#: performance.xml:1054
 #, fuzzy, no-c-format
 msgid ""
 "All indexed collections (maps, lists, and arrays) have a primary key "
@@ -2066,7 +1650,6 @@
 "고 특정 행은 효율적으로 위치지워질 수 있다."
 
 #. Tag: para
-#: performance.xml:1062
 #, fuzzy, no-c-format
 msgid ""
 "Sets have a primary key consisting of <literal>&lt;key&gt;</literal> and "
@@ -2090,7 +1673,6 @@
 "로 선언해야 한다.)"
 
 #. Tag: para
-#: performance.xml:1073
 #, fuzzy, no-c-format
 msgid ""
 "<literal>&lt;idbag&gt;</literal> mappings define a surrogate key, so they "
@@ -2100,7 +1682,6 @@
 "상 업데이트에 매우 효율적이다. 사실, 그것들은 최상의 경우이다."
 
 #. Tag: para
-#: performance.xml:1078
 #, fuzzy, no-c-format
 msgid ""
 "Bags are the worst case since they permit duplicate element values and, as "
@@ -2116,7 +1697,6 @@
 "문제를 해결한다. 이것은 매우 비효율적이다."
 
 #. Tag: para
-#: performance.xml:1086
 #, fuzzy, no-c-format
 msgid ""
 "For a one-to-many association, the \"primary key\" may not be the physical "
@@ -2130,14 +1710,12 @@
 "영한다.)"
 
 #. Tag: title
-#: performance.xml:1096
 #, no-c-format
 msgid ""
 "Lists, maps, idbags and sets are the most efficient collections to update"
 msgstr "List, map, idbag, set들은 update에 가장 효율적인 콜렉션들이다"
 
 #. Tag: para
-#: performance.xml:1098
 #, fuzzy, no-c-format
 msgid ""
 "From the discussion above, it should be clear that indexed collections and "
@@ -2148,7 +1726,6 @@
 "고 업데이트함에 있어 가장 효율적인 오퍼레이션을 허용해준다."
 
 #. Tag: para
-#: performance.xml:1104
 #, fuzzy, no-c-format
 msgid ""
 "There is, arguably, one more advantage that indexed collections have over "
@@ -2168,7 +1745,6 @@
 "다."
 
 #. Tag: para
-#: performance.xml:1113
 #, fuzzy, no-c-format
 msgid ""
 "After observing that arrays cannot be lazy, you can conclude that lists, "
@@ -2184,7 +1760,6 @@
 "한 것이기 때문이다."
 
 #. Tag: para
-#: performance.xml:1121
 #, fuzzy, no-c-format
 msgid ""
 "However, in well-designed Hibernate domain models, most collections are in "
@@ -2199,13 +1774,11 @@
 "고, 따라서 콜렉션 업데이트 퍼포먼스에 대한 검토들은 단순히 적용되지 않는다."
 
 #. Tag: title
-#: performance.xml:1131
 #, no-c-format
 msgid "Bags and lists are the most efficient inverse collections"
 msgstr "Bag들과 list들은 가장 효율적인 inverse 콜렉션들이다"
 
 #. Tag: para
-#: performance.xml:1133
 #, fuzzy, no-c-format
 msgid ""
 "There is a particular case, however, in which bags, and also lists, are much "
@@ -2226,25 +1799,12 @@
 "상 bag 또는 <literal>List</literal>에 대해 true를 반환해야하기 때문이다. 이것"
 "은 훨씬 다음 공통적인 코드를 더 빠르게 만들 수 있다."
 
-#. 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 ""
-
 #. Tag: title
-#: performance.xml:1148
 #, no-c-format
 msgid "One shot delete"
 msgstr "원 샷 delete"
 
 #. Tag: para
-#: performance.xml:1150
 #, fuzzy, no-c-format
 msgid ""
 "Deleting collection elements one by one can sometimes be extremely "
@@ -2259,7 +1819,6 @@
 "을 내릴 것이고 우리는 모두 행했다!"
 
 #. Tag: para
-#: performance.xml:1157
 #, fuzzy, no-c-format
 msgid ""
 "Suppose you added a single element to a collection of size twenty and then "
@@ -2273,7 +1832,6 @@
 "령 내릴 것이다. 이것은 확실히 마음에 든다."
 
 #. Tag: para
-#: performance.xml:1163
 #, no-c-format
 msgid ""
 "However, suppose that we remove eighteen elements, leaving two and then add "
@@ -2284,13 +1842,11 @@
 "다."
 
 #. Tag: para
-#: performance.xml:1170
 #, no-c-format
 msgid "delete eighteen rows one by one and then insert three rows"
 msgstr "하나씩 열 여덟 개의 행들을 삭제한 다음에 세 개의 행들을 삽입시킨다"
 
 #. Tag: para
-#: performance.xml:1173
 #, fuzzy, no-c-format
 msgid ""
 "remove the whole collection in one SQL <literal>DELETE</literal> and insert "
@@ -2300,7 +1856,6 @@
 "의 현재 요소들을 (하나씩) insert 시킨다"
 
 #. Tag: para
-#: performance.xml:1178
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate cannot know that the second option is probably quicker. It would "
@@ -2313,7 +1868,6 @@
 "다.)"
 
 #. Tag: para
-#: performance.xml:1184
 #, fuzzy, no-c-format
 msgid ""
 "Fortunately, you can force this behavior (i.e. the second strategy) at any "
@@ -2325,7 +1879,6 @@
 "시킬 수 있다. 이것은 시간이 흐름에 따라 매우 유용하고 강력해질 수 있다."
 
 #. Tag: para
-#: performance.xml:1190
 #, fuzzy, no-c-format
 msgid ""
 "One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
@@ -2335,13 +1888,11 @@
 "매핑된 콜렉션들에 적용되지 않는다."
 
 #. Tag: title
-#: performance.xml:1199
 #, no-c-format
 msgid "Monitoring performance"
 msgstr "퍼포먼스 모니터링하기"
 
 #. Tag: para
-#: performance.xml:1201
 #, no-c-format
 msgid ""
 "Optimization is not much use without monitoring and access to performance "
@@ -2355,13 +1906,11 @@
 "이용 가능하다."
 
 #. Tag: title
-#: performance.xml:1208
 #, no-c-format
 msgid "Monitoring a SessionFactory"
 msgstr "SessionFactory 모니터링 하기"
 
 #. Tag: para
-#: performance.xml:1210
 #, no-c-format
 msgid ""
 "You can access <literal>SessionFactory</literal> metrics in two ways. Your "
@@ -2374,7 +1923,6 @@
 "레이 하는 것이다."
 
 #. Tag: para
-#: performance.xml:1216
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate can also use JMX to publish metrics if you enable the "
@@ -2387,38 +1935,7 @@
 "당신의<literal>SessionFactory</literal>에 대해 한 개의 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 ""
-
-#. Tag: programlisting
-#: performance.xml:1226
-#, 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 ""
-
 #. Tag: para
-#: performance.xml:1233
 #, fuzzy, no-c-format
 msgid ""
 "You can activate and deactivate the monitoring for a "
@@ -2428,7 +1945,6 @@
 "수 있다"
 
 #. Tag: para
-#: performance.xml:1238
 #, no-c-format
 msgid ""
 "at configuration time, set <literal>hibernate.generate_statistics</literal> "
@@ -2438,7 +1954,6 @@
 "<literal>false</literal>"
 
 #. Tag: para
-#: performance.xml:1245
 #, no-c-format
 msgid ""
 "at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> "
@@ -2448,7 +1963,6 @@
 "는 <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
 
 #. Tag: para
-#: performance.xml:1252
 #, fuzzy, no-c-format
 msgid ""
 "Statistics can be reset programmatically using the <literal>clear()</"
@@ -2460,13 +1974,11 @@
 "를 사용하여 logger(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 "
@@ -2480,7 +1992,6 @@
 "다:"
 
 #. Tag: para
-#: performance.xml:1270
 #, no-c-format
 msgid ""
 "Metrics related to the general <literal>Session</literal> usage, such as "
@@ -2490,7 +2001,6 @@
 "<literal>Session</literal> 사용에 관련된 metrics."
 
 #. Tag: para
-#: performance.xml:1276
 #, fuzzy, no-c-format
 msgid ""
 "Metrics related to the entities, collections, queries, and caches as a whole "
@@ -2500,7 +2010,6 @@
 "metrics로 알려져 있음),"
 
 #. Tag: para
-#: performance.xml:1282
 #, no-c-format
 msgid ""
 "Detailed metrics related to a particular entity, collection, query or cache "
@@ -2508,7 +2017,6 @@
 msgstr "특정한 엔티티, 콜렉션, 질의 또는 캐시 영역에 관련된 상세 metrics."
 
 #. Tag: para
-#: performance.xml:1289
 #, fuzzy, no-c-format
 msgid ""
 "For example, you can check the cache hit, miss, and put ratio of entities, "
@@ -2524,7 +2032,6 @@
 "있다."
 
 #. 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 "
@@ -2547,30 +2054,7 @@
 "<literal>QueryStatistics</literal>를 참조하라. 다음 코드는 간단한 예제를 보여"
 "준다:"
 
-#. 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 ""
-
 #. Tag: para
-#: performance.xml:1308
 #, fuzzy, no-c-format
 msgid ""
 "You can work on all entities, collections, queries and region caches, by "
@@ -2621,39 +2105,3 @@
 #~ "한다. 두 번째 경우에 우리는 JNDI 이름을 사용하기 전에 세션 팩토리가 보관하"
 #~ "고 있는 JNDI 이름을 부여해야 한다. <literal>hibernateStatsBean."
 #~ "setSessionFactoryJNDIName(\"my/JNDI/Name\")</literal>을 사용하라."
-
-#, fuzzy
-#~ msgid "yes"
-#~ msgstr ""
-#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
-#~ "yes\n"
-#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
-#~ "yes\n"
-#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
-#~ "yes\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"
-#~ "예"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/persistent_classes.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/persistent_classes.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/persistent_classes.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: persistent_classes.xml:29
 #, no-c-format
 msgid "Persistent Classes"
 msgstr "영속 클래스들"
 
 #. Tag: para
-#: persistent_classes.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "Persistent classes are classes in an application that implement the entities "
@@ -32,7 +30,6 @@
 "스턴스는 transient 또는 detached 상태일 수 있다."
 
 #. Tag: para
-#: persistent_classes.xml:38
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate works best if these classes follow some simple rules, also known "
@@ -49,13 +46,11 @@
 "기."
 
 #. Tag: title
-#: persistent_classes.xml:47
 #, no-c-format
 msgid "A simple POJO example"
 msgstr "간단한 POJO 예제"
 
 #. Tag: para
-#: persistent_classes.xml:49
 #, fuzzy, no-c-format
 msgid ""
 "Most Java applications require a persistent class representing felines. For "
@@ -64,92 +59,7 @@
 "대부분의 자바 어플리케이션들은 고양이과들을 표현하는 영속 클래스를 필요로 한"
 "다."
 
-#. 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 "
@@ -157,13 +67,11 @@
 msgstr ""
 
 #. Tag: title
-#: persistent_classes.xml:61
 #, no-c-format
 msgid "Implement a no-argument constructor"
 msgstr "아규먼트 없는 생성자를 구현하라"
 
 #. Tag: para
-#: persistent_classes.xml:63
 #, fuzzy, no-c-format
 msgid ""
 "<literal>Cat</literal> has a no-argument constructor. All persistent classes "
@@ -181,13 +89,11 @@
 "다."
 
 #. Tag: title
-#: persistent_classes.xml:73
 #, no-c-format
 msgid "Provide an identifier property (optional)"
 msgstr "identifier 프로퍼티를 제공하라(옵션)"
 
 #. Tag: para
-#: persistent_classes.xml:75
 #, fuzzy, no-c-format
 msgid ""
 "<literal>Cat</literal> has a property called <literal>id</literal>. This "
@@ -207,7 +113,6 @@
 "의 클래스를 사용할 수도 있다 - 나중에 composite 식별자들에 대한 절을 보라)"
 
 #. Tag: para
-#: persistent_classes.xml:84
 #, no-c-format
 msgid ""
 "The identifier property is strictly optional. You can leave them off and let "
@@ -219,7 +124,6 @@
 "우리는 이것을 권장하지 않는다."
 
 #. Tag: para
-#: persistent_classes.xml:89
 #, fuzzy, no-c-format
 msgid ""
 "In fact, some functionality is available only to classes that declare an "
@@ -229,29 +133,25 @@
 "능하다:"
 
 #. Tag: para
-#: persistent_classes.xml:96
 #, fuzzy, no-c-format
 msgid ""
 "Transitive reattachment for detached objects (cascade update or cascade "
-"merge) - see"
+"merge) - see <xref linkend=\"objectstate-transitive\" />"
 msgstr ""
 "detached 객체들에 대한 Transitive reattachment(cascade update 또는 cascade "
 "merge) - <xref linkend=\"objectstate-transitive\"/>"
 
-#. Tag: literal
-#: persistent_classes.xml:103
-#, no-c-format
-msgid "Session.saveOrUpdate()"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
 msgstr "Session.saveOrUpdate()"
 
-#. Tag: literal
-#: persistent_classes.xml:108
-#, no-c-format
-msgid "Session.merge()"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.merge()</literal>"
 msgstr "Session.merge()"
 
 #. Tag: para
-#: persistent_classes.xml:113
 #, fuzzy, no-c-format
 msgid ""
 "We recommend that you declare consistently-named identifier properties on "
@@ -262,13 +162,11 @@
 "primitive)을 사용할 것을 권장한다."
 
 #. Tag: title
-#: persistent_classes.xml:120
 #, no-c-format
 msgid "Prefer non-final classes (optional)"
 msgstr "final이 아닌 클래스들을 선호하라(옵션)"
 
 #. Tag: para
-#: persistent_classes.xml:121
 #, no-c-format
 msgid ""
 "A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
@@ -280,7 +178,6 @@
 "클래스들에 의존한다."
 
 #. Tag: para
-#: persistent_classes.xml:126
 #, fuzzy, no-c-format
 msgid ""
 "You can persist <literal>final</literal> classes that do not implement an "
@@ -294,7 +191,6 @@
 "옵션들을 제한시킬 것이다."
 
 #. Tag: para
-#: persistent_classes.xml:131
 #, no-c-format
 msgid ""
 "You should also avoid declaring <literal>public final</literal> methods on "
@@ -308,13 +204,11 @@
 "literal>를 설정함으로써 명시적으로 프락싱을 사용 불가능하도록 해야 한다."
 
 #. Tag: title
-#: persistent_classes.xml:139
 #, no-c-format
 msgid "Declare accessors and mutators for persistent fields (optional)"
 msgstr "영속 필드들을 위한 accessor들과 mutator들을 선언하라(옵션)"
 
 #. Tag: para
-#: persistent_classes.xml:141
 #, fuzzy, no-c-format
 msgid ""
 "<literal>Cat</literal> declares accessor methods for all its persistent "
@@ -334,7 +228,6 @@
 "정 프로퍼티에 대한 직접적인 필드 접근으로 전환할 수도 있다."
 
 #. Tag: para
-#: persistent_classes.xml:151
 #, no-c-format
 msgid ""
 "Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
@@ -346,13 +239,11 @@
 "literal> get/set 쌍을 가진 프로퍼티를 영속화 시킬 수 있다."
 
 #. Tag: title
-#: persistent_classes.xml:162
 #, no-c-format
 msgid "Implementing inheritance"
 msgstr "상속 구현하기"
 
 #. Tag: para
-#: persistent_classes.xml:164
 #, fuzzy, no-c-format
 msgid ""
 "A subclass must also observe the first and second rules. It inherits its "
@@ -362,33 +253,13 @@
 "퍼클래스 <literal>Cat</literal>으로부터 그것의 identifier 프로퍼티를 상속받는"
 "다."
 
-#. 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> 구현하기"
 
 #. Tag: para
-#: persistent_classes.xml:175
 #, fuzzy, no-c-format
 msgid ""
 "You have to override the <literal>equals()</literal> and <literal>hashCode()"
@@ -398,7 +269,6 @@
 "<literal>hashCode()</literal> 메소드들을 오버라이드 시켜야 한다."
 
 #. Tag: para
-#: persistent_classes.xml:181
 #, fuzzy, no-c-format
 msgid ""
 "intend to put instances of persistent classes in a <literal>Set</literal> "
@@ -409,13 +279,11 @@
 "도하고 (many-valued 연관들에 대해 권장되는 방법) <emphasis>그리고</emphasis>"
 
 #. Tag: para
-#: persistent_classes.xml:188
 #, no-c-format
 msgid "intend to use reattachment of detached instances"
 msgstr "detached 인스턴스들의 reattachment(재첨부)를 사용하고자 의도하는"
 
 #. Tag: para
-#: persistent_classes.xml:194
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate guarantees equivalence of persistent identity (database row) and "
@@ -431,7 +299,6 @@
 "literal>를 구현해야 한다."
 
 #. Tag: para
-#: persistent_classes.xml:202
 #, fuzzy, no-c-format
 msgid ""
 "The most obvious way is to implement <literal>equals()</literal>/"
@@ -465,7 +332,6 @@
 "체 identity와 equality에 관한 통상의 자바 의미론임을 노트하라."
 
 #. Tag: para
-#: persistent_classes.xml:216
 #, fuzzy, no-c-format
 msgid ""
 "It is recommended that you implement <literal>equals()</literal> and "
@@ -481,41 +347,11 @@
 "서 우리의 인스턴스를 식별하게 될 키(<emphasis>natural</emphasis> 후보 키)를 "
 "형성하는 프로퍼티들만을 비교한다는 점을 의미한다 :"
 
-#. Tag: programlisting
-#: persistent_classes.xml:224
-#, 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 ""
 "하나의 비지니스 키는 데이터베이스 프라이머리 키 후보 만큼 견고하지 않아야 한"
@@ -524,29 +360,25 @@
 "보들이다."
 
 #. Tag: title
-#: persistent_classes.xml:236
 #, no-c-format
 msgid "Dynamic models"
 msgstr "동적인 모형들"
 
 #. Tag: title
-#: persistent_classes.xml:239
 #, no-c-format
 msgid "Note"
 msgstr ""
 
-#. Tag: emphasis
-#: persistent_classes.xml:241
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
-"The following features are currently considered experimental and may change "
-"in the near future."
+"<emphasis>The following features are currently considered experimental and "
+"may change in the near future.</emphasis>"
 msgstr ""
 "다음 특징들은 현재 실험적으로 고려되고 있으며 장래에는 변경될 수 있음을 노트"
 "하라."
 
 #. Tag: para
-#: persistent_classes.xml:246
 #, fuzzy, no-c-format
 msgid ""
 "Persistent entities do not necessarily have to be represented as POJO "
@@ -562,13 +394,12 @@
 "작성하지 않고, 오직 매핑 파일들 만을 작성한다."
 
 #. Tag: para
-#: persistent_classes.xml:254
 #, fuzzy, no-c-format
 msgid ""
 "By default, Hibernate works in normal POJO mode. You can set a default "
 "entity representation mode for a particular <literal>SessionFactory</"
 "literal> using the <literal>default_entity_mode</literal> configuration "
-"option (see <xref linkend=\"configuration-optional-properties\"/>)."
+"option (see <xref linkend=\"configuration-optional-properties\" />)."
 msgstr ""
 "디폴트로, Hibernate는 통산의 POJO 모드로 동작한다. 당신은 "
 "<literal>default_entity_mode</literal> 구성 옵션을 사용하여 특별한 "
@@ -576,7 +407,6 @@
 "있다 (<xref linkend=\"configuration-optional-properties\"/>을 보라)."
 
 #. Tag: para
-#: persistent_classes.xml:261
 #, fuzzy, no-c-format
 msgid ""
 "The following examples demonstrate the representation using <literal>Map</"
@@ -587,47 +417,7 @@
 "파일에서, <literal>entity-name</literal>은 클래스 이름 대신에(또는 클래스 이"
 "름에 덧붙여) 선언되어야 한다:"
 
-#. Tag: programlisting
-#: persistent_classes.xml:267
-#, 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 "
@@ -637,7 +427,6 @@
 "들의 대상(target) 타입은 또한 POJO가 아닌 동적인 엔티티일 수 있음을 노트하라."
 
 #. Tag: para
-#: persistent_classes.xml:276
 #, fuzzy, no-c-format
 msgid ""
 "After setting the default entity mode to <literal>dynamic-map</literal> for "
@@ -648,35 +437,7 @@
 "<literal>dynamic-map</literal>으로 설정한 후에, 우리는 <literal>Map</literal>"
 "들을 가진 <literal>Map</literal>들에 대해 실행 시에 작업할 수 있다:"
 
-#. Tag: programlisting
-#: persistent_classes.xml:282
-#, 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 "
@@ -693,7 +454,6 @@
 "규화 되고 소리가 울려 퍼질 수 있다."
 
 #. Tag: para
-#: persistent_classes.xml:292
 #, no-c-format
 msgid ""
 "Entity representation modes can also be set on a per <literal>Session</"
@@ -702,26 +462,7 @@
 "엔티티 표현 모드들은 또한 하나의 단위 <literal>Session</literal> 기준에 대해 "
 "설정될 수 있다:"
 
-#. Tag: programlisting
-#: persistent_classes.xml:297
-#, 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 "
@@ -743,23 +484,20 @@
 "다."
 
 #. Tag: para
-#: persistent_classes.xml:310
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "More information about the XML representation capabilities can be found in "
-"<xref linkend=\"xml\"/>."
+"<xref linkend=\"xml\" />."
 msgstr ""
 "XML 표현 가용성들에 대한 추가 정보는 <xref linkend=\"xml\"/>에서 찾을 수 있"
 "다."
 
 #. Tag: title
-#: persistent_classes.xml:318
 #, no-c-format
 msgid "Tuplizers"
 msgstr "Tuplizer들"
 
 #. Tag: para
-#: persistent_classes.xml:320
 #, fuzzy, no-c-format
 msgid ""
 "<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
@@ -789,7 +527,6 @@
 "한다."
 
 #. Tag: para
-#: persistent_classes.xml:330
 #, no-c-format
 msgid ""
 "There are two high-level types of Tuplizers, represented by the <literal>org."
@@ -801,7 +538,6 @@
 msgstr ""
 
 #. Tag: para
-#: persistent_classes.xml:338
 #, fuzzy, no-c-format
 msgid ""
 "Users can also plug in their own tuplizers. Perhaps you require that a "
@@ -821,55 +557,12 @@
 "들 정의들은 그것들이 관리할 수단인 엔티티 매핑 또는 컴포넌트 매핑에 첨부된"
 "다. 우리의 고객 엔티티에 대한 예제로 되돌아가면:"
 
-#. 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 ""
 
 #. Tag: para
-#: persistent_classes.xml:355
 #, no-c-format
 msgid ""
 "The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
@@ -887,140 +580,7 @@
 "package for illustration."
 msgstr ""
 
-#. 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</"
@@ -1028,16 +588,14 @@
 msgstr ""
 
 #. Tag: para
-#: persistent_classes.xml:373
 #, 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 ""
 
 #. Tag: para
-#: persistent_classes.xml:379
 #, no-c-format
 msgid ""
 "Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/portability.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/portability.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/portability.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Branch 3_3\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-23 18:41+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-06-16 18:47+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -14,19 +14,16 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: portability.xml:26
 #, no-c-format
 msgid "Database Portability Considerations"
 msgstr ""
 
 #. Tag: title
-#: portability.xml:29
 #, no-c-format
 msgid "Portability Basics"
 msgstr ""
 
 #. Tag: para
-#: portability.xml:31
 #, no-c-format
 msgid ""
 "One of the selling points of Hibernate (and really Object/Relational Mapping "
@@ -40,13 +37,11 @@
 msgstr ""
 
 #. Tag: title
-#: portability.xml:42
 #, no-c-format
 msgid "Dialect"
 msgstr ""
 
 #. Tag: para
-#: portability.xml:44
 #, no-c-format
 msgid ""
 "The first line of portability for Hibernate is the dialect, which is a "
@@ -60,13 +55,11 @@
 msgstr ""
 
 #. Tag: title
-#: portability.xml:55
 #, no-c-format
 msgid "Dialect resolution"
 msgstr ""
 
 #. Tag: para
-#: portability.xml:57
 #, no-c-format
 msgid ""
 "Originally, Hibernate would always require that users specify which dialect "
@@ -77,7 +70,6 @@
 msgstr ""
 
 #. Tag: para
-#: portability.xml:64
 #, no-c-format
 msgid ""
 "Starting with version 3.2, Hibernate introduced the notion of automatically "
@@ -89,19 +81,18 @@
 msgstr ""
 
 #. 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</"
+"<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. "
@@ -110,7 +101,6 @@
 msgstr ""
 
 #. Tag: para
-#: portability.xml:85
 #, no-c-format
 msgid ""
 "The cool part about these resolvers is that users can also register their "
@@ -126,13 +116,11 @@
 msgstr ""
 
 #. Tag: title
-#: portability.xml:98
 #, no-c-format
 msgid "Identifier generation"
 msgstr ""
 
 #. Tag: para
-#: portability.xml:100
 #, no-c-format
 msgid ""
 "When considering portability between databases, another important decision "
@@ -151,47 +139,64 @@
 "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."
+"semantics. The underlying issue is that the semantics of the application "
+"itself changes in these cases."
 msgstr ""
 
 #. Tag: para
-#: portability.xml:125
 #, no-c-format
 msgid ""
+"Hibernate has been improved so that the insert is delayed in cases where "
+"that is feasible."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
 "Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
 "\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
-"targetting portability in a much different way. <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."
+"targetting portability in a much different way."
 msgstr ""
 
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+msgstr ""
+
+#. 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 ""
+
 #. Tag: title
-#: portability.xml:154
 #, no-c-format
 msgid "Database functions"
 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."
+"This is a new area in Hibernate and as such it is not as mature as the "
+"overall Hibernate experience."
 msgstr ""
 
 #. Tag: para
-#: portability.xml:164
 #, no-c-format
 msgid ""
 "SQL functions can be referenced in many ways by users. However, not all "
@@ -202,7 +207,6 @@
 msgstr ""
 
 #. Tag: para
-#: portability.xml:170
 #, no-c-format
 msgid ""
 "Technically this function registration is handled through the <classname>org."
@@ -213,7 +217,6 @@
 msgstr ""
 
 #. Tag: para
-#: portability.xml:177
 #, no-c-format
 msgid ""
 "It is sort of implemented such that users can programatically register "
@@ -222,13 +225,11 @@
 msgstr ""
 
 #. Tag: title
-#: portability.xml:187
 #, no-c-format
 msgid "Type mappings"
 msgstr ""
 
 #. Tag: para
-#: portability.xml:189
 #, no-c-format
 msgid "This section scheduled for completion at a later date..."
 msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_criteria.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_criteria.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_criteria.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,25 +11,21 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: query_criteria.xml:29
 #, no-c-format
 msgid "Criteria Queries"
 msgstr "Criteria 질의들"
 
 #. Tag: para
-#: query_criteria.xml:31
 #, no-c-format
 msgid "Hibernate features an intuitive, extensible criteria query API."
 msgstr "Hibernate는 직관적인, 확장 가능한 criteria query API를 특징 짓는다."
 
 #. Tag: title
-#: query_criteria.xml:36
 #, no-c-format
 msgid "Creating a <literal>Criteria</literal> instance"
 msgstr "<literal>Criteria</literal> 인스턴스 생성하기"
 
 #. Tag: para
-#: query_criteria.xml:38
 #, no-c-format
 msgid ""
 "The interface <literal>org.hibernate.Criteria</literal> represents a query "
@@ -40,23 +36,12 @@
 "한 질의를 표현한다. <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."
@@ -69,53 +54,12 @@
 "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
 msgid "Restrictions can be grouped logically."
 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</"
@@ -126,18 +70,7 @@
 "의 영역이 꽤 존재하지만, 특히 유용한 것은 당신으로 하여금 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 ""
-
 #. Tag: para
-#: query_criteria.xml:76
 #, no-c-format
 msgid ""
 "The <literal>{alias}</literal> placeholder with be replaced by the row alias "
@@ -147,7 +80,6 @@
 "placeholder."
 
 #. Tag: para
-#: query_criteria.xml:81
 #, fuzzy, no-c-format
 msgid ""
 "You can also obtain a criterion from a <literal>Property</literal> instance. "
@@ -158,32 +90,12 @@
 "터 그것을 얻는 것이다. 당신은 <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 ""
-
 #. Tag: title
-#: query_criteria.xml:92
 #, no-c-format
 msgid "Ordering the results"
 msgstr "결과들을 순서지우기(ordering)"
 
 #. Tag: para
-#: query_criteria.xml:94
 #, fuzzy, no-c-format
 msgid ""
 "You can order the results using <literal>org.hibernate.criterion.Order</"
@@ -192,57 +104,19 @@
 "당신은 <literal>org.hibernate.criterion.Order</literal>를 사용하여 결과들을 "
 "순서(ordering)지울 수 있다."
 
-#. 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 ""
-
-#. 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 ""
 
-#. Tag: programlisting
-#: query_criteria.xml:112
-#, 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 ""
-
 #. Tag: para
-#: query_criteria.xml:114
 #, fuzzy, no-c-format
 msgid ""
 "The second <literal>createCriteria()</literal> returns a new instance of "
@@ -254,25 +128,12 @@
 "을 참조한다는 점을 노트하라."
 
 #. 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 ""
-
 #. Tag: para
-#: query_criteria.xml:126
 #, no-c-format
 msgid ""
 "(<literal>createAlias()</literal> does not create a new instance of "
@@ -282,7 +143,6 @@
 "턴스를 생성시키지 않는다.)"
 
 #. Tag: para
-#: query_criteria.xml:131
 #, fuzzy, no-c-format
 msgid ""
 "The kittens collections held by the <literal>Cat</literal> instances "
@@ -296,31 +156,12 @@
 "들을 단지 검색하고자 원할 경우, 당신은 하나의 <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 ""
-
 #. 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 "
@@ -329,23 +170,11 @@
 "당신은 <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 ""
-
 #. Tag: para
-#: query_criteria.xml:152
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "This query will fetch both <literal>mate</literal> and <literal>kittens</"
-"literal> by outer join. See <xref linkend=\"performance-fetching\"/> for "
+"literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
 "more information."
 msgstr ""
 "이 질의는 outer 조인으로 <literal>mate</literal>와 <literal>kittens</"
@@ -353,13 +182,11 @@
 "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 "
@@ -368,20 +195,7 @@
 "<literal>org.hibernate.criterion.Example</literal> 클래스는 주어진 인스턴스로"
 "부터 질의 기준(criterion)을 구조화 시키는 것을 당신에게 허용해준다."
 
-#. 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, "
@@ -391,53 +205,23 @@
 "이 제외된다."
 
 #. Tag: para
-#: query_criteria.xml:174
 #, no-c-format
 msgid "You can adjust how the <literal>Example</literal> is applied."
 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 ""
 "당신은 연관된 객체들에 대한 criteria(기준)을 위치지우는데 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"
 
 #. Tag: para
-#: query_criteria.xml:190
 #, fuzzy, no-c-format
 msgid ""
 "The class <literal>org.hibernate.criterion.Projections</literal> is a "
@@ -449,32 +233,7 @@
 "<literal>setProjection()</literal>을 호출하여 하나의 질의에 projection(투사,"
 "투영)을 적용시킨다."
 
-#. Tag: programlisting
-#: query_criteria.xml:196
-#, 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 ""
-
-#. Tag: programlisting
-#: query_criteria.xml:198
-#, 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 ""
-
 #. Tag: para
-#: query_criteria.xml:200
 #, no-c-format
 msgid ""
 "There is no explicit \"group by\" necessary in a criteria query. Certain "
@@ -486,7 +245,6 @@
 "고, 그것은 또한 SQL <literal>group by</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 "
@@ -497,29 +255,7 @@
 "(restriction)들 또는 ordering들 내에서 참조될 수 있다. 다음은 이것을 행하는 "
 "두 개의 다른 방법들이다:"
 
-#. Tag: programlisting
-#: query_criteria.xml:212
-#, 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 ""
-
-#. Tag: programlisting
-#: query_criteria.xml:214
-#, 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 ""
-
 #. Tag: para
-#: query_criteria.xml:216
 #, no-c-format
 msgid ""
 "The <literal>alias()</literal> and <literal>as()</literal> methods simply "
@@ -532,39 +268,7 @@
 "턴스를 간단하게 포장한다. 지름길로서, 당신이 projection을 projection 리스트"
 "에 추가할 때 당신은 alias를 할당할 수 있다:"
 
-#. Tag: programlisting
-#: query_criteria.xml:223
-#, 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 ""
-
-#. Tag: programlisting
-#: query_criteria.xml:225
-#, 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 ""
-
 #. Tag: para
-#: query_criteria.xml:227
 #, no-c-format
 msgid ""
 "You can also use <literal>Property.forName()</literal> to express "
@@ -573,40 +277,12 @@
 "당신은 또한 projection들을 표현하는데 <literal>Property.forName()</literal>"
 "을 사용할 수 있다:"
 
-#. Tag: programlisting
-#: query_criteria.xml:231
-#, 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 ""
-
-#. Tag: programlisting
-#: query_criteria.xml:233
-#, 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 ""
-
 #. Tag: title
-#: query_criteria.xml:238
 #, no-c-format
 msgid "Detached queries and subqueries"
 msgstr "Detached 질의들과 서브질의들"
 
 #. Tag: para
-#: query_criteria.xml:239
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>DetachedCriteria</literal> class allows you to create a query "
@@ -617,23 +293,7 @@
 "의를 생성시키도록 하고, 그런 다음 나중에 어떤 임의의 <literal>Session</"
 "literal>을 사용하여 그것을 실행하도록 한다."
 
-#. 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 ""
-
 #. Tag: para
-#: query_criteria.xml:246
 #, fuzzy, no-c-format
 msgid ""
 "A <literal>DetachedCriteria</literal> can also be used to express a "
@@ -644,55 +304,17 @@
 "브질의들을 포함하는 Criterion 인스턴스들은 <literal>Subqueries</literal> 또"
 "는 <literal>Property</literal>를 통해 얻어질 수 있다."
 
-#. 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 ""
-
-#. 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 ""
-
 #. Tag: para
-#: query_criteria.xml:256
 #, fuzzy, no-c-format
 msgid "Correlated subqueries are also possible:"
 msgstr "심지어 상관관계 지워진 서브질의들이 가능하다:"
 
-#. 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 ""
-
 #. Tag: title
-#: query_criteria.xml:269
 #, no-c-format
 msgid "Queries by natural identifier"
 msgstr "natural 식별자에 의한 질의들"
 
 #. Tag: para
-#: query_criteria.xml:271
 #, fuzzy, no-c-format
 msgid ""
 "For most queries, including criteria queries, the query cache is not "
@@ -709,7 +331,6 @@
 "질의가 자주 발생한다. criteria API는 이 쓰임새를 위한 특별한 설비를 제공한다."
 
 #. Tag: para
-#: query_criteria.xml:279
 #, fuzzy, no-c-format
 msgid ""
 "First, map the natural key of your entity using <literal>&lt;natural-id&gt;</"
@@ -719,25 +340,7 @@
 "티에 대한 natural 키를 매핑 시켜야 하고, second-level 캐시 사용을 가능하게 해"
 "야 한다."
 
-#. 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 ""
-
 #. Tag: para
-#: query_criteria.xml:286
 #, fuzzy, no-c-format
 msgid ""
 "This functionality is not intended for use with entities with "
@@ -747,7 +350,6 @@
 "도로 고안되어 있지 않음을 노트하라."
 
 #. Tag: para
-#: query_criteria.xml:291
 #, fuzzy, no-c-format
 msgid ""
 "Once you have enabled the Hibernate query cache, the <literal>Restrictions."
@@ -757,18 +359,6 @@
 "이제 <literal>Restrictions.naturalId()</literal>는 캐시 알고리즘을 보다 효율"
 "적으로 사용할 수 있도록 우리에게 허용해준다."
 
-#. 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 ""
-
 #~ msgid ""
 #~ "You may easily specify constraints upon related entities by navigating "
 #~ "associations using <literal>createCriteria()</literal>."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_hql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_hql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_hql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: query_hql.xml:29
 #, no-c-format
 msgid "HQL: The Hibernate Query Language"
 msgstr "HQL: 하이버네이트 질의 언어(Hibernate Query Language)"
 
 #. Tag: para
-#: query_hql.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate uses a powerful query language (HQL) that is similar in appearance "
@@ -29,13 +27,11 @@
 "성 그리고 연관과 같은 개념들을 이해하여서, 전체적으로 객체 지향적이다."
 
 #. Tag: title
-#: query_hql.xml:38
 #, no-c-format
 msgid "Case Sensitivity"
 msgstr "대소문자 구분"
 
 #. Tag: para
-#: query_hql.xml:40
 #, fuzzy, no-c-format
 msgid ""
 "With the exception of names of Java classes and properties, queries are case-"
@@ -51,7 +47,6 @@
 "literal>은 <literal>foo.BARSET</literal>과 같지 않다."
 
 #. Tag: para
-#: query_hql.xml:51
 #, fuzzy, no-c-format
 msgid ""
 "This manual uses lowercase HQL keywords. Some users find queries with "
@@ -63,25 +58,16 @@
 "이 컨벤션이 추하다는 점을 발견한다."
 
 #. Tag: title
-#: query_hql.xml:59
 #, no-c-format
 msgid "The from clause"
 msgstr "from ì ˆ"
 
 #. Tag: para
-#: query_hql.xml:61
 #, no-c-format
 msgid "The simplest possible Hibernate query is of the form:"
 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
 msgid ""
 "This returns all instances of the class <literal>eg.Cat</literal>. You do "
@@ -93,28 +79,14 @@
 "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 ""
 
-#. 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
 msgid ""
 "This query assigns the alias <literal>cat</literal> to <literal>Cat</"
@@ -126,14 +98,7 @@
 "<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
 msgid ""
 "Multiple classes can appear, resulting in a cartesian product or \"cross\" "
@@ -142,20 +107,7 @@
 "여러 개의 클래스들은 cartesian product(카티젼 곱) 또는 \"크로스\" 조인으로 귀"
 "결되어 나타날 수도 있다."
 
-#. 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
 msgid ""
 "It is good practice to name query aliases using an initial lowercase as this "
@@ -167,13 +119,11 @@
 "<literal>domesticCat</literal>)."
 
 #. Tag: title
-#: query_hql.xml:107
 #, no-c-format
 msgid "Associations and joins"
 msgstr "연관들과 조인들"
 
 #. Tag: para
-#: query_hql.xml:109
 #, fuzzy, no-c-format
 msgid ""
 "You can also assign aliases to associated entities or to elements of a "
@@ -182,59 +132,32 @@
 "우리는 또한 <literal>join</literal>을 사용하여 , 연관된 엔티티들에 또는 값들"
 "을 가진 콜렉션의 요소들에도 alias들을 할당할 수도 있다."
 
-#. Tag: programlisting
-#: query_hql.xml:114
-#, 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 ""
-
-#. Tag: programlisting
-#: query_hql.xml:116
-#, no-c-format
-msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
-msgstr ""
-
-#. Tag: programlisting
-#: query_hql.xml:118
-#, no-c-format
-msgid "<![CDATA[from Formula form full join form.parameter param]]>"
-msgstr ""
-
 #. Tag: para
-#: query_hql.xml:120
 #, fuzzy, no-c-format
 msgid "The supported join types are borrowed from ANSI SQL:"
 msgstr "지원되는 join 타입들은 ANSI SQL로부터 빌려왔다"
 
-#. Tag: literal
-#: query_hql.xml:127
-#, no-c-format
-msgid "inner join"
-msgstr "inner join"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr "또는 <literal>List</literal>로서,"
 
-#. Tag: literal
-#: query_hql.xml:132
-#, no-c-format
-msgid "left outer join"
-msgstr "left outer join"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>full join</literal> (대개 유용하지 않음)"
 
-#. Tag: literal
-#: query_hql.xml:137
-#, no-c-format
-msgid "right outer join"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>right outer join</literal>"
 msgstr "right outer join"
 
 #. Tag: para
-#: query_hql.xml:141
 #, no-c-format
 msgid "<literal>full join</literal> (not usually useful)"
 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 "
@@ -243,17 +166,7 @@
 "<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> "
@@ -262,24 +175,14 @@
 "당신은 HQL <literal>with</literal> 키워드를 사용하여 특별한 조인 조건들을 제"
 "공할 수 있다."
 
-#. 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 ""
-
 #. Tag: para
-#: query_hql.xml:161
 #, fuzzy, no-c-format
 msgid ""
 "A \"fetch\" join allows associations or collections of values to be "
 "initialized along with their parent objects using a single select. This is "
 "particularly useful in the case of a collection. It effectively overrides "
 "the outer join and lazy declarations of the mapping file for associations "
-"and collections. See <xref linkend=\"performance-fetching\"/> for more "
+"and collections. See <xref linkend=\"performance-fetching\" /> for more "
 "information."
 msgstr ""
 "게다가, \"fetch\" join은 값들을 가진 콜렉션들이나 연관관계들이 한 개의 select"
@@ -288,17 +191,7 @@
 "의 outer join과 lazy 선언들을 효율적으로 오버라이드 시킨다. 추가 정보는 "
 "<xref linkend=\"performance-fetching\"/>을 보라."
 
-#. Tag: programlisting
-#: query_hql.xml:169
-#, 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 "
@@ -314,18 +207,7 @@
 "은 부모 객체를 통해 접근될 수 있다. 우리가 alias를 필요로 할 수 있는 유일한 "
 "이유는 더 많은 콜렉션들을 재귀적으로 조인 페칭시키는 경우이다:"
 
-#. Tag: programlisting
-#: query_hql.xml:179
-#, 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 "
@@ -358,7 +240,6 @@
 "literal>와 <literal>right join fetch</literal>는 의미가 없다."
 
 #. Tag: para
-#: query_hql.xml:196
 #, fuzzy, no-c-format
 msgid ""
 "If you are using property-level lazy fetching (with bytecode "
@@ -370,28 +251,12 @@
 "Hibernate로 하여금 <literal>fetch all properties</literal>를 사용하여 (첫 번"
 "째 질의에서) lazy 프로퍼티들을 즉시 페치하도록 강제시키는 것이 가능하다."
 
-#. 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> "
@@ -401,7 +266,6 @@
 "<literal>명시적</literal>."
 
 #. Tag: para
-#: query_hql.xml:214
 #, fuzzy, no-c-format
 msgid ""
 "The queries shown in the previous section all use the <literal>explicit</"
@@ -412,7 +276,6 @@
 "는 <literal>명시적인</literal> 형식을 사용한다. 이것은 권장되는 형식이다."
 
 #. Tag: para
-#: query_hql.xml:219
 #, no-c-format
 msgid ""
 "The <literal>implicit</literal> form does not use the join keyword. Instead, "
@@ -425,27 +288,18 @@
 "인</literal> 조인들은 임의의 HQL 절들내에 나타날 수 있다. <literal>함축적인</"
 "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
 msgid "Referring to identifier property"
 msgstr "식별자 속성 참조하기"
 
 #. Tag: para
-#: query_hql.xml:232
 #, fuzzy, no-c-format
 msgid "There are 2 ways to refer to an entity's identifier property:"
 msgstr ""
 "개략적으로 말하자면, 엔티티의 식별자 속성을 참조하는 2가지 방법들이 존재한다:"
 
 #. Tag: para
-#: query_hql.xml:237
 #, fuzzy, no-c-format
 msgid ""
 "The special property (lowercase) <literal>id</literal> may be used to "
@@ -457,7 +311,6 @@
 "참조하는데 사용될 수 있다."
 
 #. Tag: para
-#: query_hql.xml:244
 #, fuzzy, no-c-format
 msgid ""
 "If the entity defines a named identifier property, you can use that property "
@@ -467,7 +320,6 @@
 "용할 수도 있다."
 
 #. Tag: para
-#: query_hql.xml:250
 #, fuzzy, no-c-format
 msgid ""
 "References to composite identifier properties follow the same naming rules. "
@@ -482,7 +334,6 @@
 "literal> 속성이 식별자 속성을 참조하는데 사용될 수 있다."
 
 #. Tag: para
-#: query_hql.xml:258
 #, fuzzy, no-c-format
 msgid ""
 "Please note that, starting in version 3.2.2, this has changed significantly. "
@@ -497,13 +348,11 @@
 "비식별자 속성들이 Hibernate 질의들 내에서 결코 참조될 수 없었다는 점이었다."
 
 #. Tag: title
-#: query_hql.xml:269
 #, no-c-format
 msgid "The select clause"
 msgstr "select ì ˆ"
 
 #. Tag: para
-#: query_hql.xml:271
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>select</literal> clause picks which objects and properties to "
@@ -512,17 +361,7 @@
 "<literal>select</literal> 절은 질의 결과 셋 속에 반환할 객체들과 프로퍼티들"
 "이 어느 것인지를 골라 내도록 강제한다. 다음을 검토하자:"
 
-#. Tag: programlisting
-#: query_hql.xml:276
-#, 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</"
@@ -532,14 +371,7 @@
 "것이다. 실제로 당신은 이 질의들을 다음과 같이 보다 축약형으로 표현할수도 있"
 "다:"
 
-#. 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
 msgid ""
 "Queries can return properties of any value type including properties of "
@@ -548,22 +380,7 @@
 "질의들은 컴포넌트 타입의 프로퍼티들을 포함하는 임의의 값 타입의 프로퍼티들을 "
 "반환할 수도 있다:"
 
-#. Tag: programlisting
-#: query_hql.xml:289
-#, 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 "
@@ -573,52 +390,19 @@
 "들은 여러 객체들 그리고/또는 프로퍼티들을 <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
 msgid "Or as a <literal>List</literal>:"
 msgstr "또는 <literal>List</literal>로서,"
 
-#. Tag: programlisting
-#: query_hql.xml:304
-#, 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 "반환할 수도 있다."
 
-#. 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 ""
-
 #. Tag: para
-#: query_hql.xml:313
 #, fuzzy, no-c-format
 msgid ""
 "You can assign aliases to selected expressions using <literal>as</literal>:"
@@ -626,17 +410,7 @@
 "당신은 <literal>as</literal>를 사용하여 select되는 표현식들에 alias들을 할당"
 "할 수 있다:"
 
-#. 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</"
@@ -644,17 +418,7 @@
 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."
@@ -663,13 +427,11 @@
 "반환한다."
 
 #. Tag: title
-#: query_hql.xml:332
 #, no-c-format
 msgid "Aggregate functions"
 msgstr "집계 함수들"
 
 #. Tag: para
-#: query_hql.xml:334
 #, fuzzy, no-c-format
 msgid ""
 "HQL queries can even return the results of aggregate functions on properties:"
@@ -677,41 +439,27 @@
 "HQL 질의들은 프로퍼티들에 대한 집계(aggregate) 함수들의 결과들을 반환할수도 "
 "있다:"
 
-#. 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
 msgid "The supported aggregate functions are:"
 msgstr "지원되는 집계 함수들은 다음과 같다"
 
-#. Tag: literal
-#: query_hql.xml:356
-#, no-c-format
-msgid "avg(...), sum(...), min(...), max(...)"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 msgstr "avg(...), sum(...), min(...), max(...)"
 
-#. Tag: literal
-#: query_hql.xml:361
-#, no-c-format
-msgid "count(*)"
-msgstr "count(*)"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr "또는 <literal>List</literal>로서,"
 
-#. Tag: literal
-#: query_hql.xml:366
-#, no-c-format
-msgid "count(...), count(distinct ...), count(all...)"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
 msgstr "count(...), count(distinct ...), count(all...)"
 
 #. Tag: para
-#: query_hql.xml:371
 #, fuzzy, no-c-format
 msgid ""
 "You can use arithmetic operators, concatenation, and recognized SQL "
@@ -720,25 +468,7 @@
 "당신은 select 절 속에 산술 연산자들, 연결 연산자, 그리고 인지된 SQL 함수들을 "
 "사용할 수 있다:"
 
-#. Tag: programlisting
-#: query_hql.xml:376
-#, 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 "
@@ -747,29 +477,17 @@
 "<literal>distinct</literal> 키워드와 all <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 "Polymorphic(다형성) 질의들"
 
 #. Tag: para
-#: query_hql.xml:392
 #, no-c-format
 msgid "A query like:"
 msgstr "다음과 같은 질의:"
 
 #. Tag: para
-#: query_hql.xml:398
 #, fuzzy, no-c-format
 msgid ""
 "returns instances not only of <literal>Cat</literal>, but also of subclasses "
@@ -786,14 +504,7 @@
 "스를 구현하는 모든 영속 클래스들의 인스턴스들을 반환할 것이다. 다음 질의는 모"
 "든 영속 객체들을 반환할 것이다:"
 
-#. 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 "
@@ -802,14 +513,7 @@
 "인터페이스 <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
 msgid ""
 "These last two queries will require more than one SQL <literal>SELECT</"
@@ -823,13 +527,11 @@
 "scroll()</literal>을 사용하여 이들 질의들을 호출할 수 없음을 의미한다)."
 
 #. Tag: title
-#: query_hql.xml:424
 #, no-c-format
 msgid "The where clause"
 msgstr "where ì ˆ"
 
 #. Tag: para
-#: query_hql.xml:426
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>where</literal> clause allows you to refine the list of "
@@ -839,43 +541,31 @@
 "에게 허용해준다. 만일 alias가 존재하지 않을 경우, 당신은 이름에 의해 프로퍼티"
 "들을 참조할 수도 있다:"
 
-#. 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 ""
 "만일 한 개의 alias가 존재할 경우, 하나의 수식어가 붙은 프로퍼티 이름을 사용하"
 "라:"
 
-#. Tag: programlisting
-#: query_hql.xml:437
-#, no-c-format
-msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
-msgstr ""
-
 #. Tag: para
-#: query_hql.xml:439
 #, fuzzy, no-c-format
 msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
 msgstr "는 'Fritz'로 명명된 <literal>Cat</literal>의 인스턴스들을 반환한다."
 
 #. Tag: para
-#: query_hql.xml:443
+#, no-c-format
+msgid "The following query:"
+msgstr ""
+
+#. Tag: para
 #, fuzzy, 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>startDate</literal> 프로퍼티와 동일한 "
 "<literal>date</literal> 프로퍼티를 가진 <literal>bar</literal>의 인스턴스가 "
@@ -883,14 +573,7 @@
 "현식들은 <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
 msgid ""
 "This query translates to an SQL query with a table (inner) join. For example:"
@@ -898,23 +581,13 @@
 "이 질의는 테이블 (inner) join을 가진 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
 msgid "would result in a query that would require four table joins in SQL."
 msgstr ""
 "당신은 SQL에서 네 개의 테이블 join들을 필요로 하는 하나의 질의로 끝낼 것이다."
 
 #. Tag: para
-#: query_hql.xml:467
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>=</literal> operator can be used to compare not only "
@@ -923,50 +596,23 @@
 "<literal>=</literal> 연산자는 프로퍼티들 뿐만 아니라 또한 인스턴스들을 비교하"
 "는데 사용될 수 있다:"
 
-#. Tag: programlisting
-#: query_hql.xml:472
-#, 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>는 객체의 유일 식별자를 참조하는"
 "데 사용될 수 있다. 추가 정보는 <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
 msgid "The second query is efficient and does not require a table join."
 msgstr "두 번째 질의가 효율적이다. 테이블 join이 필요 없다!"
 
 #. Tag: para
-#: query_hql.xml:488
 #, fuzzy, no-c-format
 msgid ""
 "Properties of composite identifiers can also be used. Consider the following "
@@ -979,40 +625,19 @@
 "자. 식별자 속성들을 참조하는 것과 관련된 추가 정보는 다시 <xref linkend="
 "\"queryhql-identifier-property\"/>를 보라."
 
-#. 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
 msgid "Once again, the second query does not require a table join."
 msgstr "다시 한번, 두 번째 질의는 테이블 join을 필요로 하지 않는다."
 
 #. 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 ""
 
 #. Tag: para
-#: query_hql.xml:507
 #, fuzzy, no-c-format
 msgid ""
 "The special property <literal>class</literal> accesses the discriminator "
@@ -1025,18 +650,11 @@
 "스한다. where 절 속에 삽입된 Java 클래스 이름은 그것의 판별자(discriminator) "
 "값으로 변환될 것이다."
 
-#. 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
 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 ""
 "당신은 또한 컴포넌트들 또는 composite 사용자 타입들, 또는 명명된 컴포넌트 타"
@@ -1044,7 +662,6 @@
 "components\"/>를 보라."
 
 #. Tag: para
-#: query_hql.xml:520
 #, fuzzy, no-c-format
 msgid ""
 "An \"any\" type has the special properties <literal>id</literal> and "
@@ -1057,16 +674,7 @@
 "기서 <literal>AuditLog.item</literal>은 <literal>&lt;any&gt;</literal>로 매핑"
 "된 프로퍼티이다)."
 
-#. Tag: programlisting
-#: query_hql.xml:526
-#, 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> "
@@ -1077,13 +685,11 @@
 "질의 내에서 완전히 다른 데이터베이스 컬럼들의 값들을 참조할 것임을 노트하라."
 
 #. Tag: title
-#: query_hql.xml:536
 #, no-c-format
 msgid "Expressions"
 msgstr "표현식들"
 
 #. Tag: para
-#: query_hql.xml:538
 #, fuzzy, no-c-format
 msgid ""
 "Expressions used in the <literal>where</literal> clause include the "
@@ -1093,13 +699,11 @@
 "있는 대부분의 종류의 것들을 포함한다:"
 
 #. Tag: para
-#: query_hql.xml:545
 #, fuzzy, no-c-format
 msgid "mathematical operators: <literal>+, -, *, /</literal>"
 msgstr "산술 연산자들 <literal>+, -, *, /</literal>"
 
 #. Tag: para
-#: query_hql.xml:550
 #, fuzzy, no-c-format
 msgid ""
 "binary comparison operators: <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, like</"
@@ -1108,19 +712,16 @@
 "바이너리 비교 연산자들 <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, 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>"
 
 #. Tag: para
-#: query_hql.xml:560
 #, fuzzy, no-c-format
 msgid "Parentheses <literal>( )</literal> that indicates grouping"
 msgstr "그룹핑을 나타내는 괄호들 <literal>( )</literal>, indicating grouping"
 
 #. Tag: para
-#: query_hql.xml:565
 #, no-c-format
 msgid ""
 "<literal>in</literal>, <literal>not in</literal>, <literal>between</"
@@ -1134,7 +735,6 @@
 "<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>, "
@@ -1145,7 +745,6 @@
 "literal>"
 
 #. Tag: para
-#: query_hql.xml:584
 #, no-c-format
 msgid ""
 "string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
@@ -1154,7 +753,6 @@
 "문자열 연결 <literal>...||...</literal> or <literal>concat(...,...)</literal>"
 
 #. Tag: para
-#: query_hql.xml:589
 #, fuzzy, no-c-format
 msgid ""
 "<literal>current_date()</literal>, <literal>current_time()</literal>, and "
@@ -1164,7 +762,6 @@
 "<literal>current_timestamp()</literal>"
 
 #. Tag: para
-#: query_hql.xml:595
 #, fuzzy, no-c-format
 msgid ""
 "<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
@@ -1176,7 +773,6 @@
 "<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"
@@ -1188,13 +784,11 @@
 "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 "
@@ -1204,7 +798,6 @@
 "()</literal>"
 
 #. Tag: para
-#: query_hql.xml:619
 #, no-c-format
 msgid ""
 "<literal>cast(... as ...)</literal>, where the second argument is the name "
@@ -1218,7 +811,6 @@
 "literal>."
 
 #. Tag: para
-#: query_hql.xml:627
 #, no-c-format
 msgid ""
 "the HQL <literal>index()</literal> function, that applies to aliases of a "
@@ -1228,7 +820,6 @@
 "함수"
 
 #. Tag: para
-#: query_hql.xml:633
 #, fuzzy, no-c-format
 msgid ""
 "HQL functions that take collection-valued path expressions: <literal>size(), "
@@ -1244,7 +835,6 @@
 "literal>."
 
 #. Tag: para
-#: query_hql.xml:641
 #, fuzzy, no-c-format
 msgid ""
 "Any database-supported SQL scalar function like <literal>sign()</literal>, "
@@ -1256,13 +846,11 @@
 "라 함수"
 
 #. Tag: para
-#: query_hql.xml:647
 #, no-c-format
 msgid "JDBC-style positional parameters <literal>?</literal>"
 msgstr "JDBC-스타일 위치 파라미터들 <literal>?</literal>"
 
 #. Tag: para
-#: query_hql.xml:652
 #, fuzzy, no-c-format
 msgid ""
 "named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
@@ -1272,7 +860,6 @@
 "<literal>:x1</literal>"
 
 #. Tag: para
-#: query_hql.xml:657
 #, no-c-format
 msgid ""
 "SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
@@ -1282,7 +869,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."
@@ -1292,7 +878,6 @@
 "literal>"
 
 #. Tag: para
-#: query_hql.xml:669
 #, fuzzy, no-c-format
 msgid ""
 "<literal>in</literal> and <literal>between</literal> can be used as follows:"
@@ -1300,41 +885,12 @@
 "<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
 msgid "The negated forms can be written as follows:"
 msgstr "그리고 부정형들은 다음과 같이 작성될 수 있다"
 
-#. Tag: programlisting
-#: query_hql.xml:681
-#, 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 "
@@ -1344,7 +900,6 @@
 "null 값들을 테스트하는데 사용될 수 있다."
 
 #. Tag: para
-#: query_hql.xml:690
 #, fuzzy, no-c-format
 msgid ""
 "Booleans can be easily used in expressions by declaring HQL query "
@@ -1353,16 +908,7 @@
 "Boolean들은 Hibernate 구성 내에 HQL 질의 치환들을 선언함으로써 표현식들 내에 "
 "쉽게 사용될 수 있다:"
 
-#. 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</"
@@ -1373,14 +919,7 @@
 "이 HQL로부터 번역된 SQL에서 리터럴 <literal>1</literal>과 <literal>0</"
 "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
 msgid ""
 "You can test the size of a collection with the special property "
@@ -1389,20 +928,7 @@
 "당신은 특별한 프로퍼티 <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
 msgid ""
 "For indexed collections, you can refer to the minimum and maximum indices "
@@ -1417,27 +943,7 @@
 "<literal>maxelement</literal> 함수를 사용하여 기본 타입을 가진 콜렉션의 최소 "
 "요소 및 최대 요소를 참조할 수 있다."
 
-#. Tag: programlisting
-#: query_hql.xml:721
-#, 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 "
@@ -1449,42 +955,7 @@
 "는 인덱스 세트(<literal>elements</literal> 함수와 <literal>indices</literal> "
 "함수), 또는 서브질의의 결과를 전달했을 때 지원된다(아래를 보라)."
 
-#. Tag: programlisting
-#: query_hql.xml:733
-#, 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</"
@@ -1499,7 +970,6 @@
 "Hibernate3에서 where 절 내에서만 사용될 것임을 노트하라."
 
 #. Tag: para
-#: query_hql.xml:750
 #, fuzzy, no-c-format
 msgid ""
 "Elements of indexed collections (arrays, lists, and maps) can be referred to "
@@ -1508,56 +978,14 @@
 "인덱싱 된 콜렉션들의 요소들(배열들, 리스트들, map들)은 인덱스에 의해 참조될 "
 "수 있다(where 절 안에서만):"
 
-#. Tag: programlisting
-#: query_hql.xml:755
-#, 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> 내부의 표현식은 산술 표현실일 수 있다."
 
-#. Tag: programlisting
-#: query_hql.xml:767
-#, 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 "
@@ -1566,29 +994,12 @@
 "HQL은 또한 one-to-many 연관 또는 값들을 가진 콜렉션의 요소들에 대해 미리 만들"
 "어진 <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
 msgid "Scalar SQL functions supported by the underlying database can be used:"
 msgstr "기본 데이터베이스에 의해 제공되는 Scalar 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
 msgid ""
 "Consider how much longer and less readable the following query would be in "
@@ -1597,57 +1008,17 @@
 "당신이 아직 이 모든 것을 납득하지 못한다면, 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> : 다음과 같은 어떤 것"
 
-#. 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 ì ˆ"
 
 #. Tag: para
-#: query_hql.xml:800
 #, fuzzy, no-c-format
 msgid ""
 "The list returned by a query can be ordered by any property of a returned "
@@ -1656,16 +1027,7 @@
 "질의에 의해 반환된 리스트는 반환된 클래스 또는 컴포넌트들의 프로퍼티에 의해 "
 "순서(ordering)지워질 수 있다:"
 
-#. 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 "
@@ -1675,13 +1037,11 @@
 "순 또는 내림차순 정렬을 나타낸다."
 
 #. Tag: title
-#: query_hql.xml:813
 #, no-c-format
 msgid "The group by clause"
 msgstr "group by ì ˆ"
 
 #. Tag: para
-#: query_hql.xml:815
 #, fuzzy, no-c-format
 msgid ""
 "A query that returns aggregate values can be grouped by any property of a "
@@ -1690,42 +1050,12 @@
 "aggregate 값들을 반환하는 질의는 반환된 클래스나 컴포넌트들의 프로퍼티에 의"
 "해 그룹지워질 수 있다:"
 
-#. 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> 절이 허용된다."
 
-#. Tag: programlisting
-#: query_hql.xml:827
-#, 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</"
@@ -1736,20 +1066,7 @@
 "MySQL은 지원되지 않는다) <literal>having</literal> 절과 <literal>order by</"
 "literal> 절 속에 허용된다."
 
-#. Tag: programlisting
-#: query_hql.xml:835
-#, 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</"
@@ -1765,13 +1082,11 @@
 "라. 당신은 명시적으로 모든 집계되지 않는 속성들을 리스트해야 한다."
 
 #. 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 "
@@ -1784,79 +1099,28 @@
 "해). 심지어 서로 상관된 서브질의들(외부 질의 내에서 alias를 참조하는 서브질의"
 "들)이 허용된다."
 
-#. 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
 msgid "Note that HQL subqueries can occur only in the select or where clauses."
 msgstr ""
 "HQL 서브질의들이 select 절 또는 where 절 내에서만 일어날 수 있음을 노트하라."
 
 #. Tag: para
-#: query_hql.xml:871
 #, fuzzy, no-c-format
 msgid ""
 "Note that subqueries can also utilize <literal>row value constructor</"
-"literal> syntax. See <xref linkend=\"queryhql-tuple\"/> for more information."
+"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
+"information."
 msgstr ""
 "서브질의들은 또한 <literal>row value constructor</literal> 구문을 활용할 수 "
 "있다. 상세한 것은 <xref linkend=\"queryhql-tuple\"/>를 보라."
 
 #. Tag: title
-#: query_hql.xml:879
 #, no-c-format
 msgid "HQL examples"
 msgstr "HQL 예제들"
 
 #. Tag: para
-#: query_hql.xml:881
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate queries can be quite powerful and complex. In fact, the power of "
@@ -1871,7 +1135,6 @@
 "의 질의들은 이것들보다 훨씬 간단하다는 점을 노트하라!"
 
 #. Tag: para
-#: query_hql.xml:887
 #, fuzzy, no-c-format
 msgid ""
 "The following query returns the order id, number of items, the given minimum "
@@ -1890,32 +1153,7 @@
 "<literal>PRICE</literal> 테이블들에 대한 네 개의 inner 조인들과 한 개의(상관"
 "지워지지 않은) subselect를 갖고 있다."
 
-#. 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 "
@@ -1924,27 +1162,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 "
@@ -1961,29 +1179,7 @@
 "literal> 테이블들에 대한 두 개의 inner 조인들과 하나의 상관관계 지워진 "
 "subselect를 가진 SQL 질의로 변환된다."
 
-#. Tag: programlisting
-#: query_hql.xml:913
-#, 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, "
@@ -1992,22 +1188,7 @@
 "만일 내가 <literal>statusChanges</literal> 콜렉션을 set가 아닌 list로 매핑했"
 "다면, 그 질의는 작성하기가 훨씬 더 간단했을 것이다."
 
-#. 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 "
@@ -2026,21 +1207,7 @@
 "세 개의 inner 조인들, 하나의 outer 조인, 그리고 하나의 subselect를 가진 한 개"
 "의 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."
@@ -2048,80 +1215,41 @@
 "몇몇 데이터베이스들의 경우, 우리는 (상관관계 지워진) subselect를 없앨 필요가 "
 "있을 것이다."
 
-#. 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"
 
 #. Tag: para
-#: query_hql.xml:944
 #, fuzzy, no-c-format
 msgid ""
 "HQL now supports <literal>update</literal>, <literal>delete</literal> and "
 "<literal>insert ... select ...</literal> statements. See <xref linkend="
-"\"batch-direct\"/> for more information."
+"\"batch-direct\" /> for more information."
 msgstr ""
 "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 &amp; Tricks"
 msgstr "팁들 &amp; 트릭들"
 
 #. Tag: para
-#: query_hql.xml:954
 #, fuzzy, no-c-format
 msgid "You can count the number of query results without returning them:"
 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 ""
 "콜렉션의 크기에 따라 결과를 순서(ordering)지우려면, 다음 질의를 사용하라:"
 
-#. 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 "
@@ -2130,33 +1258,14 @@
 "만일 당신의 데이터베이스가 subselect들을 지원할 경우, 당신은 당신의 질의의 "
 "where 절 내에 selection 사이즈에 대한 조건을 위치지울 수 있다:"
 
-#. 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
 msgid "If your database does not support subselects, use the following query:"
 msgstr ""
 "만일 당신의 데이터베이스가 subselect를 지원하지 않을 경우, 다음 질의를 사용하"
 "라:"
 
-#. Tag: programlisting
-#: query_hql.xml:977
-#, 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 "
@@ -2165,36 +1274,13 @@
 "이 해결책이 inner 조인 때문에 0개의 메시지를 가진 <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의 프로퍼티들은 명명된 질의 파라미터들에 바인드될 수 있다:"
 
-#. 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 "
@@ -2203,57 +1289,24 @@
 "콜렉션들은 필터를 가진 <literal>Query</literal> 인터페이스를 사용하여 쪼매김"
 "하는 것이 가능하다:"
 
-#. 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
 msgid "Collection elements can be ordered or grouped using a query filter:"
 msgstr ""
 "콜렉션 요소들은 질의 필터를 사용하여 순서(ordering)지워지거나 그룹지워질 수 "
 "도 있다:"
 
-#. 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 "당신은 콜렉션을 초기화 하지 않고서 그것(콜렉션)의 크기를 찾을 수 있다:"
 
-#. 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 "컴포넌트들"
 
 #. Tag: para
-#: query_hql.xml:1016
 #, fuzzy, no-c-format
 msgid ""
 "Components can be used similarly to the simple value types that are used in "
@@ -2264,20 +1317,7 @@
 "으로 사용될 수 있다. 그것들은 <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 "
@@ -2286,54 +1326,26 @@
 "여기서 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 "컴포넌트들은 또한 <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 constructors</xref>에 있다."
 
 #. Tag: title
-#: query_hql.xml:1045
 #, no-c-format
 msgid "Row value constructor syntax"
 msgstr "Row value constructor 구문"
 
 #. Tag: para
-#: query_hql.xml:1047
 #, fuzzy, no-c-format
 msgid ""
 "HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
@@ -2348,16 +1360,7 @@
 "넌트들과 연관되어 있는 다중-값 비교들을 일반적으로 언급하고 있다. 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
 #, fuzzy, no-c-format
 msgid ""
 "That is valid syntax although it is a little verbose. You can make this more "
@@ -2366,14 +1369,7 @@
 "비록 약간 장황스럽지만 그것은 유효한 구문이다. 이것을 약간 더 간결하게 만들"
 "고 <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> "
@@ -2382,7 +1378,6 @@
 "<literal>select</literal>절 내에 이것을 지정하는 것이 또한 유용할 수 있다:"
 
 #. Tag: para
-#: query_hql.xml:1069
 #, fuzzy, no-c-format
 msgid ""
 "Using <literal>row value constructor</literal> syntax can also be beneficial "
@@ -2391,18 +1386,7 @@
 "<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
 #, fuzzy, no-c-format
 msgid ""
 "One thing to consider when deciding if you want to use this syntax, is that "
@@ -2412,6 +1396,15 @@
 "만일 당신이 이 구문을 사용하고자 원할 경우에 고려해야 할 한 가지는 질의가 메"
 "타데이터 내에 있는 컴포넌트 서브-속성들의 순서에 종속될 것이라는 점이다."
 
+#~ msgid "inner join"
+#~ msgstr "inner join"
+
+#~ msgid "left outer join"
+#~ msgstr "left outer join"
+
+#~ msgid "count(*)"
+#~ msgstr "count(*)"
+
 #~ 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_sql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_sql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/query_sql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: query_sql.xml:29
 #, no-c-format
 msgid "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. "
@@ -33,7 +31,6 @@
 "료한 이전 경로를 제공한다."
 
 #. Tag: para
-#: query_sql.xml:37
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate3 allows you to specify handwritten SQL, including stored "
@@ -44,13 +41,11 @@
 "다."
 
 #. Tag: title
-#: query_sql.xml:41
 #, no-c-format
 msgid "Using a <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</"
@@ -63,28 +58,16 @@
 "다. 다음은 이 API를 질의에 사용하는 방법을 설명한다."
 
 #. Tag: title
-#: query_sql.xml:49
 #, no-c-format
 msgid "Scalar queries"
 msgstr "스칼라 질의들"
 
 #. 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 질의는 스칼라들(값들)의 목록을 얻는 것이다."
 
-#. Tag: programlisting
-#: query_sql.xml:54
-#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
-"sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
-"]]>"
-msgstr ""
-
 #. Tag: para
-#: query_sql.xml:56
 #, fuzzy, no-c-format
 msgid ""
 "These will return a List of Object arrays (Object[]) with scalar values for "
@@ -96,7 +79,6 @@
 "제 순서와 타입들을 도출하는데 ResultSetMetadata를 사용할 것이다."
 
 #. Tag: para
-#: query_sql.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "To avoid the overhead of using <literal>ResultSetMetadata</literal>, or "
@@ -107,37 +89,22 @@
 "환되는 것을 보다 명시적이게끔 하기 위해 우리는 <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 ""
-
 #. Tag: para
-#: query_sql.xml:67 query_sql.xml:113 query_sql.xml:198 query_sql.xml:349
 #, no-c-format
 msgid "This query specified:"
 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 질의 문자열"
 
 #. 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 "
@@ -155,26 +122,13 @@
 "세 개의 컬럼들 만이 반환될 것임을 의미한다."
 
 #. 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."
 msgstr "스칼라들 중 몇몇 또는 전부에 대한 타입 정보를 남겨두는 것이 가능하다."
 
-#. Tag: programlisting
-#: query_sql.xml:90
-#, no-c-format
-msgid ""
-"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
-" .addScalar(\"ID\", Hibernate.LONG)\n"
-" .addScalar(\"NAME\")\n"
-" .addScalar(\"BIRTHDATE\")\n"
-"]]>"
-msgstr ""
-
 #. Tag: para
-#: query_sql.xml:92
 #, fuzzy, no-c-format
 msgid ""
 "This is essentially the same query as before, but now "
@@ -186,7 +140,6 @@
 "로 NAME과 BIRTHDATE의 타입을 결정하는데 사용된다."
 
 #. Tag: para
-#: query_sql.xml:96
 #, fuzzy, no-c-format
 msgid ""
 "How the java.sql.Types returned from ResultSetMetaData is mapped to "
@@ -201,13 +154,11 @@
 "시키는 것이 가능하다."
 
 #. Tag: title
-#: query_sql.xml:104
 #, no-c-format
 msgid "Entity queries"
 msgstr "Entity 질의들"
 
 #. Tag: para
-#: query_sql.xml:106
 #, no-c-format
 msgid ""
 "The above queries were all about returning scalar values, basically "
@@ -219,24 +170,12 @@
 "본적으로 반환하는 것에 대한 전부였다. 다음은 <literal>addEntity()</literal>"
 "를 통해 native sql 질의로부터 엔티티 객체들을 얻는 방법을 보여준다."
 
-#. 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 "
@@ -247,7 +186,6 @@
 "둘다 각각의 요소가 하나의 Cat 엔티티인 하나의 List를 반환할 것이다."
 
 #. Tag: para
-#: query_sql.xml:129
 #, no-c-format
 msgid ""
 "If the entity is mapped with a <literal>many-to-one</literal> to another "
@@ -264,29 +202,17 @@
 "음 <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()이 고유하게 기능하는 것을 허용한다."
 
 #. Tag: title
-#: query_sql.xml:143
 #, no-c-format
 msgid "Handling associations and collections"
 msgstr "연관들과 콜렉션들을 처리하기"
 
 #. Tag: para
-#: query_sql.xml:145
 #, no-c-format
 msgid ""
 "It is possible to eagerly join in the <literal>Dog</literal> to avoid the "
@@ -299,19 +225,7 @@
 "<literal>addJoin()</literal> 메소드를 통해 행해지는데, 그것은 연관이나 콜렉"
 "션 내에서 조인시키는 것을 당신에게 허용해준다."
 
-#. Tag: programlisting
-#: query_sql.xml:150
-#, 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 ""
-
 #. Tag: para
-#: query_sql.xml:152
 #, fuzzy, no-c-format
 msgid ""
 "In this example, the returned <literal>Cat</literal>'s will have their "
@@ -328,19 +242,7 @@
 "<literal>Cat</literal>이 <literal>Dog</literal>에 대해 one-to-many를 가질 경"
 "우, 콜렉션들에 대해 동일한 eager joining을 행하는 것이 가능하다."
 
-#. 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 ""
-
 #. 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 "
@@ -354,13 +256,11 @@
 "또는 디폴트 alias/column 이름들이 충분하지 않을 때 발생하기 시작한다."
 
 #. Tag: title
-#: query_sql.xml:170
 #, no-c-format
 msgid "Returning multiple entities"
 msgstr "여러 개의 엔티티들을 반환하기"
 
 #. 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 "
@@ -374,26 +274,13 @@
 "다."
 
 #. Tag: para
-#: query_sql.xml:177
 #, no-c-format
 msgid ""
 "Column alias injection is needed in the following query (which most likely "
 "will fail):"
 msgstr "컬럼 alias 주입은 다음 질의(아마 실패할 것이다)에서 필요하다:"
 
-#. Tag: programlisting
-#: query_sql.xml:180
-#, 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 ""
-
 #. 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 "
@@ -410,24 +297,11 @@
 "\" 등의 형식일 것이다."
 
 #. 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 "
@@ -436,13 +310,11 @@
 "컬럼 alias들을 주입하기 위한 Hibernate용 placeholder들을 가진 SQL 질의 문자열"
 
 #. 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 "
@@ -461,29 +333,12 @@
 "터 내에 선언된 것으로의 Cat들과 그것들의 mother들을 검색한다. 우리는 우리가 "
 "좋다면 심지어 where 절 내에 프로퍼티 alias를 사용할 수도 있음을 주지하라."
 
-#. 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 ""
-
 #. Tag: title
-#: query_sql.xml:223
 #, no-c-format
 msgid "Alias and property references"
 msgstr "alias 참조와 프로퍼티 참조"
 
 #. Tag: para
-#: query_sql.xml:225
 #, fuzzy, no-c-format
 msgid ""
 "In most cases the above alias injection is needed. For queries relating to "
@@ -497,7 +352,6 @@
 "데 사용될 몇몇 특별한 alias들이 존재한다."
 
 #. Tag: para
-#: query_sql.xml:230
 #, fuzzy, no-c-format
 msgid ""
 "The following table shows the different ways you can use the alias "
@@ -510,211 +364,178 @@
 "과 아마 다른 이름을 가질 것이다."
 
 #. Tag: title
-#: query_sql.xml:236
 #, no-c-format
 msgid "Alias injection names"
 msgstr "alias 주입 이름들"
 
 #. 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
-#, no-c-format
-msgid "{[aliasname].[propertyname]"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
 msgstr "{[aliasname].[propertyname]"
 
-#. Tag: literal
-#: query_sql.xml:261
-#, no-c-format
-msgid "A_NAME as {item.name}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
 msgstr "A_NAME as {item.name}"
 
 #. Tag: entry
-#: query_sql.xml:265
 #, no-c-format
 msgid "A composite property"
 msgstr "composite 프로퍼티"
 
-#. Tag: literal
-#: query_sql.xml:267
-#, no-c-format
-msgid "{[aliasname].[componentname].[propertyname]}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 msgstr "{[aliasname].[componentname].[propertyname]}"
 
-#. Tag: literal
-#: query_sql.xml:269
-#, no-c-format
-msgid "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
+"literal>"
 msgstr "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}"
 
 #. Tag: entry
-#: query_sql.xml:274
 #, no-c-format
 msgid "Discriminator of an entity"
 msgstr "엔티티의 판별자(Discriminator)"
 
-#. Tag: literal
-#: query_sql.xml:276
-#, no-c-format
-msgid "{[aliasname].class}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
 msgstr "{[aliasname].class}"
 
-#. Tag: literal
-#: query_sql.xml:278
-#, no-c-format
-msgid "DISC as {item.class}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
 msgstr "DISC as {item.class}"
 
 #. 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
-#, no-c-format
-msgid "{[aliasname].*}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
 msgstr "{[aliasname].*}"
 
-#. Tag: literal
-#: query_sql.xml:286
-#, no-c-format
-msgid "{item.*}"
-msgstr "{item.*}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr "<literal>SQLQuery</literal> 사용하기"
 
 #. Tag: entry
-#: query_sql.xml:290
 #, no-c-format
 msgid "A collection key"
 msgstr "콜렉션 키"
 
-#. Tag: literal
-#: query_sql.xml:292
-#, no-c-format
-msgid "{[aliasname].key}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
 msgstr "{[aliasname].key}"
 
-#. Tag: literal
-#: query_sql.xml:294
-#, no-c-format
-msgid "ORGID as {coll.key}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
 msgstr "ORGID as {coll.key}"
 
 #. Tag: entry
-#: query_sql.xml:298
 #, no-c-format
 msgid "The id of an collection"
 msgstr "콜렉션의 id"
 
-#. Tag: literal
-#: query_sql.xml:300
-#, no-c-format
-msgid "{[aliasname].id}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
 msgstr "{[aliasname].id}"
 
-#. Tag: literal
-#: query_sql.xml:302
-#, no-c-format
-msgid "EMPID as {coll.id}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
 msgstr "EMPID as {coll.id}"
 
 #. Tag: entry
-#: query_sql.xml:306
 #, no-c-format
 msgid "The element of an collection"
 msgstr "콜렉션의 요소"
 
-#. Tag: literal
-#: query_sql.xml:308
-#, no-c-format
-msgid "{[aliasname].element}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
 msgstr "{[aliasname].element}"
 
-#. Tag: literal
-#: query_sql.xml:310
-#, no-c-format
-msgid "XID as {coll.element}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
 msgstr "XID as {coll.element}"
 
 #. Tag: entry
-#: query_sql.xml:314
 #, fuzzy, no-c-format
 msgid "property of the element in the collection"
 msgstr "콜렉션 내에 있는 요소의 프로퍼티"
 
-#. Tag: literal
-#: query_sql.xml:316
-#, no-c-format
-msgid "{[aliasname].element.[propertyname]}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
 msgstr "{[aliasname].element.[propertyname]}"
 
-#. Tag: literal
-#: query_sql.xml:318
-#, no-c-format
-msgid "NAME as {coll.element.name}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
 msgstr "NAME as {coll.element.name}"
 
 #. 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
-#, no-c-format
-msgid "{[aliasname].element.*}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
 msgstr "{[aliasname].element.*}"
 
-#. Tag: literal
-#: query_sql.xml:326
-#, no-c-format
-msgid "{coll.element.*}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
 msgstr "{coll.element.*}"
 
 #. Tag: entry
-#: query_sql.xml:330
 #, no-c-format
 msgid "All properties of the the collection"
 msgstr "콜렉션의 모든 프로퍼티들"
 
-#. Tag: literal
-#: query_sql.xml:334
-#, no-c-format
-msgid "{coll.*}"
-msgstr "{coll.*}"
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr "<literal>SQLQuery</literal> 사용하기"
 
 #. Tag: title
-#: query_sql.xml:343
 #, no-c-format
 msgid "Returning non-managed entities"
 msgstr "non-managed 엔티티들을 반환하기"
 
 #. Tag: para
-#: query_sql.xml:345
 #, fuzzy, no-c-format
 msgid ""
 "It is possible to apply a ResultTransformer to native SQL queries, allowing "
@@ -723,22 +544,12 @@
 "native sql 질의에 ResultTransformer를 적용하는 것이 가능하다. 예를 들어 non-"
 "managed 엔티티들을 반환하기 위해 ResultTransformer를 허용하는 것."
 
-#. 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 ""
-
 #. Tag: para
-#: query_sql.xml:357
 #, no-c-format
 msgid "a result transformer"
 msgstr "결과 변환자(transformer)"
 
 #. Tag: para
-#: query_sql.xml:361
 #, no-c-format
 msgid ""
 "The above query will return a list of <literal>CatDTO</literal> which has "
@@ -750,13 +561,11 @@
 "literal>의 리스트를 반환할 것이다."
 
 #. Tag: title
-#: query_sql.xml:368
 #, no-c-format
 msgid "Handling inheritance"
 msgstr "상속 처리하기"
 
 #. 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 "
@@ -767,39 +576,22 @@
 "의 모든 프로퍼티들을 포함해야 하고 그 모든 것이 서브클래스화 되어야 한다."
 
 #. Tag: title
-#: query_sql.xml:376
 #, no-c-format
 msgid "Parameters"
 msgstr "파라미터들"
 
 #. Tag: para
-#: query_sql.xml:378
 #, fuzzy, no-c-format
 msgid "Native SQL queries support positional as well as named parameters:"
 msgstr ""
 "Native sql 질의들은 위치 파라미터들 뿐만 아니라 명명된 파라미터들을 지원한다:"
 
-#. 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 질의들"
 
 #. Tag: para
-#: query_sql.xml:391
 #, fuzzy, no-c-format
 msgid ""
 "Named SQL queries can be defined in the mapping document and called in "
@@ -810,32 +602,7 @@
 "정확하게 호출될 수도 있다. 이 경우에, 우리는 <literal>addEntity()</literal> "
 "호출을 필요로 하지 <emphasis>않는다</emphasis>."
 
-#. 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 ""
-
-#. 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>&lt;return-join&gt;</literal> element is use to join "
@@ -846,29 +613,7 @@
 "collection&gt;</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 ""
-
 #. Tag: para
-#: query_sql.xml:406
 #, no-c-format
 msgid ""
 "A named SQL query may return a scalar value. You must declare the column "
@@ -879,21 +624,7 @@
 "scalar&gt;</literal> 요소를 사용하여 컬럼 alias와 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>&lt;"
@@ -906,32 +637,7 @@
 "용하기 위해 <literal>&lt;resultset&gt;</literal> 요소 속에 결과셋 매핑 정보들"
 "을 구체화 시킬 수 있다."
 
-#. 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 ""
-
 #. Tag: para
-#: query_sql.xml:419
 #, fuzzy, no-c-format
 msgid ""
 "You can, alternatively, use the resultset mapping information in your hbm "
@@ -940,26 +646,12 @@
 "다른방법으로 당신은 당신의 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 ""
-
 #. Tag: title
-#: query_sql.xml:425
 #, no-c-format
 msgid "Using return-property to explicitly specify column/alias names"
 msgstr "명시적으로 column/alias 이름들을 지정하는데 return-property 사용하기"
 
 #. Tag: para
-#: query_sql.xml:428
 #, fuzzy, no-c-format
 msgid ""
 "You can explicitly tell Hibernate what column aliases to use with "
@@ -971,26 +663,7 @@
 "literal>로서 당신은 사용할 컬럼 alias들이 무엇인지를 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 ""
-
 #. Tag: para
-#: query_sql.xml:435
 #, fuzzy, no-c-format
 msgid ""
 "<literal>&lt;return-property&gt;</literal> also works with multiple columns. "
@@ -1001,29 +674,7 @@
 "다. 이것은 다중-컬럼 프로퍼티들에 대한 fine grained 제어를 허용할 수 없는 "
 "<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 ""
-
 #. Tag: para
-#: query_sql.xml:442
 #, fuzzy, no-c-format
 msgid ""
 "In this example <literal>&lt;return-property&gt;</literal> was used in "
@@ -1036,7 +687,6 @@
 "용해줌으로써."
 
 #. Tag: para
-#: query_sql.xml:447
 #, no-c-format
 msgid ""
 "If your mapping has a discriminator you must use <literal>&lt;return-"
@@ -1047,13 +697,11 @@
 "한다."
 
 #. 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. "
@@ -1067,55 +715,14 @@
 "동작하는 것이 가능하도록 첫 번째 out-파라미터로서 한 개의 결과셋을 반환해야 "
 "한다. 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 ""
-
 #. 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에서 이 질의를 사용하기 위해 당신은 하나의 명명된 질의(a named "
 "query)를 통해 그것을 매핑할 필요가 있다."
 
-#. Tag: programlisting
-#: query_sql.xml:466
-#, 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 ""
-
 #. Tag: para
-#: query_sql.xml:468
 #, fuzzy, no-c-format
 msgid ""
 "Stored procedures currently only return scalars and entities. <literal>&lt;"
@@ -1127,13 +734,11 @@
 "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 "
@@ -1151,7 +756,6 @@
 "을 갖고 있기 때문에, 규칙들은 각각의 데이터베이스에 따라 차이가 난다."
 
 #. Tag: para
-#: query_sql.xml:482
 #, fuzzy, no-c-format
 msgid ""
 "Stored procedure queries cannot be paged with <literal>setFirstResult()/"
@@ -1161,7 +765,6 @@
 "서 쪽매김 될 수 없다."
 
 #. Tag: para
-#: query_sql.xml:485
 #, fuzzy, no-c-format
 msgid ""
 "The recommended call form is standard SQL92: <literal>{ ? = call functionName"
@@ -1173,13 +776,11 @@
 "parameters&gt;}</literal>. Native 호출 구문은 지원되지 않는다."
 
 #. Tag: para
-#: query_sql.xml:490
 #, no-c-format
 msgid "For Oracle the following rules apply:"
 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 "
@@ -1195,13 +796,11 @@
 "는데, 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의 경우 다음 규칙들이 적용된다:"
 
 #. Tag: para
-#: query_sql.xml:507
 #, fuzzy, no-c-format
 msgid ""
 "The procedure must return a result set. Note that since these servers can "
@@ -1215,7 +814,6 @@
 "이다. 그 밖의 모든 것은 폐기될 것이다."
 
 #. Tag: para
-#: query_sql.xml:515
 #, no-c-format
 msgid ""
 "If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it "
@@ -1226,13 +824,11 @@
 "이 아니다."
 
 #. Tag: title
-#: query_sql.xml:525
 #, no-c-format
 msgid "Custom SQL for create, update and delete"
 msgstr "create, update 그리고 delete를 위한 맞춤형 SQL"
 
 #. Tag: para
-#: query_sql.xml:527
 #, no-c-format
 msgid ""
 "Hibernate3 can use custom SQL statements for create, update, and delete "
@@ -1249,24 +845,7 @@
 "literal>, <literal>&lt;sql-update&gt;</literal> 매핑 태그들은 이들 문자열들"
 "을 오버라이드 시킨다:"
 
-#. Tag: programlisting
-#: query_sql.xml:535
-#, 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 ""
-
 #. 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 "
@@ -1278,7 +857,6 @@
 "용할 경우 이것은 물론 당신의 매핑의 이식성을 감소시킬 것이다."
 
 #. Tag: para
-#: query_sql.xml:541
 #, no-c-format
 msgid ""
 "Stored procedures are supported if the <literal>callable</literal> attribute "
@@ -1286,24 +864,7 @@
 msgstr ""
 "만일 <literal>callable</literal> 속성이 설정되면 내장 프로시저들이 지원된다:"
 
-#. Tag: programlisting
-#: query_sql.xml:544
-#, 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 ""
-
 #. 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 "
@@ -1313,7 +874,6 @@
 "로, 위치 파라미터들의 순서는 현재 절대적으로 중요하다."
 
 #. Tag: para
-#: query_sql.xml:549
 #, fuzzy, no-c-format
 msgid ""
 "You can view the expected order by enabling debug logging for the "
@@ -1331,7 +891,6 @@
 "염두에 두라.)"
 
 #. Tag: para
-#: query_sql.xml:556
 #, fuzzy, no-c-format
 msgid ""
 "The stored procedures are in most cases required to return the number of "
@@ -1345,54 +904,18 @@
 "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 ""
-
 #. Tag: title
-#: query_sql.xml:566
 #, no-c-format
 msgid "Custom SQL for loading"
 msgstr "로딩을 위한 맞춤형 SQL"
 
 #. Tag: para
-#: query_sql.xml:568
 #, fuzzy, no-c-format
 msgid "You can also declare your own SQL (or HQL) queries for entity loading:"
 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 "
@@ -1401,57 +924,17 @@
 "이것은 앞서 논의했듯이 단지 명명된 질의 선언이다. 당신은 class 매핑 속에 이 "
 "명명된 질의를 참조할 수 있다:"
 
-#. 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 ""
-
 #. 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
 msgid "You can even define a query for collection loading:"
 msgstr "당신은 콜렉션 로딩을 위한 한 개의 질의를 정의할 수도 있다:"
 
-#. Tag: programlisting
-#: query_sql.xml:582
-#, 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 ""
-
-#. 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 ""
-
 #. Tag: para
-#: query_sql.xml:586
 #, fuzzy, no-c-format
 msgid ""
 "You can also define an entity loader that loads a collection by join "
@@ -1460,17 +943,8 @@
 "당신은 심지어 조인 페칭에 의해 하나의 콜렉션을 로드시키는 하나의 엔티티를 정"
 "의할 수 있다:"
 
-#. 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 ""
+#~ msgid "{item.*}"
+#~ msgstr "{item.*}"
+
+#~ msgid "{coll.*}"
+#~ msgstr "{coll.*}"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/session_api.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/session_api.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/session_api.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\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 "
@@ -34,7 +32,6 @@
 "케이션들에서 영속에 관한 매우 고유한 객체-지향적 관점이다."
 
 #. Tag: para
-#: session_api.xml:40
 #, no-c-format
 msgid ""
 "In other words, Hibernate application developers should always think about "
@@ -49,19 +46,16 @@
 "리케이션 개발자와 유일하게 관련된다."
 
 #. Tag: title
-#: session_api.xml:48
 #, no-c-format
 msgid "Hibernate object states"
 msgstr "Hibernate 객체 상태들"
 
 #. Tag: para
-#: session_api.xml:50
 #, no-c-format
 msgid "Hibernate defines and supports the following object states:"
 msgstr "Hibernate 다음 객체 상태들을 정의하고 지원한다:"
 
 #. Tag: para
-#: session_api.xml:56
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Transient</emphasis> - an object is transient if it has just been "
@@ -84,7 +78,6 @@
 "<literal>Session</literal>을 사용하라."
 
 #. Tag: para
-#: session_api.xml:68
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Persistent</emphasis> - a persistent instance has a representation "
@@ -105,7 +98,6 @@
 "나 <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 "
@@ -128,7 +120,6 @@
 "emphasis>, 즉 사용자의 관점의 작업 단위라고 부른다."
 
 #. Tag: para
-#: session_api.xml:93
 #, fuzzy, no-c-format
 msgid ""
 "We will now discuss the states and state transitions (and the Hibernate "
@@ -138,13 +129,11 @@
 "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 "
@@ -155,19 +144,7 @@
 "<emphasis>transient</emphasis>로 간주된다. 우리는 그것을 세션과 연관지어서 "
 "transient 인스턴스를 <emphasis>영속화</emphasis> 시킬 수 있다:"
 
-#. Tag: programlisting
-#: session_api.xml:110
-#, 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 ""
-
 #. Tag: para
-#: session_api.xml:112
 #, fuzzy, no-c-format
 msgid ""
 "If <literal>Cat</literal> has a generated identifier, the identifier is "
@@ -188,7 +165,6 @@
 "()</literal>를 사용할 수도 있다."
 
 #. Tag: para
-#: session_api.xml:124
 #, fuzzy, no-c-format
 msgid ""
 "<literal>persist()</literal> makes a transient instance persistent. However, "
@@ -208,7 +184,6 @@
 "extended Session/persistence context."
 
 #. Tag: para
-#: session_api.xml:135
 #, no-c-format
 msgid ""
 "<literal>save()</literal> does guarantee to return an identifier. If an "
@@ -224,7 +199,6 @@
 "running conversation with an extended Session/persistence context."
 
 #. Tag: para
-#: session_api.xml:145
 #, fuzzy, no-c-format
 msgid ""
 "Alternatively, you can assign the identifier using an overloaded version of "
@@ -233,21 +207,7 @@
 "다른 방법으로, 당신은 <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 ""
-
 #. Tag: para
-#: session_api.xml:152
 #, fuzzy, no-c-format
 msgid ""
 "If the object you make persistent has associated objects (e.g. the "
@@ -267,7 +227,6 @@
 "<literal>NOT NULL</literal> 컨스트레인트를 위배할 수도 있다."
 
 #. Tag: para
-#: session_api.xml:162
 #, fuzzy, no-c-format
 msgid ""
 "Usually you do not bother with this detail, as you will normally use "
@@ -284,13 +243,11 @@
 "논의된다."
 
 #. 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 "
@@ -304,40 +261,12 @@
 "체를 취하고 그 상태를 영속(persistent) 상태로 그 클래스의 새로이 초기화 된 인"
 "스턴스 속으로 로드시킬 것이다."
 
-#. Tag: programlisting
-#: session_api.xml:182
-#, no-c-format
-msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
-msgstr ""
-
-#. 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 "다른 방법으로 당신은 주어진 인스턴스 속으로 상태를 로드시킬 수 있다:"
 
-#. Tag: programlisting
-#: session_api.xml:190
-#, 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 ""
-
 #. Tag: para
-#: session_api.xml:192
 #, fuzzy, no-c-format
 msgid ""
 "Be aware that <literal>load()</literal> will throw an unrecoverable "
@@ -360,7 +289,6 @@
 "허용해준다."
 
 #. 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 "
@@ -372,20 +300,7 @@
 "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 ""
-
 #. Tag: para
-#: session_api.xml:211
 #, fuzzy, no-c-format
 msgid ""
 "You can even load an object using an SQL <literal>SELECT ... FOR UPDATE</"
@@ -396,14 +311,7 @@
 "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 ""
-
 #. Tag: para
-#: session_api.xml:218
 #, fuzzy, no-c-format
 msgid ""
 "Any associated instances or contained collections will <emphasis>not</"
@@ -417,7 +325,6 @@
 "라."
 
 #. 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, "
@@ -428,23 +335,13 @@
 "그것의 콜렉션들을 다시 로드시키는 것이 가능하다. 데이터베이스 트리거들이 그 "
 "객체의 프로퍼티들 중 어떤 것을 초기화 시키는데 사용될 때 이것이 유용하다."
 
-#. 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\"/>."
+"\"performance-fetching\" />."
 msgstr ""
 "중요한 질문이 대개 이 지점에서 나타난다: Hibernate는 데이터베이로부터 그것을 "
 "얼마나 많이 로드시키고 그리고 얼마나 많은 SQL <literal>SELECT</literal>들이 "
@@ -452,13 +349,11 @@
 "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 "
@@ -476,13 +371,11 @@
 "native SQL 속에 당신의 질의를 표현할 수도 있다."
 
 #. 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."
@@ -497,38 +390,7 @@
 "<literal>Session</literal>을 사용하여 하나의 <literal>Query</literal>를 얻는"
 "다:"
 
-#. Tag: programlisting
-#: session_api.xml:264
-#, 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 ""
-
 #. Tag: para
-#: session_api.xml:266
 #, fuzzy, no-c-format
 msgid ""
 "A query is usually executed by invoking <literal>list()</literal>. The "
@@ -550,13 +412,11 @@
 "들 중복들을 간단하게 필터링할 수 있다."
 
 #. Tag: title
-#: session_api.xml:278
 #, no-c-format
 msgid "Iterating results"
 msgstr "결과들을 반복하기"
 
 #. Tag: para
-#: session_api.xml:280
 #, fuzzy, no-c-format
 msgid ""
 "Occasionally, you might be able to achieve better performance by executing "
@@ -579,33 +439,12 @@
 "스턴스들을 초기화 시키는 추가적인 select들에 대해 <emphasis>n</emphasis> 번"
 "의 접속을 필요로 할 수 있다."
 
-#. 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 ""
-
 #. Tag: title
-#: session_api.xml:296
 #, no-c-format
 msgid "Queries that return tuples"
 msgstr "튜플들을 반환하는 질의들"
 
 #. Tag: para
-#: session_api.xml:298
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate queries sometimes return tuples of objects. Each tuple is returned "
@@ -614,32 +453,12 @@
 "Hibernate 질의들은 때때로 객체들의 튜플들을 반환하고, 그 경우에 각각의 튜플"
 "은 배열로서 반환된다:"
 
-#. 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 ""
-
 #. Tag: title
-#: session_api.xml:308
 #, no-c-format
 msgid "Scalar results"
 msgstr "스칼라 결과들"
 
 #. Tag: para
-#: session_api.xml:310
 #, fuzzy, no-c-format
 msgid ""
 "Queries can specify a property of a class in the <literal>select</literal> "
@@ -651,34 +470,12 @@
 "퍼티들이나 aggregate들은 \"스칼라\" 결과들(그리고 영속 상태에 있는 엔티티들"
 "이 아닌 것으)로 간주된다."
 
-#. 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 ""
-
 #. 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 "
@@ -694,67 +491,27 @@
 "다. 명명된 파라미터들의 장점들은 다음과 같다:"
 
 #. Tag: para
-#: session_api.xml:333
 #, no-c-format
 msgid ""
 "named parameters are insensitive to the order they occur in the query string"
 msgstr "명명된 파라미터들은 그것들이 질의 문자열 내에 발생하는 순서에 관계없다"
 
 #. Tag: para
-#: session_api.xml:339
 #, fuzzy, no-c-format
 msgid "they can occur multiple times in the same query"
 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 "
@@ -765,18 +522,7 @@
 "또는 당신이 검색하고자 원하는 첫 번째 행)을 지정할 필요가 있다면 당신은 "
 "<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 ""
-
 #. Tag: para
-#: session_api.xml:369
 #, no-c-format
 msgid ""
 "Hibernate knows how to translate this limit query into the native SQL of "
@@ -786,13 +532,11 @@
 "있다."
 
 #. Tag: title
-#: session_api.xml:377
 #, no-c-format
 msgid "Scrollable iteration"
 msgstr "스크롤 가능한 iteration"
 
 #. Tag: para
-#: session_api.xml:379
 #, fuzzy, no-c-format
 msgid ""
 "If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the "
@@ -805,38 +549,7 @@
 "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 ""
-
 #. Tag: para
-#: session_api.xml:388
 #, fuzzy, no-c-format
 msgid ""
 "Note that an open database connection and cursor is required for this "
@@ -848,13 +561,11 @@
 "<literal>setFirstResult()</literal>를 사용하라."
 
 #. Tag: title
-#: session_api.xml:397
 #, no-c-format
 msgid "Externalizing named queries"
 msgstr "명명된 질의들을 구체화 시키기"
 
 #. 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 "
@@ -865,35 +576,12 @@
 "가 마크업으로서 해석될 수 있는 문자들을 포함할 경우에 <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 ""
-
 #. Tag: para
-#: session_api.xml:407
 #, no-c-format
 msgid "Parameter binding and executing is done programatically:"
 msgstr "파라미터 바인딩과 실행은 프로그램 상으로 행해진다:"
 
-#. Tag: programlisting
-#: session_api.xml:411
-#, 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 ""
-
 #. Tag: para
-#: session_api.xml:413
 #, fuzzy, no-c-format
 msgid ""
 "The actual program code is independent of the query language that is used. "
@@ -905,7 +593,6 @@
 "들을 위치지움으로써 기존 질의들을 Hibernate로 이전시킬 수도 있음을 노트하라."
 
 #. Tag: para
-#: session_api.xml:419
 #, fuzzy, no-c-format
 msgid ""
 "Also note that a query declaration inside a <literal>&lt;hibernate-"
@@ -921,13 +608,11 @@
 "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 "
@@ -938,20 +623,7 @@
 "의의 특별한 타입이다. 질의 문자열은 현재의 콜렉션 요소를 의미하는 "
 "<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 ""
-
 #. 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 "
@@ -963,7 +635,6 @@
 "이지만, 예상되는 행위와 일치된다)."
 
 #. Tag: para
-#: session_api.xml:447
 #, fuzzy, no-c-format
 msgid ""
 "Observe that filters do not require a <literal>from</literal> clause, "
@@ -974,18 +645,7 @@
 "에 필터들이 한 개의 from 절을 가질 수 있을지라도). 필터들은 콜렉션 요소들 자"
 "체들을 반환하는 것으로 한정되지 않는다."
 
-#. 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 ""
-
 #. 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 "
@@ -994,24 +654,12 @@
 "심지어 하나의 공백의 필터 질의도 예를 들어 거대한 콜렉션 내에 있는 요소들의 "
 "부분집합들을 로드시키는데 유용하다:"
 
-#. 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 ""
-
 #. Tag: title
-#: session_api.xml:464
 #, no-c-format
 msgid "Criteria queries"
 msgstr "Criteria 질의들"
 
 #. Tag: para
-#: session_api.xml:466
 #, fuzzy, no-c-format
 msgid ""
 "HQL is extremely powerful, but some developers prefer to build queries "
@@ -1023,35 +671,22 @@
 "향 API를 사용하여 동적으로 질의들을 빌드시키는 것을 선호한다. Hibernate는 이"
 "들 경우들을 위한 직관적인 <literal>Criteria</literal> query 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 ""
-
 #. Tag: para
-#: session_api.xml:474
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Criteria</literal> and the associated <literal>Example</"
-"literal> API are discussed in more detail in <xref linkend=\"querycriteria\"/"
-">."
+"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 "native SQL에서 질의들"
 
 #. Tag: para
-#: session_api.xml:484
 #, fuzzy, no-c-format
 msgid ""
 "You can express a query in SQL, using <literal>createSQLQuery()</literal> "
@@ -1067,49 +702,23 @@
 "하라. 만일 당신이 Hibernate API를 사용하고자 선택한 경우에 , 당신은 SQL alias"
 "들을 중괄호들 속에 포함시켜야 한다:"
 
-#. 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 ""
-
-#. Tag: programlisting
-#: session_api.xml:494
-#, 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 ""
-
 #. 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\"/>."
+"in <xref linkend=\"querysql\" />."
 msgstr ""
 "SQL 질의들은 Hibernate 질의들처럼 명명된 파라미터들과 위치 파라미터들을 포함"
 "할 수도 있다. SQL 질의들에 대한 추가 정보는 <xref linkend=\"querysql\"/>에서 "
 "찾을 수 있다."
 
 #. 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 "
@@ -1132,18 +741,7 @@
 "<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 ""
-
 #. Tag: para
-#: session_api.xml:522
 #, fuzzy, no-c-format
 msgid ""
 "Sometimes this programming model is inefficient, as it requires in the same "
@@ -1158,7 +756,6 @@
 "제공한다."
 
 #. Tag: para
-#: session_api.xml:529
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate does not offer its own API for direct execution of "
@@ -1170,7 +767,7 @@
 "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."
+"linkend=\"batch\" /> for some possible batch operation tricks."
 msgstr ""
 "Hibernate는 <placeholder-1/> 문장 또는 <placeholder-2/> 문장의 직접적인 실행"
 "을 위한 그것 자신의 API를 제공하지 않음을 노트하라. Hibernate는 하나의 "
@@ -1183,13 +780,11 @@
 "이션 트릭들에 대해서는 <xref linkend=\"batch\"/>을 보라."
 
 #. Tag: title
-#: session_api.xml:546
 #, no-c-format
 msgid "Modifying detached objects"
 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 "
@@ -1205,7 +800,6 @@
 "터를 사용한다."
 
 #. Tag: para
-#: session_api.xml:555
 #, no-c-format
 msgid ""
 "Hibernate supports this model by providing for reattachment of detached "
@@ -1216,25 +810,7 @@
 "merge()</literal> 메소드를 사용하여 detached 인스턴스들의 재첨부를 제공함으로"
 "써 이 모형을 지원한다:"
 
-#. Tag: programlisting
-#: session_api.xml:561
-#, 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 ""
-
 #. Tag: para
-#: session_api.xml:563
 #, no-c-format
 msgid ""
 "If the <literal>Cat</literal> with identifier <literal>catId</literal> had "
@@ -1246,7 +822,6 @@
 "이 그것을 다시 재첨부하려고 시도할 때, 예외상황이 던져졌을 것이다."
 
 #. Tag: para
-#: session_api.xml:569
 #, fuzzy, no-c-format
 msgid ""
 "Use <literal>update()</literal> if you are certain that the session does not "
@@ -1266,14 +841,13 @@
 "첫 번째 메소드이다."
 
 #. 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."
+"linkend=\"objectstate-transitive\" /> for more information."
 msgstr ""
 "어플리케이션은 만일 그것이 detached 인스턴스들의 상태가 또한 업데이트 되는 것"
 "을 원할 경우에<emphasis>만</emphasis> 주어진 detached 인스턴스로부터 도달 가"
@@ -1282,7 +856,6 @@
 "하여 자동화 될 수 있고, <xref linkend=\"objectstate-transitive\"/>를 보라."
 
 #. Tag: para
-#: session_api.xml:585
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>lock()</literal> method also allows an application to "
@@ -1293,20 +866,7 @@
 "시 연관시키는것을 어플리케이션에게 허용해준다. 하지만 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 ""
-
 #. Tag: para
-#: session_api.xml:592
 #, fuzzy, no-c-format
 msgid ""
 "Note that <literal>lock()</literal> can be used with various "
@@ -1319,23 +879,20 @@
 "첨부는 <literal>lock()</literal>에 대한 유일한 쓰임새는 아니다."
 
 #. Tag: para
-#: session_api.xml:599
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Other models for long units of work are discussed in <xref linkend="
-"\"transactions-optimistic\"/>."
+"\"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 "
@@ -1348,26 +905,7 @@
 "일반적인 용도의 메소드를 요청했다. <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 "
@@ -1385,7 +923,6 @@
 "코 사용하지 않을 것이다."
 
 #. Tag: para
-#: session_api.xml:625
 #, no-c-format
 msgid ""
 "Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are "
@@ -1395,31 +932,26 @@
 "음 시나리오에서 사용된다:"
 
 #. Tag: para
-#: session_api.xml:632
 #, no-c-format
 msgid "the application loads an object in the first session"
 msgstr "어플리케이션이 첫 번째 세션 내에 객체를 로드시킨다"
 
 #. Tag: para
-#: session_api.xml:637
 #, no-c-format
 msgid "the object is passed up to the UI tier"
 msgstr "객체가 UI 티어로 전달된다"
 
 #. 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()</"
@@ -1429,20 +961,17 @@
 "들 변경들을 영속화 시킨다"
 
 #. Tag: para
-#: session_api.xml:659
 #, no-c-format
 msgid "<literal>saveOrUpdate()</literal> does the following:"
 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 ""
 "만일 객체가 이 세션 내에서 이미 영속화 되어 있을 경우, 아무것도 행하지 않는다"
 
 #. Tag: para
-#: session_api.xml:670
 #, no-c-format
 msgid ""
 "if another object associated with the session has the same identifier, throw "
@@ -1452,7 +981,6 @@
 "진다"
 
 #. Tag: para
-#: session_api.xml:676
 #, no-c-format
 msgid "if the object has no identifier property, <literal>save()</literal> it"
 msgstr ""
@@ -1460,7 +988,6 @@
 "literal> 시킨다"
 
 #. Tag: para
-#: session_api.xml:681
 #, no-c-format
 msgid ""
 "if the object's identifier has the value assigned to a newly instantiated "
@@ -1470,7 +997,6 @@
 "<literal>save()</literal> 시킨다"
 
 #. Tag: para
-#: session_api.xml:687
 #, fuzzy, no-c-format
 msgid ""
 "if the object is versioned by a <literal>&lt;version&gt;</literal> or "
@@ -1484,19 +1010,16 @@
 "literal> 시킨다"
 
 #. Tag: para
-#: session_api.xml:695
 #, no-c-format
 msgid "otherwise <literal>update()</literal> the object"
 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>는 매우 다르다:"
 
 #. Tag: para
-#: session_api.xml:707
 #, no-c-format
 msgid ""
 "if there is a persistent instance with the same identifier currently "
@@ -1507,7 +1030,6 @@
 "어진 객체의 상태를 영속 인스턴스 상으로 복사한다"
 
 #. Tag: para
-#: session_api.xml:714
 #, no-c-format
 msgid ""
 "if there is no persistent instance currently associated with the session, "
@@ -1518,13 +1040,11 @@
 "다"
 
 #. 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 "
@@ -1533,13 +1053,11 @@
 "주어진 인스턴스는 세션과 연관되지 않고, 그것은 detached 상태에 머무른다"
 
 #. 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 "
@@ -1552,14 +1070,7 @@
 "할 것이다. 영속 인스턴스를 transient로 만들 때 <literal>delete()</literal>를 "
 "생각하는 것이 최상이다."
 
-#. Tag: programlisting
-#: session_api.xml:744
-#, no-c-format
-msgid "<![CDATA[sess.delete(cat);]]>"
-msgstr ""
-
 #. Tag: para
-#: session_api.xml:746
 #, fuzzy, no-c-format
 msgid ""
 "You can delete objects in any order, without risk of foreign key constraint "
@@ -1574,13 +1085,11 @@
 "는 것을 잊은 경우."
 
 #. 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 "
@@ -1590,27 +1099,7 @@
 "영속 인스턴스들의 그래프를 취하고 식별자 값들을 다시 생성시키지 않고서 그것들"
 "을 다른 저장소 속에 영속화 시키는 것을 가능하도록 만드는 것이 종종 유용하다."
 
-#. 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 ""
-
 #. Tag: para
-#: session_api.xml:767
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>ReplicationMode</literal> determines how <literal>replicate()</"
@@ -1620,7 +1109,6 @@
 "베이스 내에 있는 기존의 행들과의 충돌을 처리하게될 방법을 결정한다."
 
 #. Tag: para
-#: session_api.xml:774
 #, fuzzy, no-c-format
 msgid ""
 "<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is "
@@ -1630,7 +1118,6 @@
 "베이스 행이 존재할 경우에 그 객체를 무시한다"
 
 #. Tag: para
-#: session_api.xml:780
 #, fuzzy, no-c-format
 msgid ""
 "<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
@@ -1640,7 +1127,6 @@
 "의 데이터베이스 행을 덮어 쓴다"
 
 #. Tag: para
-#: session_api.xml:786
 #, fuzzy, no-c-format
 msgid ""
 "<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there "
@@ -1650,7 +1136,6 @@
 "존 데이터베이스 행이 존재할 경우에 예외상황을 던진다"
 
 #. Tag: para
-#: session_api.xml:792
 #, fuzzy, no-c-format
 msgid ""
 "<literal>ReplicationMode.LATEST_VERSION</literal>: overwrites the row if its "
@@ -1661,7 +1146,6 @@
 "버전 번호 보다 이전의 것이면 덮어쓰고, 그 밖의 경우에 그 객체를 무시한다"
 
 #. Tag: para
-#: session_api.xml:800
 #, no-c-format
 msgid ""
 "Usecases for this feature include reconciling data entered into different "
@@ -1674,13 +1158,11 @@
 "션들 동안에 행해진 변경들을 롤백시키기 등을 포함한다."
 
 #. Tag: title
-#: session_api.xml:809
 #, no-c-format
 msgid "Flushing the Session"
 msgstr "Session을 flush 시키기"
 
 #. Tag: para
-#: session_api.xml:811
 #, fuzzy, no-c-format
 msgid ""
 "Sometimes the <literal>Session</literal> will execute the SQL statements "
@@ -1694,31 +1176,26 @@
 "다"
 
 #. 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> 시점에서"
 
 #. Tag: para
-#: session_api.xml:830
 #, no-c-format
 msgid "from <literal>Session.flush()</literal>"
 msgstr "<literal>Session.flush()</literal> 시점에서"
 
 #. Tag: para
-#: session_api.xml:836
 #, fuzzy, no-c-format
 msgid "The SQL statements are issued in the following order:"
 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 "
@@ -1728,31 +1205,26 @@
 "과 같은 순서로, 모든 엔티티 삽입들"
 
 #. 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 "
@@ -1762,7 +1234,6 @@
 "것과 같은 순서로 모든 엔티티 삭제들."
 
 #. Tag: para
-#: session_api.xml:875
 #, fuzzy, no-c-format
 msgid ""
 "An exception is that objects using <literal>native</literal> ID generation "
@@ -1772,7 +1243,6 @@
 "는 객체들이 insert 되는 점이다.)"
 
 #. Tag: para
-#: session_api.xml:880
 #, fuzzy, no-c-format
 msgid ""
 "Except when you explicitly <literal>flush()</literal>, there are absolutely "
@@ -1789,7 +1259,6 @@
 "반환하지 않을 것임을 보장한다."
 
 #. Tag: para
-#: session_api.xml:888
 #, fuzzy, no-c-format
 msgid ""
 "It is possible to change the default behavior so that flush occurs less "
@@ -1799,7 +1268,7 @@
 "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\"/>)."
+"\"transactions-optimistic-longsession\" />)."
 msgstr ""
 "flush가 너무 자주 발생하지 않도록 디폴트 행위를 변경하는 것이 가능하다. "
 "<literal>FlushMode</literal> 클래스는 세 개의 다른 모드들을 정의한다: 오직 커"
@@ -1810,34 +1279,13 @@
 "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 ""
-
 #. Tag: para
-#: session_api.xml:900
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "During flush, an exception might occur (e.g. if a DML operation violates a "
 "constraint). Since handling exceptions involves some understanding of "
 "Hibernate's transactional behavior, we discuss it in <xref linkend="
-"\"transactions\"/>."
+"\"transactions\" />."
 msgstr ""
 "flush 동안에, 하나의 예외상황이 발생할 수도 있다(예를 들면. 만일 DML 오퍼레이"
 "션이 컨스트레인트를 위반할 경우). 예외상황들을 처리하는 것은 Hibernatem의 트"
@@ -1845,13 +1293,11 @@
 "\"/>에서 그것을 논의한다."
 
 #. Tag: title
-#: session_api.xml:909
 #, no-c-format
 msgid "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, "
@@ -1863,7 +1309,6 @@
 "식 관계이다. 다음 예제를 검토하자:"
 
 #. 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 "
@@ -1885,7 +1330,6 @@
 "스로부터 그 자식을 삭제시킨다."
 
 #. Tag: para
-#: session_api.xml:928
 #, fuzzy, no-c-format
 msgid ""
 "Now consider the same scenario with parent and child objects being entities, "
@@ -1906,7 +1350,6 @@
 "다."
 
 #. Tag: para
-#: session_api.xml:937
 #, no-c-format
 msgid ""
 "For each basic operation of the Hibernate session - including "
@@ -1925,27 +1368,12 @@
 "의 연관에 따라 케스케이딩되는 것을 원할 경우, 당신은 매핑 문서 내에 그것을 지"
 "시해야 한다. 예를 들면:"
 
-#. 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 "케스케이딩 스타일들이 결합될 수도 있다:"
 
-#. Tag: programlisting
-#: session_api.xml:952
-#, no-c-format
-msgid ""
-"<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: session_api.xml:954
 #, fuzzy, no-c-format
 msgid ""
 "You can even use <literal>cascade=\"all\"</literal> to specify that "
@@ -1959,7 +1387,6 @@
 "을 것임을 지정한다."
 
 #. Tag: para
-#: session_api.xml:960
 #, no-c-format
 msgid ""
 "A special cascade style, <literal>delete-orphan</literal>, applies only to "
@@ -1972,13 +1399,11 @@
 "로부터 제거되는 임의의 자식 객체에 적용되어야 함을 나타낸다."
 
 #. Tag: para
-#: session_api.xml:967
 #, no-c-format
 msgid "Recommendations:"
 msgstr "권장사항들 :"
 
 #. Tag: para
-#: session_api.xml:973
 #, fuzzy, no-c-format
 msgid ""
 "It does not usually make sense to enable cascade on a <literal>&lt;many-to-"
@@ -1992,7 +1417,6 @@
 "one-to-many&gt;</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 "
@@ -2004,7 +1428,6 @@
 "<emphasis>생명 주기 객체</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 "
@@ -2019,7 +1442,6 @@
 "하라."
 
 #. Tag: para
-#: session_api.xml:996
 #, no-c-format
 msgid ""
 "Mapping an association (either a single valued association, or a collection) "
@@ -2033,7 +1455,6 @@
 "타일의 관계로 마크한다."
 
 #. Tag: para
-#: session_api.xml:1002
 #, fuzzy, no-c-format
 msgid ""
 "Furthermore, a mere reference to a child from a persistent parent will "
@@ -2052,7 +1473,6 @@
 "케이딩 오퍼레이션의 정확한 의미는 다음과 같다:"
 
 #. Tag: para
-#: session_api.xml:1013
 #, no-c-format
 msgid ""
 "If a parent is passed to <literal>persist()</literal>, all children are "
@@ -2062,7 +1482,6 @@
 "<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 "
@@ -2072,7 +1491,6 @@
 "<literal>merge()</literal>에 전달된다"
 
 #. Tag: para
-#: session_api.xml:1025
 #, no-c-format
 msgid ""
 "If a parent is passed to <literal>save()</literal>, <literal>update()</"
@@ -2084,7 +1502,6 @@
 "<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, "
@@ -2094,7 +1511,6 @@
 "<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()</"
@@ -2103,7 +1519,6 @@
 "만일 부모가 삭제될 경우, 모든 자식들이 <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 "
@@ -2118,7 +1533,6 @@
 "우 자식이 삭제된다."
 
 #. Tag: para
-#: session_api.xml:1051
 #, fuzzy, no-c-format
 msgid ""
 "Finally, note that cascading of operations can be applied to an object graph "
@@ -2136,13 +1550,11 @@
 "flush 동안에 도달 가능한 모든 연관된 엔티티들에 대해 이행적(transitive)이다."
 
 #. 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. "
@@ -2160,7 +1572,6 @@
 "copy 알고리즘을 구현하는데 Hibernate의 메타데이터를 사용할 수도 있다."
 
 #. Tag: para
-#: session_api.xml:1072
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate exposes metadata via the <literal>ClassMetadata</literal> and "
@@ -2173,27 +1584,6 @@
 "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 "UPDATE"
 #~ msgstr "UPDATE"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/toolset_guide.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/toolset_guide.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/toolset_guide.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: toolset_guide.xml:29
 #, no-c-format
 msgid "Toolset Guide"
 msgstr "도구셋 안내"
 
 #. Tag: para
-#: toolset_guide.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "Roundtrip engineering with Hibernate is possible using a set of Eclipse "
@@ -27,7 +25,6 @@
 "들, 뿐만 아니라 Ant 태스크들을 사용하여 가능하다."
 
 #. Tag: para
-#: toolset_guide.xml:36
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Hibernate Tools</emphasis> currently include plugins for the "
@@ -39,7 +36,6 @@
 "하고 있다:"
 
 #. Tag: para
-#: toolset_guide.xml:42
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping "
@@ -53,7 +49,6 @@
 "론적 자동 완성 기능을 지원한다."
 
 #. Tag: para
-#: toolset_guide.xml:47
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Console:</emphasis> the console is a new view in Eclipse. In "
@@ -69,7 +64,6 @@
 "해준다."
 
 #. Tag: para
-#: toolset_guide.xml:54
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Development Wizards:</emphasis> several wizards are provided with "
@@ -85,7 +79,6 @@
 "지니어링 마법사는 맞춤 가능한 템플릿들을 제공한다."
 
 #. Tag: para
-#: toolset_guide.xml:67
 #, fuzzy, no-c-format
 msgid ""
 "Please refer to the <emphasis>Hibernate Tools</emphasis> package "
@@ -95,7 +88,6 @@
 "하길 바란다."
 
 #. Tag: para
-#: toolset_guide.xml:72
 #, fuzzy, no-c-format
 msgid ""
 "However, the Hibernate main package comes bundled with an integrated tool : "
@@ -107,13 +99,11 @@
 "emphasis> 별칭은 <literal>hbm2ddl</literal>."
 
 #. Tag: title
-#: toolset_guide.xml:79
 #, no-c-format
 msgid "Automatic schema generation"
 msgstr "자동적인 스키마 생성"
 
 #. Tag: para
-#: toolset_guide.xml:81
 #, fuzzy, no-c-format
 msgid ""
 "DDL can be generated from your mapping files by a Hibernate utility. The "
@@ -127,7 +117,6 @@
 "식별자 생성기들에 대해 생성된다."
 
 #. Tag: para
-#: toolset_guide.xml:88
 #, fuzzy, no-c-format
 msgid ""
 "You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via "
@@ -139,7 +128,6 @@
 "정<emphasis>해야 한다</emphasis>."
 
 #. Tag: para
-#: toolset_guide.xml:94
 #, fuzzy, no-c-format
 msgid ""
 "First, you must customize your mapping files to improve the generated "
@@ -148,13 +136,11 @@
 "먼저 생성된 스키마를 개선시키기 위해 당신의 매핑 파일들을 맞춤화 시켜라."
 
 #. Tag: title
-#: toolset_guide.xml:99
 #, no-c-format
 msgid "Customizing the schema"
 msgstr "스키마 맞춤화 시키기"
 
 #. Tag: para
-#: toolset_guide.xml:101
 #, fuzzy, no-c-format
 msgid ""
 "Many Hibernate mapping elements define optional attributes named "
@@ -169,20 +155,7 @@
 "<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
 msgid ""
 "Some tags also accept a <literal>not-null</literal> attribute for generating "
@@ -195,23 +168,7 @@
 "<literal>UNIQUE</literal> 컨스트레인트를 생성시키는) <literal>unique</"
 "literal> 속성을 수용한다."
 
-#. Tag: programlisting
-#: toolset_guide.xml:117
-#, 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 "
@@ -225,17 +182,7 @@
 "된 값은 산출된 DDL내에서 컨스트레인트를 명명하는데 사용되지 <emphasis>않고</"
 "emphasis>, 오직 매핑 파일 내에서 컬럼들을 그룹 지우는데 사용된다."
 
-#. Tag: programlisting
-#: toolset_guide.xml:129
-#, 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 "
@@ -246,16 +193,7 @@
 "덱스의 이름을 지정한다. 간단하게 동일한 인덱스 이름을 지정함으로써 여러 컬럼"
 "들이 동일한 인덱스 내로 그룹지워질 수도 있다."
 
-#. Tag: programlisting
-#: toolset_guide.xml:137
-#, 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 "
@@ -264,16 +202,7 @@
 "<literal>foreign-key</literal> 속성은 임의의 산출된 foreign 키 컨스트레인트"
 "의 이름을 오버라이드 시키는데 사용될 수 도 있다."
 
-#. 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>&lt;column&gt;</literal> "
@@ -282,21 +211,7 @@
 "많은 매핑 요소들은 또한 하나의 자식 <literal>&lt;column&gt;</literal> 요소를 "
 "허용한다. 이것은 특히 다중 컬럼 타입들을 매핑하는데 유용하다:"
 
-#. Tag: programlisting
-#: toolset_guide.xml:151
-#, 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 "
@@ -309,26 +224,7 @@
 "다(당신은 매핑된 클래스의 새로운 인스턴스를 저장하기 전에 매핑된 프로퍼티에 "
 "동일한 값을 할당하게 될 것이다)."
 
-#. 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 "
@@ -337,17 +233,7 @@
 "<literal>sql-type</literal> 속성은 SQL 데이터타입에 대한 Hibernate 타입의 디"
 "폴트 매핑을 오버라이드 시키는 것을 사용자에게 허용해준다."
 
-#. 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 "
@@ -356,177 +242,132 @@
 "<literal>check</literal> 속성은 check 컨스트레인트를 지정하는 것을 당신에게 "
 "허용해준다."
 
-#. 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 ""
 
 #. Tag: title
-#: toolset_guide.xml:182
 #, no-c-format
 msgid "Summary"
 msgstr "요약"
 
-#. Tag: entry
-#: toolset_guide.xml:189
+#. Tag: para
 #, no-c-format
 msgid "Attribute"
 msgstr "속성"
 
-#. Tag: entry
-#: toolset_guide.xml:190
+#. Tag: para
 #, no-c-format
 msgid "Values"
 msgstr "값들"
 
-#. Tag: entry
-#: toolset_guide.xml:191
+#. Tag: para
 #, no-c-format
 msgid "Interpretation"
 msgstr "해석"
 
-#. Tag: literal
-#: toolset_guide.xml:196
-#, no-c-format
-msgid "length"
-msgstr "length"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>length</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:197 toolset_guide.xml:202 toolset_guide.xml:207
+#. Tag: para
 #, no-c-format
 msgid "number"
 msgstr "number"
 
-#. Tag: entry
-#: toolset_guide.xml:198
+#. Tag: para
 #, no-c-format
 msgid "column length"
 msgstr "컬럼 길이"
 
-#. Tag: literal
-#: toolset_guide.xml:201
-#, no-c-format
-msgid "precision"
-msgstr "precision"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>precision</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:203
+#. Tag: para
 #, no-c-format
 msgid "column decimal precision"
 msgstr "컬럼 decimal 정밀도"
 
-#. Tag: literal
-#: toolset_guide.xml:206
-#, no-c-format
-msgid "scale"
-msgstr "scale"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>scale</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:208
+#. Tag: para
 #, no-c-format
 msgid "column decimal scale"
 msgstr "컬럼 decimal 크기"
 
-#. Tag: literal
-#: toolset_guide.xml:211
-#, no-c-format
-msgid "not-null"
-msgstr "not-null"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: literal
-#: toolset_guide.xml:212 toolset_guide.xml:217
-#, no-c-format
-msgid "true|false"
-msgstr "true|false"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:213
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "specifies that the column should be non-nullable"
 msgstr "컬럼이 null이 아니어야 함을 지정한다"
 
-#. Tag: literal
-#: toolset_guide.xml:216
-#, no-c-format
-msgid "unique"
-msgstr "unique"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>unique</literal>"
+msgstr "<literal>hibernate.properties</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
-#, no-c-format
-msgid "index"
-msgstr "index"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>index</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: literal
-#: toolset_guide.xml:222
-#, no-c-format
-msgid "index_name"
-msgstr "index_name"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:223
+#. Tag: para
 #, no-c-format
 msgid "specifies the name of a (multi-column) index"
 msgstr "(다중-컬럼) 인덱스의 이름을 지정한다"
 
-#. Tag: literal
-#: toolset_guide.xml:226
-#, no-c-format
-msgid "unique-key"
-msgstr "unique-key"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: literal
-#: toolset_guide.xml:227
-#, no-c-format
-msgid "unique_key_name"
-msgstr "unique_key_name"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr "<literal>hibernate.properties</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
-#, no-c-format
-msgid "foreign-key"
-msgstr "foreign-key"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: literal
-#: toolset_guide.xml:232
-#, no-c-format
-msgid "foreign_key_name"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>foreign_key_name</literal>"
 msgstr "foreign_key_name"
 
-#. Tag: entry
-#: toolset_guide.xml:233
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "specifies the name of the foreign key constraint generated for an "
@@ -540,20 +381,17 @@
 "다.<placeholder-5/> 측들은 <placeholder-6/>에 의해 고려되지 않을 것임을 노트"
 "하라."
 
-#. Tag: literal
-#: toolset_guide.xml:243
-#, no-c-format
-msgid "sql-type"
-msgstr "sql-type"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: literal
-#: toolset_guide.xml:244
-#, no-c-format
-msgid "SQL column type"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>SQL column type</literal>"
 msgstr "SQL column type"
 
-#. Tag: entry
-#: toolset_guide.xml:245
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
 "overrides the default column type (attribute of <literal>&lt;column&gt;</"
@@ -561,38 +399,32 @@
 msgstr ""
 "디폴트 컬럼 타입을 오버라이드 시킨다 (<placeholder-1/> 요소의 속성에만)"
 
-#. Tag: literal
-#: toolset_guide.xml:251
-#, no-c-format
-msgid "default"
-msgstr "default"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>default</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:252 toolset_guide.xml:259
+#. Tag: para
 #, no-c-format
 msgid "SQL expression"
 msgstr "SQL expression"
 
-#. 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
-#, no-c-format
-msgid "check"
-msgstr "check"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>check</literal>"
+msgstr "<literal>hibernate.properties</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 check 컨스트레인트를 생성시킨다"
 
 #. Tag: para
-#: toolset_guide.xml:268
 #, no-c-format
 msgid ""
 "The <literal>&lt;comment&gt;</literal> element allows you to specify "
@@ -601,29 +433,7 @@
 "<literal>&lt;comment&gt;</literal> 요소는 생성된 스키마에 대한 주석들을 지정"
 "하는 것을 당신에게 허용해준다."
 
-#. Tag: programlisting
-#: toolset_guide.xml:273
-#, 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 "
@@ -633,13 +443,11 @@
 "는 <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 "
@@ -649,7 +457,6 @@
 "고/하거나 DDL 문장들을 실행시킨다."
 
 #. Tag: para
-#: toolset_guide.xml:293
 #, fuzzy, no-c-format
 msgid ""
 "The following table displays the <literal>SchemaExport</literal> command "
@@ -657,7 +464,6 @@
 msgstr "<literal>SchemaExport</literal> 명령 라인 옵션들"
 
 #. Tag: para
-#: toolset_guide.xml:295
 #, no-c-format
 msgid ""
 "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
@@ -666,116 +472,96 @@
 msgstr ""
 
 #. Tag: title
-#: toolset_guide.xml:301
 #, no-c-format
 msgid "<literal>SchemaExport</literal> Command Line Options"
 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
+#. Tag: para
 #, no-c-format
 msgid "Description"
 msgstr "설명"
 
-#. Tag: literal
-#: toolset_guide.xml:313 toolset_guide.xml:463
-#, no-c-format
-msgid "--quiet"
-msgstr "--quiet"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:314 toolset_guide.xml:464
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "do not output the script to stdout"
 msgstr "스크립트를 표준출력으로 출력하지 않는다"
 
-#. Tag: literal
-#: toolset_guide.xml:317
-#, no-c-format
-msgid "--drop"
-msgstr "--drop"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:318
+#. Tag: para
 #, no-c-format
 msgid "only drop the tables"
 msgstr "오직 테이블들을 드롭시킨다"
 
-#. Tag: literal
-#: toolset_guide.xml:321
-#, no-c-format
-msgid "--create"
-msgstr "--create"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--create</literal>"
+msgstr "<literal>hibernate.properties</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
-#, no-c-format
-msgid "--text"
-msgstr "--text"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--text</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:326
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "do not export to the database"
 msgstr "데이터베이스로 내보내기 하지 않는다"
 
-#. Tag: literal
-#: toolset_guide.xml:329
-#, no-c-format
-msgid "--output=my_schema.ddl"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
 msgstr "--output=my_schema.ddl"
 
-#. Tag: entry
-#: toolset_guide.xml:330
+#. Tag: para
 #, no-c-format
 msgid "output the ddl script to a file"
 msgstr "ddl 스크립트를 파일로 출력한다"
 
-#. Tag: literal
-#: toolset_guide.xml:333 toolset_guide.xml:471 toolset_guide.xml:532
-#, no-c-format
-msgid "--naming=eg.MyNamingStrategy"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
 msgstr "--naming=eg.MyNamingStrategy"
 
-#. Tag: entry
-#: toolset_guide.xml:334 toolset_guide.xml:472 toolset_guide.xml:533
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "select a <literal>NamingStrategy</literal>"
 msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: literal
-#: toolset_guide.xml:337 toolset_guide.xml:479 toolset_guide.xml:540
-#, no-c-format
-msgid "--config=hibernate.cfg.xml"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
 msgstr "--config=hibernate.cfg.xml"
 
-#. Tag: entry
-#: toolset_guide.xml:338
+#. Tag: para
 #, no-c-format
 msgid "read Hibernate configuration from an XML file"
 msgstr "XML 파일로부터 Hibernate 구성을 읽어들인다"
 
-#. Tag: literal
-#: toolset_guide.xml:341 toolset_guide.xml:475 toolset_guide.xml:536
-#, no-c-format
-msgid "--properties=hibernate.properties"
-msgstr "--properties=hibernate.properties"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:342 toolset_guide.xml:476 toolset_guide.xml:537
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "read database properties from a file"
 msgstr ""
@@ -786,60 +572,44 @@
 "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
 "파일로부터 데이터베이스 프로퍼티들을 읽어들인다"
 
-#. Tag: literal
-#: toolset_guide.xml:345
-#, no-c-format
-msgid "--format"
-msgstr "--format"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--format</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:346
+#. Tag: para
 #, no-c-format
 msgid "format the generated SQL nicely in the script"
 msgstr "생성된 SQL을 스크립트 내에 좋게 형식지운다"
 
-#. Tag: literal
-#: toolset_guide.xml:349
-#, no-c-format
-msgid "--delimiter=;"
-msgstr "--delimiter=;"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr "<literal>hibernate.properties</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
 msgid "You can even embed <literal>SchemaExport</literal> in your application:"
 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 "프로퍼티들"
 
 #. Tag: para
-#: toolset_guide.xml:367
 #, fuzzy, no-c-format
 msgid "Database properties can be specified:"
 msgstr "데이터베이스 프로퍼티들은 다음과 같이 지정될 수 있다"
 
 #. Tag: para
-#: toolset_guide.xml:373
 #, no-c-format
 msgid ""
 "as system properties with <literal>-D</literal><emphasis>&lt;property&gt;</"
@@ -849,103 +619,86 @@
 "퍼티로서"
 
 #. Tag: para
-#: toolset_guide.xml:376
 #, no-c-format
 msgid "in <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 "<literal>--properties</literal>를 가진 명명된 프로퍼티들 내에서"
 
 #. Tag: para
-#: toolset_guide.xml:383
 #, no-c-format
 msgid "The needed properties are:"
 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
-#, no-c-format
-msgid "hibernate.connection.driver_class"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
 msgstr "hibernate.connection.driver_class"
 
-#. Tag: entry
-#: toolset_guide.xml:401
+#. Tag: para
 #, no-c-format
 msgid "jdbc driver class"
 msgstr "jdbc 드라이버 클래스"
 
-#. Tag: literal
-#: toolset_guide.xml:404
-#, no-c-format
-msgid "hibernate.connection.url"
-msgstr "hibernate.connection.url"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:405
+#. Tag: para
 #, no-c-format
 msgid "jdbc url"
 msgstr "jdbc url"
 
-#. Tag: literal
-#: toolset_guide.xml:408
-#, no-c-format
-msgid "hibernate.connection.username"
-msgstr "hibernate.connection.username"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:409
+#. Tag: para
 #, no-c-format
 msgid "database user"
 msgstr "데이터베이스 사용자"
 
-#. Tag: literal
-#: toolset_guide.xml:412
-#, no-c-format
-msgid "hibernate.connection.password"
-msgstr "hibernate.connection.password"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:413
+#. Tag: para
 #, no-c-format
 msgid "user password"
 msgstr "사용자 패스워드"
 
-#. Tag: literal
-#: toolset_guide.xml:416
-#, no-c-format
-msgid "hibernate.dialect"
-msgstr "hibernate.dialect"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "<literal>hibernate.properties</literal> 내에서"
 
-#. Tag: entry
-#: toolset_guide.xml:417
+#. Tag: para
 #, no-c-format
 msgid "dialect"
 msgstr "dialect"
 
 #. Tag: title
-#: toolset_guide.xml:426
 #, no-c-format
 msgid "Using Ant"
 msgstr "Ant 사용하기"
 
 #. Tag: para
-#: toolset_guide.xml:428
 #, no-c-format
 msgid ""
 "You can call <literal>SchemaExport</literal> from your Ant build script:"
@@ -953,37 +706,12 @@
 "당신은 당신의 Ant 빌드 스크립트에서 <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 "점증하는 스키마 업데이트들"
 
 #. Tag: para
-#: toolset_guide.xml:439
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>SchemaUpdate</literal> tool will update an existing schema with "
@@ -996,7 +724,6 @@
 "라."
 
 #. Tag: para
-#: toolset_guide.xml:445
 #, no-c-format
 msgid ""
 "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
@@ -1005,79 +732,44 @@
 msgstr ""
 
 #. Tag: title
-#: toolset_guide.xml:451
 #, no-c-format
 msgid "<literal>SchemaUpdate</literal> Command Line Options"
 msgstr "<literal>SchemaUpdate</literal> 명령 라인 옵션들"
 
-#. Tag: entry
-#: toolset_guide.xml:468
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "do not export the script to the database"
 msgstr "스크립트를 데이터베이스로 내보내기 하지 않는다"
 
-#. Tag: entry
-#: toolset_guide.xml:480 toolset_guide.xml:541
+#. Tag: para
 #, fuzzy, no-c-format
 msgid "specify a <literal>.cfg.xml</literal> file"
 msgstr "<placeholder-1/> 파일을 지정한다"
 
 #. Tag: para
-#: toolset_guide.xml:486
 #, fuzzy, no-c-format
 msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
 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 사용하기"
 
 #. 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>를 호출할 수 있다:"
 
-#. 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 "스키마 유효성 검사"
 
 #. Tag: para
-#: toolset_guide.xml:508
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>SchemaValidator</literal> tool will validate that the existing "
@@ -1093,7 +785,6 @@
 "극히 유용하다."
 
 #. Tag: para
-#: toolset_guide.xml:514
 #, no-c-format
 msgid ""
 "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
@@ -1101,59 +792,111 @@
 "<emphasis>options mapping_files</emphasis>"
 msgstr ""
 
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaValidator</literal> command "
+"line options:"
+msgstr "<literal>SchemaExport</literal> 명령 라인 옵션들"
+
 #. Tag: title
-#: toolset_guide.xml:520
 #, no-c-format
 msgid "<literal>SchemaValidator</literal> Command Line Options"
 msgstr "<literal>SchemaValidator</literal> 명령 라인 옵션들"
 
 #. Tag: para
-#: toolset_guide.xml:547
 #, fuzzy, no-c-format
 msgid "You can embed <literal>SchemaValidator</literal> in your application:"
 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 사용하기"
 
 #. 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>를 호출할 수 있다:"
 
-#. 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 ""
+#~ 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"
+
+#~ msgid "--quiet"
+#~ msgstr "--quiet"
+
+#~ 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=;"
+
+#~ 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"
+
 #~ msgid "Ant Tasks:"
 #~ msgstr "Ant 태스크들:"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/transactions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/transactions.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/transactions.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: transactions.xml:29
 #, fuzzy, no-c-format
 msgid "Transactions and Concurrency"
 msgstr "트랜잭션들과 동시성"
 
 #. Tag: para
-#: transactions.xml:31
 #, fuzzy, no-c-format
 msgid ""
 "The most important point about Hibernate and concurrency control is that it "
@@ -32,7 +30,6 @@
 "랜잭션 격리 명세에 약간의 시간을 할애할 것을 매우 권장한다."
 
 #. Tag: para
-#: transactions.xml:38
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate does not lock objects in memory. Your application can expect the "
@@ -48,7 +45,6 @@
 "읽기를 제공한다."
 
 #. Tag: para
-#: transactions.xml:46
 #, fuzzy, no-c-format
 msgid ""
 "In addition to versioning for automatic optimistic concurrency control, "
@@ -62,7 +58,6 @@
 "이 장의 뒷부분에서 논의된다."
 
 #. Tag: para
-#: transactions.xml:53
 #, fuzzy, no-c-format
 msgid ""
 "The discussion of concurrency control in Hibernate begins with the "
@@ -76,13 +71,11 @@
 "시작한다."
 
 #. Tag: title
-#: transactions.xml:60
 #, no-c-format
 msgid "Session and transaction scopes"
 msgstr "세션 영역과 트랜잭션 영역"
 
 #. Tag: para
-#: transactions.xml:62
 #, fuzzy, no-c-format
 msgid ""
 "A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
@@ -96,7 +89,6 @@
 "생성된다."
 
 #. Tag: para
-#: transactions.xml:68
 #, fuzzy, no-c-format
 msgid ""
 "A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
@@ -112,7 +104,6 @@
 "지 않을 것이므로, 사용될 때까지 리소스들을 소비하지 않는다."
 
 #. Tag: para
-#: transactions.xml:76
 #, fuzzy, no-c-format
 msgid ""
 "In order to reduce lock contention in the database, a database transaction "
@@ -129,7 +120,6 @@
 "는 것은 대개 결코 좋은 설계는 아니다."
 
 #. Tag: para
-#: transactions.xml:84
 #, fuzzy, no-c-format
 msgid ""
 "What is the scope of a unit of work? Can a single Hibernate "
@@ -144,13 +134,11 @@
 "그리고 당신은 데이터베이스 트랜잭션 경계들을 어떻게 한정하는가?"
 
 #. Tag: title
-#: transactions.xml:92
 #, no-c-format
 msgid "Unit of work"
 msgstr "작업 단위"
 
 #. 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 "
@@ -160,13 +148,12 @@
 "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 "
+"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 ""
 
 #. Tag: para
-#: transactions.xml:111
 #, fuzzy, no-c-format
 msgid ""
 "Do not use the <emphasis>session-per-operation</emphasis> antipattern: do "
@@ -200,7 +187,6 @@
 "씬 더 유지가능하고 확장적이다."
 
 #. Tag: para
-#: transactions.xml:126
 #, fuzzy, no-c-format
 msgid ""
 "The most common pattern in a multi-user client/server application is "
@@ -226,7 +212,6 @@
 "적합하다."
 
 #. Tag: para
-#: transactions.xml:138
 #, fuzzy, no-c-format
 msgid ""
 "The challenge lies in the implementation. Hibernate provides built-in "
@@ -254,14 +239,13 @@
 "literal>을 선호하라."
 
 #. 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\"/>."
+"JTA environments, see <xref linkend=\"architecture-current-session\" />."
 msgstr ""
 "당신의 어플리케이션 코드는 어디서든 필요할 때 종종 <literal>sessionFactory."
 "getCurrentSession()</literal>을 간단히 호출함으로써 요청을 처리할 \"현재 세션"
@@ -271,7 +255,6 @@
 "session\"/>을 보라."
 
 #. Tag: para
-#: transactions.xml:158
 #, fuzzy, no-c-format
 msgid ""
 "You can extend the scope of a <literal>Session</literal> and database "
@@ -295,13 +278,11 @@
 "emphasis> 패턴을 둘러싼 팁들과 예제들은 Hibernate 웹 사이트와 포럼을 보라."
 
 #. 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 "
@@ -317,7 +298,6 @@
 "용되지 않는다. 다음 예제를 검토하자:"
 
 #. 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 "
@@ -329,7 +309,6 @@
 "객체들을 변경시키는 것이 자유롭다."
 
 #. Tag: para
-#: transactions.xml:192
 #, fuzzy, no-c-format
 msgid ""
 "The user clicks \"Save\" after 5 minutes and expects their modifications to "
@@ -341,7 +320,6 @@
 "를 기대한다."
 
 #. 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 "
@@ -354,7 +332,6 @@
 "재한다."
 
 #. Tag: para
-#: transactions.xml:206
 #, fuzzy, no-c-format
 msgid ""
 "A first naive implementation might keep the <literal>Session</literal> and "
@@ -370,7 +347,6 @@
 "용 숫자를 높이는 것을 허용하지 않을 것이기 때문이다."
 
 #. Tag: para
-#: transactions.xml:214
 #, fuzzy, no-c-format
 msgid ""
 "You have to use several database transactions to implement the conversation. "
@@ -393,7 +369,6 @@
 "쉽다:"
 
 #. Tag: para
-#: transactions.xml:227
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic "
@@ -407,7 +382,6 @@
 "의 끝에서 체크한다."
 
 #. Tag: para
-#: transactions.xml:235
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Detached Objects</emphasis>: if you decide to use the "
@@ -426,7 +400,6 @@
 "변경들을 격리시키는데 사용된다."
 
 #. Tag: para
-#: transactions.xml:245
 #, fuzzy, no-c-format
 msgid ""
 "<emphasis>Extended (or Long) Session</emphasis>: the Hibernate "
@@ -447,7 +420,6 @@
 "flush되는 것이 허용되지 않지만 명시적으로 flush되는 것은 허용된다."
 
 #. Tag: para
-#: transactions.xml:258
 #, fuzzy, no-c-format
 msgid ""
 "Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
@@ -461,13 +433,11 @@
 "한다."
 
 #. Tag: title
-#: transactions.xml:267
 #, no-c-format
 msgid "Considering object identity"
 msgstr "객체 identity 고려하기"
 
 #. Tag: para
-#: transactions.xml:269
 #, fuzzy, no-c-format
 msgid ""
 "An application can concurrently access the same persistent state in two "
@@ -481,31 +451,26 @@
 "identity에 대한 두 개의 다른 개념들이 존재한다:"
 
 #. Tag: term
-#: transactions.xml:278
 #, no-c-format
 msgid "Database Identity"
 msgstr "데이터베이스 Identity"
 
-#. Tag: literal
-#: transactions.xml:281
-#, no-c-format
-msgid "foo.getId().equals( bar.getId() )"
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
 msgstr "foo.getId().equals( bar.getId() )"
 
 #. Tag: term
-#: transactions.xml:286
 #, no-c-format
 msgid "JVM Identity"
 msgstr "JVM Identity"
 
-#. Tag: literal
-#: transactions.xml:289
+#. Tag: para
 #, no-c-format
-msgid "foo==bar"
-msgstr "foo==bar"
+msgid "<literal>foo==bar</literal>"
+msgstr ""
 
 #. Tag: para
-#: transactions.xml:295
 #, fuzzy, no-c-format
 msgid ""
 "For objects attached to a <emphasis>particular</emphasis> <literal>Session</"
@@ -526,7 +491,6 @@
 "여, optimistic 접근법을 사용하여 해결된다."
 
 #. Tag: para
-#: transactions.xml:304
 #, fuzzy, no-c-format
 msgid ""
 "This approach leaves Hibernate and the database to worry about concurrency. "
@@ -546,7 +510,6 @@
 "<literal>==</literal>를 안전하게 사용할 수가 있다."
 
 #. Tag: para
-#: transactions.xml:313
 #, fuzzy, no-c-format
 msgid ""
 "However, an application that uses <literal>==</literal> outside of a "
@@ -591,13 +554,11 @@
 "가 구현되어야 하는 방법임을 노트하라."
 
 #. 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> "
@@ -613,7 +574,6 @@
 "들을 확실히 이해하라:"
 
 #. Tag: para
-#: transactions.xml:345
 #, fuzzy, no-c-format
 msgid ""
 "A <literal>Session</literal> is not thread-safe. Things that work "
@@ -635,7 +595,6 @@
 "에서 동일한 <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 "
@@ -658,7 +617,6 @@
 "이 아니고 당신이 어떻게든 롤백 후에 시작해야 하기 때문이다."
 
 #. Tag: para
-#: transactions.xml:368
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>Session</literal> caches every object that is in a persistent "
@@ -667,7 +625,7 @@
 "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\"/>. "
+"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 ""
@@ -684,13 +642,11 @@
 "데이터에 대한 높은 확률을 의미한다."
 
 #. 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 "
@@ -712,7 +668,6 @@
 "작은 트랜잭션들의 경우보다는 더 좋게 수행될 것이다."
 
 #. Tag: para
-#: transactions.xml:398
 #, fuzzy, no-c-format
 msgid ""
 "A Hibernate application can run in non-managed (i.e., standalone, simple "
@@ -736,7 +691,6 @@
 "더 이상 필요하지 않다."
 
 #. Tag: para
-#: transactions.xml:408
 #, fuzzy, no-c-format
 msgid ""
 "However, it is often desirable to keep your persistence layer portable "
@@ -756,7 +710,6 @@
 "한 그것의 사용을 강력하게 권장한다."
 
 #. Tag: para
-#: transactions.xml:417
 #, fuzzy, no-c-format
 msgid ""
 "Ending a <literal>Session</literal> usually involves four distinct phases:"
@@ -764,31 +717,26 @@
 "대개 <literal>Session</literal> 종료는 네 개의 구분되는 단계들을 수반한다:"
 
 #. Tag: para
-#: transactions.xml:423
 #, no-c-format
 msgid "flush the session"
 msgstr "세션을 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 "세션을 닫는다"
 
 #. 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 "
@@ -800,13 +748,11 @@
 "다."
 
 #. 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 "
@@ -819,38 +765,13 @@
 "한 (예를 들면 DataSource가 아닌) 커넥션 풀(pool)들로부터 처리된다. 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 ""
-
 #. 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> "
+"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."
@@ -864,7 +785,6 @@
 "에서 이식성이 있고 실행된다."
 
 #. Tag: para
-#: transactions.xml:471
 #, fuzzy, no-c-format
 msgid ""
 "As outlined earlier, a much more flexible solution is Hibernate's built-in "
@@ -873,27 +793,7 @@
 "보다 더 유연한 해결책은 앞서 설명했듯이 Hibernate의 미리 빌드되어 있는 \"현"
 "재 세션\" 컨텍스트 관리이다:"
 
-#. 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 ""
-
 #. Tag: para
-#: transactions.xml:478
 #, fuzzy, no-c-format
 msgid ""
 "You will not see these code snippets in a regular application; fatal "
@@ -915,7 +815,6 @@
 "부분에서 논의된다."
 
 #. Tag: para
-#: transactions.xml:488
 #, fuzzy, no-c-format
 msgid ""
 "You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</"
@@ -928,13 +827,11 @@
 "current_session_context_class</literal>를 선택해야 함을 노트하라."
 
 #. Tag: title
-#: transactions.xml:497
 #, no-c-format
 msgid "Using 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 "
@@ -950,7 +847,6 @@
 "방도들을 제공한다."
 
 #. Tag: para
-#: transactions.xml:506
 #, fuzzy, no-c-format
 msgid ""
 "If you use bean-managed transactions (BMT), Hibernate will tell the "
@@ -963,32 +859,7 @@
 "료하도록 어플리케이션 서버에게 알려줄 것이다. 따라서 트랜잭션 관리 코드는 "
 "non-managed 환경과 동일하다."
 
-#. 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 ""
-
 #. Tag: para
-#: transactions.xml:514
 #, fuzzy, no-c-format
 msgid ""
 "If you want to use a transaction-bound <literal>Session</literal>, that is, "
@@ -999,31 +870,7 @@
 "을 위한 <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 ""
-
 #. Tag: para
-#: transactions.xml:522
 #, fuzzy, no-c-format
 msgid ""
 "With CMT, transaction demarcation is completed in session bean deployment "
@@ -1032,20 +879,7 @@
 "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 ""
-
 #. Tag: para
-#: transactions.xml:529
 #, fuzzy, no-c-format
 msgid ""
 "In a CMT/EJB, even rollback happens automatically. An unhandled "
@@ -1064,7 +898,6 @@
 "emphasis>"
 
 #. Tag: para
-#: transactions.xml:537
 #, fuzzy, no-c-format
 msgid ""
 "When configuring Hibernate's transaction factory, choose <literal>org."
@@ -1085,7 +918,6 @@
 "또는 <literal>\"jta\"</literal>로 설정되도록 하라."
 
 #. Tag: para
-#: transactions.xml:546
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>getCurrentSession()</literal> operation has one downside in a "
@@ -1115,13 +947,11 @@
 "쉽게 피할 수 있다.)"
 
 #. 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 "
@@ -1143,7 +973,6 @@
 "를 호출하여 닫혀지도록 확실히 하라."
 
 #. Tag: para
-#: transactions.xml:575
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>HibernateException</literal>, which wraps most of the errors "
@@ -1169,7 +998,6 @@
 "가능하지 않고 적절한 액션이 취해져야 한다."
 
 #. Tag: para
-#: transactions.xml:587
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
@@ -1201,7 +1029,6 @@
 "를 보라). 표준 <literal>JDBCException</literal> 서브타입은 다음과 같다:"
 
 #. Tag: para
-#: transactions.xml:603
 #, fuzzy, no-c-format
 msgid ""
 "<literal>JDBCConnectionException</literal>: indicates an error with the "
@@ -1211,7 +1038,6 @@
 "타낸다."
 
 #. Tag: para
-#: transactions.xml:609
 #, fuzzy, no-c-format
 msgid ""
 "<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
@@ -1221,7 +1047,6 @@
 "제점을 나타낸다."
 
 #. Tag: para
-#: transactions.xml:615
 #, fuzzy, no-c-format
 msgid ""
 "<literal>ConstraintViolationException</literal>: indicates some form of "
@@ -1231,7 +1056,6 @@
 "떤 형식을 나타낸다."
 
 #. Tag: para
-#: transactions.xml:621
 #, fuzzy, no-c-format
 msgid ""
 "<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
@@ -1241,7 +1065,6 @@
 "필수적인 잠금 레벨을 획득하는 오류를 나타낸다."
 
 #. Tag: para
-#: transactions.xml:627
 #, fuzzy, no-c-format
 msgid ""
 "<literal>GenericJDBCException</literal>: a generic exception which did not "
@@ -1251,13 +1074,11 @@
 "되지 않았던 일반적인 예외상황."
 
 #. 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 "
@@ -1282,33 +1103,7 @@
 "다. 이 기능은 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 ""
-
 #. Tag: para
-#: transactions.xml:654
 #, fuzzy, no-c-format
 msgid ""
 "<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
@@ -1318,13 +1113,11 @@
 "라. 여기서 트랜잭션 타임아웃들은 선언적으로 정의되어야 한다."
 
 #. Tag: title
-#: transactions.xml:664
 #, no-c-format
 msgid "Optimistic concurrency control"
 msgstr "Optimistic 동시성 제어"
 
 #. Tag: para
-#: transactions.xml:666
 #, fuzzy, no-c-format
 msgid ""
 "The only approach that is consistent with high concurrency and high "
@@ -1344,13 +1137,11 @@
 "지하는 이점을 갖고 있다."
 
 #. Tag: title
-#: transactions.xml:677
 #, no-c-format
 msgid "Application version checking"
 msgstr "어플리케이션 버전 체킹"
 
 #. Tag: para
-#: transactions.xml:679
 #, fuzzy, no-c-format
 msgid ""
 "In an implementation without much help from Hibernate, each interaction with "
@@ -1367,26 +1158,7 @@
 "드시킬 책임이 있다. 이 접근법은 대화 트랜잭션을 확실히 격리시키기 위해 그것 "
 "자신의 버전 체킹을 수행하도록 어플리케이션에게 강제시킨다."
 
-#. 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 ""
-
 #. Tag: para
-#: transactions.xml:690
 #, no-c-format
 msgid ""
 "The <literal>version</literal> property is mapped using <literal>&lt;"
@@ -1398,7 +1170,6 @@
 "킬 것이다."
 
 #. Tag: para
-#: transactions.xml:696
 #, fuzzy, no-c-format
 msgid ""
 "If you are operating in a low-data-concurrency environment, and do not "
@@ -1416,7 +1187,6 @@
 "들을 병합시킬 기회 없이 업데이트들 손실을 겪을 수도 있기 때문이다."
 
 #. Tag: para
-#: transactions.xml:705
 #, fuzzy, no-c-format
 msgid ""
 "Manual version checking is only feasible in trivial circumstances and not "
@@ -1432,13 +1202,11 @@
 "전 체킹을 제공한다."
 
 #. Tag: title
-#: transactions.xml:716
 #, no-c-format
 msgid "Extended session and automatic versioning"
 msgstr "확장된 세션과 자동적인 버전화"
 
 #. Tag: para
-#: transactions.xml:718
 #, fuzzy, no-c-format
 msgid ""
 "A single <literal>Session</literal> instance and its persistent instances "
@@ -1462,7 +1230,6 @@
 "되지 않은 데이터를 가지고 비지니스 대화를 재시작하는 기회이다)."
 
 #. Tag: para
-#: transactions.xml:727
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>Session</literal> is disconnected from any underlying JDBC "
@@ -1477,23 +1244,7 @@
 "에 그 자체 관계할 필요가 없거나 그것은 모든 데이터베이스 트랜잭션에서 인스턴"
 "스들을 다시 로드시킬 필요가 없다."
 
-#. 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 ""
-
 #. Tag: para
-#: transactions.xml:736
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>foo</literal> object knows which <literal>Session</literal> it "
@@ -1528,7 +1279,6 @@
 "<literal>close()</literal>할 것이다."
 
 #. Tag: para
-#: transactions.xml:751
 #, fuzzy, no-c-format
 msgid ""
 "This pattern is problematic if the <literal>Session</literal> is too big to "
@@ -1548,13 +1298,11 @@
 "은 또한 곧 실없는 데이터가 될 것이기 때문이다."
 
 #. Tag: title
-#: transactions.xml:762
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
-#: transactions.xml:763
 #, fuzzy, no-c-format
 msgid ""
 "Earlier versions of Hibernate required explicit disconnection and "
@@ -1566,7 +1314,6 @@
 "효과를 가지므로, 이들 방법들은 진부하게 되었다.)"
 
 #. Tag: para
-#: transactions.xml:769
 #, fuzzy, no-c-format
 msgid ""
 "Keep the disconnected <literal>Session</literal> close to the persistence "
@@ -1582,7 +1329,6 @@
 "에 전송하지 말라 (또는 그것을 별도의 티어에 직렬화 시키지도 말라)."
 
 #. Tag: para
-#: transactions.xml:777
 #, fuzzy, no-c-format
 msgid ""
 "The extended session pattern, or <emphasis>session-per-conversation</"
@@ -1597,13 +1343,11 @@
 "며, 예제들은 Hibernate Wiki를 보라."
 
 #. Tag: title
-#: transactions.xml:787
 #, no-c-format
 msgid "Detached objects and automatic versioning"
 msgstr "Detached 객체들과 자동적인 버전화"
 
 #. Tag: para
-#: transactions.xml:789
 #, no-c-format
 msgid ""
 "Each interaction with the persistent store occurs in a new <literal>Session</"
@@ -1621,22 +1365,7 @@
 "</literal>, <literal>Session.saveOrUpdate()</literal>, <literal>Session.merge"
 "()</literal>를 사용하여 그것들을 다시 첨부시킨다."
 
-#. Tag: programlisting
-#: transactions.xml:797
-#, 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 ""
-
 #. Tag: para
-#: transactions.xml:799
 #, fuzzy, no-c-format
 msgid ""
 "Again, Hibernate will check instance versions during flush, throwing an "
@@ -1646,7 +1375,6 @@
 "이 발생할 경우에 예외상황을 던질 것이다."
 
 #. Tag: para
-#: transactions.xml:804
 #, fuzzy, no-c-format
 msgid ""
 "You can also call <literal>lock()</literal> instead of <literal>update()</"
@@ -1660,13 +1388,11 @@
 "용할 수 있다."
 
 #. 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 "
@@ -1680,7 +1406,6 @@
 "dirty 일 경우에 더 이상 버전을 증가시키지 않을 것이다."
 
 #. Tag: para
-#: transactions.xml:822
 #, fuzzy, no-c-format
 msgid ""
 "Legacy database schemas are often static and cannot be modified. Or, other "
@@ -1706,7 +1431,6 @@
 "으로만 동작함을 노트하라."
 
 #. Tag: para
-#: transactions.xml:834
 #, fuzzy, no-c-format
 msgid ""
 "Concurrent modification can be permitted in instances where the changes that "
@@ -1720,7 +1444,6 @@
 "비교만 할 것이다."
 
 #. Tag: para
-#: transactions.xml:840
 #, fuzzy, no-c-format
 msgid ""
 "In both cases, with dedicated version/timestamp columns or with a full/dirty "
@@ -1750,13 +1473,11 @@
 "징을 맞춤화 시킬 수 있다."
 
 #. Tag: title
-#: transactions.xml:858
 #, fuzzy, no-c-format
 msgid "Pessimistic locking"
 msgstr "Pessimistic 잠금"
 
 #. Tag: para
-#: transactions.xml:860
 #, fuzzy, no-c-format
 msgid ""
 "It is not intended that users spend much time worrying about locking "
@@ -1772,7 +1493,6 @@
 "작 시에 잠금들을 다시 얻고자 원할 수도 있다."
 
 #. Tag: para
-#: transactions.xml:867
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate will always use the locking mechanism of the database; it never "
@@ -1782,7 +1502,6 @@
 "을 항상 사용할 것이다!"
 
 #. Tag: para
-#: transactions.xml:872
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>LockMode</literal> class defines the different lock levels that "
@@ -1792,7 +1511,6 @@
 "금 레벨들을 정의한다. 잠금은 다음 메커니즘들에 의해 얻어진다:"
 
 #. Tag: para
-#: transactions.xml:879
 #, no-c-format
 msgid ""
 "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
@@ -1802,7 +1520,6 @@
 "insert 할 때 자동적으로 획득된다."
 
 #. Tag: para
-#: transactions.xml:885
 #, fuzzy, no-c-format
 msgid ""
 "<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user "
@@ -1814,7 +1531,6 @@
 "literal>를 사용하여 명시적인 사용자 요청 상에서 얻어질 수 있다."
 
 #. Tag: para
-#: transactions.xml:891
 #, fuzzy, no-c-format
 msgid ""
 "<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit "
@@ -1826,7 +1542,6 @@
 "도 있다."
 
 #. Tag: para
-#: transactions.xml:897
 #, fuzzy, no-c-format
 msgid ""
 "<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
@@ -1838,7 +1553,6 @@
 "질 수도 있다. 명시적인 사용자 요청에 의해 다시 얻어질 수도 있다."
 
 #. Tag: para
-#: transactions.xml:904
 #, no-c-format
 msgid ""
 "<literal>LockMode.NONE</literal> represents the absence of a lock. All "
@@ -1853,14 +1567,12 @@
 "출을 통해 세션과 연관된 객체들이 또한 이 잠금 모드로 시작된다."
 
 #. Tag: para
-#: transactions.xml:913
 #, no-c-format
 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</"
@@ -1870,19 +1582,16 @@
 "한 호출."
 
 #. Tag: para
-#: transactions.xml:924
 #, no-c-format
 msgid "A call to <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>에 대한 호출."
 
 #. Tag: para
-#: transactions.xml:935
 #, no-c-format
 msgid ""
 "If <literal>Session.load()</literal> is called with <literal>UPGRADE</"
@@ -1901,7 +1610,6 @@
 "그 객체에 대해 <literal>lock()</literal>을 호출한다."
 
 #. Tag: para
-#: transactions.xml:944
 #, fuzzy, no-c-format
 msgid ""
 "<literal>Session.lock()</literal> performs a version number check if the "
@@ -1917,7 +1625,6 @@
 "literal>가 사용된다.)"
 
 #. Tag: para
-#: transactions.xml:951
 #, fuzzy, no-c-format
 msgid ""
 "If the requested lock mode is not supported by the database, Hibernate uses "
@@ -1929,13 +1636,11 @@
 "이 이식 가능할 것임을 확실히 해준다."
 
 #. Tag: title
-#: transactions.xml:960
 #, fuzzy, no-c-format
 msgid "Connection release modes"
 msgstr "연결 해제 모드들"
 
 #. Tag: para
-#: transactions.xml:962
 #, fuzzy, no-c-format
 msgid ""
 "One of the legacies of Hibernate 2.x JDBC connection management meant that a "
@@ -1959,7 +1664,6 @@
 "ConnectionReleaseMode</literal>의 열거된 값들에 의해 식별된다:"
 
 #. Tag: para
-#: transactions.xml:976
 #, fuzzy, no-c-format
 msgid ""
 "<literal>ON_CLOSE</literal>: is the legacy behavior described above. The "
@@ -1971,7 +1675,6 @@
 "넥션을 보관할 필요가 있을 때 하나의 커넥션을 획득한다."
 
 #. Tag: para
-#: transactions.xml:983
 #, fuzzy, no-c-format
 msgid ""
 "<literal>AFTER_TRANSACTION</literal>: releases connections after a "
@@ -1981,7 +1684,6 @@
 "Transaction</literal>이 완료된 후에 연결들을 해제하라고 말한다."
 
 #. Tag: para
-#: transactions.xml:989
 #, fuzzy, no-c-format
 msgid ""
 "<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): "
@@ -1997,7 +1699,6 @@
 "ScrollableResults</literal>의 사용을 통해서이다."
 
 #. Tag: para
-#: transactions.xml:999
 #, fuzzy, no-c-format
 msgid ""
 "The configuration parameter <literal>hibernate.connection.release_mode</"
@@ -2008,7 +1709,6 @@
 "release_mode</literal>가 사용된다. 가능한 값들은 다음과 같다:"
 
 #. Tag: para
-#: transactions.xml:1006
 #, fuzzy, no-c-format
 msgid ""
 "<literal>auto</literal> (the default): this choice delegates to the release "
@@ -2029,7 +1729,6 @@
 "다."
 
 #. Tag: para
-#: transactions.xml:1016
 #, fuzzy, no-c-format
 msgid ""
 "<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This "
@@ -2040,7 +1739,6 @@
 "는다."
 
 #. Tag: para
-#: transactions.xml:1022
 #, fuzzy, no-c-format
 msgid ""
 "<literal>after_transaction</literal>: uses ConnectionReleaseMode."
@@ -2056,7 +1754,6 @@
 "AFTER_STATEMENT인 것처럼 해제될 것임을 또한 노트하라."
 
 #. Tag: para
-#: transactions.xml:1030
 #, fuzzy, no-c-format
 msgid ""
 "<literal>after_statement</literal>: uses ConnectionReleaseMode."
@@ -2077,3 +1774,6 @@
 "<literal>ConnectionProvider.getConnection()</literal>을 호출할 때마다 우리가 "
 "동일한 기본 JDBC 커넥션을 다시 필요로 할 수 있는 환경들에서 또는 우리가 동일"
 "한 커넥션을 얻는 것에 상관없는 auto-commit 환경에서 오직 안전하다."
+
+#~ msgid "foo==bar"
+#~ msgstr "foo==bar"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/tutorial.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/tutorial.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/tutorial.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-23 18:41+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,13 +11,11 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: tutorial.xml:31
 #, no-c-format
 msgid "Tutorial"
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:33
 #, no-c-format
 msgid ""
 "Intended for new users, this chapter provides an step-by-step introduction "
@@ -28,7 +26,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:42
 #, no-c-format
 msgid ""
 "This tutorial expects the user have knowledge of both Java and SQL. If you "
@@ -37,7 +34,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:51
 #, no-c-format
 msgid ""
 "The distribution contains another example application under the "
@@ -45,13 +41,11 @@
 msgstr ""
 
 #. Tag: title
-#: tutorial.xml:59
 #, no-c-format
 msgid "Part 1 - The first Hibernate Application"
 msgstr "파트 1 - 첫 번째 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 "
@@ -61,7 +55,6 @@
 "어플리케이션과 이들 이벤트들의 호스트들에 대한 정보를 필요로 한다고 가정하자."
 
 #. Tag: para
-#: tutorial.xml:67
 #, no-c-format
 msgid ""
 "Although you can use whatever database you feel comfortable using, we will "
@@ -71,13 +64,11 @@
 msgstr ""
 
 #. Tag: title
-#: tutorial.xml:76
 #, no-c-format
 msgid "Setup"
 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 "
@@ -91,7 +82,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:88
 #, no-c-format
 msgid ""
 "We will be using Maven in this tutorial, taking advantage of its transitive "
@@ -99,93 +89,36 @@
 "automatically set up a project for us based on the maven descriptor."
 msgstr ""
 
-#. 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."
+"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 ""
 
 #. Tag: para
-#: tutorial.xml:114
 #, no-c-format
 msgid ""
 "Save this file as <filename>pom.xml</filename> in the project root directory."
 msgstr ""
 
 #. Tag: title
-#: tutorial.xml:121
 #, no-c-format
 msgid "The first class"
 msgstr "첫 번째 클래스"
 
 #. 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 "
@@ -194,50 +127,7 @@
 "다음으로 우리는 우리가 데이터베이스 속에 저장시키고자 원하는 이벤트를 표현하"
 "는 한 개의 클래스를 생성시킨다."
 
-#. 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 ""
-
 #. Tag: para
-#: tutorial.xml:130
 #, fuzzy, no-c-format
 msgid ""
 "This class uses standard JavaBean naming conventions for property getter and "
@@ -254,7 +144,6 @@
 "다."
 
 #. Tag: para
-#: tutorial.xml:138
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>id</literal> property holds a unique identifier value for a "
@@ -282,7 +171,6 @@
 "있으며, 당신은 당신의 어플리케이션 설계에 적합하도록 그것을 부합시킬 수 있다."
 
 #. Tag: para
-#: tutorial.xml:153
 #, fuzzy, no-c-format
 msgid ""
 "The no-argument constructor is a requirement for all persistent classes; "
@@ -297,7 +185,6 @@
 "없는 효율적인 데이터 검색에 필요하다."
 
 #. Tag: para
-#: tutorial.xml:161
 #, no-c-format
 msgid ""
 "Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
@@ -305,13 +192,11 @@
 msgstr ""
 
 #. Tag: title
-#: tutorial.xml:168
 #, no-c-format
 msgid "The mapping file"
 msgstr "The mapping file"
 
 #. Tag: para
-#: tutorial.xml:170
 #, no-c-format
 msgid ""
 "Hibernate needs to know how to load and store objects of the persistent "
@@ -325,27 +210,11 @@
 "사용해야 하는 그 테이블 내의 컬럼들이 무엇인지를 Hibernate에게 알려준다."
 
 #. 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
-#, 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 ""
-
 #. Tag: para
-#: tutorial.xml:184
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate DTD is sophisticated. You can use it for auto-completion of XML "
@@ -367,7 +236,6 @@
 "Hibernate 배포본의 <literal>src/</literal> 디렉토리 속에 포함되어 있다."
 
 #. Tag: para
-#: tutorial.xml:197
 #, fuzzy, no-c-format
 msgid ""
 "We will omit the DTD declaration in future examples to shorten the code. It "
@@ -377,7 +245,6 @@
 "것은 물론 옵션이 아니다."
 
 #. Tag: para
-#: tutorial.xml:203
 #, fuzzy, no-c-format
 msgid ""
 "Between the two <literal>hibernate-mapping</literal> tags, include a "
@@ -390,21 +257,7 @@
 "수 있고, 그것은 첫번째-급의 엔티티들이 아니다)은 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 ""
-
 #. Tag: para
-#: tutorial.xml:212
 #, fuzzy, no-c-format
 msgid ""
 "So far we have told Hibernate how to persist and load object of class "
@@ -421,23 +274,7 @@
 "리는 대용 키 프라이머리 키 컬럼에 대한 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 ""
-
 #. Tag: para
-#: tutorial.xml:224
 #, no-c-format
 msgid ""
 "The <literal>id</literal> element is the declaration of the identifier "
@@ -449,7 +286,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:234
 #, no-c-format
 msgid ""
 "The nested <literal>generator</literal> element specifies the identifier "
@@ -462,15 +298,14 @@
 msgstr ""
 
 #. 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"
+"<literal>native</literal> is no longer considered the best strategy in terms "
+"of portability. for further discussion, see <xref linkend=\"portability-idgen"
+"\" />"
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:252
 #, fuzzy, no-c-format
 msgid ""
 "Lastly, we need to tell Hibernate about the remaining entity class "
@@ -479,26 +314,7 @@
 "마지막으로 우리는 매핑 파일 속에서 클래스의 영속 프로퍼티들에 대한 선언들을 "
 "포함한다. 디폴트로, 클래스의 프로퍼티들은 영속적인 것으로 간주되지 않는다:"
 
-#. 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 ""
-
 #. Tag: para
-#: tutorial.xml:260
 #, fuzzy, no-c-format
 msgid ""
 "Similar to the <literal>id</literal> element, the <literal>name</literal> "
@@ -514,7 +330,6 @@
 "게 될 것이다."
 
 #. Tag: para
-#: tutorial.xml:271
 #, fuzzy, no-c-format
 msgid ""
 "Why does the <literal>date</literal> property mapping include the "
@@ -532,7 +347,6 @@
 "는 그것을 다른 이름으로 더 좋게 매핑 시킨다."
 
 #. Tag: para
-#: tutorial.xml:281
 #, fuzzy, no-c-format
 msgid ""
 "The <literal>title</literal> mapping also lacks a <literal>type</literal> "
@@ -567,7 +381,6 @@
 "고 선언한다."
 
 #. Tag: para
-#: tutorial.xml:297
 #, no-c-format
 msgid ""
 "Hibernate makes this mapping type determination using reflection when the "
@@ -577,7 +390,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:304
 #, no-c-format
 msgid ""
 "Save this mapping file as <filename>src/main/resources/org/hibernate/"
@@ -585,13 +397,11 @@
 msgstr ""
 
 #. Tag: title
-#: tutorial.xml:312
 #, no-c-format
 msgid "Hibernate configuration"
 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 "
@@ -600,13 +410,11 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:321
 #, no-c-format
-msgid "We do this do that the data remains between runs."
+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 "
@@ -628,7 +436,6 @@
 "에 있는 모든 파일들을 삭제하고 다시 HSQL DB를 시작하라."
 
 #. Tag: para
-#: tutorial.xml:337
 #, no-c-format
 msgid ""
 "Hibernate will be connecting to the database on behalf of your application, "
@@ -642,15 +449,12 @@
 msgstr ""
 
 #. 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."
+"The built-in Hibernate connection pool is not intended for production use."
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:354
 #, fuzzy, no-c-format
 msgid ""
 "For Hibernate's configuration, we can use a simple <literal>hibernate."
@@ -663,63 +467,12 @@
 "xml</literal> 파일, 또는 심지어 완전한 프로그램 상의 설정을 사용할 수 있다. "
 "대부분의 사용자들은 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 ""
-
 #. Tag: para
-#: tutorial.xml:363
 #, no-c-format
 msgid "Notice that this configuration file specifies a different DTD"
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:366
 #, fuzzy, no-c-format
 msgid ""
 "You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
@@ -734,7 +487,6 @@
 "factory&gt;</literal> 구성들을 사용하라."
 
 #. Tag: para
-#: tutorial.xml:373
 #, no-c-format
 msgid ""
 "The first four <literal>property</literal> elements contain the necessary "
@@ -743,15 +495,13 @@
 msgstr ""
 
 #. 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."
+"Hibernate is able to correctly determine which dialect to use in most cases. "
+"See <xref linkend=\"portability-dialectresolver\" /> for more information."
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:386
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate's automatic session management for persistence contexts is "
@@ -771,7 +521,6 @@
 "수 있다. 마지막으로 우리는 영속 클래스들을 위한 매핑 파일(들)을 추가시킨다."
 
 #. Tag: para
-#: tutorial.xml:395
 #, no-c-format
 msgid ""
 "Save this file as <filename>hibernate.cfg.xml</filename> into the "
@@ -779,13 +528,11 @@
 msgstr ""
 
 #. Tag: title
-#: tutorial.xml:403
 #, fuzzy, no-c-format
 msgid "Building with Maven"
 msgstr "Ant로 빌드하기"
 
 #. Tag: para
-#: tutorial.xml:405
 #, no-c-format
 msgid ""
 "We will now build the tutorial with Maven. You will need to have Maven "
@@ -796,43 +543,12 @@
 "make sure we can compile everything so far:"
 msgstr ""
 
-#. 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 "시작과 helper들"
 
 #. Tag: para
-#: tutorial.xml:422
 #, fuzzy, no-c-format
 msgid ""
 "It is time to load and store some <literal>Event</literal> objects, but "
@@ -856,7 +572,6 @@
 "전역 객체이다."
 
 #. Tag: para
-#: tutorial.xml:436
 #, fuzzy, no-c-format
 msgid ""
 "We will create a <literal>HibernateUtil</literal> helper class that takes "
@@ -868,42 +583,7 @@
 "<emphasis>ThreadLocal Session</emphasis> 패턴이 여기서 유용하며, 우리는 현재"
 "의 작업 단위를 현재의 쓰레드와 연관지워 유지한다. 구현을 살펴보자:"
 
-#. 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 ""
-
 #. Tag: para
-#: tutorial.xml:444
 #, no-c-format
 msgid ""
 "Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
@@ -911,7 +591,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:449
 #, fuzzy, no-c-format
 msgid ""
 "This class not only produces the global <interfacename>org.hibernate."
@@ -930,7 +609,6 @@
 "</literal>에 대한 호출은 쓰레드와 현재 연관되어 있는 작업 단위를 종료시킨다."
 
 #. Tag: para
-#: tutorial.xml:458
 #, fuzzy, no-c-format
 msgid ""
 "If you give the <interfacename>org.hibernate.SessionFactory</interfacename> "
@@ -952,7 +630,6 @@
 "으로 바인드시킬 수 있을 것이다."
 
 #. Tag: para
-#: tutorial.xml:467
 #, fuzzy, no-c-format
 msgid ""
 "You now need to configure a logging system. Hibernate uses commons logging "
@@ -974,7 +651,6 @@
 "Hibernate 시작 메시지는 stdout 상에 보여진다."
 
 #. Tag: para
-#: tutorial.xml:477
 #, fuzzy, no-c-format
 msgid ""
 "The tutorial infrastructure is complete and you are now ready to do some "
@@ -984,13 +660,11 @@
 "을 행할 준비가 되어 있다."
 
 #. 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 "
@@ -1001,49 +675,7 @@
 "우리는 한 개의 <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 ""
-
 #. Tag: para
-#: tutorial.xml:495
 #, fuzzy, no-c-format
 msgid ""
 "In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</"
@@ -1058,7 +690,6 @@
 "펴보자."
 
 #. Tag: para
-#: tutorial.xml:502
 #, fuzzy, no-c-format
 msgid ""
 "A <interface>org.hibernate.Session</interface> is designed to represent a "
@@ -1078,7 +709,6 @@
 "가능한 <literal>Transaction</literal> API를 사용한다."
 
 #. Tag: para
-#: tutorial.xml:515
 #, fuzzy, no-c-format
 msgid ""
 "What does <literal>sessionFactory.getCurrentSession()</literal> do? First, "
@@ -1101,7 +731,6 @@
 "scope(영역), 작업 단위가 시작될 때와 작업 단위가 종료될 때를 고려해야 한다."
 
 #. Tag: para
-#: tutorial.xml:529
 #, no-c-format
 msgid ""
 "Hibernate offers three methods of current session tracking. The \"thread\" "
@@ -1111,7 +740,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:538
 #, fuzzy, no-c-format
 msgid ""
 "A <interface>org.hibernate.Session</interface> begins when the first call to "
@@ -1136,7 +764,6 @@
 "질 수 있는데, 우리는 이 튜토리얼의 뒷부분에서 이것을 다룰 것이다.)."
 
 #. Tag: para
-#: tutorial.xml:551
 #, fuzzy, no-c-format
 msgid ""
 "Related to the unit of work scope, should the Hibernate <interface>org."
@@ -1164,10 +791,9 @@
 "진다."
 
 #. Tag: para
-#: tutorial.xml:568
 #, fuzzy, no-c-format
 msgid ""
-"See <xref linkend=\"transactions\"/> for more information about transaction "
+"See <xref linkend=\"transactions\" /> for more information about transaction "
 "handling and demarcation. The previous example also skipped any error "
 "handling and rollback."
 msgstr ""
@@ -1175,7 +801,6 @@
 ">을 살펴보라. 우리는 또한 앞의 예제에서 임의의 오류 처리와 롤백을 생략했다."
 
 #. 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 "
@@ -1184,13 +809,11 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:581
 #, no-c-format
 msgid "You may need to perform <command>mvn compile</command> first."
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:586
 #, fuzzy, no-c-format
 msgid ""
 "You should see Hibernate starting up and, depending on your configuration, "
@@ -1199,78 +822,33 @@
 "컴파일, 구성에 따른 Hibernate 시작 후에, 당신은 많은 로그 출력을 보게 될 것이"
 "다. 끝에서 당신은 다음 라인을 발견할 것이다:"
 
-#. Tag: programlisting
-#: tutorial.xml:591
-#, no-c-format
-msgid ""
-"<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) "
-"values (?, ?, ?)]]>"
-msgstr ""
-
 #. Tag: para
-#: tutorial.xml:593
 #, no-c-format
 msgid "This is the <literal>INSERT</literal> executed by Hibernate."
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:597
 #, fuzzy, no-c-format
 msgid "To list stored events an option is added to the main method:"
 msgstr ""
 "이제 우리는 마찬가지로 저장된 이벤트들을 열거하고자 원하며, 우리는 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
 msgid "A new <literal>listEvents() method is also added</literal>:"
 msgstr ""
 "우리는 또한 새로운 <literal>listEvents() method</literal> 메소드를 추가 시킨"
 "다:"
 
-#. Tag: programlisting
-#: tutorial.xml:607
-#, 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 ""
-
 #. 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."
+"queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
 msgstr ""
 "여기서 우리가 행할 것은 데이터베이스로부터 모든 존재하는 <literal>Event</"
 "literal> 객체들을 로드시키기 위해 HQL (Hibernate Query Language) 질의를 사용"
@@ -1279,7 +857,6 @@
 "물론 HQL로서 보다 복잡한 질의들을 생성시킬 수 있다."
 
 #. Tag: para
-#: tutorial.xml:617
 #, no-c-format
 msgid ""
 "Now we can call our new functionality, again using the Maven exec plugin: "
@@ -1288,13 +865,11 @@
 msgstr ""
 
 #. Tag: title
-#: tutorial.xml:627
 #, no-c-format
 msgid "Part 2 - Mapping associations"
 msgstr "파트 2 - 연관들을 매핑하기"
 
 #. Tag: para
-#: tutorial.xml:629
 #, fuzzy, no-c-format
 msgid ""
 "So far we have mapped a single persistent entity class to a table in "
@@ -1307,39 +882,16 @@
 "람들을 추가하고 그들이 참여하는 이벤트들의 목록을 저장할 것이다."
 
 #. Tag: title
-#: tutorial.xml:637
 #, no-c-format
 msgid "Mapping the Person class"
 msgstr "Person 클래스 매핑하기"
 
 #. Tag: para
-#: tutorial.xml:639
 #, fuzzy, no-c-format
 msgid "The first cut of the <literal>Person</literal> class looks like this:"
 msgstr "클래스의 첫 번째 장면은 간단하다:"
 
-#. 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/"
@@ -1347,47 +899,18 @@
 msgstr ""
 
 #. 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 ""
 
-#. 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의 구성에 추가하라:"
 
-#. Tag: programlisting
-#: tutorial.xml:661
-#, no-c-format
-msgid ""
-"<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
-"<mapping resource=\"events/Person.hbm.xml\"/>]]>"
-msgstr ""
-
 #. Tag: para
-#: tutorial.xml:663
 #, fuzzy, no-c-format
 msgid ""
 "Create an association between these two entities. Persons can participate in "
@@ -1400,13 +923,11 @@
 "(multiplicity), 그리고 콜렉션 특징."
 
 #. Tag: title
-#: tutorial.xml:673
 #, no-c-format
 msgid "A unidirectional Set-based association"
 msgstr "단방향 Set-기반의 연관"
 
 #. Tag: para
-#: tutorial.xml:675
 #, fuzzy, no-c-format
 msgid ""
 "By adding a collection of events to the <literal>Person</literal> class, you "
@@ -1424,26 +945,7 @@
 "literal>를 사용한다. 왜냐하면 그 콜렉션은 중복 요소들을 포함하기 않을 것이고 "
 "그 순서가 우리와 관련되어 있지 않기 때문이다."
 
-#. 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 ""
-
 #. Tag: para
-#: tutorial.xml:688
 #, fuzzy, no-c-format
 msgid ""
 "Before mapping this association, let's consider the other side. We could "
@@ -1465,28 +967,7 @@
 "to-many</emphasis> 연관이라고 명명한다. 그러므로 우리는 Hibernate의 many-to-"
 "many 매핑을 사용한다:"
 
-#. 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 ""
-
 #. Tag: para
-#: tutorial.xml:703
 #, fuzzy, no-c-format
 msgid ""
 "Hibernate supports a broad range of collection mappings, a <literal>set</"
@@ -1513,38 +994,16 @@
 "에 있는 클래스)를 Hibernate에게 알려주어야 한다."
 
 #. Tag: para
-#: tutorial.xml:719
 #, no-c-format
 msgid "The database schema for this mapping is therefore:"
 msgstr "따라서 이 매핑을 위한 데이터베이스 스키마는 다음과 같다:"
 
-#. 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 "
@@ -1553,25 +1012,7 @@
 "<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 ""
-
 #. Tag: para
-#: tutorial.xml:736
 #, fuzzy, no-c-format
 msgid ""
 "After loading a <literal>Person</literal> and an <literal>Event</literal>, "
@@ -1605,7 +1046,6 @@
 "션의 커밋(또는 롤백)으로 끝이난다."
 
 #. 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 "
@@ -1620,43 +1060,7 @@
 "상태를 <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 ""
-
 #. Tag: para
-#: tutorial.xml:766
 #, fuzzy, no-c-format
 msgid ""
 "The call to <literal>update</literal> makes a detached object persistent "
@@ -1672,7 +1076,6 @@
 "(추가/삭제)를 포함한다."
 
 #. 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 "
@@ -1690,22 +1093,7 @@
 "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 ""
-
 #. Tag: para
-#: tutorial.xml:785
 #, fuzzy, no-c-format
 msgid ""
 "This is an example of an association between two equally important classes : "
@@ -1736,7 +1124,6 @@
 "<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 "
@@ -1748,13 +1135,11 @@
 "진다."
 
 #. 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> "
@@ -1762,39 +1147,12 @@
 "interfacename> of <classname>java.lang.String</classname> instances:"
 msgstr ""
 
-#. 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
 msgid "The mapping of this <literal>Set</literal> is as follows:"
 msgstr "이 <literal>Set</literal>에 대한 매핑은 다음과 같다:"
 
-#. Tag: programlisting
-#: tutorial.xml:826
-#, 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 ""
-
 #. Tag: para
-#: tutorial.xml:828
 #, fuzzy, no-c-format
 msgid ""
 "The difference compared with the earlier mapping is the use of the "
@@ -1820,39 +1178,11 @@
 "속성은 <literal>String</literal> 값들이 실제로 저장될 컬럼 이름을 정의한다."
 
 #. Tag: para
-#: tutorial.xml:844
 #, fuzzy, no-c-format
 msgid "Here is the updated schema:"
 msgstr "업데이트된 스키마를 살펴보라:"
 
-#. Tag: programlisting
-#: tutorial.xml:848
-#, 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 ""
-
 #. 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 "
@@ -1866,7 +1196,6 @@
 "미론이다."
 
 #. 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 "
@@ -1876,27 +1205,7 @@
 "요소들을 시도하고 이 콜렉션에 추가할 수 있다. 그것은 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 ""
-
 #. Tag: para
-#: tutorial.xml:863
 #, fuzzy, no-c-format
 msgid ""
 "This time we did not use a <emphasis>fetch</emphasis> query to initialize "
@@ -1910,13 +1219,11 @@
 "라."
 
 #. Tag: title
-#: tutorial.xml:872
 #, no-c-format
 msgid "Bi-directional associations"
 msgstr "Bi-directional associations"
 
 #. Tag: para
-#: tutorial.xml:874
 #, fuzzy, no-c-format
 msgid ""
 "Next you will map a bi-directional association. You will make the "
@@ -1932,7 +1239,6 @@
 "고 검색될 수 있다."
 
 #. Tag: para
-#: tutorial.xml:882
 #, no-c-format
 msgid ""
 "A relational database is more flexible than a network programming language, "
@@ -1941,7 +1247,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:890
 #, fuzzy, no-c-format
 msgid ""
 "First, add a collection of participants to the <literal>Event</literal> "
@@ -1950,41 +1255,13 @@
 "먼저, 참여자들을 가진 한 개의 콜렉션을 <literal>Event</literal> Event 클래스"
 "에 추가시켜라:"
 
-#. 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 ""
-
 #. 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 ""
-
 #. Tag: para
-#: tutorial.xml:903
 #, fuzzy, no-c-format
 msgid ""
 "These are normal <literal>set</literal> mappings in both mapping documents. "
@@ -2001,7 +1278,6 @@
 "내에 있는 <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 "
@@ -2015,13 +1291,11 @@
 "해하기가 훨씬 더 쉬울 것이다."
 
 #. 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. "
@@ -2045,7 +1319,6 @@
 "것을 행하는 것을 결코 잊지 말아야 한다."
 
 #. Tag: para
-#: tutorial.xml:932
 #, fuzzy, no-c-format
 msgid ""
 "Many developers program defensively and create link management methods to "
@@ -2054,31 +1327,7 @@
 "많은 개발자들은 방비책을 프로그램하고 양 측들을 정확하게 설정하기 위한 하나"
 "의 링크 관리 메소드들을 생성시킨다. 예를 들면 <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 ""
-
 #. Tag: para
-#: tutorial.xml:939
 #, fuzzy, no-c-format
 msgid ""
 "The get and set methods for the collection are now protected. This allows "
@@ -2092,7 +1341,6 @@
 "금지시킨다. 당신은 다른 측 상에 있는 콜렉션에 대해 동일한 것을 행할 것이다."
 
 #. Tag: para
-#: tutorial.xml:946
 #, fuzzy, no-c-format
 msgid ""
 "What about the <literal>inverse</literal> mapping attribute? For you, and "
@@ -2123,13 +1371,11 @@
 "이든 선택할 수 있으며 차이점은 없다."
 
 #. Tag: title
-#: tutorial.xml:962
 #, no-c-format
 msgid "Part 3 - The EventManager web application"
 msgstr "파트 3 - EventManager 웹 어플리케이션"
 
 #. Tag: para
-#: tutorial.xml:964
 #, fuzzy, no-c-format
 msgid ""
 "A Hibernate web application uses <literal>Session</literal> and "
@@ -2145,13 +1391,11 @@
 "열할 수 있고, 그것은 새로운 이벤트들을 입력하기 위한 HTML form을 제공한다."
 
 #. Tag: title
-#: tutorial.xml:972
 #, no-c-format
 msgid "Writing the basic servlet"
 msgstr "기본 서블릿 작성하기"
 
 #. Tag: para
-#: tutorial.xml:974
 #, fuzzy, no-c-format
 msgid ""
 "First we need create our basic processing servlet. Since our servlet only "
@@ -2161,52 +1405,7 @@
 "서블릿은 HTTP <literal>GET</literal> 요청들 만을 처리하므로, 우리가 구현하는 "
 "메소드는 <literal>doGet()</literal>이다:"
 
-#. 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 ""
-
 #. Tag: para
-#: tutorial.xml:982
 #, no-c-format
 msgid ""
 "Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/"
@@ -2214,7 +1413,6 @@
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:987
 #, fuzzy, no-c-format
 msgid ""
 "The pattern applied here is called <emphasis>session-per-request</emphasis>. "
@@ -2233,7 +1431,6 @@
 "commit 모드를 사용하지 않는다)."
 
 #. Tag: para
-#: tutorial.xml:996
 #, no-c-format
 msgid ""
 "Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> "
@@ -2248,7 +1445,6 @@
 "하라."
 
 #. Tag: para
-#: tutorial.xml:1003
 #, fuzzy, no-c-format
 msgid ""
 "Next, the possible actions of the request are processed and the response "
@@ -2258,7 +1454,6 @@
 "장 그부분으로 갈 것이다."
 
 #. Tag: para
-#: tutorial.xml:1008
 #, fuzzy, no-c-format
 msgid ""
 "Finally, the unit of work ends when processing and rendering are complete. "
@@ -2280,57 +1475,18 @@
 "할 때 그것을 필요로 할 것이다."
 
 #. Tag: title
-#: tutorial.xml:1022
 #, no-c-format
 msgid "Processing and rendering"
 msgstr "프로세싱과 렌더링"
 
 #. 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
-#, 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 ""
-
 #. 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 "
@@ -2347,25 +1503,7 @@
 "든 이벤트들의 목록이 프린트된다. 첫 번째 메소드는 시행적이고 오직 HTML을 출력"
 "한다:"
 
-#. 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 ""
-
 #. Tag: para
-#: tutorial.xml:1041
 #, no-c-format
 msgid ""
 "The <literal>listEvents()</literal> method uses the Hibernate "
@@ -2374,38 +1512,7 @@
 "<literal>listEvents()</literal> 메소드는 하나의 질의를 실행하기 위해서 현재"
 "의 쓰레드에 결합된 Hibernate <literal>Session</literal>을 사용한다:"
 
-#. Tag: programlisting
-#: tutorial.xml:1047
-#, 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 ""
-
 #. Tag: para
-#: tutorial.xml:1049
 #, no-c-format
 msgid ""
 "Finally, the <literal>store</literal> action is dispatched to the "
@@ -2416,23 +1523,7 @@
 "literal> 메소드로 디스패치된다. 그것은 현재 쓰레드의 <literal>Session</"
 "literal>을 사용한다:"
 
-#. 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 "
@@ -2454,13 +1545,11 @@
 "키를 보라."
 
 #. 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). "
@@ -2468,32 +1557,7 @@
 "web.xml</filename>"
 msgstr ""
 
-#. Tag: programlisting
-#: tutorial.xml:1079
-#, 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 ""
-
 #. Tag: para
-#: tutorial.xml:1081
 #, fuzzy, no-c-format
 msgid ""
 "To build and deploy call <literal>mvn package</literal> in your project "
@@ -2507,16 +1571,14 @@
 "을 배치하기 위해 임의의 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 "
+"tomcat.apache.org/\" /> and follow the installation instructions. Our "
 "application requires no changes to the standard Tomcat configuration."
 msgstr ""
 
 #. Tag: para
-#: tutorial.xml:1096
 #, no-c-format
 msgid ""
 "Once deployed and Tomcat is running, access the application at "
@@ -2534,13 +1596,11 @@
 "록 하라."
 
 #. 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/xml.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/xml.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/ko-KR/content/xml.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-06-10 21:02+0000\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -11,29 +11,25 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: xml.xml:29
 #, no-c-format
 msgid "XML Mapping"
 msgstr "XML 매핑"
 
-#. Tag: emphasis
-#: xml.xml:31
+#. Tag: para
 #, fuzzy, no-c-format
 msgid ""
-"XML Mapping is an experimental feature in Hibernate 3.0 and is currently "
-"under active development."
+"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
+"currently under active development. </emphasis>"
 msgstr ""
 "이것은 Hibernate3.0에서 실험적인 특징이고 매우 활동적으로 개발 중에 있음을 노"
 "트하라."
 
 #. Tag: title
-#: xml.xml:37
 #, no-c-format
 msgid "Working with XML data"
 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 "
@@ -48,7 +44,6 @@
 "수 있다."
 
 #. Tag: para
-#: xml.xml:46
 #, no-c-format
 msgid ""
 "Hibernate supports dom4j as API for manipulating XML trees. You can write "
@@ -68,7 +63,6 @@
 "literal>(merging(병합)은 아직 지원되지 않는다)."
 
 #. Tag: para
-#: xml.xml:56
 #, no-c-format
 msgid ""
 "This feature has many applications including data import/export, "
@@ -78,7 +72,6 @@
 "통한 엔티티 데이터의 구체화를 포함하는 많은 어플리케이션들을 갖는다."
 
 #. Tag: para
-#: xml.xml:61
 #, fuzzy, no-c-format
 msgid ""
 "A single mapping can be used to simultaneously map properties of a class and "
@@ -90,86 +83,26 @@
 "것은 단지 XML을 매핑시키는데 사용될 수도 있다."
 
 #. Tag: title
-#: xml.xml:68
 #, no-c-format
 msgid "Specifying XML and class mapping together"
 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을 동시에 매핑시키는 예제이다 :"
 
-#. 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 매핑만을 지정하기"
 
 #. Tag: para
-#: xml.xml:80
 #, no-c-format
 msgid "Here is an example where there is no POJO class:"
 msgstr "다음은 POJO 클래스가 존재하지 않는 예제이다:"
 
-#. Tag: programlisting
-#: xml.xml:84
-#, 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 ""
-
 #. 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 "
@@ -182,13 +115,11 @@
 "다."
 
 #. Tag: title
-#: xml.xml:97
 #, no-c-format
 msgid "XML mapping metadata"
 msgstr "XML 매핑 메타데이터"
 
 #. Tag: para
-#: xml.xml:99
 #, fuzzy, no-c-format
 msgid ""
 "A range of Hibernate mapping elements accept the <literal>node</literal> "
@@ -201,26 +132,22 @@
 "하도록 한다. <literal>node</literal> 속성의 포맷은 다음 중 하나이어야 한다:"
 
 #. Tag: para
-#: xml.xml:108
 #, fuzzy, no-c-format
 msgid "<literal>\"element-name\"</literal>: map to the named XML element"
 msgstr "<literal>\"element-name\"</literal> - 명명된 XML 요소로 매핑시킨다"
 
 #. Tag: para
-#: xml.xml:111
 #, fuzzy, no-c-format
 msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
 msgstr ""
 "<literal>\"@attribute-name\"</literal> - 명명된 XML 속성으로 매핑시킨다"
 
 #. Tag: para
-#: xml.xml:114
 #, fuzzy, no-c-format
 msgid "<literal>\".\"</literal>: map to the parent element"
 msgstr "<literal>\".\"</literal> - 부모 요소로 매핑 시킨다"
 
 #. Tag: para
-#: xml.xml:117
 #, fuzzy, no-c-format
 msgid ""
 "<literal>\"element-name/@attribute-name\"</literal>: map to the named "
@@ -230,7 +157,6 @@
 "성으로 매핑시킨다"
 
 #. Tag: para
-#: xml.xml:124
 #, fuzzy, no-c-format
 msgid ""
 "For collections and single valued associations, there is an additional "
@@ -249,7 +175,6 @@
 "인트 연관들에 대해 나타날 것이고 콜렉션들은 단순히 전혀 나타나지 않을 것이다."
 
 #. Tag: para
-#: xml.xml:134
 #, fuzzy, no-c-format
 msgid ""
 "Do not leave <literal>embed-xml=\"true\"</literal> for too many "
@@ -259,48 +184,7 @@
 "지 말도록 주의해야 한다. 왜냐하면 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 ""
-
 #. Tag: para
-#: xml.xml:141
 #, fuzzy, no-c-format
 msgid ""
 "In this case, the collection of account ids is embedded, but not the actual "
@@ -309,38 +193,12 @@
 "이 경우에, 우리는 실제 account 데이터가 아닌, 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 ""
-
 #. Tag: para
-#: xml.xml:148
 #, fuzzy, no-c-format
 msgid "would return datasets such as this:"
 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>&lt;one-to-"
@@ -350,36 +208,12 @@
 "<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 데이터 처리하기"
 
 #. 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 "
@@ -388,54 +222,7 @@
 "우리의 어플리케이션 내에서 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 ""
-
-#. Tag: programlisting
-#: xml.xml:174
-#, 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 ""
-
 #. Tag: para
-#: xml.xml:176
 #, fuzzy, no-c-format
 msgid ""
 "When implementing XML-based data import/export, it is useful to combine this "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Author_Group.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Author_Group.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Author_Group.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,11 +4,146 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-02-10T07:25:34\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: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr ""
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr ""
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr ""
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Book_Info.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Book_Info.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Book_Info.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-02-10T07:25:34\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -17,9 +17,9 @@
 msgid "Hibernate Core Reference Guide"
 msgstr ""
 
-#. Tag: subtitle
+#. Tag: releaseinfo
 #, 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)"
+msgid "&version;"
 msgstr ""
 
 #. Tag: para

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Feedback.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Feedback.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Feedback.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-02-10T07:25:34\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Hibernate_Core_Reference_Guide.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Hibernate_Core_Reference_Guide.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Hibernate_Core_Reference_Guide.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-02-10T07:25:34\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Revision_History.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Revision_History.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/Revision_History.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-02-10T07:25:34\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -17,6 +17,21 @@
 msgid "Revision History"
 msgstr ""
 
+#. Tag: firstname
+#, no-c-format
+msgid "Ben"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Jared"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Richard"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Merged with EAP5 and translations added"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/Preface.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/Preface.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/Preface.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-02-10T07:25:34\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/architecture.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/architecture.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/architecture.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,273 +1,327 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: architecture.xml:32
 #, no-c-format
 msgid "Architecture"
 msgstr ""
 
 #. Tag: title
+#: architecture.xml:35
 #, no-c-format
 msgid "Overview"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:37
 #, no-c-format
 msgid "The diagram below provides a high-level view of the Hibernate architecture:"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:50
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:56
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:61
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:76
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:90
 #, no-c-format
 msgid "Here are some definitions of the objects depicted in the diagrams:"
 msgstr ""
 
 #. Tag: term
+#: architecture.xml:95
 #, no-c-format
 msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:97
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:107
 #, no-c-format
 msgid "Session (<literal>org.hibernate.Session</literal>)"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:109
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:119
 #, no-c-format
 msgid "Persistent objects and collections"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:121
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:131
 #, no-c-format
 msgid "Transient and detached objects and collections"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:133
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:142
 #, no-c-format
 msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:144
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:155
 #, no-c-format
 msgid "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:157
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:165
 #, no-c-format
 msgid "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:167
 #, 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 ""
 
-#. Tag: term
+#. Tag: emphasis
+#: architecture.xml:174
 #, no-c-format
-msgid "<emphasis>Extension Interfaces</emphasis>"
+msgid "Extension Interfaces"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:176
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:185
 #, 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 ""
 
 #. Tag: title
+#: architecture.xml:193
 #, no-c-format
 msgid "Instance states"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:194
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:202
 #, no-c-format
 msgid "transient"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:204
 #, 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:212
 #, no-c-format
 msgid "persistent"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:214
 #, 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 ""
 
 #. Tag: term
+#: architecture.xml:226
 #, no-c-format
 msgid "detached"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:228
 #, 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 ""
 
 #. Tag: title
+#: architecture.xml:243
 #, no-c-format
 msgid "JMX Integration"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:245
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:251
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:259
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:271
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:282
 #, no-c-format
 msgid "Consult the JBoss AS user guide for more information about these options."
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:286
 #, no-c-format
-msgid "Another feature available as a JMX service is runtime Hibernate statistics. See <xref linkend=\"configuration-optional-statistics\" /> for more information."
+msgid "Another feature available as a JMX service is runtime Hibernate statistics. See <xref linkend=\"configuration-optional-statistics\"/> for more information."
 msgstr ""
 
 #. Tag: title
+#: architecture.xml:293
 #, no-c-format
 msgid "JCA Support"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:294
 #, 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 ""
 
 #. Tag: title
+#: architecture.xml:301
 #, no-c-format
 msgid "Contextual sessions"
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:302
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:311
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:321
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:328
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:338
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:346
 #, no-c-format
 msgid "<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current sessions are tracked by thread of execution. See the Javadocs for details."
 msgstr ""
 
 #. Tag: para
+#: architecture.xml:352
 #, 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 ""
 
 #. Tag: para
+#: architecture.xml:361
 #, 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."
+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 ""
 
 #. Tag: para
+#: architecture.xml:373
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/association_mapping.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/association_mapping.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/association_mapping.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,198 +1,743 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
-"PO-Revision-Date: 2010-01-08T04:07:17\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: association_mapping.xml:32
 #, no-c-format
 msgid "Association Mappings"
 msgstr ""
 
 #. Tag: title
+#: association_mapping.xml:35
 #, no-c-format
 msgid "Introduction"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:37
 #, 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, starting with unidirectional mappings and then bidirectional cases. We will use <literal>Person</literal> and <literal>Address</literal> in all the examples."
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:45
 #, no-c-format
 msgid "Associations will be classified by multiplicity and whether or not they map to an intervening join table."
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:50
 #, 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 ""
 
 #. Tag: title
+#: association_mapping.xml:60
 #, no-c-format
 msgid "Unidirectional associations"
 msgstr ""
 
 #. Tag: title
+#: association_mapping.xml:63 association_mapping.xml:134
 #, no-c-format
 msgid "Many-to-one"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:65
 #, no-c-format
 msgid "A <emphasis>unidirectional many-to-one association</emphasis> is the most common kind of unidirectional association."
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:70
+#, 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:71 association_mapping.xml:187
+#, 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:76 association_mapping.xml:147 association_mapping.xml:212
 #, no-c-format
 msgid "One-to-one"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:78
 #, no-c-format
 msgid "A <emphasis>unidirectional one-to-one association on a foreign key</emphasis> is almost identical. The only difference is the column unique constraint."
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:83
+#, 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:84 association_mapping.xml:220
+#, 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:86
 #, 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 ""
 
+#. Tag: programlisting
+#: association_mapping.xml:92
+#, 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:93 association_mapping.xml:228
+#, 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:98 association_mapping.xml:120
 #, no-c-format
 msgid "One-to-many"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:100
 #, 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 ""
 
+#. Tag: programlisting
+#: association_mapping.xml:105
+#, 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:106
+#, 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:108
 #, no-c-format
 msgid "You should instead use a join table for this kind of association."
 msgstr ""
 
 #. Tag: title
+#: association_mapping.xml:117
 #, no-c-format
 msgid "Unidirectional associations with join tables"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:122
 #, no-c-format
 msgid "A <emphasis>unidirectional one-to-many association on a join table</emphasis> is the preferred option. Specifying <literal>unique=\"true\"</literal>, changes the multiplicity from many-to-many to one-to-many."
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:128
+#, 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:129
+#, 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:136
 #, 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 ""
 
+#. Tag: programlisting
+#: association_mapping.xml:141
+#, 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:142
+#, 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:149
 #, no-c-format
 msgid "A <emphasis>unidirectional one-to-one association on a join table</emphasis> is possible, but extremely unusual."
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:154
+#, 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:155 association_mapping.xml:260
+#, 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:160 association_mapping.xml:265
 #, no-c-format
 msgid "Many-to-many"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:162
 #, no-c-format
 msgid "Finally, here is an example of a <emphasis>unidirectional many-to-many association</emphasis>."
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:166
+#, 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:167 association_mapping.xml:273
+#, 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:174
 #, no-c-format
 msgid "Bidirectional associations"
 msgstr ""
 
 #. Tag: title
+#: association_mapping.xml:177 association_mapping.xml:238
 #, no-c-format
 msgid "one-to-many / many-to-one"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:179
 #, 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 ""
 
+#. Tag: programlisting
+#: association_mapping.xml:185
+#, 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:189
 #, 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 maintain the index of each element, making the other side virtually inverse by setting <literal>update=\"false\"</literal> and <literal>insert=\"false\"</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:197
+#, 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:199
 #, 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>&lt;key&gt;</literal> element of the collection mapping. Do not only declare <literal>not-null=\"true\"</literal> on a possible nested <literal>&lt;column&gt;</literal> element, but on the <literal>&lt;key&gt;</literal> element."
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:214
 #, no-c-format
 msgid "A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> is common:"
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:219
+#, 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:222
 #, no-c-format
 msgid "A <emphasis>bidirectional one-to-one association on a primary key</emphasis> uses the special id generator:"
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:227
+#, 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 ""
+
 #. Tag: title
+#: association_mapping.xml:235
 #, no-c-format
 msgid "Bidirectional associations with join tables"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:240
 #, 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 ""
 
+#. Tag: programlisting
+#: association_mapping.xml:246
+#, 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:247
+#, 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:252
 #, no-c-format
 msgid "one to one"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:254
 #, no-c-format
 msgid "A <emphasis>bidirectional one-to-one association on a join table</emphasis> is possible, but extremely unusual."
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:259
+#, 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:267
 #, no-c-format
 msgid "Here is an example of a <emphasis>bidirectional many-to-many association</emphasis>."
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:271
+#, 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:280
 #, no-c-format
 msgid "More complex association mappings"
 msgstr ""
 
 #. Tag: para
+#: association_mapping.xml:282
 #, no-c-format
 msgid "More complex association joins are <emphasis>extremely</emphasis> rare. Hibernate handles more complex situations by using SQL fragments embedded in the mapping document. For example, if a table with historical account information data defines <literal>accountNumber</literal>, <literal>effectiveEndDate</literal> and <literal>effectiveStartDate</literal>columns, it would be mapped as follows:"
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:291
+#, 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:293
 #, 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 ""
 
+#. Tag: programlisting
+#: association_mapping.xml:298
+#, 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:300
 #, 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 employment data. An association to the employee's <emphasis>most recent</emphasis> employer, the one with the most recent <literal>startDate</literal>, could be mapped in the following way:"
 msgstr ""
 
+#. Tag: programlisting
+#: association_mapping.xml:308
+#, 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:310
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/basic_mapping.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/basic_mapping.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/basic_mapping.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,1924 +1,3345 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
-"PO-Revision-Date: 2010-01-08T04:07:18\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:38+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: basic_mapping.xml:31
 #, no-c-format
 msgid "Basic O/R Mapping"
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:34
 #, no-c-format
 msgid "Mapping declaration"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:36
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:43
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:49
 #, no-c-format
 msgid "Here is an example mapping:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.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 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:55
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:66
 #, no-c-format
 msgid "Doctype"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:68
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:78
 #, no-c-format
 msgid "EntityResolver"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:79
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:87
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:96
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:105
 #, no-c-format
 msgid "The following is an example of utilizing user namespacing:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:108
+#, no-c-format
+msgid "<xi:include parse=\"text\" href=\"../extras/namespacing.xml_sample\" xmlns:xi=\"http://www.w3.org/2001/XInclude\" />"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:110
 #, no-c-format
-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\" />)."
+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 ""
 
 #. Tag: title
+#: basic_mapping.xml:118
 #, no-c-format
 msgid "Hibernate-mapping"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:120
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:141
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:144
 #, no-c-format
 msgid "<literal>schema</literal> (optional): the name of a database schema."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:149
 #, no-c-format
 msgid "<literal>catalog</literal> (optional): the name of a database catalog."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:154
 #, no-c-format
 msgid "<literal>default-cascade</literal> (optional - defaults to <literal>none</literal>): a default cascade style."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:160
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:167
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:174
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:181
 #, no-c-format
 msgid "<literal>package</literal> (optional): specifies a package prefix to use for unqualified class names in the mapping document."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:189
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:195
 #, no-c-format
 msgid "The <literal>hibernate-mapping</literal> element allows you to nest several persistent <literal>&lt;class&gt;</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 ""
 
 #. Tag: title
+#: basic_mapping.xml:208
 #, no-c-format
 msgid "Class"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:210
 #, no-c-format
 msgid "You can declare a persistent class using the <literal>class</literal> element. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:238
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:241
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:248
 #, no-c-format
 msgid "<literal>table</literal> (optional - defaults to the unqualified class name): the name of its database table."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:254
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:261
 #, no-c-format
 msgid "<literal>mutable</literal> (optional - defaults to <literal>true</literal>): specifies that instances of the class are (not) mutable."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:267 basic_mapping.xml:2230
 #, no-c-format
 msgid "<literal>schema</literal> (optional): overrides the schema name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:273 basic_mapping.xml:2236
 #, no-c-format
 msgid "<literal>catalog</literal> (optional): overrides the catalog name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:279
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:285
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:292
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:299
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:309
 #, no-c-format
 msgid "<literal>polymorphism</literal> (optional - defaults to <literal>implicit</literal>): determines whether implicit or explicit query polymorphism is used."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:315
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:321
 #, no-c-format
 msgid "<literal>persister</literal> (optional): specifies a custom <literal>ClassPersister</literal>."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:326
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:332
 #, no-c-format
 msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>version</literal>): determines the optimistic locking strategy."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:338
 #, no-c-format
 msgid "<literal>lazy</literal> (optional): lazy fetching can be disabled by setting <literal>lazy=\"false\"</literal>."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:344
 #, 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."
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:354
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:360
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:367
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:374
 #, no-c-format
 msgid "<literal>abstract</literal> (optional): is used to mark abstract superclasses in <literal>&lt;union-subclass&gt;</literal> hierarchies."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:382
 #, 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>&lt;subclass&gt;</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 ""
 
 #. Tag: para
+#: basic_mapping.xml:389
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:394
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:401
 #, 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>&lt;class&gt;</literal> declaration as a <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</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 ""
 
 #. Tag: para
+#: basic_mapping.xml:413
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:424
 #, 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>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</literal> elements. Although these settings can increase performance in some cases, they can actually decrease performance in others."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:432
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:438
 #, no-c-format
 msgid "If you enable <literal>dynamic-update</literal>, you will have a choice of optimistic locking strategies:"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:444
 #, no-c-format
 msgid "<literal>version</literal>: check the version/timestamp columns"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:449
 #, no-c-format
 msgid "<literal>all</literal>: check all columns"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:454
 #, no-c-format
 msgid "<literal>dirty</literal>: check the changed columns, allowing some concurrent updates"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:459
 #, no-c-format
 msgid "<literal>none</literal>: do not use optimistic locking"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:464
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:471
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:479
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:481
 #, 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>&lt;subselect&gt;</literal> is available both as an attribute and a nested mapping element."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:491
 #, no-c-format
-msgid "id"
+msgid "<title>id</title>"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:493
 #, 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>&lt;id&gt;</literal> element defines the mapping from that property to the primary key column."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:508
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:511
 #, no-c-format
 msgid "<literal>name</literal> (optional): the name of the identifier property."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:516 basic_mapping.xml:1350
 #, no-c-format
 msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:521
 #, no-c-format
 msgid "<literal>column</literal> (optional - defaults to the property name): the name of the primary key column."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:527
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:535
 #, no-c-format
 msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate should use for accessing the property value."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:543
 #, no-c-format
 msgid "If the <literal>name</literal> attribute is missing, it is assumed that the class has no identifier property."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:548
 #, no-c-format
 msgid "The <literal>unsaved-value</literal> attribute is almost never needed in Hibernate3."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:552
 #, no-c-format
 msgid "There is an alternative <literal>&lt;composite-id&gt;</literal> declaration that allows access to legacy data with composite keys. Its use is strongly discouraged for anything else."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:558
 #, no-c-format
 msgid "Generator"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:560
 #, no-c-format
 msgid "The optional <literal>&lt;generator&gt;</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>&lt;param&gt;</literal> element."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:567
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:569
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:577
 #, no-c-format
-msgid "<literal>increment</literal>"
+msgid "increment"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:579
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:588
 #, no-c-format
-msgid "<literal>identity</literal>"
+msgid "identity"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:590
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:598
 #, no-c-format
-msgid "<literal>sequence</literal>"
+msgid "sequence"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:600
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:608
 #, no-c-format
-msgid "<literal>hilo</literal>"
+msgid "hilo"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:610
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:620
 #, no-c-format
-msgid "<literal>seqhilo</literal>"
+msgid "seqhilo"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:622
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:630
 #, no-c-format
-msgid "<literal>uuid</literal>"
+msgid "uuid"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:632
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:640
 #, no-c-format
-msgid "<literal>guid</literal>"
+msgid "guid"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:642
 #, no-c-format
 msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:648
 #, no-c-format
-msgid "<literal>native</literal>"
+msgid "native"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:650
 #, no-c-format
 msgid "selects <literal>identity</literal>, <literal>sequence</literal> or <literal>hilo</literal> depending upon the capabilities of the underlying database."
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:658
 #, no-c-format
-msgid "<literal>assigned</literal>"
+msgid "assigned"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:660
 #, 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>&lt;generator&gt;</literal> element is specified."
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:668
 #, no-c-format
-msgid "<literal>select</literal>"
+msgid "select"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:670
 #, 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: term
+#. Tag: literal
+#: basic_mapping.xml:677
 #, no-c-format
-msgid "<literal>foreign</literal>"
+msgid "foreign"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:679
 #, no-c-format
 msgid "uses the identifier of another associated object. It is usually used in conjunction with a <literal>&lt;one-to-one&gt;</literal> primary key association."
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:686
 #, no-c-format
-msgid "<literal>sequence-identity</literal>"
+msgid "sequence-identity"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:688
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:703
 #, no-c-format
 msgid "Hi/lo algorithm"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:704
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:711
+#, 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 ""
+
+#. Tag: programlisting
+#: basic_mapping.xml:713
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:715
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:724
 #, no-c-format
 msgid "UUID algorithm"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:725
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:734
 #, no-c-format
 msgid "Identity columns and sequences"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:735
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:743
+#, 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 ""
+
+#. Tag: programlisting
+#: basic_mapping.xml:745
+#, no-c-format
+msgid ""
+      "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0\">\n"
+      "        <generator class=\"identity\"/>\n"
+      "</id>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:747
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:755
 #, no-c-format
 msgid "Assigned identifiers"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:756
 #, 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>&lt;generator&gt;</literal> element."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:765
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:775
 #, no-c-format
 msgid "Primary keys assigned by triggers"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:776
 #, no-c-format
 msgid "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:780
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:782
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:794
 #, no-c-format
 msgid "Enhanced identifier generators"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:796
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:804
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:818
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:824
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:831
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:838
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:845
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:852
 #, no-c-format
-msgid "<literal>optimizer</literal> (optional - defaults to <literal>none</literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgid "<literal>optimizer</literal> (optional - defaults to <literal>none</literal>): See"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:858
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:868
 #, no-c-format
 msgid "<literal>table_name</literal> (optional - defaults to <literal>hibernate_sequences</literal>): the name of the table to be used."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:874
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:880
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:887
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:894
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:900
 #, no-c-format
 msgid "<literal>initial_value</literal> (optional - defaults to <literal>1</literal>): The initial value to be retrieved from the table."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:906
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:912
 #, no-c-format
-msgid "<literal>optimizer</literal> (optional - defaults to <literal></literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgid "<literal>optimizer</literal> (optional - defaults to <literal></literal>): See"
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:921
 #, no-c-format
 msgid "Identifier generator optimization"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:922
 #, 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."
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:930
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:936
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:945
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:958
 #, no-c-format
 msgid "composite-id"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:960
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:962
 #, no-c-format
 msgid "A table with a composite key can be mapped with multiple properties of the class as identifier properties. The <literal>&lt;composite-id&gt;</literal> element accepts <literal>&lt;key-property&gt;</literal> property mappings and <literal>&lt;key-many-to-one&gt;</literal> mappings as child elements."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:969
+#, no-c-format
+msgid ""
+      "<![CDATA[<composite-id>\n"
+      "        <key-property name=\"medicareNumber\"/>\n"
+      "        <key-property name=\"dependent\"/>\n"
+      "</composite-id>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:971
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:977
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:986
 #, 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>&lt;composite-id&gt;</literal> element are duplicated on both the persistent class and a separate identifier class."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:992
+#, 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:994
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1003
 #, no-c-format
 msgid "The following attributes are used to specify a mapped composite identifier:"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1009
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1017
 #, no-c-format
 msgid "<literal>class</literal> (optional - but required for a mapped composite identifier): the class used as a composite identifier."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1024
 #, 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:"
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1032
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1038 basic_mapping.xml:1259 basic_mapping.xml:1371 basic_mapping.xml:1560 basic_mapping.xml:1734 basic_mapping.xml:1904 basic_mapping.xml:2483
 #, no-c-format
 msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses for accessing the property value."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1044
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1051
 #, no-c-format
 msgid "The third approach, an <emphasis>identifier component</emphasis>, is recommended for almost all applications."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:1059
 #, no-c-format
 msgid "Discriminator"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1061
 #, no-c-format
 msgid "The <literal>&lt;discriminator&gt;</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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1079
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1082
 #, no-c-format
 msgid "<literal>column</literal> (optional - defaults to <literal>class</literal>): the name of the discriminator column."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1088
 #, no-c-format
 msgid "<literal>type</literal> (optional - defaults to <literal>string</literal>): a name that indicates the Hibernate type"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1094
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1101
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1109
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1117
 #, no-c-format
 msgid "Actual values of the discriminator column are specified by the <literal>discriminator-value</literal> attribute of the <literal>&lt;class&gt;</literal> and <literal>&lt;subclass&gt;</literal> elements."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1123
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1129
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1134
+#, 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 ""
+
 #. Tag: title
+#: basic_mapping.xml:1139
 #, no-c-format
 msgid "Version (optional)"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1141
 #, no-c-format
 msgid "The <literal>&lt;version&gt;</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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1157
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1160
 #, no-c-format
 msgid "<literal>column</literal> (optional - defaults to the property name): the name of the column holding the version number."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1166
 #, no-c-format
 msgid "<literal>name</literal>: the name of a property of the persistent class."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1171
 #, no-c-format
 msgid "<literal>type</literal> (optional - defaults to <literal>integer</literal>): the type of the version number."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1177
 #, no-c-format
 msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses to access the property value."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1183
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1192
 #, 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\" />)."
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1199
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1209
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1214
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:1225
 #, no-c-format
 msgid "Timestamp (optional)"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1227
 #, no-c-format
 msgid "The optional <literal>&lt;timestamp&gt;</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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1243
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1246
 #, no-c-format
 msgid "<literal>column</literal> (optional - defaults to the property name): the name of a column holding the timestamp."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1252
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1265
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1274
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1286
 #, 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\" />)."
+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 ""
 
 #. Tag: title
+#: basic_mapping.xml:1297 basic_mapping.xml:2889
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1298
 #, no-c-format
 msgid "<literal>&lt;Timestamp&gt;</literal> is equivalent to <literal>&lt;version type=\"timestamp\"&gt;</literal>. And <literal>&lt;timestamp source=\"db\"&gt;</literal> is equivalent to <literal>&lt;version type=\"dbtimestamp\"&gt;</literal>"
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:1310
 #, no-c-format
 msgid "Property"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1312
 #, no-c-format
 msgid "The <literal>&lt;property&gt;</literal> element declares a persistent JavaBean style property of the class."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1334
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1337
 #, no-c-format
 msgid "<literal>name</literal>: the name of the property, with an initial lowercase letter."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1343
 #, 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>&lt;column&gt;</literal> element(s)."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1355
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1364
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1377
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1384
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1391
 #, no-c-format
 msgid "<literal>not-null</literal> (optional): enables the DDL generation of a nullability constraint for the columns."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1397 basic_mapping.xml:1580
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1405
 #, 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\" />)."
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1414
 #, no-c-format
 msgid "<emphasis>typename</emphasis> could be:"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1420
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1426
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1432
 #, no-c-format
 msgid "The name of a serializable Java class."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1437
 #, no-c-format
 msgid "The class name of a custom type: <literal>com.illflow.type.MyCustomType</literal> etc."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1443
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1453
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1462
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1469
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1471
 #, 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>&lt;formula&gt;</literal> mapping element if you do not want to use the attribute."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:1481
 #, no-c-format
 msgid "Many-to-one"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1483
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1511
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1514 basic_mapping.xml:1695 basic_mapping.xml:1881
 #, no-c-format
 msgid "<literal>name</literal>: the name of the property."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1519 basic_mapping.xml:2310
 #, no-c-format
 msgid "<literal>column</literal> (optional): the name of the foreign key column. This can also be specified by nested <literal>&lt;column&gt;</literal> element(s)."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1526 basic_mapping.xml:1700
 #, no-c-format
 msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the name of the associated class."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1532 basic_mapping.xml:1706
 #, no-c-format
 msgid "<literal>cascade</literal> (optional): specifies which operations should be cascaded from the parent object to the associated object."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1538 basic_mapping.xml:1721
 #, no-c-format
 msgid "<literal>fetch</literal> (optional - defaults to <literal>select</literal>): chooses between outer-join fetching or sequential select fetching."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1544
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1553
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1566
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1574
 #, no-c-format
 msgid "<literal>not-null</literal> (optional): enables the DDL generation of a nullability constraint for the foreign key columns."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1588
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1598
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1605 basic_mapping.xml:1759
 #, no-c-format
 msgid "<literal>entity-name</literal> (optional): the entity name of the associated class."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1610
 #, no-c-format
 msgid "<literal>formula</literal> (optional): an SQL expression that defines the value for a <emphasis>computed</emphasis> foreign key."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1618
 #, 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."
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1631
 #, no-c-format
 msgid "Here is an example of a typical <literal>many-to-one</literal> declaration:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1635
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:1637
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1646
+#, no-c-format
+msgid "<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" column=\"SERIAL_NUMBER\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:1648
 #, no-c-format
 msgid "Then the mapping for <literal>OrderItem</literal> might use:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1652
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" column=\"PRODUCT_SERIAL_NUMBER\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:1654
 #, no-c-format
 msgid "This is not encouraged, however."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1658
 #, 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>&lt;properties&gt;</literal> element."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1663
 #, 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:1667
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column=\"OWNER_SSN\"/>]]>"
+msgstr ""
+
 #. Tag: title
+#: basic_mapping.xml:1672
 #, no-c-format
 msgid "One-to-one"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1674
 #, no-c-format
 msgid "A one-to-one association to another persistent class is declared using a <literal>one-to-one</literal> element."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1692
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1712
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1727
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1740
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1748
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1766
 #, no-c-format
 msgid "There are two varieties of one-to-one associations:"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1770
 #, no-c-format
 msgid "primary key associations"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1773
 #, no-c-format
 msgid "unique foreign key associations"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1778
 #, 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:1785
 #, no-c-format
 msgid "For a primary key association, add the following mappings to <literal>Employee</literal> and <literal>Person</literal> respectively:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1790
+#, no-c-format
+msgid "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: basic_mapping.xml:1791
+#, no-c-format
+msgid "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:1793
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1799
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1801
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1807
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1812
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" unique=\"true\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:1814
 #, no-c-format
 msgid "This association can be made bidirectional by adding the following to the <literal>Person</literal> mapping:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1819
+#, no-c-format
+msgid "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref=\"person\"/>]]>"
+msgstr ""
+
 #. Tag: title
+#: basic_mapping.xml:1824
 #, no-c-format
 msgid "Natural-id"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1826
+#, no-c-format
+msgid ""
+      "<![CDATA[<natural-id mutable=\"true|false\"/>\n"
+      "        <property ... />\n"
+      "        <many-to-one ... />\n"
+      "        ......\n"
+      "</natural-id>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:1828
 #, 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>&lt;natural-id&gt;</literal> element. Hibernate will generate the necessary unique key and nullability constraints and, as a result, your mapping will be more self-documenting."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1837
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1842
 #, no-c-format
 msgid "This mapping is not intended for use with entities that have natural primary keys."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1848
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:1858
 #, no-c-format
 msgid "Component and dynamic-component"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1860
 #, no-c-format
 msgid "The <literal>&lt;component&gt;</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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1878
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1886
 #, no-c-format
 msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the name of the component (child) class."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1892 basic_mapping.xml:1981
 #, no-c-format
 msgid "<literal>insert</literal>: do the mapped columns appear in SQL <literal>INSERTs</literal>?"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1898 basic_mapping.xml:1987
 #, no-c-format
 msgid "<literal>update</literal>: do the mapped columns appear in SQL <literal>UPDATEs</literal>?"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1910
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1917
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1925 basic_mapping.xml:2001
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:1934
 #, no-c-format
 msgid "The child <literal>&lt;property&gt;</literal> tags map properties of the child class to table columns."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1939
 #, no-c-format
 msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1945
 #, no-c-format
-msgid "The <literal>&lt;dynamic-component&gt;</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."
+msgid "The <literal>&lt;dynamic-component&gt;</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 ""
 
 #. Tag: title
+#: basic_mapping.xml:1954
 #, no-c-format
 msgid "Properties"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1956
 #, no-c-format
 msgid "The <literal>&lt;properties&gt;</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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:1972
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:1975
 #, no-c-format
 msgid "<literal>name</literal>: the logical name of the grouping. It is <emphasis>not</emphasis> an actual property name."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:1993
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2010
 #, no-c-format
 msgid "For example, if we have the following <literal>&lt;properties&gt;</literal> mapping:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2014
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2016
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2021
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2023
 #, no-c-format
 msgid "The use of this outside the context of mapping legacy data is not recommended."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2031
 #, no-c-format
 msgid "Subclass"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2033
 #, 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>&lt;subclass&gt;</literal> declaration is used. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2046
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2049 basic_mapping.xml:2107 basic_mapping.xml:2170
 #, no-c-format
 msgid "<literal>name</literal>: the fully qualified class name of the subclass."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2054
 #, no-c-format
 msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): a value that distinguishes individual subclasses."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2060
 #, no-c-format
 msgid "<literal>proxy</literal> (optional): specifies a class or interface used for lazy initializing proxies."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2066
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2074
 #, no-c-format
 msgid "Each subclass declares its own persistent properties and subclasses. <literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2082 basic_mapping.xml:2140 basic_mapping.xml:2198
 #, no-c-format
-msgid "For information about inheritance mappings see <xref linkend=\"inheritance\" />."
+msgid "For information about inheritance mappings see <xref linkend=\"inheritance\"/>."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2089
 #, no-c-format
 msgid "Joined-subclass"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2091
 #, 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>&lt;joined-subclass&gt;</literal> element. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2104
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2112 basic_mapping.xml:2175
 #, no-c-format
 msgid "<literal>table</literal>: the name of the subclass table."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2117 basic_mapping.xml:2180
 #, no-c-format
 msgid "<literal>proxy</literal> (optional): specifies a class or interface to use for lazy initializing proxies."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2123 basic_mapping.xml:2186
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2131
 #, 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>&lt;key&gt;</literal> element. The mapping at the start of the chapter would then be re-written as:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2138
+#, 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 ""
+
 #. Tag: title
+#: basic_mapping.xml:2147
 #, no-c-format
 msgid "Union-subclass"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2149
 #, 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>&lt;class&gt;</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>&lt;union-subclass&gt;</literal> mapping. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2167
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2194
 #, no-c-format
 msgid "No discriminator column or key column is required for this mapping strategy."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2205
 #, no-c-format
 msgid "Join"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2207
 #, no-c-format
 msgid "Using the <literal>&lt;join&gt;</literal> element, it is possible to map properties of one class to several tables that have a one-to-one relationship. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2221
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2225
 #, no-c-format
 msgid "<literal>table</literal>: the name of the joined table."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2242
 #, 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>&lt;join&gt;</literal> defined by a class or its superclasses. It will use an outer join for a <literal>&lt;join&gt;</literal> defined by a subclass. If set to <literal>select</literal> then Hibernate will use a sequential select for a <literal>&lt;join&gt;</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>&lt;join&gt;</literal> defined by the class and its superclasses."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2255
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2262
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2271
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2276
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2278
 #, 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:2288
 #, no-c-format
-msgid "Key"
+msgid "<title>Key</title>"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2290
 #, no-c-format
 msgid "The <literal>&lt;key&gt;</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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2306
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2317
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2324
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2331
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2338
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2345
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2353
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2361
 #, 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>&lt;key not-null=\"true\"&gt;</literal>."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2371
 #, no-c-format
 msgid "Column and formula elements"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2372
 #, no-c-format
 msgid "Mapping elements which accept a <literal>column</literal> attribute will alternatively accept a <literal>&lt;column&gt;</literal> subelement. Likewise, <literal>&lt;formula&gt;</literal> is an alternative to the <literal>formula</literal> attribute. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2378
+#, 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 ""
+
+#. Tag: programlisting
+#: basic_mapping.xml:2380
+#, no-c-format
+msgid "<![CDATA[<formula>SQL expression</formula>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:2382
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2388
+#, 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 ""
+
 #. Tag: title
+#: basic_mapping.xml:2393
 #, no-c-format
 msgid "Import"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2395
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2402
+#, no-c-format
+msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: basic_mapping.xml:2409
+#, no-c-format
+msgid ""
+      "<![CDATA[<import\n"
+      "        class=\"ClassName\"\n"
+      "        rename=\"ShortName\"\n"
+      "/>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:2412
 #, no-c-format
 msgid "<literal>class</literal>: the fully qualified class name of any Java class."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2417
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:2428
 #, no-c-format
-msgid "Any"
+msgid "<title>Any</title>"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2430
 #, no-c-format
 msgid "There is one more type of property mapping. The <literal>&lt;any&gt;</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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2440
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2447
+#, 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 ""
+
+#. Tag: programlisting
+#: basic_mapping.xml:2458
+#, 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:2461
 #, no-c-format
 msgid "<literal>name</literal>: the property name."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2466
 #, no-c-format
 msgid "<literal>id-type</literal>: the identifier type."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2471
 #, no-c-format
 msgid "<literal>meta-type</literal> (optional - defaults to <literal>string</literal>): any type that is allowed for a discriminator mapping."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2477
 #, no-c-format
 msgid "<literal>cascade</literal> (optional- defaults to <literal>none</literal>): the cascade style."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2489
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:2504
 #, no-c-format
 msgid "Hibernate types"
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2507
 #, no-c-format
 msgid "Entities and values"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2509
 #, no-c-format
 msgid "In relation to the persistence service, Java language-level objects are classified into two groups:"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2514
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2525
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2536
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2550
 #, no-c-format
 msgid "We will revisit both concepts throughout this reference guide."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2554
 #, 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>&lt;class&gt;</literal>, <literal>&lt;subclass&gt;</literal> and so on are used. For value types we use <literal>&lt;property&gt;</literal>, <literal>&lt;component&gt;</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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2567
 #, no-c-format
 msgid "With the exception of collections, all built-in Hibernate types support null semantics."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2574
 #, no-c-format
 msgid "Basic value types"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2576
 #, no-c-format
 msgid "The built-in <emphasis>basic mapping types</emphasis> can be roughly categorized into the following:"
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2581
 #, no-c-format
-msgid "<literal>integer, long, short, float, double, character, byte, boolean, yes_no, true_false</literal>"
+msgid "integer, long, short, float, double, character, byte, boolean, yes_no, true_false"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2584
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2593
 #, no-c-format
-msgid "<literal>string</literal>"
+msgid "string"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2595
 #, no-c-format
 msgid "A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>)."
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2602
 #, no-c-format
-msgid "<literal>date, time, timestamp</literal>"
+msgid "date, time, timestamp"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2604
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2612
 #, no-c-format
-msgid "<literal>calendar, calendar_date</literal>"
+msgid "calendar, calendar_date"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2614
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2622
 #, no-c-format
-msgid "<literal>big_decimal, big_integer</literal>"
+msgid "big_decimal, big_integer"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2624
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2632
 #, no-c-format
-msgid "<literal>locale, timezone, currency</literal>"
+msgid "locale, timezone, currency"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2634
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2646
 #, no-c-format
-msgid "<literal>class</literal>"
+msgid "class"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2648
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2656
 #, no-c-format
-msgid "<literal>binary</literal>"
+msgid "binary"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2658
 #, no-c-format
 msgid "Maps byte arrays to an appropriate SQL binary type."
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2664
 #, no-c-format
-msgid "<literal>text</literal>"
+msgid "text"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2666
 #, no-c-format
 msgid "Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</literal> type."
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2673
 #, no-c-format
-msgid "<literal>serializable</literal>"
+msgid "serializable"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2675
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2684
 #, no-c-format
-msgid "<literal>clob, blob</literal>"
+msgid "clob, blob"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2686
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: basic_mapping.xml:2696
 #, no-c-format
-msgid "<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary</literal>"
+msgid "imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2700
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2715
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2721
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:2730
 #, no-c-format
 msgid "Custom value types"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2732
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2743
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2751
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2753
 #, no-c-format
 msgid "Notice the use of <literal>&lt;column&gt;</literal> tags to map a property to multiple columns."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2758
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2764
 #, 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>&lt;type&gt;</literal> element in your mapping files."
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2772
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2774
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2779
 #, 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>&lt;typedef&gt;</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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2786
+#, no-c-format
+msgid ""
+      "<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" name=\"default_zero\">\n"
+      "    <param name=\"default\">0</param>\n"
+      "</typedef>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: basic_mapping.xml:2788
+#, no-c-format
+msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:2790
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2795
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:2811
 #, no-c-format
 msgid "Mapping a class more than once"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2812
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2820
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2822
 #, no-c-format
 msgid "Associations are now specified using <literal>entity-name</literal> instead of <literal>class</literal>."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2830
 #, no-c-format
 msgid "SQL quoted identifiers"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2831
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2838
+#, 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 ""
+
 #. Tag: title
+#: basic_mapping.xml:2844
 #, no-c-format
 msgid "Metadata alternatives"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2846
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:2851
 #, no-c-format
 msgid "Using XDoclet markup"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2853
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2860
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2862
 #, no-c-format
 msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2869
 #, no-c-format
 msgid "Using JDK 5.0 Annotations"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2871
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2882
 #, no-c-format
 msgid "This is an example of a POJO class annotated as an EJB entity bean:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2886
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2890
 #, 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 ""
 
 #. Tag: title
+#: basic_mapping.xml:2900
 #, no-c-format
 msgid "Generated properties"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2901
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2910
 #, 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."
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2917
 #, no-c-format
 msgid "<literal>never</literal> (the default): the given property value is not generated within the database."
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2921
 #, 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."
+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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2929
 #, no-c-format
 msgid "<literal>always</literal>: the property value is generated both on insert and on update."
 msgstr ""
 
 #. Tag: title
+#: basic_mapping.xml:2936
 #, no-c-format
 msgid "Auxiliary database objects"
 msgstr ""
 
 #. Tag: para
+#: basic_mapping.xml:2937
 #, 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 ""
 
 #. Tag: para
+#: basic_mapping.xml:2946
 #, no-c-format
 msgid "The first mode is to explicitly list the CREATE and DROP commands in the mapping file:"
 msgstr ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2950
+#, 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 ""
+
 #. Tag: para
+#: basic_mapping.xml:2951
 #, 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 ""
 
+#. Tag: programlisting
+#: basic_mapping.xml:2956
+#, no-c-format
+msgid ""
+      "<![CDATA[<hibernate-mapping>\n"
+      "    ...\n"
+      "    <database-object>\n"
+      "        <definition class=\"MyTriggerDefinition\"/>\n"
+      "    </database-object>\n"
+      "</hibernate-mapping>]]>"
+msgstr ""
+
 #. Tag: para
+#: basic_mapping.xml:2957
 #, 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:2961
+#, 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 ""
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/batch.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/batch.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/batch.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,189 +1,379 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
-"PO-Revision-Date: 2010-01-08T04:07:18\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: batch.xml:31
 #, no-c-format
 msgid "Batch processing"
 msgstr ""
 
 #. Tag: para
+#: batch.xml:33
 #, no-c-format
 msgid "A naive approach to inserting 100,000 rows in the database using Hibernate might look like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: batch.xml:38
+#, 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 ""
+
 #. Tag: para
+#: batch.xml:40
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:47
 #, 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 ""
 
+#. Tag: programlisting
+#: batch.xml:54
+#, no-c-format
+msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+msgstr ""
+
 #. Tag: para
+#: batch.xml:56
 #, no-c-format
 msgid "Hibernate disables insert batching at the JDBC level transparently if you use an <literal>identity</literal> identifier generator."
 msgstr ""
 
 #. Tag: para
+#: batch.xml:61
 #, 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:66
+#, no-c-format
+msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+msgstr ""
+
 #. Tag: para
+#: batch.xml:68
 #, 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 ""
 
 #. Tag: title
+#: batch.xml:74
 #, no-c-format
 msgid "Batch inserts"
 msgstr ""
 
 #. Tag: para
+#: batch.xml:76
 #, 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 ""
 
+#. Tag: programlisting
+#: batch.xml:82
+#, 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 ""
+
 #. Tag: title
+#: batch.xml:87
 #, no-c-format
 msgid "Batch updates"
 msgstr ""
 
 #. Tag: para
+#: batch.xml:89
 #, 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 ""
 
+#. Tag: programlisting
+#: batch.xml:95
+#, 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 ""
+
 #. Tag: title
+#: batch.xml:100
 #, no-c-format
 msgid "The StatelessSession interface"
 msgstr ""
 
 #. Tag: para
+#: batch.xml:101
 #, 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 ""
 
+#. Tag: programlisting
+#: batch.xml:116
+#, 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 ""
+
 #. Tag: para
+#: batch.xml:118
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:124
 #, 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 ""
 
 #. Tag: title
+#: batch.xml:137
 #, no-c-format
 msgid "DML-style operations"
 msgstr ""
 
 #. Tag: para
+#: batch.xml:139
 #, 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\" />)."
+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 ""
 
 #. Tag: para
+#: batch.xml:148
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:153
 #, no-c-format
 msgid "Some points to note:"
 msgstr ""
 
 #. Tag: para
+#: batch.xml:159
 #, no-c-format
 msgid "In the from-clause, the FROM keyword is optional"
 msgstr ""
 
 #. Tag: para
+#: batch.xml:164
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:172
 #, 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."
+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 ""
 
 #. Tag: para
+#: batch.xml:179
 #, no-c-format
 msgid "The where-clause is also optional."
 msgstr ""
 
 #. Tag: para
+#: batch.xml:185
 #, 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 ""
 
+#. Tag: programlisting
+#: batch.xml:191
+#, 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 ""
+
 #. Tag: para
+#: batch.xml:193
 #, no-c-format
-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."
+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 ""
 
+#. Tag: programlisting
+#: batch.xml:203
+#, 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 ""
+
 #. Tag: para
+#: batch.xml:205
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:210
 #, no-c-format
 msgid "To execute an HQL <literal>DELETE</literal>, use the same <literal>Query.executeUpdate()</literal> method:"
 msgstr ""
 
+#. Tag: programlisting
+#: batch.xml:215
+#, 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 ""
+
 #. Tag: para
+#: batch.xml:217
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:228
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:236
 #, no-c-format
 msgid "Only the INSERT INTO ... SELECT ... form is supported; not the INSERT INTO ... VALUES ... form."
 msgstr ""
 
 #. Tag: para
+#: batch.xml:239
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:249
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:261
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:276
 #, 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 ""
 
 #. Tag: para
+#: batch.xml:286
 #, no-c-format
 msgid "The following is an example of an HQL <literal>INSERT</literal> statement execution:"
 msgstr ""
 
+#. Tag: programlisting
+#: batch.xml:290
+#, 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/pot/content/best_practices.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/best_practices.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/best_practices.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,208 +1,249 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
-"PO-Revision-Date: 2010-01-08T04:07:18\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: best_practices.xml:30
 #, no-c-format
 msgid "Best Practices"
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:34
 #, no-c-format
 msgid "Write fine-grained classes and map them using <literal>&lt;component&gt;</literal>:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:36
 #, no-c-format
 msgid "Use an <literal>Address</literal> class to encapsulate <literal>street</literal>, <literal>suburb</literal>, <literal>state</literal>, <literal>postcode</literal>. This encourages code reuse and simplifies refactoring."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:44
 #, no-c-format
 msgid "Declare identifier properties on persistent classes:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:46
 #, 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 ""
 
 #. Tag: term
+#: best_practices.xml:54
 #, no-c-format
 msgid "Identify natural keys:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:56
 #, no-c-format
 msgid "Identify natural keys for all entities, and map them using <literal>&lt;natural-id&gt;</literal>. Implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the properties that make up the natural key."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:64
 #, no-c-format
 msgid "Place each class mapping in its own file:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:66
 #, 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 ""
 
 #. Tag: term
+#: best_practices.xml:74
 #, no-c-format
 msgid "Load mappings as resources:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:76
 #, no-c-format
 msgid "Deploy the mappings along with the classes they map."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:82
 #, no-c-format
 msgid "Consider externalizing query strings:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:84
 #, 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 ""
 
 #. Tag: term
+#: best_practices.xml:92
 #, no-c-format
 msgid "Use bind variables."
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:94
 #, 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 ""
 
 #. Tag: term
+#: best_practices.xml:102
 #, no-c-format
 msgid "Do not manage your own JDBC connections:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:104
 #, 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 ""
 
 #. Tag: term
+#: best_practices.xml:112
 #, no-c-format
 msgid "Consider using a custom type:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:114
 #, no-c-format
 msgid "Suppose you have a Java type from a library that needs to be persisted but does not provide the accessors needed to map it as a component. You should consider implementing <literal>org.hibernate.UserType</literal>. This approach frees the application code from implementing transformations to/from a Hibernate type."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:123
 #, no-c-format
 msgid "Use hand-coded JDBC in bottlenecks:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:125
 #, no-c-format
 msgid "In performance-critical areas of the system, some kinds of operations might benefit from direct JDBC. Do not assume, however, that JDBC is necessarily faster. Please wait until you <emphasis>know</emphasis> something is a bottleneck. If you need to use direct JDBC, you can open a Hibernate <literal>Session</literal> and usingfile:///usr/share/doc/HTML/en-US/index.html that JDBC connection. This way you can still use the same transaction strategy and underlying connection provider."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:135
 #, no-c-format
 msgid "Understand <literal>Session</literal> flushing:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:137
 #, no-c-format
 msgid "Sometimes the Session synchronizes its persistent state with the database. Performance will be affected if this process occurs too often. You can sometimes minimize unnecessary flushing by disabling automatic flushing, or even by changing the order of queries and other operations within a particular transaction."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:146
 #, no-c-format
 msgid "In a three tiered architecture, consider using detached objects:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:148
 #, no-c-format
 msgid "When using a servlet/session bean architecture, you can pass persistent objects loaded in the session bean to and from the servlet/JSP layer. Use a new session to service each request. Use <literal>Session.merge()</literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the database."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:157
 #, no-c-format
 msgid "In a two tiered architecture, consider using long persistence contexts:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:159
 #, no-c-format
 msgid "Database Transactions have to be as short as possible for best scalability. However, it is often necessary to implement long running <emphasis>application transactions</emphasis>, a single unit-of-work from the point of view of a user. An application transaction might span several client request/response cycles. It is common to use detached objects to implement application transactions. An appropriate alternative in a two tiered architecture, is to maintain a single open persistence contact session for the whole life cycle of the application transaction. Then simply disconnect from the JDBC connection at the end of each request and reconnect at the beginning of the subsequent request. Never share a single session across more than one application transaction or you will be working with stale data."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:173
 #, no-c-format
 msgid "Do not treat exceptions as recoverable:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:175
 #, no-c-format
 msgid "This is more of a necessary practice than a \"best\" practice. When an exception occurs, roll back the <literal>Transaction</literal> and close the <literal>Session</literal>. If you do not do this, Hibernate cannot guarantee that in-memory state accurately represents the persistent state. For example, do not use <literal>Session.load()</literal> to determine if an instance with the given identifier exists on the database; use <literal>Session.get()</literal> or a query instead."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:185
 #, no-c-format
 msgid "Prefer lazy fetching for associations:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:187
 #, no-c-format
 msgid "Use eager fetching sparingly. Use proxies and lazy collections for most associations to classes that are not likely to be completely held in the second-level cache. For associations to cached classes, where there is an a extremely high probability of a cache hit, explicitly disable eager fetching using <literal>lazy=\"false\"</literal>. When join fetching is appropriate to a particular use case, use a query with a <literal>left join fetch</literal>."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:197
 #, 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 ""
 
 #. Tag: para
+#: best_practices.xml:202
 #, no-c-format
 msgid "Hibernate frees the developer from writing tedious <emphasis>Data Transfer Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual purposes: first, they work around the problem that entity beans are not serializable; second, they implicitly define an assembly phase where all data to be used by the view is fetched and marshalled into the DTOs before returning control to the presentation tier. Hibernate eliminates the first purpose. Unless you are prepared to hold the persistence context (the session) open across the view rendering process, you will still need an assembly phase. Think of your business methods as having a strict contract with the presentation tier about what data is available in the detached objects. This is not a limitation of Hibernate. It is a fundamental requirement of safe transactional data access."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:216
 #, no-c-format
 msgid "Consider abstracting your business logic from Hibernate:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:218
 #, no-c-format
 msgid "Hide Hibernate data-access code behind an interface. Combine the <emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> patterns. You can even have some classes persisted by handcoded JDBC associated to Hibernate via a <literal>UserType</literal>. This advice is, however, intended for \"sufficiently large\" applications. It is not appropriate for an application with five tables."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:228
 #, no-c-format
 msgid "Do not use exotic association mappings:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:230
 #, no-c-format
 msgid "Practical test cases for real many-to-many associations are rare. Most of the time you need additional information stored in the \"link table\". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, most associations are one-to-many and many-to-one. For this reason, you should proceed cautiously when using any other association style."
 msgstr ""
 
 #. Tag: term
+#: best_practices.xml:240
 #, no-c-format
 msgid "Prefer bidirectional associations:"
 msgstr ""
 
 #. Tag: para
+#: best_practices.xml:242
 #, no-c-format
 msgid "Unidirectional associations are more difficult to query. In a large application, almost all associations must be navigable in both directions in queries."
 msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/collection_mapping.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/collection_mapping.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/collection_mapping.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,623 +1,1210 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
-"PO-Revision-Date: 2010-01-08T04:07:18\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: collection_mapping.xml:31
 #, no-c-format
 msgid "Collection mapping"
 msgstr ""
 
 #. Tag: title
+#: collection_mapping.xml:34
 #, no-c-format
 msgid "Persistent collections"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:36
 #, no-c-format
 msgid "Hibernate requires that persistent collection-valued fields be declared as an interface type. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:41
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:43
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:52
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:62
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:64
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:71
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:82
 #, 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 ""
 
 #. Tag: title
+#: collection_mapping.xml:91
 #, no-c-format
 msgid "Collection mappings"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:94
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:101
 #, no-c-format
 msgid "The Hibernate mapping element used for mapping a collection depends upon the type of interface. For example, a <literal>&lt;set&gt;</literal> element is used for mapping properties of type <literal>Set</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:107
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:109
 #, no-c-format
 msgid "Apart from <literal>&lt;set&gt;</literal>, there is also <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal>, <literal>&lt;array&gt;</literal> and <literal>&lt;primitive-array&gt;</literal> mapping elements. The <literal>&lt;map&gt;</literal> element is representative:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:134
+#, 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:137
 #, no-c-format
 msgid "<literal>name</literal>: the collection property name"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:142
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:148
 #, no-c-format
 msgid "<literal>schema</literal> (optional): the name of a table schema to override the schema declared on the root element"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:154
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:163
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:169
 #, no-c-format
 msgid "<literal>cascade</literal> (optional - defaults to <literal>none</literal>): enables operations to cascade to child entities."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:175
 #, no-c-format
 msgid "<literal>sort</literal> (optional): specifies a sorted collection with <literal>natural</literal> sort order or a given comparator class."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:181
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:188
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:195
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:202
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:208
 #, no-c-format
 msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses for accessing the collection property value."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:214
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:222
 #, 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 ""
 
 #. Tag: title
+#: collection_mapping.xml:232
 #, no-c-format
 msgid "Collection foreign keys"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:234
 #, 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>&lt;key&gt;</literal> element."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:242
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:249
+#, no-c-format
+msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: collection_mapping.xml:251
 #, no-c-format
 msgid "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:255
+#, no-c-format
+msgid "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: collection_mapping.xml:257
 #, no-c-format
 msgid "See the previous chapter for a full definition of the <literal>&lt;key&gt;</literal> element."
 msgstr ""
 
 #. Tag: title
+#: collection_mapping.xml:265
 #, no-c-format
 msgid "Collection elements"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:267
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:276
 #, no-c-format
 msgid "The contained type is referred to as the <emphasis>collection element type</emphasis>. Collection elements are mapped by <literal>&lt;element&gt;</literal> or <literal>&lt;composite-element&gt;</literal>, or in the case of entity references, with <literal>&lt;one-to-many&gt;</literal> or <literal>&lt;many-to-many&gt;</literal>. The first two map elements with value semantics, the next two are used to map entity associations."
 msgstr ""
 
 #. Tag: title
+#: collection_mapping.xml:288
 #, no-c-format
 msgid "Indexed collections"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:290
 #, 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>&lt;map-key&gt;</literal>. It can be an entity reference mapped with <literal>&lt;map-key-many-to-many&gt;</literal>, or it can be a composite type mapped with <literal>&lt;composite-map-key&gt;</literal>. The index of an array or list is always of type <literal>integer</literal> and is mapped using the <literal>&lt;list-index&gt;</literal> element. The mapped column contains sequential integers that are numbered from zero by default."
 msgstr ""
 
-#. Tag: para
+#. Tag: section
+#: collection_mapping.xml:301
 #, no-c-format
-msgid "<literal>column_name</literal> (required): the name of the column holding the collection index values."
+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 ""
 
 #. Tag: para
+#: collection_mapping.xml:382
 #, 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 ""
-
-#. Tag: para
-#, no-c-format
-msgid "<literal>column</literal> (optional): the name of the column holding the collection index values."
-msgstr ""
-
-#. Tag: para
-#, no-c-format
-msgid "<literal>formula</literal> (optional): a SQL formula used to evaluate the key of the map."
-msgstr ""
-
-#. Tag: para
-#, no-c-format
-msgid "<literal>type</literal> (required): the type of the map keys."
-msgstr ""
-
-#. Tag: para
-#, no-c-format
-msgid "<literal>column</literal> (optional): the name of the foreign key column for the collection index values."
-msgstr ""
-
-#. Tag: para
-#, no-c-format
-msgid "<literal>formula</literal> (optional): a SQ formula used to evaluate the foreign key of the map key."
-msgstr ""
-
-#. Tag: para
-#, no-c-format
-msgid "<literal>class</literal> (required): the entity class used as the map key."
-msgstr ""
-
-#. 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>&lt;bag&gt;</emphasis>. A bag does not retain its order when it is retrieved from the database, but it can be optionally sorted or ordered."
 msgstr ""
 
 #. Tag: title
+#: collection_mapping.xml:392
 #, no-c-format
 msgid "Collections of values and many-to-many associations"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:394
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:401
 #, no-c-format
 msgid "For a collection of values use the <literal>&lt;element&gt;</literal> tag. For example:"
 msgstr ""
 
-#. Tag: para
+#. Tag: section
+#: collection_mapping.xml:403
 #, no-c-format
-msgid "<literal>column</literal> (optional): the name of the column holding the collection element values."
+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>&lt;many-to-many&gt;</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>&lt;many-to-many&gt;</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 i!
 s used. </para> </callout> </calloutlist> </programlistingco>"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:508
 #, no-c-format
-msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element."
+msgid "Here are some examples."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:511
 #, no-c-format
-msgid "<literal>type</literal> (required): the type of the collection element."
+msgid "A set of strings:"
 msgstr ""
 
-#. Tag: para
+#. Tag: programlisting
+#: collection_mapping.xml:515
 #, no-c-format
-msgid "A <emphasis>many-to-many association</emphasis> is specified using the <literal>&lt;many-to-many&gt;</literal> element."
+msgid ""
+      "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+      "    <key column=\"person_id\"/>\n"
+      "    <element column=\"person_name\" type=\"string\"/>\n"
+      "</set>]]>"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:517
 #, no-c-format
-msgid "<literal>column</literal> (optional): the name of the element foreign key column."
+msgid "A bag containing integers with an iteration order determined by the <literal>order-by</literal> attribute:"
 msgstr ""
 
-#. Tag: para
+#. Tag: programlisting
+#: collection_mapping.xml:522
 #, no-c-format
-msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element foreign key value."
+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 ""
 
 #. Tag: para
+#: collection_mapping.xml:524
 #, no-c-format
-msgid "<literal>class</literal> (required): the name of the associated class."
+msgid "An array of entities, in this case, a many-to-many association:"
 msgstr ""
 
-#. Tag: para
+#. Tag: programlisting
+#: collection_mapping.xml:528
 #, no-c-format
-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>&lt;many-to-many&gt;</literal> nested element."
+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 ""
 
 #. Tag: para
+#: collection_mapping.xml:530
 #, no-c-format
-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."
+msgid "A map from string indices to dates:"
 msgstr ""
 
-#. Tag: para
+#. Tag: programlisting
+#: collection_mapping.xml:534
 #, 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."
+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 ""
 
 #. Tag: para
+#: collection_mapping.xml:536
 #, no-c-format
-msgid "<literal>entity-name</literal> (optional): the entity name of the associated class, as an alternative to <literal>class</literal>."
+msgid "A list of components (this is discussed in the next chapter):"
 msgstr ""
 
-#. Tag: para
+#. Tag: programlisting
+#: collection_mapping.xml:540
 #, 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."
+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 ""
 
-#. Tag: para
+#. Tag: title
+#: collection_mapping.xml:545
 #, no-c-format
-msgid "Here are some examples."
+msgid "One-to-many associations"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:547
 #, no-c-format
-msgid "A set of strings:"
+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 ""
 
 #. Tag: para
+#: collection_mapping.xml:555
 #, no-c-format
-msgid "A bag containing integers with an iteration order determined by the <literal>order-by</literal> attribute:"
+msgid "An instance of the contained entity class cannot belong to more than one instance of the collection."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:561
 #, no-c-format
-msgid "An array of entities, in this case, a many-to-many association:"
+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:568
 #, no-c-format
-msgid "A map from string indices to dates:"
+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>&lt;one-to-many&gt;</literal> tag indicates that this is a one-to-many association."
 msgstr ""
 
-#. Tag: para
+#. Tag: programlisting
+#: collection_mapping.xml:581
 #, no-c-format
-msgid "A list of components (this is discussed in the next chapter):"
+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 ""
 
-#. Tag: title
-#, no-c-format
-msgid "One-to-many associations"
-msgstr ""
-
 #. Tag: para
+#: collection_mapping.xml:584
 #, 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:"
+msgid "<literal>class</literal> (required): the name of the associated class."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:589
 #, no-c-format
-msgid "An instance of the contained entity class cannot belong to more than one instance of the collection."
+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 ""
 
 #. Tag: para
+#: collection_mapping.xml:596
 #, no-c-format
-msgid "An instance of the contained entity class cannot appear at more than one value of the collection index."
+msgid "<literal>entity-name</literal> (optional): the entity name of the associated class, as an alternative to <literal>class</literal>."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:604
 #, 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>&lt;one-to-many&gt;</literal> tag indicates that this is a one-to-many association."
+msgid "The <literal>&lt;one-to-many&gt;</literal> element does not need to declare any columns. Nor is it necessary to specify the <literal>table</literal> name anywhere."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:611
 #, 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."
+msgid "If the foreign key column of a <literal>&lt;one-to-many&gt;</literal> association is declared <literal>NOT NULL</literal>, you must declare the <literal>&lt;key&gt;</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 ""
 
 #. Tag: para
+#: collection_mapping.xml:621
 #, no-c-format
-msgid "The <literal>&lt;one-to-many&gt;</literal> element does not need to declare any columns. Nor is it necessary to specify the <literal>table</literal> name anywhere."
+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 ""
 
-#. Tag: para
+#. Tag: programlisting
+#: collection_mapping.xml:627
 #, no-c-format
-msgid "If the foreign key column of a <literal>&lt;one-to-many&gt;</literal> association is declared <literal>NOT NULL</literal>, you must declare the <literal>&lt;key&gt;</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."
+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 ""
 
-#. 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 ""
-
 #. Tag: title
+#: collection_mapping.xml:633
 #, no-c-format
 msgid "Advanced collection mappings"
 msgstr ""
 
 #. Tag: title
+#: collection_mapping.xml:636
 #, no-c-format
 msgid "Sorted collections"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:638
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:643
+#, 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:645
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:651
 #, no-c-format
 msgid "Sorted collections actually behave like <literal>java.util.TreeSet</literal> or <literal>java.util.TreeMap</literal>."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:656
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:665
+#, 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 ""
+
 #. Tag: title
+#: collection_mapping.xml:668
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:669
 #, no-c-format
 msgid "The value of the <literal>order-by</literal> attribute is an SQL ordering, not an HQL ordering."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:675
 #, no-c-format
 msgid "Associations can even be sorted by arbitrary criteria at runtime using a collection <literal>filter()</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:680
+#, no-c-format
+msgid "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this.name\" ).list();]]>"
+msgstr ""
+
 #. Tag: title
+#: collection_mapping.xml:685
 #, no-c-format
 msgid "Bidirectional associations"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:687
 #, 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 ""
 
 #. Tag: term
+#: collection_mapping.xml:694
 #, no-c-format
 msgid "one-to-many"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:696
 #, no-c-format
 msgid "set or bag valued at one end and single-valued at the other"
 msgstr ""
 
 #. Tag: term
+#: collection_mapping.xml:702
 #, no-c-format
 msgid "many-to-many"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:704
 #, no-c-format
 msgid "set or bag valued at both ends"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:713
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:720
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:725
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:727
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:735
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:737
 #, no-c-format
 msgid "The non-inverse side is used to save the in-memory representation to the database."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:741
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:747
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:749
 #, 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 ""
 
 #. Tag: title
+#: collection_mapping.xml:757
 #, no-c-format
 msgid "Bidirectional associations with indexed collections"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:758
 #, no-c-format
 msgid "A bidirectional association where one end is represented as a <literal>&lt;list&gt;</literal> or <literal>&lt;map&gt;</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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:765
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:767
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:774
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:776
 #, 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? -->"
+msgid "Note that in this mapping, the collection-valued end of the association is responsible for updates to the foreign key."
 msgstr ""
 
 #. Tag: title
+#: collection_mapping.xml:784
 #, no-c-format
 msgid "Ternary associations"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:786
 #, 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 ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:791
+#, 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 ""
+
+#. Tag: programlisting
+#: collection_mapping.xml:793
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:795
 #, no-c-format
 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:800
 #, no-c-format
 msgid "A final alternative is to use composite elements, which will be discussed later."
 msgstr ""
 
-#. Tag: title
+#. Tag: literal
+#: collection_mapping.xml:807
 #, no-c-format
-msgid "<literal>Using an &lt;idbag&gt;</literal>"
+msgid "Using an &lt;idbag&gt;"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:809
 #, 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 ""
 
 #. Tag: para
+#: collection_mapping.xml:819
 #, no-c-format
 msgid "The <literal>&lt;idbag&gt;</literal> element lets you map a <literal>List</literal> (or <literal>Collection</literal>) with bag semantics. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:824
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:826
 #, no-c-format
 msgid "An <literal>&lt;idbag&gt;</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 ""
 
 #. Tag: para
+#: collection_mapping.xml:833
 #, no-c-format
 msgid "The update performance of an <literal>&lt;idbag&gt;</literal> supersedes a regular <literal>&lt;bag&gt;</literal>. Hibernate can locate individual rows efficiently and update or delete them individually, similar to a list, map or set."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:839
 #, no-c-format
 msgid "In the current implementation, the <literal>native</literal> identifier generation strategy is not supported for <literal>&lt;idbag&gt;</literal> collection identifiers."
 msgstr ""
 
 #. Tag: title
+#: collection_mapping.xml:863
 #, no-c-format
 msgid "Collection examples"
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:865
 #, no-c-format
 msgid "This section covers collection examples."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:869
 #, no-c-format
 msgid "The following class has a collection of <literal>Child</literal> instances:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:873
+#, 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:875
 #, no-c-format
 msgid "If each child has, at most, one parent, the most natural mapping is a one-to-many association:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:881
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:883
 #, no-c-format
 msgid "This maps to the following table definitions:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:887
+#, 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:889
 #, no-c-format
 msgid "If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-many association:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:894
+#, 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:896
 #, no-c-format
 msgid "Notice the <literal>NOT NULL</literal> constraint:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:900
+#, 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:902
 #, no-c-format
 msgid "Alternatively, if this association must be unidirectional you can declare the <literal>NOT NULL</literal> constraint on the <literal>&lt;key&gt;</literal> mapping:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:908
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:910
 #, no-c-format
 msgid "On the other hand, if a child has multiple parents, a many-to-many association is appropriate:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:915
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:917
 #, no-c-format
 msgid "Table definitions:"
 msgstr ""
 
+#. Tag: programlisting
+#: collection_mapping.xml:921
+#, 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 ""
+
 #. Tag: para
+#: collection_mapping.xml:923
 #, 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."
+msgid "For more examples and a complete explanation of a parent/child relationship mapping, see <xref linkend=\"example-parentchild\"/> for more information."
 msgstr ""
 
 #. Tag: para
+#: collection_mapping.xml:928
 #, no-c-format
 msgid "Even more complex association mappings are covered in the next chapter."
 msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/component_mapping.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/component_mapping.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/component_mapping.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,203 +1,481 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
-"PO-Revision-Date: 2010-01-08T04:07:18\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: component_mapping.xml:31
 #, no-c-format
 msgid "Component Mapping"
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:33
 #, no-c-format
 msgid "The notion of a <emphasis>component</emphasis> is re-used in several different contexts and purposes throughout Hibernate."
 msgstr ""
 
 #. Tag: title
+#: component_mapping.xml:39
 #, no-c-format
 msgid "Dependent objects"
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:41
 #, 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 ""
 
+#. Tag: programlisting
+#: component_mapping.xml:47
+#, 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 ""
+
+#. Tag: programlisting
+#: component_mapping.xml:49
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:51
 #, 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 ""
 
 #. Tag: para
+#: component_mapping.xml:58
 #, no-c-format
 msgid "Our Hibernate mapping would look like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: component_mapping.xml:62
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:64
 #, 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 ""
 
 #. Tag: para
+#: component_mapping.xml:72
 #, 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 ""
 
 #. Tag: para
+#: component_mapping.xml:80
 #, 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 ""
 
 #. Tag: para
+#: component_mapping.xml:87
 #, no-c-format
 msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
 msgstr ""
 
+#. Tag: programlisting
+#: component_mapping.xml:93
+#, 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:98
 #, no-c-format
 msgid "Collections of dependent objects"
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:100
 #, 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>&lt;element&gt;</literal> tag with a <literal>&lt;composite-element&gt;</literal> tag:"
 msgstr ""
 
+#. Tag: programlisting
+#: component_mapping.xml:107
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:110
 #, 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 ""
 
 #. Tag: para
+#: component_mapping.xml:117
 #, no-c-format
 msgid "Composite elements can contain components but not collections. If your composite element contains components, use the <literal>&lt;nested-composite-element&gt;</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 ""
 
 #. Tag: para
+#: component_mapping.xml:129
 #, no-c-format
 msgid "A composite element mapping does not support null-able properties if you are using a <literal>&lt;set&gt;</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>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal> or <literal>&lt;idbag&gt;</literal>."
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:140
 #, no-c-format
 msgid "A special case of a composite element is a composite element with a nested <literal>&lt;many-to-one&gt;</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 ""
 
+#. Tag: programlisting
+#: component_mapping.xml:150
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:152
 #, 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 ""
 
 #. Tag: para
+#: component_mapping.xml:160
 #, no-c-format
 msgid "Even ternary (or quaternary, etc) associations are possible:"
 msgstr ""
 
+#. Tag: programlisting
+#: component_mapping.xml:162
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:164
 #, 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:172
 #, no-c-format
 msgid "Components as Map indices"
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:174
 #, no-c-format
 msgid "The <literal>&lt;composite-map-key&gt;</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 ""
 
 #. Tag: title
+#: component_mapping.xml:183
 #, no-c-format
 msgid "Components as composite identifiers"
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:185
 #, 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:192
 #, no-c-format
 msgid "It must implement <literal>java.io.Serializable</literal>."
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:197
 #, 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 ""
 
 #. Tag: title
+#: component_mapping.xml:206
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:207
 #, no-c-format
 msgid "In Hibernate3, although the second requirement is not an absolutely hard requirement of Hibernate, it is recommended."
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:213
 #, no-c-format
 msgid "You cannot use an <literal>IdentifierGenerator</literal> to generate composite keys. Instead the application must assign its own identifiers."
 msgstr ""
 
 #. Tag: para
+#: component_mapping.xml:218
 #, no-c-format
 msgid "Use the <literal>&lt;composite-id&gt;</literal> tag, with nested <literal>&lt;key-property&gt;</literal> elements, in place of the usual <literal>&lt;id&gt;</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 ""
 
+#. Tag: programlisting
+#: component_mapping.xml:226
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:228
 #, 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 ""
 
+#. Tag: programlisting
+#: component_mapping.xml:234
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:237
 #, no-c-format
 msgid "The <literal>&lt;column&gt;</literal> tag is an alternative to the <literal>column</literal> attribute everywhere. Using the <literal>&lt;column&gt;</literal> tag just gives more declaration options, which are mostly useful when utilizing <literal>hbm2ddl</literal>."
 msgstr ""
 
 #. 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 ""
 
+#. 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 ""
 
+#. 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
 #, no-c-format
 msgid "The <literal>&lt;one-to-many&gt;</literal> element declares no columns."
 msgstr ""
 
 #. 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 ""
 
+#. 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 ""
 
 #. Tag: para
+#: component_mapping.xml:274
 #, no-c-format
 msgid "You can also map a property of type <literal>Map</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: component_mapping.xml:278
+#, 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 ""
+
 #. Tag: para
+#: component_mapping.xml:280
 #, no-c-format
 msgid "The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are identical to <literal>&lt;component&gt;</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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/configuration.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/configuration.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/configuration.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,1663 +1,2188 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
-"PO-Revision-Date: 2010-01-08T04:07:18\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:38+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: configuration.xml:33
 #, no-c-format
 msgid "Configuration"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:35
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:44
 #, no-c-format
 msgid "Programmatic configuration"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:46
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:53
 #, 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 ""
 
+#. Tag: programlisting
+#: configuration.xml:59
+#, no-c-format
+msgid ""
+      "<![CDATA[Configuration cfg = new Configuration()\n"
+      "    .addResource(\"Item.hbm.xml\")\n"
+      "    .addResource(\"Bid.hbm.xml\");]]>"
+msgstr ""
+
 #. Tag: para
+#: configuration.xml:61
 #, no-c-format
 msgid "An alternative way is to specify the mapped class and allow Hibernate to find the mapping document for you:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:66
+#, no-c-format
+msgid ""
+      "<![CDATA[Configuration cfg = new Configuration()\n"
+      "    .addClass(org.hibernate.auction.Item.class)\n"
+      "    .addClass(org.hibernate.auction.Bid.class);]]>"
+msgstr ""
+
 #. Tag: para
+#: configuration.xml:68
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:74
 #, no-c-format
 msgid "A <classname>org.hibernate.cfg.Configuration</classname> also allows you to specify configuration properties. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:79
+#, 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 ""
+
 #. Tag: para
+#: configuration.xml:81
 #, no-c-format
 msgid "This is not the only way to pass configuration properties to Hibernate. Some alternative options include:"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:88
 #, no-c-format
 msgid "Pass an instance of <classname>java.util.Properties</classname> to <literal>Configuration.setProperties()</literal>."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:94
 #, no-c-format
 msgid "Place a file named <filename>hibernate.properties</filename> in a root directory of the classpath."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:99
 #, no-c-format
 msgid "Set <literal>System</literal> properties using <literal>java -Dproperty=value</literal>."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:104
 #, no-c-format
 msgid "Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate.cfg.xml</literal> (this is discussed later)."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:111
 #, no-c-format
 msgid "If you want to get started quickly<filename>hibernate.properties</filename> is the easiest approach."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:115
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:123
 #, no-c-format
 msgid "Obtaining a SessionFactory"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:125
 #, 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 <classname>org.hibernate.Session</classname> instances. This factory is intended to be shared by all application threads:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:131
+#, no-c-format
+msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+msgstr ""
+
 #. Tag: para
+#: configuration.xml:133
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:142
 #, no-c-format
 msgid "JDBC connections"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:144
 #, 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 ""
 
+#. Tag: programlisting
+#: configuration.xml:150
+#, no-c-format
+msgid "<![CDATA[Session session = sessions.openSession(); // open a new Session]]>"
+msgstr ""
+
 #. Tag: para
+#: configuration.xml:152
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:157
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:163
 #, no-c-format
 msgid "Hibernate will obtain and pool connections using <classname>java.sql.DriverManager</classname> if you set the following properties:"
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:169
 #, no-c-format
 msgid "Hibernate JDBC Properties"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:175 configuration.xml:261 configuration.xml:357 configuration.xml:553 configuration.xml:748 configuration.xml:855 configuration.xml:946
 #, no-c-format
 msgid "Property name"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:176 configuration.xml:262 configuration.xml:358 configuration.xml:554 configuration.xml:749 configuration.xml:856 configuration.xml:947
 #, no-c-format
 msgid "Purpose"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:182
 #, no-c-format
-msgid "<property>hibernate.connection.driver_class</property>"
+msgid "hibernate.connection.driver_class"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: configuration.xml:185
 #, no-c-format
-msgid "<emphasis>JDBC driver class</emphasis>"
+msgid "JDBC driver class"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:190
 #, no-c-format
-msgid "<property>hibernate.connection.url</property>"
+msgid "hibernate.connection.url"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: configuration.xml:193
 #, no-c-format
-msgid "<emphasis>JDBC URL</emphasis>"
+msgid "JDBC URL"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:198 configuration.xml:292
 #, no-c-format
-msgid "<property>hibernate.connection.username</property>"
+msgid "hibernate.connection.username"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: configuration.xml:201
 #, no-c-format
-msgid "<emphasis>database user</emphasis>"
+msgid "database user"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:206 configuration.xml:300
 #, no-c-format
-msgid "<property>hibernate.connection.password</property>"
+msgid "hibernate.connection.password"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: configuration.xml:209
 #, no-c-format
-msgid "<emphasis>database user password</emphasis>"
+msgid "database user password"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:214
 #, no-c-format
-msgid "<property>hibernate.connection.pool_size</property>"
+msgid "hibernate.connection.pool_size"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: configuration.xml:217
 #, no-c-format
-msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgid "maximum number of pooled connections"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:224
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:234
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:242
 #, no-c-format
 msgid "The following is an example <filename>hibernate.properties</filename> file for c3p0:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:246
+#, 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 ""
+
 #. Tag: para
+#: configuration.xml:248
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:255
 #, no-c-format
 msgid "Hibernate Datasource Properties"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:268
 #, no-c-format
-msgid "<property>hibernate.connection.datasource</property>"
+msgid "hibernate.connection.datasource"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: configuration.xml:271
 #, no-c-format
-msgid "<emphasis>datasource JNDI name</emphasis>"
+msgid "datasource JNDI name"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:276
 #, no-c-format
-msgid "<property>hibernate.jndi.url</property>"
+msgid "hibernate.jndi.url"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:278
 #, no-c-format
 msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:284
 #, no-c-format
-msgid "<property>hibernate.jndi.class</property>"
+msgid "hibernate.jndi.class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:286
 #, no-c-format
 msgid "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></emphasis> (optional)"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:294
 #, no-c-format
 msgid "<emphasis>database user</emphasis> (optional)"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:302
 #, no-c-format
 msgid "<emphasis>database user password</emphasis> (optional)"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:310
 #, no-c-format
 msgid "Here is an example <filename>hibernate.properties</filename> file for an application server provided JNDI datasource:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:315
+#, 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 ""
+
 #. Tag: para
+#: configuration.xml:317
 #, no-c-format
 msgid "JDBC connections obtained from a JNDI datasource will automatically participate in the container-managed transactions of the application server."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:322
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:328
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:337
 #, no-c-format
 msgid "Optional configuration properties"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:339
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:344
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:351
 #, no-c-format
 msgid "Hibernate Configuration Properties"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:364
 #, no-c-format
-msgid "<property>hibernate.dialect</property>"
+msgid "hibernate.dialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:366
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:370
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of.Dialect</literal>"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:374
 #, 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 ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:383
 #, no-c-format
-msgid "<property>hibernate.show_sql</property>"
+msgid "hibernate.show_sql"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:385
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:389 configuration.xml:401 configuration.xml:495 configuration.xml:508 configuration.xml:521 configuration.xml:534 configuration.xml:588 configuration.xml:615 configuration.xml:628 configuration.xml:683 configuration.xml:913 configuration.xml:929 configuration.xml:1022
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | <literal>false</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:397
 #, no-c-format
-msgid "<property>hibernate.format_sql</property>"
+msgid "hibernate.format_sql"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:399
 #, no-c-format
 msgid "Pretty print the SQL in the log and console."
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:409
 #, no-c-format
-msgid "<property>hibernate.default_schema</property>"
+msgid "hibernate.default_schema"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:411
 #, no-c-format
 msgid "Qualify unqualified table names with the given schema/tablespace in generated SQL."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:414
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:422
 #, no-c-format
-msgid "<property>hibernate.default_catalog</property>"
+msgid "hibernate.default_catalog"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:424
 #, no-c-format
 msgid "Qualifies unqualified table names with the given catalog in generated SQL."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:427
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:435
 #, no-c-format
-msgid "<property>hibernate.session_factory_name</property>"
+msgid "hibernate.session_factory_name"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:437
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:440 configuration.xml:882
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:448
 #, no-c-format
-msgid "<property>hibernate.max_fetch_depth</property>"
+msgid "hibernate.max_fetch_depth"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:450
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:454
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>0</literal> and <literal>3</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:463
 #, no-c-format
-msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgid "hibernate.default_batch_fetch_size"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:465
 #, no-c-format
 msgid "Sets a default size for Hibernate batch fetching of associations."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:467
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</literal>, <literal>8</literal>, <literal>16</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:476
 #, no-c-format
-msgid "<property>hibernate.default_entity_mode</property>"
+msgid "hibernate.default_entity_mode"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:478
 #, no-c-format
 msgid "Sets a default mode for entity representation for all sessions opened from this <literal>SessionFactory</literal>."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:481
 #, no-c-format
 msgid "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:489
 #, no-c-format
-msgid "<property>hibernate.order_updates</property>"
+msgid "hibernate.order_updates"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:491
 #, 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 ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:503
 #, no-c-format
-msgid "<property>hibernate.generate_statistics</property>"
+msgid "hibernate.generate_statistics"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:505
 #, no-c-format
 msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:516
 #, no-c-format
-msgid "<property>hibernate.use_identifier_rollback</property>"
+msgid "hibernate.use_identifier_rollback"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:518
 #, no-c-format
 msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted."
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:529
 #, no-c-format
-msgid "<property>hibernate.use_sql_comments</property>"
+msgid "hibernate.use_sql_comments"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:531
 #, no-c-format
 msgid "If turned on, Hibernate will generate comments inside the SQL, for easier debugging, defaults to <literal>false</literal>."
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:545
 #, no-c-format
 msgid "Hibernate JDBC and Connection Properties"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:560
 #, no-c-format
-msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgid "hibernate.jdbc.fetch_size"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:562
 #, no-c-format
 msgid "A non-zero value determines the JDBC fetch size (calls <literal>Statement.setFetchSize()</literal>)."
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:569
 #, no-c-format
-msgid "<property>hibernate.jdbc.batch_size</property>"
+msgid "hibernate.jdbc.batch_size"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:571
 #, no-c-format
 msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:573
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>5</literal> and <literal>30</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:581
 #, no-c-format
-msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgid "hibernate.jdbc.batch_versioned_data"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:583
 #, 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 ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:596
 #, no-c-format
-msgid "<property>hibernate.jdbc.factory_class</property>"
+msgid "hibernate.jdbc.factory_class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:598
 #, no-c-format
 msgid "Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. Most applications will not need this configuration property."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:601
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.BatcherFactory</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:609
 #, no-c-format
-msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgid "hibernate.jdbc.use_scrollable_resultset"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:611
 #, 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 ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:623
 #, no-c-format
-msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgid "hibernate.jdbc.use_streams_for_binary"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:625
 #, 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 ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:636
 #, no-c-format
-msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgid "hibernate.jdbc.use_get_generated_keys"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:638
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:644 configuration.xml:774 configuration.xml:786 configuration.xml:800 configuration.xml:838
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:652
 #, no-c-format
-msgid "<property>hibernate.connection.provider_class</property>"
+msgid "hibernate.connection.provider_class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:654
 #, no-c-format
 msgid "The classname of a custom <interfacename>org.hibernate.connection.ConnectionProvider</interfacename> which provides JDBC connections to Hibernate."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:657
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.ConnectionProvider</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:665
 #, no-c-format
-msgid "<property>hibernate.connection.isolation</property>"
+msgid "hibernate.connection.isolation"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:667
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:671
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:679
 #, no-c-format
-msgid "<property>hibernate.connection.autocommit</property>"
+msgid "hibernate.connection.autocommit"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:681
 #, no-c-format
 msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
 msgstr ""
 
-#. Tag: para
+#. Tag: property
+#: configuration.xml:691
 #, no-c-format
-msgid "<property>hibernate.connection.release_mode</property>"
+msgid "hibernate.connection.release_mode"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:693
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:704
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:709
 #, 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\" />"
+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 ""
 
 #. Tag: para
+#: configuration.xml:720
 #, no-c-format
 msgid "<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</emphasis>"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:723
 #, no-c-format
 msgid "Pass the JDBC property <emphasis>&lt;propertyName&gt;</emphasis> to <literal>DriverManager.getConnection()</literal>."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:729
 #, no-c-format
 msgid "<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:732
 #, no-c-format
 msgid "Pass the property <emphasis>&lt;propertyName&gt;</emphasis> to the JNDI <literal>InitialContextFactory</literal>."
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:742
 #, no-c-format
 msgid "Hibernate Cache Properties"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:755
 #, no-c-format
-msgid "<literal>hibernate.cache.provider_class</literal>"
+msgid "hibernate.cache.provider_class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:757
 #, no-c-format
 msgid "The classname of a custom <literal>CacheProvider</literal>."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:759
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.CacheProvider</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:767
 #, no-c-format
-msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgid "hibernate.cache.use_minimal_puts"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:769
 #, 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 ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:782
 #, no-c-format
-msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgid "hibernate.cache.use_query_cache"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:784
 #, no-c-format
 msgid "Enables the query cache. Individual queries still have to be set cachable."
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:794
 #, no-c-format
-msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgid "hibernate.cache.use_second_level_cache"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:796
 #, 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>&lt;cache&gt;</literal> mapping."
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:808
 #, no-c-format
-msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgid "hibernate.cache.query_cache_factory"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:810
 #, no-c-format
 msgid "The classname of a custom <literal>QueryCache</literal> interface, defaults to the built-in <literal>StandardQueryCache</literal>."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:813
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:821
 #, no-c-format
-msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgid "hibernate.cache.region_prefix"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:823
 #, no-c-format
 msgid "A prefix to use for second-level cache region names."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:825
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:833
 #, no-c-format
-msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgid "hibernate.cache.use_structured_entries"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:835
 #, no-c-format
 msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format."
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:849
 #, no-c-format
 msgid "Hibernate Transaction Properties"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:862
 #, no-c-format
-msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgid "hibernate.transaction.factory_class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:864
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:868
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionFactory</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:876
 #, no-c-format
-msgid "<literal>jta.UserTransaction</literal>"
+msgid "jta.UserTransaction"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:878
 #, no-c-format
 msgid "A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the JTA <literal>UserTransaction</literal> from the application server."
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:890
 #, no-c-format
-msgid "<literal>hibernate.transaction. manager_lookup_class</literal>"
+msgid "hibernate.transaction. manager_lookup_class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:893
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:897
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionManagerLookup</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:905
 #, no-c-format
-msgid "<literal>hibernate.transaction. flush_before_completion</literal>"
+msgid "hibernate.transaction. flush_before_completion"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:908
 #, 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\" />."
+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 ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:921
 #, no-c-format
-msgid "<literal>hibernate.transaction. auto_close_session</literal>"
+msgid "hibernate.transaction. auto_close_session"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:924
 #, 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\" />."
+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 ""
 
 #. Tag: title
+#: configuration.xml:940
 #, no-c-format
 msgid "Miscellaneous Properties"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:953
 #, no-c-format
-msgid "<literal>hibernate. current_session_context_class</literal>"
+msgid "hibernate. current_session_context_class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:956
 #, 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."
+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 ""
 
 #. Tag: para
+#: configuration.xml:961
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:970
 #, no-c-format
-msgid "<literal>hibernate.query.factory_class</literal>"
+msgid "hibernate.query.factory_class"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:972
 #, no-c-format
 msgid "Chooses the HQL parser implementation."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:974
 #, 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 ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:983
 #, no-c-format
-msgid "<literal>hibernate.query.substitutions</literal>"
+msgid "hibernate.query.substitutions"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:985
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:988
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:996
 #, no-c-format
-msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgid "hibernate.hbm2ddl.auto"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:998
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1004
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1013
 #, no-c-format
-msgid "<literal>hibernate.cglib. use_reflection_optimizer</literal>"
+msgid "hibernate.cglib. use_reflection_optimizer"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1016
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1033
 #, no-c-format
 msgid "SQL Dialects"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1035
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1043
 #, no-c-format
 msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1051
 #, no-c-format
 msgid "RDBMS"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1052
 #, no-c-format
 msgid "Dialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1057
 #, no-c-format
-msgid "DB2"
+msgid "<para>DB2</para>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1057
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgid "org.hibernate.dialect.DB2Dialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1060
 #, no-c-format
 msgid "DB2 AS/400"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1060
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgid "org.hibernate.dialect.DB2400Dialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1063
 #, no-c-format
 msgid "DB2 OS390"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1063
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgid "org.hibernate.dialect.DB2390Dialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1066
 #, no-c-format
 msgid "PostgreSQL"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1066
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgid "org.hibernate.dialect.PostgreSQLDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1069
 #, no-c-format
 msgid "MySQL"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1069
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgid "org.hibernate.dialect.MySQLDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1072
 #, no-c-format
 msgid "MySQL with InnoDB"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1072
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgid "org.hibernate.dialect.MySQLInnoDBDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1075
 #, no-c-format
 msgid "MySQL with MyISAM"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1075
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgid "org.hibernate.dialect.MySQLMyISAMDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1078
 #, no-c-format
 msgid "Oracle (any version)"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1078
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgid "org.hibernate.dialect.OracleDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1081
 #, no-c-format
 msgid "Oracle 9i"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1081
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgid "org.hibernate.dialect.Oracle9iDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1084
 #, no-c-format
 msgid "Oracle 10g"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1084
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgid "org.hibernate.dialect.Oracle10gDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1087
 #, no-c-format
 msgid "Sybase"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1087
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgid "org.hibernate.dialect.SybaseDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1090
 #, no-c-format
 msgid "Sybase Anywhere"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1090
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgid "org.hibernate.dialect.SybaseAnywhereDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1093
 #, no-c-format
 msgid "Microsoft SQL Server"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1093
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgid "org.hibernate.dialect.SQLServerDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1096
 #, no-c-format
 msgid "SAP DB"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1096
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgid "org.hibernate.dialect.SAPDBDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1099
 #, no-c-format
 msgid "Informix"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1099
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgid "org.hibernate.dialect.InformixDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1102
 #, no-c-format
 msgid "HypersonicSQL"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1102
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgid "org.hibernate.dialect.HSQLDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1105
 #, no-c-format
 msgid "Ingres"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1105
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgid "org.hibernate.dialect.IngresDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1108
 #, no-c-format
 msgid "Progress"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1108
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgid "org.hibernate.dialect.ProgressDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1111
 #, no-c-format
 msgid "Mckoi SQL"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1111
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgid "org.hibernate.dialect.MckoiDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1114
 #, no-c-format
 msgid "Interbase"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1114
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgid "org.hibernate.dialect.InterbaseDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1117
 #, no-c-format
 msgid "Pointbase"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1117
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgid "org.hibernate.dialect.PointbaseDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1120
 #, no-c-format
 msgid "FrontBase"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1120
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgid "org.hibernate.dialect.FrontbaseDialect"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1123
 #, no-c-format
 msgid "Firebird"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1123
 #, no-c-format
-msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgid "org.hibernate.dialect.FirebirdDialect"
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:1132
 #, no-c-format
 msgid "Outer Join Fetching"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1134
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1143
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1151
 #, no-c-format
-msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgid "See <xref linkend=\"performance-fetching\"/> for more information."
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:1158
 #, no-c-format
 msgid "Binary Streams"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1160
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1171
 #, no-c-format
 msgid "Second-level and query cache"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1173
 #, 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."
+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 ""
 
 #. Tag: title
+#: configuration.xml:1183
 #, no-c-format
 msgid "Query Language Substitution"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1185
 #, no-c-format
 msgid "You can define new Hibernate query tokens using <literal>hibernate.query.substitutions</literal>. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:1190
+#, no-c-format
+msgid "hibernate.query.substitutions true=1, false=0"
+msgstr ""
+
 #. Tag: para
+#: configuration.xml:1192
 #, 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 ""
 
+#. Tag: programlisting
+#: configuration.xml:1197
+#, no-c-format
+msgid "hibernate.query.substitutions toLowercase=LOWER"
+msgstr ""
+
 #. Tag: para
+#: configuration.xml:1199
 #, no-c-format
 msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:1206
 #, no-c-format
 msgid "Hibernate statistics"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1208
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1220
 #, no-c-format
 msgid "Logging"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1222
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1233
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1242
 #, no-c-format
 msgid "Hibernate Log Categories"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1248
 #, no-c-format
 msgid "Category"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1249
 #, no-c-format
 msgid "Function"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1254
 #, no-c-format
-msgid "<literal>org.hibernate.SQL</literal>"
+msgid "org.hibernate.SQL"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1255
 #, no-c-format
 msgid "Log all SQL DML statements as they are executed"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1258
 #, no-c-format
-msgid "<literal>org.hibernate.type</literal>"
+msgid "org.hibernate.type"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1259
 #, no-c-format
 msgid "Log all JDBC parameters"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1262
 #, no-c-format
-msgid "<literal>org.hibernate.tool. hbm2ddl</literal>"
+msgid "org.hibernate.tool. hbm2ddl"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1264
 #, no-c-format
 msgid "Log all SQL DDL statements as they are executed"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1267
 #, no-c-format
-msgid "<literal>org.hibernate.pretty</literal>"
+msgid "org.hibernate.pretty"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1268
 #, no-c-format
 msgid "Log the state of all entities (max 20 entities) associated with the session at flush time"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1274
 #, no-c-format
-msgid "<literal>org.hibernate.cache</literal>"
+msgid "org.hibernate.cache"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1275
 #, no-c-format
 msgid "Log all second-level cache activity"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1278
 #, no-c-format
-msgid "<literal>org.hibernate. transaction</literal>"
+msgid "org.hibernate. transaction"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1280
 #, no-c-format
 msgid "Log transaction related activity"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1283
 #, no-c-format
-msgid "<literal>org.hibernate.jdbc</literal>"
+msgid "org.hibernate.jdbc"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1284
 #, no-c-format
 msgid "Log all JDBC resource acquisition"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1287
 #, no-c-format
-msgid "<literal>org.hibernate.hql. ast.AST</literal>"
+msgid "org.hibernate.hql. ast.AST"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1289
 #, no-c-format
 msgid "Log HQL and SQL ASTs during query parsing"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1294
 #, no-c-format
-msgid "<literal>org.hibernate.secure</literal>"
+msgid "org.hibernate.secure"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1295
 #, no-c-format
 msgid "Log all JAAS authorization requests"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1298
 #, no-c-format
-msgid "<literal>org.hibernate</literal>"
+msgid "org.hibernate"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1299
 #, no-c-format
 msgid "Log everything. This is a lot of information but it is useful for troubleshooting"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1308
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1318
 #, no-c-format
 msgid "Implementing a <literal>NamingStrategy</literal>"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1320
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1325
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1334
 #, no-c-format
 msgid "You can specify a different strategy by calling <literal>Configuration.setNamingStrategy()</literal> before adding mappings:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:1339
+#, 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 ""
+
 #. Tag: para
+#: configuration.xml:1341
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1349
 #, no-c-format
 msgid "XML configuration file"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1351
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1358
 #, 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 ""
 
+#. Tag: programlisting
+#: configuration.xml:1363
+#, 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 ""
+
 #. Tag: para
+#: configuration.xml:1365
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1374
 #, no-c-format
 msgid "With the XML configuration, starting Hibernate is then as simple as:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:1378
+#, no-c-format
+msgid "<![CDATA[SessionFactory sf = new Configuration().configure().buildSessionFactory();]]>"
+msgstr ""
+
 #. Tag: para
+#: configuration.xml:1380
 #, no-c-format
 msgid "You can select a different XML configuration file using:"
 msgstr ""
 
+#. Tag: programlisting
+#: configuration.xml:1384
+#, no-c-format
+msgid ""
+      "<![CDATA[SessionFactory sf = new Configuration()\n"
+      "    .configure(\"catdb.cfg.xml\")\n"
+      "    .buildSessionFactory();]]>"
+msgstr ""
+
 #. Tag: title
+#: configuration.xml:1389
 #, no-c-format
 msgid "J2EE Application Server integration"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1391
 #, no-c-format
 msgid "Hibernate has the following integration points for J2EE infrastructure:"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1397
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1412
 #, no-c-format
 msgid "<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its <literal>SessionFactory</literal> to JNDI after startup."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1421
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1434
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1445
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1452
 #, no-c-format
 msgid "Transaction strategy configuration"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1454
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1462
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1469
 #, no-c-format
 msgid "There are three standard, or built-in, choices:"
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: configuration.xml:1475
 #, no-c-format
-msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgid "org.hibernate.transaction.JDBCTransactionFactory"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1477
 #, no-c-format
 msgid "delegates to database (JDBC) transactions (default)"
 msgstr ""
 
-#. Tag: term
+#. Tag: literal
+#: configuration.xml:1481
 #, no-c-format
-msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgid "org.hibernate.transaction.JTATransactionFactory"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1483
 #, 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 ""
 
-#. Tag: term
+#. Tag: literal
+#: configuration.xml:1491
 #, no-c-format
-msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgid "org.hibernate.transaction.CMTTransactionFactory"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1493
 #, no-c-format
 msgid "delegates to container-managed JTA transactions"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1498
 #, no-c-format
 msgid "You can also define your own transaction strategies (for a CORBA transaction service, for example)."
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1503
 #, 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 ""
 
 #. Tag: title
+#: configuration.xml:1511
 #, no-c-format
 msgid "JTA TransactionManagers"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1517
 #, no-c-format
 msgid "Transaction Factory"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1518
 #, no-c-format
 msgid "Application Server"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1523
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. JBossTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1525
 #, no-c-format
 msgid "JBoss"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1528
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. WeblogicTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1530
 #, no-c-format
 msgid "Weblogic"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1533
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. WebSphereTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1535
 #, no-c-format
 msgid "WebSphere"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1538
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</literal>"
+msgid "org.hibernate.transaction. WebSphereExtendedJTATransactionLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1540
 #, no-c-format
 msgid "WebSphere 6"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1543
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. OrionTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1545
 #, no-c-format
 msgid "Orion"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1548
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. ResinTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1550
 #, no-c-format
 msgid "Resin"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1553
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. JOTMTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1555
 #, no-c-format
 msgid "JOTM"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1558
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. JOnASTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1560
 #, no-c-format
 msgid "JOnAS"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1563
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. JRun4TransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1565
 #, no-c-format
 msgid "JRun4"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: configuration.xml:1568
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
+msgid "org.hibernate.transaction. BESTransactionManagerLookup"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1570
 #, no-c-format
 msgid "Borland ES"
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:1579
 #, no-c-format
 msgid "JNDI-bound <literal>SessionFactory</literal>"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1581
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1588
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1596
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1603
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1610
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1615
 #, 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&mdash;see chapter 1."
 msgstr ""
 
 #. Tag: title
+#: configuration.xml:1627
 #, no-c-format
 msgid "Current Session context management with JTA"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1629
 #, 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."
+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 su!
 ch 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 ""
 
 #. Tag: title
+#: configuration.xml:1652
 #, no-c-format
 msgid "JMX deployment"
 msgstr ""
 
 #. Tag: para
+#: configuration.xml:1654
 #, 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 ""
 
 #. Tag: para
+#: configuration.xml:1662
 #, 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 ""
 
+#. Tag: programlisting
+#: configuration.xml:1669
+#, 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 ""
+
 #. Tag: para
+#: configuration.xml:1671
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/events.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/events.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/events.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,128 +1,310 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: events.xml:31
 #, no-c-format
 msgid "Interceptors and events"
 msgstr ""
 
 #. Tag: para
+#: events.xml:33
 #, 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 ""
 
 #. Tag: title
+#: events.xml:40
 #, no-c-format
 msgid "Interceptors"
 msgstr ""
 
 #. Tag: para
+#: events.xml:42
 #, no-c-format
 msgid "The <literal>Interceptor</literal> interface provides callbacks from the session to the application, allowing the application to inspect and/or manipulate properties of a persistent object before it is saved, updated, deleted or loaded. One possible use for this is to track auditing information. For example, the following <literal>Interceptor</literal> automatically sets the <literal>createTimestamp</literal> when an <literal>Auditable</literal> is created and updates the <literal>lastUpdateTimestamp</literal> property when an <literal>Auditable</literal> is updated."
 msgstr ""
 
 #. Tag: para
+#: events.xml:53
 #, no-c-format
 msgid "You can either implement <literal>Interceptor</literal> directly or extend <literal>EmptyInterceptor</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:58
+#, 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:60
 #, no-c-format
 msgid "There are two kinds of inteceptors: <literal>Session</literal>-scoped and <literal>SessionFactory</literal>-scoped."
 msgstr ""
 
 #. Tag: para
+#: events.xml:65
 #, 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 ""
 
+#. Tag: programlisting
+#: events.xml:71
+#, no-c-format
+msgid "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+msgstr ""
+
 #. Tag: para
+#: events.xml:73
 #, no-c-format
 msgid "A <literal>SessionFactory</literal>-scoped interceptor is registered with the <literal>Configuration</literal> object prior to building the <literal>SessionFactory</literal>. Unless a session is opened explicitly specifying the interceptor to use, the supplied interceptor will be applied to all sessions opened from that <literal>SessionFactory</literal>. <literal>SessionFactory</literal>-scoped interceptors must be thread safe. Ensure that you do not store session-specific states, since multiple sessions will use this interceptor potentially concurrently."
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:82
+#, no-c-format
+msgid "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+msgstr ""
+
 #. Tag: title
+#: events.xml:87
 #, no-c-format
 msgid "Event system"
 msgstr ""
 
 #. Tag: para
+#: events.xml:89
 #, 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 ""
 
 #. Tag: para
+#: events.xml:95
 #, 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</literal>, etc. Consult the XML configuration-file DTD or the <literal>org.hibernate.event</literal> package for the full list of defined event types. When a request is made of one of these methods, the Hibernate <literal>Session</literal> generates an appropriate event and passes it to the configured event listeners for that type. Out-of-the-box, these listeners implement the same processing in which those methods always resulted. However, you are free to implement a customization of one of the listener interfaces (i.e., the <literal>LoadEvent</literal> is processed by the registered implementation of the <literal>LoadEventListener</literal> interface), in which case their implementation would be responsible for processing any <literal>load()</literal> requests made of the <literal>Session</literal>."
 msgstr ""
 
 #. Tag: para
+#: events.xml:110
 #, 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 ""
 
 #. Tag: para
+#: events.xml:115
 #, 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 the default event listeners used by Hibernate out-of-the-box as these are declared non-final for this purpose). Custom listeners can either be registered programmatically through the <literal>Configuration</literal> object, or specified in the Hibernate configuration XML. Declarative configuration through the properties file is not supported. Here is an example of a custom load event listener:"
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:125
+#, 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:127
 #, no-c-format
 msgid "You also need a configuration entry telling Hibernate to use the listener in addition to the default listener:"
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:132
+#, 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 ""
+
 #. Tag: para
+#: events.xml:134
 #, no-c-format
 msgid "Instead, you can register it programmatically:"
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:138
+#, 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:140
 #, no-c-format
 msgid "Listeners registered declaratively cannot share instances. If the same class name is used in multiple <literal>&lt;listener/&gt;</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 ""
 
 #. Tag: para
+#: events.xml:148
 #, no-c-format
 msgid "Why implement an interface and define the specific type during configuration? A listener implementation could implement multiple event listener interfaces. Having the type additionally defined during registration makes it easier to turn custom listeners on or off during configuration."
 msgstr ""
 
 #. Tag: title
+#: events.xml:158
 #, no-c-format
 msgid "Hibernate declarative security"
 msgstr ""
 
 #. Tag: para
+#: events.xml:159
 #, 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 ""
 
 #. Tag: para
+#: events.xml:165
 #, no-c-format
 msgid "First, you must configure the appropriate event listeners, to enable the use of JAAS authorization."
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:170
+#, 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:172
 #, no-c-format
 msgid "Note that <literal>&lt;listener type=\"...\" class=\"...\"/&gt;</literal> is shorthand for <literal>&lt;event type=\"...\"&gt;&lt;listener class=\"...\"/&gt;&lt;/event&gt;</literal> when there is exactly one listener for a particular event type."
 msgstr ""
 
 #. Tag: para
+#: events.xml:178
 #, no-c-format
 msgid "Next, while still in <literal>hibernate.cfg.xml</literal>, bind the permissions to roles:"
 msgstr ""
 
+#. Tag: programlisting
+#: events.xml:182
+#, 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:184
 #, no-c-format
 msgid "The role names are the roles understood by your JACC provider."
 msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_mappings.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_mappings.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_mappings.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,119 +1,717 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: example_mappings.xml:31
 #, no-c-format
 msgid "Example: Various Mappings"
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:34
 #, no-c-format
 msgid "This chapters explores some more complex association mappings."
 msgstr ""
 
 #. Tag: title
+#: example_mappings.xml:39
 #, no-c-format
 msgid "Employer/Employee"
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:41
 #, no-c-format
 msgid "The following model of the relationship between <literal>Employer</literal> and <literal>Employee</literal> uses an entity class (<literal>Employment</literal>) to represent the association. You can do this when there might be more than one period of employment for the same two parties. Components are used to model monetary values and employee names."
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:58
 #, no-c-format
 msgid "Here is a possible mapping document:"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:62
+#, 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:64
 #, no-c-format
 msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:68
+#, 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:73
 #, no-c-format
 msgid "Author/Work"
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:75
 #, no-c-format
 msgid "Consider the following model of the relationships between <literal>Work</literal>, <literal>Author</literal> and <literal>Person</literal>. In the example, the relationship between <literal>Work</literal> and <literal>Author</literal> is represented as a many-to-many association and the relationship between <literal>Author</literal> and <literal>Person</literal> is represented as one-to-one association. Another possibility would be to have <literal>Author</literal> extend <literal>Person</literal>."
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:93
 #, no-c-format
 msgid "The following mapping document correctly represents these relationships:"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:97
+#, 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:99
 #, 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 ""
 
+#. Tag: programlisting
+#: example_mappings.xml:107
+#, 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:112
 #, no-c-format
 msgid "Customer/Order/Product"
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:114
 #, no-c-format
 msgid "In this section we consider a model of the relationships between <literal>Customer</literal>, <literal>Order</literal>, <literal>Line Item</literal> and <literal>Product</literal>. There is a one-to-many association between <literal>Customer</literal> and <literal>Order</literal>, but how can you represent <literal>Order</literal> / <literal>LineItem</literal> / <literal>Product</literal>? In the example, <literal>LineItem</literal> is mapped as an association class representing the many-to-many association between <literal>Order</literal> and <literal>Product</literal>. In Hibernate this is called a composite element."
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:134
 #, no-c-format
 msgid "The mapping document will look like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:138
+#, 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:140
 #, no-c-format
 msgid "<literal>customers</literal>, <literal>orders</literal>, <literal>line_items</literal> and <literal>products</literal> hold customer, order, order line item and product data respectively. <literal>line_items</literal> also acts as an association table linking orders with products."
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:147
+#, 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:152
 #, no-c-format
 msgid "Miscellaneous example mappings"
 msgstr ""
 
 #. Tag: para
+#: example_mappings.xml:154
 #, 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 ""
 
 #. Tag: title
+#: example_mappings.xml:163
 #, no-c-format
 msgid "\"Typed\" one-to-one association"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:164
+#, 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:168
 #, no-c-format
 msgid "Composite key example"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:169
+#, 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:173
 #, no-c-format
 msgid "Many-to-many with shared composite key attribute"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:174
+#, 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:178
 #, no-c-format
 msgid "Content based discrimination"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:179
+#, 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:183
 #, no-c-format
 msgid "Associations on alternate keys"
 msgstr ""
 
+#. Tag: programlisting
+#: example_mappings.xml:184
+#, 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 ""
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_parentchild.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_parentchild.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_parentchild.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-02-10T07:25:35\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_weblog.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_weblog.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/example_weblog.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-02-10T07:25:35\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/filters.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/filters.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/filters.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,93 +1,198 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: filters.xml:31
 #, no-c-format
 msgid "Filtering data"
 msgstr ""
 
 #. Tag: para
+#: filters.xml:33
 #, 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 ""
 
 #. Tag: title
+#: filters.xml:40
 #, no-c-format
 msgid "Hibernate filters"
 msgstr ""
 
 #. Tag: para
+#: filters.xml:42
 #, no-c-format
 msgid "Hibernate3 has the ability to pre-define filter criteria and attach those filters at both a class level and a collection level. A filter criteria allows you to define a restriction clause similar to the existing \"where\" attribute available on the class and various collection elements. These filter conditions, however, can be parameterized. The application can then decide at runtime whether certain filters should be enabled and what their parameter values should be. Filters can be used like database views, but they are parameterized inside the application."
 msgstr ""
 
 #. Tag: para
+#: filters.xml:52
 #, no-c-format
 msgid "In order to use filters, they must first be defined and then attached to the appropriate mapping elements. To define a filter, use the <literal>&lt;filter-def/&gt;</literal> element within a <literal>&lt;hibernate-mapping/&gt;</literal> element:"
 msgstr ""
 
+#. Tag: programlisting
+#: filters.xml:58
+#, no-c-format
+msgid ""
+      "<![CDATA[<filter-def name=\"myFilter\">\n"
+      "    <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+      "</filter-def>]]>"
+msgstr ""
+
 #. Tag: para
+#: filters.xml:60
 #, no-c-format
 msgid "This filter can then be attached to a class:"
 msgstr ""
 
+#. Tag: programlisting
+#: filters.xml:64
+#, no-c-format
+msgid ""
+      "<![CDATA[<class name=\"myClass\" ...>\n"
+      "    ...\n"
+      "    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
+      "</class>]]>"
+msgstr ""
+
 #. Tag: para
+#: filters.xml:66
 #, no-c-format
 msgid "Or, to a collection:"
 msgstr ""
 
+#. Tag: programlisting
+#: filters.xml:70
+#, no-c-format
+msgid ""
+      "<![CDATA[<set ...>\n"
+      "    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
+      "</set>]]>"
+msgstr ""
+
 #. Tag: para
+#: filters.xml:72
 #, no-c-format
 msgid "Or, to both or multiples of each at the same time."
 msgstr ""
 
 #. Tag: para
+#: filters.xml:76
 #, no-c-format
 msgid "The methods on <literal>Session</literal> are: <literal>enableFilter(String filterName)</literal>, <literal>getEnabledFilter(String filterName)</literal>, and <literal>disableFilter(String filterName)</literal>. By default, filters are <emphasis>not</emphasis> enabled for a given session. Filters must be enabled through use of the <literal>Session.enableFilter()</literal> method, which returns an instance of the <literal>Filter</literal> interface. If you used the simple filter defined above, it would look like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: filters.xml:85
+#, no-c-format
+msgid "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-value\");]]>"
+msgstr ""
+
 #. Tag: para
+#: filters.xml:87
 #, no-c-format
 msgid "Methods on the org.hibernate.Filter interface do allow the method-chaining common to much of Hibernate."
 msgstr ""
 
 #. Tag: para
+#: filters.xml:91
 #, no-c-format
 msgid "The following is a full example, using temporal data with an effective record date pattern:"
 msgstr ""
 
+#. Tag: programlisting
+#: filters.xml:95
+#, 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:97
 #, 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:102
+#, 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:104
 #, 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 ""
 
 #. Tag: para
+#: filters.xml:110
 #, 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 ""
 
 #. Tag: para
+#: filters.xml:117
 #, no-c-format
 msgid "After being defined, a filter might be attached to multiple entities and/or collections each with its own condition. This can be problematic when the conditions are the same each time. Using <literal>&lt;filter-def/&gt;</literal> allows you to definine a default condition, either as an attribute or CDATA:"
 msgstr ""
 
+#. Tag: programlisting
+#: filters.xml:124
+#, 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:126
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/inheritance_mapping.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/inheritance_mapping.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/inheritance_mapping.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,278 +1,564 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: inheritance_mapping.xml:31
 #, no-c-format
 msgid "Inheritance mapping"
 msgstr ""
 
 #. Tag: title
+#: inheritance_mapping.xml:34
 #, no-c-format
 msgid "The three strategies"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:36
 #, no-c-format
 msgid "Hibernate supports the three basic inheritance mapping strategies:"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:42
 #, no-c-format
 msgid "table per class hierarchy"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:47
 #, no-c-format
-msgid "table per subclass"
+msgid "<para>table per subclass</para>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:52
 #, no-c-format
 msgid "table per concrete class"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:58
 #, no-c-format
 msgid "In addition, Hibernate supports a fourth, slightly different kind of polymorphism:"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:65
 #, no-c-format
 msgid "implicit polymorphism"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:71
 #, 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 polymorphism to achieve polymorphism across the whole hierarchy. However, Hibernate does not support mixing <literal>&lt;subclass&gt;</literal>, <literal>&lt;joined-subclass&gt;</literal> and <literal>&lt;union-subclass&gt;</literal> mappings under the same root <literal>&lt;class&gt;</literal> element. It is possible to mix together the table per hierarchy and table per subclass strategies under the the same <literal>&lt;class&gt;</literal> element, by combining the <literal>&lt;subclass&gt;</literal> and <literal>&lt;join&gt;</literal> elements (see below for an example)."
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:85
 #, no-c-format
 msgid "It is possible to define <literal>subclass</literal>, <literal>union-subclass</literal>, and <literal>joined-subclass</literal> mappings in separate mapping documents directly beneath <literal>hibernate-mapping</literal>. This allows you to extend a class hierarchy by adding a new mapping file. You must specify an <literal>extends</literal> attribute in the subclass mapping, naming a previously mapped superclass. Previously this feature made the ordering of the mapping documents important. Since Hibernate3, the ordering of mapping files is irrelevant when using the extends keyword. The ordering inside a single mapping file still needs to be defined as superclasses before subclasses."
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:96
+#, 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:100
 #, no-c-format
 msgid "Table per class hierarchy"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:102
 #, no-c-format
 msgid "Suppose we have an interface <literal>Payment</literal> with the implementors <literal>CreditCardPayment</literal>, <literal>CashPayment</literal>, and <literal>ChequePayment</literal>. The table per hierarchy mapping would display in the following way:"
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:109
+#, 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:111
 #, 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 ""
 
 #. Tag: title
+#: inheritance_mapping.xml:120
 #, no-c-format
 msgid "Table per subclass"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:122
 #, no-c-format
 msgid "A table per subclass mapping looks like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:126
+#, 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:128
 #, 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:137
 #, no-c-format
 msgid "Table per subclass: using a discriminator"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:139
 #, no-c-format
 msgid "Hibernate's implementation of table per subclass does not require a discriminator column. Other object/relational mappers use a different implementation of table per subclass that requires a type discriminator column in the superclass table. The approach taken by Hibernate is much more difficult to implement, but arguably more correct from a relational point of view. If you want to use a discriminator column with the table per subclass strategy, you can combine the use of <literal>&lt;subclass&gt;</literal> and <literal>&lt;join&gt;</literal>, as follows:"
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:151
+#, 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:153
 #, 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 ""
 
 #. Tag: title
+#: inheritance_mapping.xml:162
 #, no-c-format
 msgid "Mixing table per class hierarchy with table per subclass"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:164
 #, 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:169
+#, 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:171
 #, no-c-format
 msgid "For any of these mapping strategies, a polymorphic association to the root <literal>Payment</literal> class is mapped using <literal>&lt;many-to-one&gt;</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:177
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment\"/>]]>"
+msgstr ""
+
 #. Tag: title
+#: inheritance_mapping.xml:182
 #, no-c-format
 msgid "Table per concrete class"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:184
 #, no-c-format
 msgid "There are two ways we can map the table per concrete class strategy. First, you can use <literal>&lt;union-subclass&gt;</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:189
+#, 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:191
 #, no-c-format
 msgid "Three tables are involved for the subclasses. Each table defines columns for all properties of the class, including inherited properties."
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:196
 #, 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 identity generator strategy is not allowed in union subclass inheritance. The primary key seed has to be shared across all unioned subclasses of a hierarchy."
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:205
 #, 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 ""
 
 #. Tag: title
+#: inheritance_mapping.xml:215
 #, no-c-format
 msgid "Table per concrete class using implicit polymorphism"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:217
 #, no-c-format
 msgid "An alternative approach is to make use of implicit polymorphism:"
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:221
+#, 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:223
 #, no-c-format
 msgid "Notice that the <literal>Payment</literal> interface is not mentioned explicitly. Also notice that properties of <literal>Payment</literal> are mapped in each of the subclasses. If you want to avoid duplication, consider using XML entities (for example, <literal>[ &lt;!ENTITY allproperties SYSTEM \"allproperties.xml\"&gt; ]</literal> in the <literal>DOCTYPE</literal> declaration and <literal>&amp;allproperties&semi;</literal> in the mapping)."
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:233
 #, 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 ""
 
 #. Tag: para
+#: inheritance_mapping.xml:238
 #, no-c-format
 msgid "For this mapping strategy, a polymorphic association to <literal>Payment</literal> is usually mapped using <literal>&lt;any&gt;</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:243
+#, 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:248
 #, no-c-format
 msgid "Mixing implicit polymorphism with other inheritance mappings"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:250
 #, no-c-format
 msgid "Since the subclasses are each mapped in their own <literal>&lt;class&gt;</literal> element, and since <literal>Payment</literal> is just an interface), each of the subclasses could easily be part of another inheritance hierarchy. You can still use polymorphic queries against the <literal>Payment</literal> interface."
 msgstr ""
 
+#. Tag: programlisting
+#: inheritance_mapping.xml:258
+#, 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:260
 #, 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 instances of <literal>CreditCardPayment</literal> (and its subclasses, since they also implement <literal>Payment</literal>), <literal>CashPayment</literal> and <literal>ChequePayment</literal>, but not instances of <literal>NonelectronicTransaction</literal>."
 msgstr ""
 
 #. Tag: title
+#: inheritance_mapping.xml:275
 #, no-c-format
 msgid "Limitations"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:277
 #, 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>&lt;union-subclass&gt;</literal> mappings."
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:284
 #, no-c-format
 msgid "The following list shows the limitations of table per concrete-class mappings, and of implicit polymorphism, in Hibernate."
 msgstr ""
 
 #. Tag: term
+#: inheritance_mapping.xml:291
 #, no-c-format
 msgid "table per class-heirarchy"
 msgstr ""
 
+#. Tag: term
+#: inheritance_mapping.xml:292
+#, no-c-format
+msgid "<term>table per subclass</term>"
+msgstr ""
+
 #. Tag: para
+#: inheritance_mapping.xml:295 inheritance_mapping.xml:312
 #, no-c-format
 msgid "Polymorphic many-to-one: <code>&lt;many-to-one&gt;</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:296 inheritance_mapping.xml:313
 #, no-c-format
 msgid "Polymorphic one-to-one: <code>&lt;one-to-one&gt;</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:297
 #, no-c-format
 msgid "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:298 inheritance_mapping.xml:315 inheritance_mapping.xml:330
 #, no-c-format
 msgid "Polymorphic many-to-many: <code>&lt;many-to-many&gt;</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:299 inheritance_mapping.xml:316
 #, no-c-format
 msgid "Polymorphic <literal>load()</literal> or <literal>get()</literal>: <code>s.get(Payment.class, id)</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:300 inheritance_mapping.xml:317 inheritance_mapping.xml:332
 #, no-c-format
 msgid "Polymorphic queries: <code>from Payment p</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:301 inheritance_mapping.xml:318
 #, no-c-format
 msgid "Polymorphic joins: <code>from Order o join o.payment p</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:303 inheritance_mapping.xml:320
 #, no-c-format
 msgid "Outer join fetching is supported."
 msgstr ""
 
 #. Tag: term
+#: inheritance_mapping.xml:309
 #, no-c-format
 msgid "table per concrete-class (union-subclass)"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:314
 #, no-c-format
-msgid "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code> (for <code>inverse=\"true\"</code> only)"
+msgid "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code> (for <code>inverse=&quot;true&quot;</code> only)"
 msgstr ""
 
 #. Tag: term
+#: inheritance_mapping.xml:326
 #, no-c-format
 msgid "table per concrete class (implicit polymorphism"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:329
 #, no-c-format
 msgid "Polymorphic many-to-one: <code>&lt;any&gt;</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:331
 #, no-c-format
 msgid "Polymorphic <literal>load()</literal> or <literal>get()</literal>: <code>s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</code>"
 msgstr ""
 
 #. Tag: para
+#: inheritance_mapping.xml:334
 #, no-c-format
 msgid "Polymorphic one-to-one, polymorphic one-to-many, polymorphic joins, and outer join fetching are not supported."
 msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/performance.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/performance.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/performance.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,1033 +1,1561 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: performance.xml:31
 #, no-c-format
 msgid "Improving performance"
 msgstr ""
 
 #. Tag: title
+#: performance.xml:34
 #, no-c-format
 msgid "Fetching strategies"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:36
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:43
 #, no-c-format
 msgid "Hibernate3 defines the following fetching strategies:"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:49
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:56
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:65
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:74
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:83
 #, no-c-format
 msgid "Hibernate also distinguishes between:"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:89
 #, no-c-format
 msgid "<emphasis>Immediate fetching</emphasis>: an association, collection or attribute is fetched immediately when the owner is loaded."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:95
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:102
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:110
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:117
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:127
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:136
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:145
 #, no-c-format
 msgid "Working with lazy associations"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:147
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:153
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:160
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:166
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:168
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:176
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:185
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:196
 #, no-c-format
 msgid "Tuning fetch strategies"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:198
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:203
+#, 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:205
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:207
 #, no-c-format
 msgid "The <literal>fetch</literal> strategy defined in the mapping document affects:"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:213
 #, no-c-format
 msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:218
 #, no-c-format
 msgid "retrieval that happens implicitly when an association is navigated"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:223
 #, no-c-format
 msgid "<literal>Criteria</literal> queries"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:228
 #, no-c-format
 msgid "HQL queries if <literal>subselect</literal> fetching is used"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:234
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:240
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:249
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:255
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:257
 #, no-c-format
 msgid "This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan\"."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:261
 #, no-c-format
 msgid "A completely different approach to problems with N+1 selects is to use the second-level cache."
 msgstr ""
 
 #. Tag: title
+#: performance.xml:269
 #, no-c-format
 msgid "Single-ended association proxies"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:271
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:279
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:285
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:292
 #, no-c-format
 msgid "There are potential problems to note when extending this approach to polymorphic classes.For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: performance.xml:296
+#, no-c-format
+msgid ""
+      "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+      "    ......\n"
+      "    <subclass name=\"DomesticCat\">\n"
+      "        .....\n"
+      "    </subclass>\n"
+      "</class>]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:298
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:304
+#, 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:306
 #, no-c-format
 msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: performance.xml:310
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:312
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:317
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:319
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:324
 #, 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:330
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:338
+#, no-c-format
+msgid ""
+      "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+      "    ......\n"
+      "    <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+      "        .....\n"
+      "    </subclass>\n"
+      "</class>]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:340
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:345
+#, 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 ""
+
 #. Tag: title
+#: performance.xml:348
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:349
 #, no-c-format
 msgid "<literal>list()</literal> does not usually return proxies."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:354
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:359
 #, no-c-format
 msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:365
 #, no-c-format
 msgid "<literal>equals()</literal>: if the persistent class does not override <literal>equals()</literal>"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:371
 #, no-c-format
 msgid "<literal>hashCode()</literal>: if the persistent class does not override <literal>hashCode()</literal>"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:377
 #, no-c-format
 msgid "The identifier getter method"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:383
 #, no-c-format
 msgid "Hibernate will detect persistent classes that override <literal>equals()</literal> or <literal>hashCode()</literal>."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:388
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:398
 #, no-c-format
 msgid "Initializing collections and proxies"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:400
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:406
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:413
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:422
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:433
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:446
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:461
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:471
 #, 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:476
 #, no-c-format
 msgid "You can use a collection filter to get the size of a collection without initializing it:"
 msgstr ""
 
+#. Tag: programlisting
+#: performance.xml:480
+#, no-c-format
+msgid "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" ).list().get(0) ).intValue()]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:482
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:487
+#, no-c-format
+msgid "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0).setMaxResults(10).list();]]>"
+msgstr ""
+
 #. Tag: title
+#: performance.xml:492
 #, no-c-format
 msgid "Using batch fetching"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:494
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:500
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:510
+#, no-c-format
+msgid "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:512
 #, no-c-format
 msgid "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:516
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:525
+#, no-c-format
+msgid ""
+      "<![CDATA[<class name=\"Person\">\n"
+      "    <set name=\"cats\" batch-size=\"3\">\n"
+      "        ...\n"
+      "    </set>\n"
+      "</class>]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:527
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:533
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:542
 #, no-c-format
 msgid "Using subselect fetching"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:544
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:555
 #, no-c-format
 msgid "Using lazy property fetching"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:557
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:566
 #, no-c-format
 msgid "To enable lazy property loading, set the <literal>lazy</literal> attribute on your particular property mappings:"
 msgstr ""
 
+#. Tag: programlisting
+#: performance.xml:571
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:573
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:579
 #, no-c-format
 msgid "For bytecode instrumentation, use the following Ant task:"
 msgstr ""
 
+#. Tag: programlisting
+#: performance.xml:583
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:585
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:592
 #, no-c-format
 msgid "You can force the usual eager fetching of properties using <literal>fetch all properties</literal> in HQL."
 msgstr ""
 
 #. Tag: title
+#: performance.xml:602
 #, no-c-format
 msgid "The Second Level Cache"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:604
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:612
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:623
 #, no-c-format
 msgid "Cache Providers"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:632 performance.xml:820
 #, no-c-format
 msgid "Cache"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:633
 #, no-c-format
 msgid "Provider class"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:634
 #, no-c-format
 msgid "Type"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:635
 #, no-c-format
 msgid "Cluster Safe"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:636
 #, no-c-format
 msgid "Query Cache Supported"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:641 performance.xml:829
 #, no-c-format
 msgid "Hashtable (not intended for production use)"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: performance.xml:642
 #, no-c-format
-msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgid "org.hibernate.cache.HashtableCacheProvider"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:643
 #, no-c-format
 msgid "memory"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:645 performance.xml:652 performance.xml:659 performance.xml:830 performance.xml:831 performance.xml:832 performance.xml:837 performance.xml:838 performance.xml:839 performance.xml:844 performance.xml:845 performance.xml:846 performance.xml:851 performance.xml:852 performance.xml:858 performance.xml:861 performance.xml:865 performance.xml:868
 #, no-c-format
-msgid "yes"
+msgid "<entry>yes</entry>"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:648 performance.xml:836
 #, no-c-format
 msgid "EHCache"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: performance.xml:649
 #, no-c-format
-msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgid "org.hibernate.cache.EhCacheProvider"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:650 performance.xml:657
 #, no-c-format
 msgid "memory, disk"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:655 performance.xml:843
 #, no-c-format
 msgid "OSCache"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: performance.xml:656
 #, no-c-format
-msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgid "org.hibernate.cache.OSCacheProvider"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:662 performance.xml:850
 #, no-c-format
 msgid "SwarmCache"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: performance.xml:663
 #, no-c-format
-msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgid "org.hibernate.cache.SwarmCacheProvider"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:664
 #, no-c-format
 msgid "clustered (ip multicast)"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:665
 #, no-c-format
 msgid "yes (clustered invalidation)"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:669 performance.xml:857
 #, no-c-format
 msgid "JBoss Cache 1.x"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: performance.xml:670
 #, no-c-format
-msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgid "org.hibernate.cache.TreeCacheProvider"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:671 performance.xml:678
 #, no-c-format
 msgid "clustered (ip multicast), transactional"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:672
 #, no-c-format
 msgid "yes (replication)"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:673 performance.xml:680
 #, no-c-format
 msgid "yes (clock sync req.)"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:676 performance.xml:864
 #, no-c-format
 msgid "JBoss Cache 2"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: performance.xml:677
 #, no-c-format
-msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
+msgid "org.hibernate.cache.jbc2.JBossCacheRegionFactory"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:679
 #, no-c-format
 msgid "yes (replication or invalidation)"
 msgstr ""
 
 #. Tag: title
+#: performance.xml:687
 #, no-c-format
 msgid "Cache mappings"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:689
 #, no-c-format
 msgid "The <literal>&lt;cache&gt;</literal> element of a class or collection mapping has the following form:"
 msgstr ""
 
+#. Tag: programlisting
+#: performance.xml:700
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:703
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:712
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:719
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:729
 #, no-c-format
 msgid "Alternatively, you can specify <literal>&lt;class-cache&gt;</literal> and <literal>&lt;collection-cache&gt;</literal> elements in <literal>hibernate.cfg.xml</literal>."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:734
 #, no-c-format
 msgid "The <literal>usage</literal> attribute specifies a <emphasis>cache concurrency strategy</emphasis>."
 msgstr ""
 
 #. Tag: title
+#: performance.xml:741
 #, no-c-format
 msgid "Strategy: read only"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:743
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:749
+#, no-c-format
+msgid ""
+      "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+      "    <cache usage=\"read-only\"/>\n"
+      "    ....\n"
+      "</class>]]>"
+msgstr ""
+
 #. Tag: title
+#: performance.xml:755
 #, no-c-format
 msgid "Strategy: read/write"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:757
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:768
+#, 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 ""
+
 #. Tag: title
+#: performance.xml:773
 #, no-c-format
 msgid "Strategy: nonstrict read/write"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:775
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:787
 #, no-c-format
 msgid "Strategy: transactional"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:789
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:798
 #, no-c-format
 msgid "Cache-provider/concurrency-strategy compatibility"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:801
 #, no-c-format
 msgid "None of the cache providers support all of the cache concurrency strategies."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:806
 #, no-c-format
 msgid "The following table shows which providers are compatible with which concurrency strategies."
 msgstr ""
 
 #. Tag: title
+#: performance.xml:811
 #, no-c-format
 msgid "Cache Concurrency Strategy Support"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:821
 #, no-c-format
 msgid "read-only"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:822
 #, no-c-format
 msgid "nonstrict-read-write"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:823
 #, no-c-format
 msgid "read-write"
 msgstr ""
 
 #. Tag: entry
+#: performance.xml:824
 #, no-c-format
 msgid "transactional"
 msgstr ""
 
 #. Tag: title
+#: performance.xml:879
 #, no-c-format
 msgid "Managing the caches"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:881
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:888
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:896
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:898
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:903
 #, no-c-format
 msgid "To evict all objects from the session cache, call <literal>Session.clear()</literal>"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:907
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:913
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:915
 #, no-c-format
 msgid "The <literal>CacheMode</literal> controls how a particular session interacts with the second-level cache:"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:922
 #, no-c-format
 msgid "<literal>CacheMode.NORMAL</literal>: will read items from and write items to the second-level cache"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:927
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:933
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:939
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:947
 #, no-c-format
 msgid "To browse the contents of a second-level or query cache region, use the <literal>Statistics</literal> API:"
 msgstr ""
 
+#. Tag: programlisting
+#: performance.xml:952
+#, no-c-format
+msgid ""
+      "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+      "        .getSecondLevelCacheStatistics(regionName)\n"
+      "        .getEntries();]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:954
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:959
+#, no-c-format
+msgid ""
+      "<![CDATA[hibernate.generate_statistics true\n"
+      "hibernate.cache.use_structured_entries true]]>"
+msgstr ""
+
 #. Tag: title
+#: performance.xml:964
 #, no-c-format
 msgid "The Query Cache"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:966
 #, 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:971
+#, no-c-format
+msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
+msgstr ""
+
 #. Tag: para
+#: performance.xml:973
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:983
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:990
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:996
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:998
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:1010
 #, no-c-format
 msgid "Understanding Collection performance"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1012
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:1019
 #, no-c-format
 msgid "Taxonomy"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1021
 #, no-c-format
 msgid "Hibernate defines three basic kinds of collections:"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1025
 #, no-c-format
 msgid "collections of values"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1028
 #, no-c-format
 msgid "one-to-many associations"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1031
 #, no-c-format
 msgid "many-to-many associations"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1035
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1046
 #, no-c-format
 msgid "indexed collections"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1049
 #, no-c-format
 msgid "sets"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1052
 #, no-c-format
 msgid "bags"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1056
 #, no-c-format
 msgid "All indexed collections (maps, lists, and arrays) have a primary key consisting of the <literal>&lt;key&gt;</literal> and <literal>&lt;index&gt;</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 ""
 
 #. Tag: para
+#: performance.xml:1064
 #, no-c-format
 msgid "Sets have a primary key consisting of <literal>&lt;key&gt;</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>&lt;set&gt;</literal>, you must declare all columns as <literal>not-null=\"true\"</literal>."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1075
 #, no-c-format
 msgid "<literal>&lt;idbag&gt;</literal> mappings define a surrogate key, so they are efficient to update. In fact, they are the best case."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1080
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1088
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:1098
 #, no-c-format
 msgid "Lists, maps, idbags and sets are the most efficient collections to update"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1100
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1106
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1115
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1123
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:1133
 #, no-c-format
 msgid "Bags and lists are the most efficient inverse collections"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1135
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:1145
+#, 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 ""
+
 #. Tag: title
+#: performance.xml:1150
 #, no-c-format
 msgid "One shot delete"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1152
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1159
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1165
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1172
 #, no-c-format
 msgid "delete eighteen rows one by one and then insert three rows"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1175
 #, no-c-format
 msgid "remove the whole collection in one SQL <literal>DELETE</literal> and insert all five current elements one by one"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1180
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1186
 #, 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:1192
 #, no-c-format
 msgid "One-shot-delete does not apply to collections mapped <literal>inverse=\"true\"</literal>."
 msgstr ""
 
 #. Tag: title
+#: performance.xml:1201
 #, no-c-format
 msgid "Monitoring performance"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1203
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:1210
 #, no-c-format
 msgid "Monitoring a SessionFactory"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1212
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1218
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:1225
+#, 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 ""
+
+#. Tag: programlisting
+#: performance.xml:1228
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:1235
 #, no-c-format
 msgid "You can activate and deactivate the monitoring for a <literal>SessionFactory</literal>:"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1240
 #, no-c-format
 msgid "at configuration time, set <literal>hibernate.generate_statistics</literal> to <literal>false</literal>"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1247
 #, no-c-format
 msgid "at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1254
 #, 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 ""
 
 #. Tag: title
+#: performance.xml:1263
 #, no-c-format
 msgid "Metrics"
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1265
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1272
 #, no-c-format
 msgid "Metrics related to the general <literal>Session</literal> usage, such as number of open sessions, retrieved JDBC connections, etc."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1278
 #, no-c-format
 msgid "Metrics related to the entities, collections, queries, and caches as a whole (aka global metrics)."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1284
 #, no-c-format
 msgid "Detailed metrics related to a particular entity, collection, query or cache region."
 msgstr ""
 
 #. Tag: para
+#: performance.xml:1291
 #, 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 ""
 
 #. Tag: para
+#: performance.xml:1298
 #, 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 ""
 
+#. Tag: programlisting
+#: performance.xml:1308
+#, 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 ""
+
 #. Tag: para
+#: performance.xml:1310
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/persistent_classes.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/persistent_classes.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/persistent_classes.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,283 +1,709 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: persistent_classes.xml:31
 #, no-c-format
 msgid "Persistent Classes"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:33
 #, no-c-format
 msgid "Persistent classes are classes in an application that implement the entities of the business problem (e.g. Customer and Order in an E-commerce application). Not all instances of a persistent class are considered to be in the persistent state. For example, an instance can instead be transient or detached."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:40
 #, no-c-format
 msgid "Hibernate works best if these classes follow some simple rules, also known as the Plain Old Java Object (POJO) programming model. However, none of these rules are hard requirements. Indeed, Hibernate3 assumes very little about the nature of your persistent objects. You can express a domain model in other ways (using trees of <literal>Map</literal> instances, for example)."
 msgstr ""
 
 #. Tag: title
+#: persistent_classes.xml:49
 #, no-c-format
 msgid "A simple POJO example"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:51
 #, no-c-format
 msgid "Most Java applications require a persistent class representing felines. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:55
+#, 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:57
 #, no-c-format
 msgid "The four main rules of persistent classes are explored in more detail in the following sections."
 msgstr ""
 
 #. Tag: title
+#: persistent_classes.xml:63
 #, no-c-format
 msgid "Implement a no-argument constructor"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:65
 #, no-c-format
 msgid "<literal>Cat</literal> has a no-argument constructor. All persistent classes must have a default constructor (which can be non-public) so that Hibernate can instantiate them using <literal>Constructor.newInstance()</literal>. It is recommended that you have a default constructor with at least <emphasis>package</emphasis> visibility for runtime proxy generation in Hibernate."
 msgstr ""
 
 #. Tag: title
+#: persistent_classes.xml:75
 #, no-c-format
 msgid "Provide an identifier property (optional)"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:77
 #, no-c-format
 msgid "<literal>Cat</literal> has a property called <literal>id</literal>. This property maps to the primary key column of a database table. The property might have been called anything, and its type might have been any primitive type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or <literal>java.util.Date</literal>. If your legacy database table has composite keys, you can use a user-defined class with properties of these types (see the section on composite identifiers later in the chapter.)"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:86
 #, 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 ""
 
 #. Tag: para
+#: persistent_classes.xml:91
 #, no-c-format
 msgid "In fact, some functionality is available only to classes that declare an identifier property:"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:98
 #, no-c-format
-msgid "Transitive reattachment for detached objects (cascade update or cascade merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgid "Transitive reattachment for detached objects (cascade update or cascade merge) - see"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: persistent_classes.xml:105
 #, no-c-format
-msgid "<literal>Session.saveOrUpdate()</literal>"
+msgid "Session.saveOrUpdate()"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: persistent_classes.xml:110
 #, no-c-format
-msgid "<literal>Session.merge()</literal>"
+msgid "Session.merge()"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:115
 #, 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:122
 #, no-c-format
 msgid "Prefer non-final classes (optional)"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:123
 #, 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 ""
 
 #. Tag: para
+#: persistent_classes.xml:128
 #, 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 ""
 
 #. Tag: para
+#: persistent_classes.xml:133
 #, no-c-format
 msgid "You should also avoid declaring <literal>public final</literal> methods on the non-final classes. If you want to use a class with a <literal>public final</literal> method, you must explicitly disable proxying by setting <literal>lazy=\"false\"</literal>."
 msgstr ""
 
 #. Tag: title
+#: persistent_classes.xml:141
 #, no-c-format
 msgid "Declare accessors and mutators for persistent fields (optional)"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:143
 #, no-c-format
 msgid "<literal>Cat</literal> declares accessor methods for all its persistent fields. Many other ORM tools directly persist instance variables. It is better to provide an indirection between the relational schema and internal data structures of the class. By default, Hibernate persists JavaBeans style properties and recognizes method names of the form <literal>getFoo</literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If required, you can switch to direct field access for particular properties."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:153
 #, 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 ""
 
 #. Tag: title
+#: persistent_classes.xml:164
 #, no-c-format
 msgid "Implementing inheritance"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:166
 #, 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 ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:171
+#, 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:175
 #, no-c-format
 msgid "Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:177
 #, no-c-format
 msgid "You have to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods if you:"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:183
 #, 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 ""
 
 #. Tag: para
+#: persistent_classes.xml:190
 #, no-c-format
 msgid "intend to use reattachment of detached instances"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:196
 #, no-c-format
 msgid "Hibernate guarantees equivalence of persistent identity (database row) and Java identity only inside a particular session scope. When you mix instances retrieved in different sessions, you must implement <literal>equals()</literal> and <literal>hashCode()</literal> if you wish to have meaningful semantics for <literal>Set</literal>s."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:204
 #, no-c-format
 msgid "The most obvious way is to implement <literal>equals()</literal>/<literal>hashCode()</literal> by comparing the identifier value of both objects. If the value is the same, both must be the same database row, because they are equal. If both are added to a <literal>Set</literal>, you will only have one element in the <literal>Set</literal>). Unfortunately, you cannot use that approach with generated identifiers. Hibernate will only assign identifier values to objects that are persistent; a newly created instance will not have any identifier value. Furthermore, if an instance is unsaved and currently in a <literal>Set</literal>, saving it will assign an identifier value to the object. If <literal>equals()</literal> and <literal>hashCode()</literal> are based on the identifier value, the hash code would change, breaking the contract of the <literal>Set</literal>. See the Hibernate website for a full discussion of this problem. This is not a Hibernate issue, but normal Ja!
 va semantics of object identity and equality."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:218
 #, no-c-format
 msgid "It is recommended that you implement <literal>equals()</literal> and <literal>hashCode()</literal> using <emphasis>Business key equality</emphasis>. Business key equality means that the <literal>equals()</literal> method compares only the properties that form the business key. It is a key that would identify our instance in the real world (a <emphasis>natural</emphasis> candidate key):"
 msgstr ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:226
+#, 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:228
 #, no-c-format
-msgid "A business key does not have to be as solid as a database primary key candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable or unique properties are usually good candidates for a business key."
+msgid "A business key does not have to be as solid as a database primary key candidate (see <xref linkend=\"transactions-basics-identity\"/>). Immutable or unique properties are usually good candidates for a business key."
 msgstr ""
 
 #. Tag: title
+#: persistent_classes.xml:238
 #, no-c-format
 msgid "Dynamic models"
 msgstr ""
 
 #. Tag: title
+#: persistent_classes.xml:241
 #, no-c-format
 msgid "Note"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: persistent_classes.xml:243
 #, no-c-format
-msgid "<emphasis>The following features are currently considered experimental and may change in the near future.</emphasis>"
+msgid "The following features are currently considered experimental and may change in the near future."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:248
 #, no-c-format
 msgid "Persistent entities do not necessarily have to be represented as POJO classes or as JavaBean objects at runtime. Hibernate also supports dynamic models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) and the representation of entities as DOM4J trees. With this approach, you do not write persistent classes, only mapping files."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:256
 #, 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\" />)."
+msgid "By default, Hibernate works in normal POJO mode. You can set a default entity representation mode for a particular <literal>SessionFactory</literal> using the <literal>default_entity_mode</literal> configuration option (see <xref linkend=\"configuration-optional-properties\"/>)."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:263
 #, 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 ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:269
+#, 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:271
 #, 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 ""
 
 #. Tag: para
+#: persistent_classes.xml:278
 #, 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 ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:284
+#, 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:286
 #, no-c-format
 msgid "One of the main advantages of dynamic mapping is quick turnaround time for prototyping, without the need for entity class implementation. However, you lose compile-time type checking and will likely deal with many exceptions at runtime. As a result of the Hibernate mapping, the database schema can easily be normalized and sound, allowing to add a proper domain model implementation on top later on."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:294
 #, no-c-format
 msgid "Entity representation modes can also be set on a per <literal>Session</literal> basis:"
 msgstr ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:299
+#, 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:302
 #, no-c-format
 msgid "Please note that the call to <literal>getSession()</literal> using an <literal>EntityMode</literal> is on the <literal>Session</literal> API, not the <literal>SessionFactory</literal>. That way, the new <literal>Session</literal> shares the underlying JDBC connection, transaction, and other context information. This means you do not have to call <literal>flush()</literal> and <literal>close()</literal> on the secondary <literal>Session</literal>, and also leave the transaction and connection handling to the primary unit of work."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:312
 #, no-c-format
-msgid "More information about the XML representation capabilities can be found in <xref linkend=\"xml\" />."
+msgid "More information about the XML representation capabilities can be found in <xref linkend=\"xml\"/>."
 msgstr ""
 
 #. Tag: title
+#: persistent_classes.xml:320
 #, no-c-format
 msgid "Tuplizers"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:322
 #, no-c-format
 msgid "<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are responsible for managing a particular representation of a piece of data given that representation's <literal>org.hibernate.EntityMode</literal>. If a given piece of data is thought of as a data structure, then a tuplizer is the thing that knows how to create such a data structure and how to extract values from and inject values into such a data structure. For example, for the POJO entity mode, the corresponding tuplizer knows how create the POJO through its constructor. It also knows how to access the POJO properties using the defined property accessors."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:332
 #, no-c-format
 msgid "There are two high-level types of Tuplizers, represented by the <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for managing the above mentioned contracts in regards to entities, while <literal>ComponentTuplizer</literal>s do the same for components."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:340
 #, no-c-format
 msgid "Users can also plug in their own tuplizers. Perhaps you require that a <literal>java.util.Map</literal> implementation other than <literal>java.util.HashMap</literal> be used while in the dynamic-map entity-mode. Or perhaps you need to define a different proxy generation strategy than the one used by default. Both would be achieved by defining a custom tuplizer implementation. Tuplizer definitions are attached to the entity or component mapping they are meant to manage. Going back to the example of our customer entity:"
 msgstr ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:349
+#, 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:356
 #, no-c-format
 msgid "EntityNameResolvers"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:358
 #, no-c-format
 msgid "The <interfacename>org.hibernate.EntityNameResolver</interfacename> interface is a contract for resolving the entity name of a given entity instance. The interface defines a single method <methodname>resolveEntityName</methodname> which is passed the entity instance and is expected to return the appropriate entity name (null is allowed and would indicate that the resolver does not know how to resolve the entity name of the given entity instance). Generally speaking, an <interfacename>org.hibernate.EntityNameResolver</interfacename> is going to be most useful in the case of dynamic models. One example might be using proxied interfaces as your domain model. The hibernate test suite has an example of this exact style of usage under the <package>org.hibernate.test.dynamicentity.tuplizer2</package>. Here is some of the code from that package for illustration."
 msgstr ""
 
+#. Tag: programlisting
+#: persistent_classes.xml:370
+#, 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:372
 #, no-c-format
 msgid "In order to register an <interfacename>org.hibernate.EntityNameResolver</interfacename> users must either:"
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:376
 #, no-c-format
-msgid "Implement a custom Tupelizer implementing the <methodname>getEntityNameResolvers</methodname> method (see <xref linkend=\"persistent-classes-tuplizers\" />)."
+msgid "Implement a custom Tupelizer implementing the <methodname>getEntityNameResolvers</methodname> method (see <xref linkend=\"persistent-classes-tuplizers\"/>)."
 msgstr ""
 
 #. Tag: para
+#: persistent_classes.xml:382
 #, no-c-format
 msgid "Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</classname> (which is the implementation class for <interfacename>org.hibernate.SessionFactory</interfacename>) using the <methodname>registerEntityNameResolver</methodname> method."
 msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/portability.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/portability.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/portability.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-02-10T07:25:35\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_criteria.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_criteria.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_criteria.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,219 +1,624 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: query_criteria.xml:30
 #, no-c-format
 msgid "Criteria Queries"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:32
 #, no-c-format
 msgid "Hibernate features an intuitive, extensible criteria query API."
 msgstr ""
 
 #. Tag: title
+#: query_criteria.xml:37
 #, no-c-format
 msgid "Creating a <literal>Criteria</literal> instance"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:39
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:45
+#, 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:50
 #, no-c-format
 msgid "Narrowing the result set"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:52
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:60
+#, 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:62
 #, no-c-format
 msgid "Restrictions can be grouped logically."
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:66
+#, 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:68
+#, 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:70
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:75
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:77
 #, no-c-format
 msgid "The <literal>{alias}</literal> placeholder with be replaced by the row alias of the queried entity."
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:82
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:88
+#, 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 ""
+
 #. Tag: title
+#: query_criteria.xml:93
 #, no-c-format
 msgid "Ordering the results"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:95
 #, no-c-format
 msgid "You can order the results using <literal>org.hibernate.criterion.Order</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:99
+#, 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 ""
+
+#. Tag: programlisting
+#: query_criteria.xml:101
+#, 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:106
 #, no-c-format
 msgid "Associations"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:108
 #, no-c-format
 msgid "By navigating associations using <literal>createCriteria()</literal> you can specify constraints upon related entities:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:113
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:115
 #, 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 ""
 
 #. Tag: para
+#: query_criteria.xml:121
 #, no-c-format
 msgid "There is also an alternate form that is useful in certain circumstances:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:125
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:127
 #, no-c-format
 msgid "(<literal>createAlias()</literal> does not create a new instance of <literal>Criteria</literal>.)"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:132
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:139
+#, 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 ""
+
 #. Tag: title
+#: query_criteria.xml:144
 #, no-c-format
 msgid "Dynamic association fetching"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:146
 #, no-c-format
 msgid "You can specify association fetching semantics at runtime using <literal>setFetchMode()</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:151
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:153
 #, 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."
+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 ""
 
 #. Tag: title
+#: query_criteria.xml:161
 #, no-c-format
 msgid "Example queries"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:163
 #, no-c-format
 msgid "The class <literal>org.hibernate.criterion.Example</literal> allows you to construct a query criterion from a given instance."
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:168
+#, 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:170
 #, no-c-format
 msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded."
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:175
 #, no-c-format
 msgid "You can adjust how the <literal>Example</literal> is applied."
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:179
+#, 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:181
 #, no-c-format
 msgid "You can even use examples to place criteria upon associated objects."
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:185
+#, 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:190
 #, no-c-format
 msgid "Projections, aggregation and grouping"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:191
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:197
+#, 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 ""
+
+#. Tag: programlisting
+#: query_criteria.xml:199
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:201
 #, 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 ""
 
 #. Tag: para
+#: query_criteria.xml:207
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:213
+#, 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 ""
+
+#. Tag: programlisting
+#: query_criteria.xml:215
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:217
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:224
+#, 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 ""
+
+#. Tag: programlisting
+#: query_criteria.xml:226
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:228
 #, no-c-format
 msgid "You can also use <literal>Property.forName()</literal> to express projections:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:232
+#, 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 ""
+
+#. Tag: programlisting
+#: query_criteria.xml:234
+#, 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 ""
+
 #. Tag: title
+#: query_criteria.xml:239
 #, no-c-format
 msgid "Detached queries and subqueries"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:240
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:245
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:247
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:253
+#, 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 ""
+
+#. Tag: programlisting
+#: query_criteria.xml:255
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:257
 #, no-c-format
 msgid "Correlated subqueries are also possible:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:261
+#, 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 ""
+
 #. Tag: title
+#: query_criteria.xml:270
 #, no-c-format
 msgid "Queries by natural identifier"
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:272
 #, 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 ""
 
 #. Tag: para
+#: query_criteria.xml:280
 #, no-c-format
 msgid "First, map the natural key of your entity using <literal>&lt;natural-id&gt;</literal> and enable use of the second-level cache."
 msgstr ""
 
+#. Tag: programlisting
+#: query_criteria.xml:285
+#, 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 ""
+
 #. Tag: para
+#: query_criteria.xml:287
 #, no-c-format
 msgid "This functionality is not intended for use with entities with <emphasis>mutable</emphasis> natural keys."
 msgstr ""
 
 #. Tag: para
+#: query_criteria.xml:292
 #, 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 ""
 
+#. Tag: programlisting
+#: query_criteria.xml:298
+#, 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 ""
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_hql.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_hql.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_hql.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,793 +1,1798 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: query_hql.xml:31
 #, no-c-format
 msgid "HQL: The Hibernate Query Language"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:33
 #, 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 ""
 
 #. Tag: title
+#: query_hql.xml:40
 #, no-c-format
 msgid "Case Sensitivity"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:42
 #, no-c-format
 msgid "With the exception of names of Java classes and properties, queries are case-insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</literal> is the same as <literal>SELECT</literal>, but <literal>org.hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:53
 #, 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 ""
 
 #. Tag: title
+#: query_hql.xml:61
 #, no-c-format
 msgid "The from clause"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:63
 #, no-c-format
 msgid "The simplest possible Hibernate query is of the form:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:67
+#, no-c-format
+msgid "<![CDATA[from eg.Cat]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:69
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:75
+#, no-c-format
+msgid "<![CDATA[from Cat]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:77
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:83 query_hql.xml:398
+#, no-c-format
+msgid "<![CDATA[from Cat as cat]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:85
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:91
+#, no-c-format
+msgid "<![CDATA[from Cat cat]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:93
 #, no-c-format
 msgid "Multiple classes can appear, resulting in a cartesian product or \"cross\" join."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:97
+#, no-c-format
+msgid "<![CDATA[from Formula, Parameter]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:98
+#, no-c-format
+msgid "<![CDATA[from Formula as form, Parameter as param]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:100
 #, 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 ""
 
 #. Tag: title
+#: query_hql.xml:109
 #, no-c-format
 msgid "Associations and joins"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:111
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:116
+#, 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 ""
+
+#. Tag: programlisting
+#: query_hql.xml:118
+#, no-c-format
+msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:120
+#, no-c-format
+msgid "<![CDATA[from Formula form full join form.parameter param]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:122
 #, no-c-format
 msgid "The supported join types are borrowed from ANSI SQL:"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: query_hql.xml:129
 #, no-c-format
-msgid "<literal>inner join</literal>"
+msgid "inner join"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: query_hql.xml:134
 #, no-c-format
-msgid "<literal>left outer join</literal>"
+msgid "left outer join"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: query_hql.xml:139
 #, no-c-format
-msgid "<literal>right outer join</literal>"
+msgid "right outer join"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:143
 #, no-c-format
 msgid "<literal>full join</literal> (not usually useful)"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:149
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:154
+#, 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:156
 #, no-c-format
 msgid "You may supply extra join conditions using the HQL <literal>with</literal> keyword."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:161
+#, no-c-format
+msgid ""
+      "<![CDATA[from Cat as cat\n"
+      "    left join cat.kittens as kitten\n"
+      "        with kitten.bodyWeight > 10.0]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:163
 #, no-c-format
-msgid "A \"fetch\" join allows associations or collections of values to be initialized along with their parent objects using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See <xref linkend=\"performance-fetching\" /> for more information."
+msgid "A \"fetch\" join allows associations or collections of values to be initialized along with their parent objects using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See <xref linkend=\"performance-fetching\"/> for more information."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:171
+#, 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:173
 #, no-c-format
 msgid "A fetch join does not usually need to assign an alias, because the associated objects should not be used in the <literal>where</literal> clause (or any other clause). The associated objects are also not returned directly in the query results. Instead, they may be accessed via the parent object. The only reason you might need an alias is if you are recursively join fetching a further collection:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:181
+#, 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:183
 #, no-c-format
 msgid "The <literal>fetch</literal> construct cannot be used in queries called using <literal>iterate()</literal> (though <literal>scroll()</literal> can be used). <literal>Fetch</literal> should be used together with <literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, as these operations are based on the result rows which usually contain duplicates for eager collection fetching, hence, the number of rows is not what you would expect. <literal>Fetch</literal> should also not be used together with impromptu <literal>with</literal> condition. It is possible to create a cartesian product by join fetching more than one collection in a query, so take care in this case. Join fetching multiple collection roles can produce unexpected results for bag mappings, so user discretion is advised when formulating queries in this case. Finally, note that <literal>full join fetch</literal> and <literal>right join fetch</literal> are not meaningful."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:198
 #, no-c-format
 msgid "If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties in the first query immediately using <literal>fetch all properties</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:204
+#, no-c-format
+msgid "<![CDATA[from Document fetch all properties order by name]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:205
+#, no-c-format
+msgid "<![CDATA[from Document doc fetch all properties where lower(doc.name) like '%cats%']]>"
+msgstr ""
+
 #. Tag: title
+#: query_hql.xml:210
 #, no-c-format
 msgid "Forms of join syntax"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:212
 #, no-c-format
 msgid "HQL supports two forms of association joining: <literal>implicit</literal> and <literal>explicit</literal>."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:216
 #, 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 ""
 
 #. Tag: para
+#: query_hql.xml:221
 #, no-c-format
 msgid "The <literal>implicit</literal> form does not use the join keyword. Instead, the associations are \"dereferenced\" using dot-notation. <literal>implicit</literal> joins can appear in any of the HQL clauses. <literal>implicit</literal> join result in inner joins in the resulting SQL statement."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:228
+#, no-c-format
+msgid "<![CDATA[from Cat as cat where cat.mate.name like '%s%']]>"
+msgstr ""
+
 #. Tag: title
+#: query_hql.xml:232
 #, no-c-format
 msgid "Referring to identifier property"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:234
 #, no-c-format
 msgid "There are 2 ways to refer to an entity's identifier property:"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:239
 #, 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 ""
 
 #. Tag: para
+#: query_hql.xml:246
 #, no-c-format
 msgid "If the entity defines a named identifier property, you can use that property name."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:252
 #, no-c-format
 msgid "References to composite identifier properties follow the same naming rules. If the entity has a non-identifier property named id, the composite identifier property can only be referenced by its defined named. Otherwise, the special <literal>id</literal> property can be used to reference the identifier property."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:260
 #, no-c-format
 msgid "Please note that, starting in version 3.2.2, this has changed significantly. In previous versions, <literal>id</literal> <emphasis>always</emphasis> referred to the identifier property regardless of its actual name. A ramification of that decision was that non-identifier properties named <literal>id</literal> could never be referenced in Hibernate queries."
 msgstr ""
 
 #. Tag: title
+#: query_hql.xml:271
 #, no-c-format
 msgid "The select clause"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:273
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:278
+#, 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:280
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:285
+#, no-c-format
+msgid "<![CDATA[select cat.mate from Cat cat]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:287
 #, no-c-format
 msgid "Queries can return properties of any value type including properties of component type:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:291
+#, no-c-format
+msgid ""
+      "<![CDATA[select cat.name from DomesticCat cat\n"
+      "where cat.name like 'fri%']]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:293
+#, no-c-format
+msgid "<![CDATA[select cust.name.firstName from Customer as cust]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:295
 #, no-c-format
 msgid "Queries can return multiple objects and/or properties as an array of type <literal>Object[]</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:300
+#, 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:302
 #, no-c-format
 msgid "Or as a <literal>List</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:306
+#, 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:308
 #, no-c-format
 msgid "Or - assuming that the class <literal>Family</literal> has an appropriate constructor - as an actual typesafe Java object:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:312
+#, 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 ""
+
 #. Tag: para
+#: query_hql.xml:315
 #, no-c-format
 msgid "You can assign aliases to selected expressions using <literal>as</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:319
+#, 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:321
 #, no-c-format
 msgid "This is most useful when used together with <literal>select new map</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:325
+#, 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:327
 #, no-c-format
 msgid "This query returns a <literal>Map</literal> from aliases to selected values."
 msgstr ""
 
 #. Tag: title
+#: query_hql.xml:334
 #, no-c-format
 msgid "Aggregate functions"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:336
 #, no-c-format
 msgid "HQL queries can even return the results of aggregate functions on properties:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:340
+#, 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:351
 #, no-c-format
 msgid "The supported aggregate functions are:"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: query_hql.xml:358
 #, no-c-format
-msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgid "avg(...), sum(...), min(...), max(...)"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: query_hql.xml:363
 #, no-c-format
-msgid "<literal>count(*)</literal>"
+msgid "count(*)"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: query_hql.xml:368
 #, no-c-format
-msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgid "count(...), count(distinct ...), count(all...)"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:373
 #, no-c-format
 msgid "You can use arithmetic operators, concatenation, and recognized SQL functions in the select clause:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:378
+#, 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:380
+#, no-c-format
+msgid "<![CDATA[select firstName||' '||initial||' '||upper(lastName) from Person]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:382
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:387
+#, 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:392
 #, no-c-format
 msgid "Polymorphic queries"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:394
 #, no-c-format
 msgid "A query like:"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:400
 #, no-c-format
 msgid "returns instances not only of <literal>Cat</literal>, but also of subclasses like <literal>DomesticCat</literal>. Hibernate queries can name <emphasis>any</emphasis> Java class or interface in the <literal>from</literal> clause. The query will return instances of all persistent classes that extend that class or implement the interface. The following query would return all persistent objects:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:408
+#, no-c-format
+msgid "<![CDATA[from java.lang.Object o]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:410
 #, no-c-format
 msgid "The interface <literal>Named</literal> might be implemented by various persistent classes:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:415
+#, no-c-format
+msgid "<![CDATA[from Named n, Named m where n.name = m.name]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:417
 #, 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 ""
 
 #. Tag: title
+#: query_hql.xml:426
 #, no-c-format
 msgid "The where clause"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:428
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:433
+#, no-c-format
+msgid "<![CDATA[from Cat where name='Fritz']]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:435
 #, no-c-format
 msgid "If there is an alias, use a qualified property name:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:439
+#, no-c-format
+msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:441
 #, no-c-format
 msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:445
 #, no-c-format
 msgid "The following query:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:447
+#, no-c-format
+msgid ""
+      "<![CDATA[select foo\n"
+      "from Foo foo, Bar bar\n"
+      "where foo.startDate = bar.date]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:449
 #, no-c-format
 msgid "returns all instances of <literal>Foo</literal> with an instance of <literal>bar</literal> with a <literal>date</literal> property equal to the <literal>startDate</literal> property of the <literal>Foo</literal>. Compound path expressions make the <literal>where</literal> clause extremely powerful. Consider the following:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:458
+#, no-c-format
+msgid "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:460
 #, no-c-format
 msgid "This query translates to an SQL query with a table (inner) join. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:465
+#, 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:467
 #, no-c-format
 msgid "would result in a query that would require four table joins in SQL."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:471
 #, no-c-format
 msgid "The <literal>=</literal> operator can be used to compare not only properties, but also instances:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:476
+#, no-c-format
+msgid "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:478
+#, 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:480
 #, 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."
+msgid "The special property (lowercase) <literal>id</literal> can be used to reference the unique identifier of an object. See <xref linkend=\"queryhql-identifier-property\"/> for more information."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:486
+#, 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:488
 #, no-c-format
 msgid "The second query is efficient and does not require a table join."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:492
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:498
+#, 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:500
+#, 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:502
 #, no-c-format
 msgid "Once again, the second query does not require a table join."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:506
 #, no-c-format
-msgid "See <xref linkend=\"queryhql-identifier-property\" /> for more information regarding referencing identifier properties)"
+msgid "See <xref linkend=\"queryhql-identifier-property\"/> for more information regarding referencing identifier properties)"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:511
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:517
+#, no-c-format
+msgid "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:519
 #, no-c-format
-msgid "You can also use components or composite user types, or properties of said component types. See <xref linkend=\"queryhql-components\" /> for more information."
+msgid "You can also use components or composite user types, or properties of said component types. See <xref linkend=\"queryhql-components\"/> for more information."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:524
 #, 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>&lt;any&gt;</literal>):"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:530
+#, 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:532
 #, no-c-format
 msgid "The <literal>log.item.class</literal> and <literal>payment.class</literal> would refer to the values of completely different database columns in the above query."
 msgstr ""
 
 #. Tag: title
+#: query_hql.xml:539
 #, no-c-format
 msgid "Expressions"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:541
 #, no-c-format
 msgid "Expressions used in the <literal>where</literal> clause include the following:"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:547
 #, no-c-format
 msgid "mathematical operators: <literal>+, -, *, /</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:552
 #, no-c-format
 msgid "binary comparison operators: <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, like</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:557
 #, no-c-format
 msgid "logical operations <literal>and, or, not</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:562
 #, no-c-format
 msgid "Parentheses <literal>( )</literal> that indicates grouping"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:567
 #, no-c-format
 msgid "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> and <literal>not member of</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:580
 #, no-c-format
 msgid "\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:586
 #, no-c-format
 msgid "string concatenation <literal>...||...</literal> or <literal>concat(...,...)</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:591
 #, no-c-format
 msgid "<literal>current_date()</literal>, <literal>current_time()</literal>, and <literal>current_timestamp()</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:597
 #, no-c-format
 msgid "<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, and <literal>year(...)</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:604
 #, 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 ""
 
 #. Tag: para
+#: query_hql.xml:610
 #, no-c-format
 msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:615
 #, no-c-format
 msgid "<literal>str()</literal> for converting numeric or temporal values to a readable string"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:621
 #, no-c-format
 msgid "<literal>cast(... as ...)</literal>, where the second argument is the name of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI <literal>cast()</literal> and <literal>extract()</literal> is supported by the underlying database"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:629
 #, no-c-format
 msgid "the HQL <literal>index()</literal> function, that applies to aliases of a joined indexed collection"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:635
 #, no-c-format
 msgid "HQL functions that take collection-valued path expressions: <literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>, along with the special <literal>elements()</literal> and <literal>indices</literal> functions that can be quantified using <literal>some, all, exists, any, in</literal>."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:643
 #, 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 ""
 
 #. Tag: para
+#: query_hql.xml:649
 #, no-c-format
 msgid "JDBC-style positional parameters <literal>?</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:654
 #, no-c-format
 msgid "named parameters <literal>:name</literal>, <literal>:start_date</literal>, and <literal>:x1</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:659
 #, no-c-format
 msgid "SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:665
 #, no-c-format
 msgid "Java <literal>public static final</literal> constants <literal>eg.Color.TABBY</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:671
 #, no-c-format
 msgid "<literal>in</literal> and <literal>between</literal> can be used as follows:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:675
+#, no-c-format
+msgid "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:677
+#, no-c-format
+msgid "<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:679
 #, no-c-format
 msgid "The negated forms can be written as follows:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:683
+#, no-c-format
+msgid "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:685
+#, no-c-format
+msgid "<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:687
 #, no-c-format
 msgid "Similarly, <literal>is null</literal> and <literal>is not null</literal> can be used to test for null values."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:692
 #, no-c-format
 msgid "Booleans can be easily used in expressions by declaring HQL query substitutions in Hibernate configuration:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:697
+#, no-c-format
+msgid "<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false 0</property>]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:699
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:704
+#, no-c-format
+msgid "<![CDATA[from Cat cat where cat.alive = true]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:706
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:711
+#, no-c-format
+msgid "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:713
+#, no-c-format
+msgid "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:715
 #, no-c-format
 msgid "For indexed collections, you can refer to the minimum and maximum indices using <literal>minindex</literal> and <literal>maxindex</literal> functions. Similarly, you can refer to the minimum and maximum elements of a collection of basic type using the <literal>minelement</literal> and <literal>maxelement</literal> functions. For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:723
+#, no-c-format
+msgid "<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:725
+#, no-c-format
+msgid "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:727
+#, no-c-format
+msgid "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:729
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:735
+#, 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:737
+#, 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:739
+#, no-c-format
+msgid "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:741
+#, no-c-format
+msgid "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:743
+#, no-c-format
+msgid "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:745
 #, 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 ""
 
 #. Tag: para
+#: query_hql.xml:752
 #, no-c-format
 msgid "Elements of indexed collections (arrays, lists, and maps) can be referred to by index in a where clause only:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:757
+#, no-c-format
+msgid "<![CDATA[from Order order where order.items[0].id = 1234]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:759
+#, 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:761
+#, 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:763
+#, 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:765
 #, no-c-format
 msgid "The expression inside <literal>[]</literal> can even be an arithmetic expression:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:769
+#, 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:771
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:776
+#, 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:778
 #, no-c-format
 msgid "Scalar SQL functions supported by the underlying database can be used:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:782
+#, no-c-format
+msgid "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:784
 #, no-c-format
 msgid "Consider how much longer and less readable the following query would be in SQL:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:789
+#, 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:791
 #, no-c-format
 msgid "<emphasis>Hint:</emphasis> something like"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:795
+#, 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:800
 #, no-c-format
 msgid "The order by clause"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:802
 #, no-c-format
 msgid "The list returned by a query can be ordered by any property of a returned class or components:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:806
+#, 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:808
 #, no-c-format
 msgid "The optional <literal>asc</literal> or <literal>desc</literal> indicate ascending or descending order respectively."
 msgstr ""
 
 #. Tag: title
+#: query_hql.xml:815
 #, no-c-format
 msgid "The group by clause"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:817
 #, no-c-format
 msgid "A query that returns aggregate values can be grouped by any property of a returned class or components:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:821
+#, 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:823
+#, 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:825
 #, no-c-format
 msgid "A <literal>having</literal> clause is also allowed."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:829
+#, 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:831
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:837
+#, 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:839
 #, 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 ""
 
 #. Tag: title
+#: query_hql.xml:851
 #, no-c-format
 msgid "Subqueries"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:853
 #, no-c-format
 msgid "For databases that support subselects, Hibernate supports subqueries within queries. A subquery must be surrounded by parentheses (often by an SQL aggregate function call). Even correlated subqueries (subqueries that refer to an alias in the outer query) are allowed."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:859
+#, 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:861
+#, 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:863
+#, 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:865
+#, 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:867
+#, 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:869
 #, no-c-format
 msgid "Note that HQL subqueries can occur only in the select or where clauses."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:873
 #, no-c-format
-msgid "Note that subqueries can also utilize <literal>row value constructor</literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more information."
+msgid "Note that subqueries can also utilize <literal>row value constructor</literal> syntax. See <xref linkend=\"queryhql-tuple\"/> for more information."
 msgstr ""
 
 #. Tag: title
+#: query_hql.xml:881
 #, no-c-format
 msgid "HQL examples"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:883
 #, no-c-format
 msgid "Hibernate queries can be quite powerful and complex. In fact, the power of the query language is one of Hibernate's main strengths. The following example queries are similar to queries that have been used on recent projects. Please note that most queries you will write will be much simpler than the following examples."
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:889
 #, no-c-format
 msgid "The following query returns the order id, number of items, the given minimum total value and the total value of the order for all unpaid orders for a particular customer. The results are ordered by total value. In determining the prices, it uses the current catalog. The resulting SQL query, against the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has four inner joins and an (uncorrelated) subselect."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:898
+#, 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:900
 #, no-c-format
 msgid "What a monster! Actually, in real life, I'm not very keen on subqueries, so my query was really more like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:905
+#, 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:907
 #, no-c-format
 msgid "The next query counts the number of payments in each status, excluding all payments in the <literal>AWAITING_APPROVAL</literal> status where the most recent status change was made by the current user. It translates to an SQL query with two inner joins and a correlated subselect against the <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and <literal>PAYMENT_STATUS_CHANGE</literal> tables."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:915
+#, 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:917
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:922
+#, 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:924
 #, no-c-format
 msgid "The next query uses the MS SQL Server <literal>isNull()</literal> function to return all the accounts and unpaid payments for the organization to which the current user belongs. It translates to an SQL query with three inner joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and <literal>ORG_USER</literal> tables."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:933
+#, 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:935
 #, no-c-format
 msgid "For some databases, we would need to do away with the (correlated) subselect."
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:939
+#, 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:944
 #, no-c-format
 msgid "Bulk update and delete"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:946
 #, 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."
+msgid "HQL now supports <literal>update</literal>, <literal>delete</literal> and <literal>insert ... select ...</literal> statements. See <xref linkend=\"batch-direct\"/> for more information."
 msgstr ""
 
 #. Tag: title
+#: query_hql.xml:954
 #, no-c-format
 msgid "Tips &amp; Tricks"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:956
 #, no-c-format
 msgid "You can count the number of query results without returning them:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:960
+#, no-c-format
+msgid "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\").iterate().next() ).intValue()]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:962
 #, no-c-format
 msgid "To order a result by the size of a collection, use the following query:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:966
+#, 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:968
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:973
+#, no-c-format
+msgid "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:975
 #, no-c-format
 msgid "If your database does not support subselects, use the following query:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:979
+#, 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:982
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:987
+#, 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:989
 #, no-c-format
 msgid "Properties of a JavaBean can be bound to named query parameters:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:993
+#, 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:995
 #, no-c-format
 msgid "Collections are pageable by using the <literal>Query</literal> interface with a filter:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:999
+#, 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:1001
 #, no-c-format
 msgid "Collection elements can be ordered or grouped using a query filter:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:1005
+#, 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:1007
 #, no-c-format
 msgid "You can find the size of a collection without initializing it:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:1011
+#, no-c-format
+msgid "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\").iterate().next() ).intValue();]]>"
+msgstr ""
+
 #. Tag: title
+#: query_hql.xml:1016
 #, no-c-format
 msgid "Components"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:1018
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:1023 query_hql.xml:1069
+#, no-c-format
+msgid "<![CDATA[select p.name from Person p]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:1024
+#, no-c-format
+msgid "<![CDATA[select p.name.first from Person p]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:1026
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:1031
+#, no-c-format
+msgid "<![CDATA[from Person p where p.name = :name]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:1032
+#, no-c-format
+msgid "<![CDATA[from Person p where p.name.first = :firstName]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:1034
 #, no-c-format
 msgid "Components can also be used in the <literal>order by</literal> clause:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:1038
+#, no-c-format
+msgid "<![CDATA[from Person p order by p.name]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: query_hql.xml:1039
+#, no-c-format
+msgid "<![CDATA[from Person p order by p.name.first]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:1041
 #, no-c-format
-msgid "Another common use of components is in row value constructors (<xref linkend=\"queryhql-tuple\" />)."
+msgid "Another common use of components is in row value constructors (<xref linkend=\"queryhql-tuple\"/>)."
 msgstr ""
 
 #. Tag: title
+#: query_hql.xml:1047
 #, no-c-format
 msgid "Row value constructor syntax"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:1049
 #, no-c-format
 msgid "HQL supports the use of ANSI SQL <literal>row value constructor</literal> syntax, sometimes referred to AS <literal>tuple</literal> syntax, even though the underlying database may not support that notion. Here, we are generally referring to multi-valued comparisons, typically associated with components. Consider an entity Person which defines a name component:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_hql.xml:1056
+#, 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:1058
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:1063
+#, no-c-format
+msgid "<![CDATA[from Person p where p.name=('John', 'Jingleheimer-Schmidt')]]>"
+msgstr ""
+
 #. Tag: para
+#: query_hql.xml:1065
 #, no-c-format
 msgid "It can also be useful to specify this in the <literal>select</literal> clause:"
 msgstr ""
 
 #. Tag: para
+#: query_hql.xml:1071
 #, 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 ""
 
+#. Tag: programlisting
+#: query_hql.xml:1076
+#, 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:1078
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_sql.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_sql.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/query_sql.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,589 +1,1112 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: query_sql.xml:31
 #, no-c-format
 msgid "Native SQL"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:33
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:39
 #, no-c-format
 msgid "Hibernate3 allows you to specify handwritten SQL, including stored procedures, for all create, update, delete, and load operations."
 msgstr ""
 
 #. Tag: title
+#: query_sql.xml:43
 #, no-c-format
 msgid "Using a <literal>SQLQuery</literal>"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:45
 #, 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 ""
 
 #. Tag: title
+#: query_sql.xml:51
 #, no-c-format
 msgid "Scalar queries"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:53
 #, no-c-format
 msgid "The most basic SQL query is to get a list of scalars (values)."
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:56
+#, no-c-format
+msgid ""
+      "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+      "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
+      "]]>"
+msgstr ""
+
 #. Tag: para
+#: query_sql.xml:58
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:63
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:67
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:69 query_sql.xml:115 query_sql.xml:200 query_sql.xml:351
 #, no-c-format
 msgid "This query specified:"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:73 query_sql.xml:119 query_sql.xml:355
 #, no-c-format
 msgid "the SQL query string"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:77
 #, no-c-format
 msgid "the columns and types to return"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:81
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:89
 #, no-c-format
 msgid "It is possible to leave out the type information for all or some of the scalars."
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:92
+#, no-c-format
+msgid ""
+      "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+      " .addScalar(\"ID\", Hibernate.LONG)\n"
+      " .addScalar(\"NAME\")\n"
+      " .addScalar(\"BIRTHDATE\")\n"
+      "]]>"
+msgstr ""
+
 #. Tag: para
+#: query_sql.xml:94
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:98
 #, 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 ""
 
 #. Tag: title
+#: query_sql.xml:106
 #, no-c-format
 msgid "Entity queries"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:108
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:113
+#, 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:123
 #, no-c-format
 msgid "the entity returned by the query"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:127
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:131
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:139
+#, 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:141
 #, no-c-format
 msgid "This will allow cat.getDog() to function properly."
 msgstr ""
 
 #. Tag: title
+#: query_sql.xml:145
 #, no-c-format
 msgid "Handling associations and collections"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:147
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:152
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:154
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:162
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:164
 #, 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 ""
 
 #. Tag: title
+#: query_sql.xml:172
 #, no-c-format
 msgid "Returning multiple entities"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:174
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:179
 #, no-c-format
 msgid "Column alias injection is needed in the following query (which most likely will fail):"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:182
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:186
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:195
 #, no-c-format
 msgid "The following form is not vulnerable to column name duplication:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:198
+#, 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:204
 #, no-c-format
 msgid "the SQL query string, with placeholders for Hibernate to inject column aliases"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:209
 #, no-c-format
 msgid "the entities returned by the query"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:213
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:222
+#, 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 ""
+
 #. Tag: title
+#: query_sql.xml:225
 #, no-c-format
 msgid "Alias and property references"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:227
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:232
 #, 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:238
 #, no-c-format
 msgid "Alias injection names"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:249
 #, no-c-format
 msgid "Description"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:251
 #, no-c-format
 msgid "Syntax"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:253
 #, no-c-format
 msgid "Example"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:259
 #, no-c-format
 msgid "A simple property"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:261
 #, no-c-format
-msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgid "{[aliasname].[propertyname]"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:263
 #, no-c-format
-msgid "<literal>A_NAME as {item.name}</literal>"
+msgid "A_NAME as {item.name}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:267
 #, no-c-format
 msgid "A composite property"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:269
 #, no-c-format
-msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+msgid "{[aliasname].[componentname].[propertyname]}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:271
 #, no-c-format
-msgid "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</literal>"
+msgid "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:276
 #, no-c-format
 msgid "Discriminator of an entity"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:278
 #, no-c-format
-msgid "<literal>{[aliasname].class}</literal>"
+msgid "{[aliasname].class}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:280
 #, no-c-format
-msgid "<literal>DISC as {item.class}</literal>"
+msgid "DISC as {item.class}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:284
 #, no-c-format
 msgid "All properties of an entity"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:286 query_sql.xml:334
 #, no-c-format
-msgid "<literal>{[aliasname].*}</literal>"
+msgid "{[aliasname].*}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:288
 #, no-c-format
-msgid "<literal>{item.*}</literal>"
+msgid "{item.*}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:292
 #, no-c-format
 msgid "A collection key"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:294
 #, no-c-format
-msgid "<literal>{[aliasname].key}</literal>"
+msgid "{[aliasname].key}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:296
 #, no-c-format
-msgid "<literal>ORGID as {coll.key}</literal>"
+msgid "ORGID as {coll.key}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:300
 #, no-c-format
 msgid "The id of an collection"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:302
 #, no-c-format
-msgid "<literal>{[aliasname].id}</literal>"
+msgid "{[aliasname].id}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:304
 #, no-c-format
-msgid "<literal>EMPID as {coll.id}</literal>"
+msgid "EMPID as {coll.id}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:308
 #, no-c-format
 msgid "The element of an collection"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:310
 #, no-c-format
-msgid "<literal>{[aliasname].element}</literal>"
+msgid "{[aliasname].element}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:312
 #, no-c-format
-msgid "<literal>XID as {coll.element}</literal>"
+msgid "XID as {coll.element}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:316
 #, no-c-format
 msgid "property of the element in the collection"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:318
 #, no-c-format
-msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgid "{[aliasname].element.[propertyname]}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:320
 #, no-c-format
-msgid "<literal>NAME as {coll.element.name}</literal>"
+msgid "NAME as {coll.element.name}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:324
 #, no-c-format
 msgid "All properties of the element in the collection"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:326
 #, no-c-format
-msgid "<literal>{[aliasname].element.*}</literal>"
+msgid "{[aliasname].element.*}"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:328
 #, no-c-format
-msgid "<literal>{coll.element.*}</literal>"
+msgid "{coll.element.*}"
 msgstr ""
 
 #. Tag: entry
+#: query_sql.xml:332
 #, no-c-format
 msgid "All properties of the the collection"
 msgstr ""
 
-#. Tag: entry
+#. Tag: literal
+#: query_sql.xml:336
 #, no-c-format
-msgid "<literal>{coll.*}</literal>"
+msgid "{coll.*}"
 msgstr ""
 
 #. Tag: title
+#: query_sql.xml:345
 #, no-c-format
 msgid "Returning non-managed entities"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:347
 #, no-c-format
 msgid "It is possible to apply a ResultTransformer to native SQL queries, allowing it to return non-managed entities."
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:349
+#, no-c-format
+msgid ""
+      "<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+      "        .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
+msgstr ""
+
 #. Tag: para
+#: query_sql.xml:359
 #, no-c-format
 msgid "a result transformer"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:363
 #, 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 ""
 
 #. Tag: title
+#: query_sql.xml:370
 #, no-c-format
 msgid "Handling inheritance"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:372
 #, 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 ""
 
 #. Tag: title
+#: query_sql.xml:378
 #, no-c-format
 msgid "Parameters"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:380
 #, no-c-format
 msgid "Native SQL queries support positional as well as named parameters:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:383
+#, 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:391
 #, no-c-format
 msgid "Named SQL queries"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:393
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:398
+#, 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 ""
+
+#. Tag: programlisting
+#: query_sql.xml:400
+#, 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:402
 #, no-c-format
 msgid "The <literal>&lt;return-join&gt;</literal> element is use to join associations and the <literal>&lt;load-collection&gt;</literal> element is used to define queries which initialize collections,"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:406
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:408
 #, 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>&lt;return-scalar&gt;</literal> element:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:412
+#, 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:414
 #, no-c-format
 msgid "You can externalize the resultset mapping information in a <literal>&lt;resultset&gt;</literal> element which will allow you to either reuse them across several named queries or through the <literal>setResultSetMapping()</literal> API."
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:419
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:421
 #, no-c-format
 msgid "You can, alternatively, use the resultset mapping information in your hbm files directly in java code."
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:424
+#, 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 ""
+
 #. Tag: title
+#: query_sql.xml:427
 #, no-c-format
 msgid "Using return-property to explicitly specify column/alias names"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:430
 #, no-c-format
 msgid "You can explicitly tell Hibernate what column aliases to use with <literal>&lt;return-property&gt;</literal>, instead of using the <literal>{}</literal>-syntax to let Hibernate inject its own aliases.For example:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:435
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:437
 #, no-c-format
 msgid "<literal>&lt;return-property&gt;</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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:442
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:444
 #, no-c-format
 msgid "In this example <literal>&lt;return-property&gt;</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 ""
 
 #. Tag: para
+#: query_sql.xml:449
 #, no-c-format
 msgid "If your mapping has a discriminator you must use <literal>&lt;return-discriminator&gt;</literal> to specify the discriminator column."
 msgstr ""
 
 #. Tag: title
+#: query_sql.xml:455
 #, no-c-format
 msgid "Using stored procedures for querying"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:457
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:463
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:465
 #, no-c-format
 msgid "To use this query in Hibernate you need to map it via a named query."
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:468
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:470
 #, no-c-format
 msgid "Stored procedures currently only return scalars and entities. <literal>&lt;return-join&gt;</literal> and <literal>&lt;load-collection&gt;</literal> are not supported."
 msgstr ""
 
 #. Tag: title
+#: query_sql.xml:475
 #, no-c-format
 msgid "Rules/limitations for using stored procedures"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:477
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:484
 #, no-c-format
 msgid "Stored procedure queries cannot be paged with <literal>setFirstResult()/setMaxResults()</literal>."
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:487
 #, no-c-format
 msgid "The recommended call form is standard SQL92: <literal>{ ? = call functionName(&lt;parameters&gt;) }</literal> or <literal>{ ? = call procedureName(&lt;parameters&gt;}</literal>. Native call syntax is not supported."
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:492
 #, no-c-format
 msgid "For Oracle the following rules apply:"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:496
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:505
 #, no-c-format
 msgid "For Sybase or MS SQL server the following rules apply:"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:509
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:517
 #, 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 ""
 
 #. Tag: title
+#: query_sql.xml:527
 #, no-c-format
 msgid "Custom SQL for create, update and delete"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:529
 #, 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>&lt;sql-insert&gt;</literal>, <literal>&lt;sql-delete&gt;</literal>, and <literal>&lt;sql-update&gt;</literal> override these strings:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:537
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:539
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:543
 #, no-c-format
 msgid "Stored procedures are supported if the <literal>callable</literal> attribute is set:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:546
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:548
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:551
 #, 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 ""
 
 #. Tag: para
+#: query_sql.xml:558
 #, 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 ""
 
+#. Tag: programlisting
+#: query_sql.xml:564
+#, 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 ""
+
 #. Tag: title
+#: query_sql.xml:568
 #, no-c-format
 msgid "Custom SQL for loading"
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:570
 #, no-c-format
 msgid "You can also declare your own SQL (or HQL) queries for entity loading:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:573
+#, 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:575
 #, 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:578
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:580
 #, no-c-format
 msgid "This even works with stored procedures."
 msgstr ""
 
 #. Tag: para
+#: query_sql.xml:582
 #, no-c-format
 msgid "You can even define a query for collection loading:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:584
+#, 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 ""
+
+#. Tag: programlisting
+#: query_sql.xml:586
+#, 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 ""
+
 #. Tag: para
+#: query_sql.xml:588
 #, no-c-format
 msgid "You can also define an entity loader that loads a collection by join fetching:"
 msgstr ""
 
+#. Tag: programlisting
+#: query_sql.xml:591
+#, 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 ""
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/session_api.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/session_api.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/session_api.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,759 +1,1354 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
-"PO-Revision-Date: 2010-01-08T04:07:19\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: session_api.xml:31
 #, no-c-format
 msgid "Working with objects"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:33
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:42
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:50
 #, no-c-format
 msgid "Hibernate object states"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:52
 #, no-c-format
 msgid "Hibernate defines and supports the following object states:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:58
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:70
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:81
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:95
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:103
 #, no-c-format
 msgid "Making objects persistent"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:105
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:112
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:114
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:126
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:137
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:147
 #, no-c-format
 msgid "Alternatively, you can assign the identifier using an overloaded version of <literal>save()</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: session_api.xml:152
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:154
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:164
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:175
 #, no-c-format
 msgid "Loading an object"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:177
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:184
+#, no-c-format
+msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: session_api.xml:186
+#, 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:188
 #, no-c-format
 msgid "Alternatively, you can load state into a given instance:"
 msgstr ""
 
+#. Tag: programlisting
+#: session_api.xml:192
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:194
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:205
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:211
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:213
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:218
+#, no-c-format
+msgid "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
+msgstr ""
+
 #. Tag: para
+#: session_api.xml:220
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:227
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:233
+#, 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:235
 #, 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\" />."
+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 ""
 
 #. Tag: title
+#: session_api.xml:245
 #, no-c-format
 msgid "Querying"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:247
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:257
 #, no-c-format
 msgid "Executing queries"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:259
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:266
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:268
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:280
 #, no-c-format
 msgid "Iterating results"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:282
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:294
+#, 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 ""
+
 #. Tag: title
+#: session_api.xml:298
 #, no-c-format
 msgid "Queries that return tuples"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:300
 #, no-c-format
 msgid "Hibernate queries sometimes return tuples of objects. Each tuple is returned as an array:"
 msgstr ""
 
+#. Tag: programlisting
+#: session_api.xml:305
+#, 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 ""
+
 #. Tag: title
+#: session_api.xml:310
 #, no-c-format
 msgid "Scalar results"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:312
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:318
+#, 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 ""
+
 #. Tag: title
+#: session_api.xml:323
 #, no-c-format
 msgid "Bind parameters"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:325
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:335
 #, no-c-format
 msgid "named parameters are insensitive to the order they occur in the query string"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:341
 #, no-c-format
 msgid "they can occur multiple times in the same query"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:346
 #, no-c-format
 msgid "they are self-documenting"
 msgstr ""
 
+#. Tag: programlisting
+#: session_api.xml:352
+#, 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:354
+#, 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:356
+#, 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:361
 #, no-c-format
 msgid "Pagination"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:363
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:369
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:371
 #, no-c-format
 msgid "Hibernate knows how to translate this limit query into the native SQL of your DBMS."
 msgstr ""
 
 #. Tag: title
+#: session_api.xml:379
 #, no-c-format
 msgid "Scrollable iteration"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:381
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:388
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:390
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:399
 #, no-c-format
 msgid "Externalizing named queries"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:401
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:407
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:409
 #, no-c-format
 msgid "Parameter binding and executing is done programatically:"
 msgstr ""
 
+#. Tag: programlisting
+#: session_api.xml:413
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:415
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:421
 #, no-c-format
 msgid "Also note that a query declaration inside a <literal>&lt;hibernate-mapping&gt;</literal> element requires a global unique name for the query, while a query declaration inside a <literal>&lt;class&gt;</literal> element is made unique automatically by prepending the fully qualified name of the class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
 msgstr ""
 
 #. Tag: title
+#: session_api.xml:434
 #, no-c-format
 msgid "Filtering collections"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:435
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:441
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:443
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:449
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:454
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:456
 #, no-c-format
 msgid "Even an empty filter query is useful, e.g. to load a subset of elements in a large collection:"
 msgstr ""
 
+#. Tag: programlisting
+#: session_api.xml:461
+#, no-c-format
+msgid ""
+      "<![CDATA[Collection tenKittens = session.createFilter(\n"
+      "    mother.getKittens(), \"\")\n"
+      "    .setFirstResult(0).setMaxResults(10)\n"
+      "    .list();]]>"
+msgstr ""
+
 #. Tag: title
+#: session_api.xml:466
 #, no-c-format
 msgid "Criteria queries"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:468
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:474
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:476
 #, no-c-format
-msgid "The <literal>Criteria</literal> and the associated <literal>Example</literal> API are discussed in more detail in <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 ""
 
 #. Tag: title
+#: session_api.xml:484
 #, no-c-format
 msgid "Queries in native SQL"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:486
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:494
+#, 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 ""
+
+#. Tag: programlisting
+#: session_api.xml:496
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:498
 #, 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\" />."
+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 ""
 
 #. Tag: title
+#: session_api.xml:509
 #, no-c-format
 msgid "Modifying persistent objects"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:511
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:522
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:524
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:531
 #, 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."
+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 ""
 
 #. Tag: title
+#: session_api.xml:548
 #, no-c-format
 msgid "Modifying detached objects"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:550
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:557
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:563
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:565
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:571
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:580
 #, 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."
+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 ""
 
 #. Tag: para
+#: session_api.xml:587
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:592
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:594
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:601
 #, no-c-format
-msgid "Other models for long units of work are discussed in <xref linkend=\"transactions-optimistic\" />."
+msgid "Other models for long units of work are discussed in <xref linkend=\"transactions-optimistic\"/>."
 msgstr ""
 
 #. Tag: title
+#: session_api.xml:608
 #, no-c-format
 msgid "Automatic state detection"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:610
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:617
+#, 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:619
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:627
 #, no-c-format
 msgid "Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are used in the following scenario:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:634
 #, no-c-format
 msgid "the application loads an object in the first session"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:639
 #, no-c-format
 msgid "the object is passed up to the UI tier"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:644
 #, no-c-format
 msgid "some modifications are made to the object"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:649
 #, no-c-format
 msgid "the object is passed back down to the business logic tier"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:654
 #, no-c-format
 msgid "the application persists these modifications by calling <literal>update()</literal> in a second session"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:661
 #, no-c-format
 msgid "<literal>saveOrUpdate()</literal> does the following:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:667
 #, no-c-format
 msgid "if the object is already persistent in this session, do nothing"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:672
 #, no-c-format
 msgid "if another object associated with the session has the same identifier, throw an exception"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:678
 #, no-c-format
 msgid "if the object has no identifier property, <literal>save()</literal> it"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:683
 #, no-c-format
 msgid "if the object's identifier has the value assigned to a newly instantiated object, <literal>save()</literal> it"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:689
 #, no-c-format
 msgid "if the object is versioned by a <literal>&lt;version&gt;</literal> or <literal>&lt;timestamp&gt;</literal>, and the version property value is the same value assigned to a newly instantiated object, <literal>save()</literal> it"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:697
 #, no-c-format
 msgid "otherwise <literal>update()</literal> the object"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:703
 #, no-c-format
 msgid "and <literal>merge()</literal> is very different:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:709
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:716
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:722
 #, no-c-format
 msgid "the persistent instance is returned"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:727
 #, no-c-format
 msgid "the given instance does not become associated with the session, it remains detached"
 msgstr ""
 
 #. Tag: title
+#: session_api.xml:737
 #, no-c-format
 msgid "Deleting persistent objects"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:739
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:746
+#, no-c-format
+msgid "<![CDATA[sess.delete(cat);]]>"
+msgstr ""
+
 #. Tag: para
+#: session_api.xml:748
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:759
 #, no-c-format
 msgid "Replicating object between two different datastores"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:761
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:767
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:769
 #, no-c-format
 msgid "The <literal>ReplicationMode</literal> determines how <literal>replicate()</literal> will deal with conflicts with existing rows in the database:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:776
 #, no-c-format
 msgid "<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is an existing database row with the same identifier"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:782
 #, no-c-format
 msgid "<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing database row with the same identifier"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:788
 #, no-c-format
 msgid "<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there is an existing database row with the same identifier"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:794
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:802
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:811
 #, no-c-format
 msgid "Flushing the Session"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:813
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:822
 #, no-c-format
 msgid "before some query executions"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:827
 #, no-c-format
 msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:832
 #, no-c-format
 msgid "from <literal>Session.flush()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:838
 #, no-c-format
 msgid "The SQL statements are issued in the following order:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:844
 #, no-c-format
 msgid "all entity insertions in the same order the corresponding objects were saved using <literal>Session.save()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:850
 #, no-c-format
 msgid "all entity updates"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:855
 #, no-c-format
 msgid "all collection deletions"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:860
 #, no-c-format
 msgid "all collection element deletions, updates and insertions"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:865
 #, no-c-format
 msgid "all collection insertions"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:870
 #, no-c-format
 msgid "all entity deletions in the same order the corresponding objects were deleted using <literal>Session.delete()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:877
 #, no-c-format
 msgid "An exception is that objects using <literal>native</literal> ID generation are inserted when they are saved."
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:882
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:890
 #, 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\" />)."
+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 ""
 
+#. Tag: programlisting
+#: session_api.xml:900
+#, 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 ""
+
 #. Tag: para
+#: session_api.xml:902
 #, 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\" />."
+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 ""
 
 #. Tag: title
+#: session_api.xml:911
 #, no-c-format
 msgid "Transitive persistence"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:913
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:919
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:930
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:939
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:948
+#, no-c-format
+msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: session_api.xml:950
 #, no-c-format
 msgid "Cascade styles my be combined:"
 msgstr ""
 
+#. Tag: programlisting
+#: session_api.xml:954
+#, no-c-format
+msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: session_api.xml:956
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:962
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:969
 #, no-c-format
 msgid "Recommendations:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:975
 #, no-c-format
 msgid "It does not usually make sense to enable cascade on a <literal>&lt;many-to-one&gt;</literal> or <literal>&lt;many-to-many&gt;</literal> association. Cascade is often useful for <literal>&lt;one-to-one&gt;</literal> and <literal>&lt;one-to-many&gt;</literal> associations."
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:983
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:990
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:998
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:1004
 #, 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>&lt;one-to-many&gt;</literal> association mapped with <literal>cascade=\"delete-orphan\"</literal>. The precise semantics of cascading operations for a parent/child relationship are as follows:"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:1015
 #, no-c-format
 msgid "If a parent is passed to <literal>persist()</literal>, all children are passed to <literal>persist()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:1021
 #, no-c-format
 msgid "If a parent is passed to <literal>merge()</literal>, all children are passed to <literal>merge()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:1027
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:1033
 #, no-c-format
 msgid "If a transient or detached child becomes referenced by a persistent parent, it is passed to <literal>saveOrUpdate()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:1039
 #, no-c-format
 msgid "If a parent is deleted, all children are passed to <literal>delete()</literal>"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:1044
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:1053
 #, 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 ""
 
 #. Tag: title
+#: session_api.xml:1065
 #, no-c-format
 msgid "Using metadata"
 msgstr ""
 
 #. Tag: para
+#: session_api.xml:1067
 #, 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 ""
 
 #. Tag: para
+#: session_api.xml:1074
 #, 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 ""
 
+#. Tag: programlisting
+#: session_api.xml:1081
+#, 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 ""
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/toolset_guide.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/toolset_guide.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/toolset_guide.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,634 +1,962 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
-"PO-Revision-Date: 2010-01-08T04:07:20\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: toolset_guide.xml:31
 #, no-c-format
 msgid "Toolset Guide"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:33
 #, no-c-format
 msgid "Roundtrip engineering with Hibernate is possible using a set of Eclipse plugins, commandline tools, and Ant tasks."
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:38
 #, 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 ""
 
 #. Tag: para
+#: toolset_guide.xml:44
 #, 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 ""
 
 #. Tag: para
+#: toolset_guide.xml:49
 #, no-c-format
 msgid "<emphasis>Console:</emphasis> the console is a new view in Eclipse. In addition to a tree overview of your console configurations, you are also provided with an interactive view of your persistent classes and their relationships. The console allows you to execute HQL queries against your database and browse the result directly in Eclipse."
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:56
 #, no-c-format
 msgid "<emphasis>Development Wizards:</emphasis> several wizards are provided with the Hibernate Eclipse tools. You can use a wizard to quickly generate Hibernate configuration (cfg.xml) files, or to reverse engineer an existing database schema into POJO source files and Hibernate mapping files. The reverse engineering wizard supports customizable templates."
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:69
 #, no-c-format
-msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "Please refer to the <emphasis>Hibernate Tools</emphasis> package documentation for more information."
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:74
 #, 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 ""
 
 #. Tag: title
+#: toolset_guide.xml:81
 #, no-c-format
 msgid "Automatic schema generation"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:83
 #, 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 ""
 
 #. Tag: para
+#: toolset_guide.xml:90
 #, 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 ""
 
 #. Tag: para
+#: toolset_guide.xml:96
 #, no-c-format
 msgid "First, you must customize your mapping files to improve the generated schema. The next section covers schema customization."
 msgstr ""
 
 #. Tag: title
+#: toolset_guide.xml:101
 #, no-c-format
 msgid "Customizing the schema"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:103
 #, 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 ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:110
+#, no-c-format
+msgid "<![CDATA[<property name=\"zip\" length=\"5\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: toolset_guide.xml:111
+#, no-c-format
+msgid "<![CDATA[<property name=\"balance\" precision=\"12\" scale=\"2\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: toolset_guide.xml:113
 #, 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: programlisting
+#: toolset_guide.xml:119
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: toolset_guide.xml:121
+#, no-c-format
+msgid "<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" unique=\"true\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: toolset_guide.xml:123
 #, 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 ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:131
+#, 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:133
 #, 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 ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:139
+#, no-c-format
+msgid ""
+      "<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
+      "<property name=\"firstName\" index=\"CustName\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: toolset_guide.xml:141
 #, no-c-format
 msgid "A <literal>foreign-key</literal> attribute can be used to override the name of any generated foreign key constraint."
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:146
+#, no-c-format
+msgid "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: toolset_guide.xml:148
 #, no-c-format
 msgid "Many mapping elements also accept a child <literal>&lt;column&gt;</literal> element. This is particularly useful for mapping multi-column types:"
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:153
+#, 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:155
 #, 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 ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:161
+#, 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:163
+#, 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:165
 #, 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 ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:170
+#, 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:172
 #, no-c-format
 msgid "The <literal>check</literal> attribute allows you to specify a check constraint."
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:176
+#, 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:178
+#, 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:181
 #, no-c-format
 msgid "The following table summarizes these optional attributes."
 msgstr ""
 
 #. Tag: title
+#: toolset_guide.xml:184
 #, no-c-format
 msgid "Summary"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:191
 #, no-c-format
 msgid "Attribute"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:192
 #, no-c-format
 msgid "Values"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:193
 #, no-c-format
 msgid "Interpretation"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:198
 #, no-c-format
-msgid "<literal>length</literal>"
+msgid "length"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:199 toolset_guide.xml:204 toolset_guide.xml:209
 #, no-c-format
 msgid "number"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:200
 #, no-c-format
 msgid "column length"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:203
 #, no-c-format
-msgid "<literal>precision</literal>"
+msgid "precision"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:205
 #, no-c-format
 msgid "column decimal precision"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:208
 #, no-c-format
-msgid "<literal>scale</literal>"
+msgid "scale"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:210
 #, no-c-format
 msgid "column decimal scale"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:213
 #, no-c-format
-msgid "<literal>not-null</literal>"
+msgid "not-null"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:214 toolset_guide.xml:219
 #, no-c-format
-msgid "<literal>true|false</literal>"
+msgid "true|false"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:215
 #, no-c-format
 msgid "specifies that the column should be non-nullable"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:218
 #, no-c-format
-msgid "<literal>unique</literal>"
+msgid "unique"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:220
 #, no-c-format
 msgid "specifies that the column should have a unique constraint"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:223
 #, no-c-format
-msgid "<literal>index</literal>"
+msgid "index"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:224
 #, no-c-format
-msgid "<literal>index_name</literal>"
+msgid "index_name"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:225
 #, no-c-format
 msgid "specifies the name of a (multi-column) index"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:228
 #, no-c-format
-msgid "<literal>unique-key</literal>"
+msgid "unique-key"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:229
 #, no-c-format
-msgid "<literal>unique_key_name</literal>"
+msgid "unique_key_name"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:230
 #, no-c-format
 msgid "specifies the name of a multi-column unique constraint"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:233
 #, no-c-format
-msgid "<literal>foreign-key</literal>"
+msgid "foreign-key"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:234
 #, no-c-format
-msgid "<literal>foreign_key_name</literal>"
+msgid "foreign_key_name"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:235
 #, no-c-format
 msgid "specifies the name of the foreign key constraint generated for an association, for a <literal>&lt;one-to-one&gt;</literal>, <literal>&lt;many-to-one&gt;</literal>, <literal>&lt;key&gt;</literal>, or <literal>&lt;many-to-many&gt;</literal> mapping element. Note that <literal>inverse=\"true\"</literal> sides will not be considered by <literal>SchemaExport</literal>."
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:245
 #, no-c-format
-msgid "<literal>sql-type</literal>"
+msgid "sql-type"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:246
 #, no-c-format
-msgid "<literal>SQL column type</literal>"
+msgid "SQL column type"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:247
 #, no-c-format
 msgid "overrides the default column type (attribute of <literal>&lt;column&gt;</literal> element only)"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:253
 #, no-c-format
-msgid "<literal>default</literal>"
+msgid "default"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:254 toolset_guide.xml:261
 #, no-c-format
 msgid "SQL expression"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:255
 #, no-c-format
 msgid "specify a default value for the column"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:260
 #, no-c-format
-msgid "<literal>check</literal>"
+msgid "check"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:262
 #, no-c-format
 msgid "create an SQL check constraint on either column or table"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:270
 #, no-c-format
 msgid "The <literal>&lt;comment&gt;</literal> element allows you to specify comments for the generated schema."
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:275
+#, 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:277
+#, 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:279
 #, 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 ""
 
 #. Tag: title
+#: toolset_guide.xml:288
 #, no-c-format
 msgid "Running the tool"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:290
 #, no-c-format
 msgid "The <literal>SchemaExport</literal> tool writes a DDL script to standard out and/or executes the DDL statements."
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:295
 #, no-c-format
 msgid "The following table displays the <literal>SchemaExport</literal> command line options"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:297
 #, 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 ""
 
 #. Tag: title
+#: toolset_guide.xml:303
 #, no-c-format
 msgid "<literal>SchemaExport</literal> Command Line Options"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:309 toolset_guide.xml:459 toolset_guide.xml:528
 #, no-c-format
 msgid "Option"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:310 toolset_guide.xml:397 toolset_guide.xml:460 toolset_guide.xml:529
 #, no-c-format
 msgid "Description"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:315 toolset_guide.xml:465
 #, no-c-format
-msgid "<literal>--quiet</literal>"
+msgid "--quiet"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:316 toolset_guide.xml:466
 #, no-c-format
 msgid "do not output the script to stdout"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:319
 #, no-c-format
-msgid "<literal>--drop</literal>"
+msgid "--drop"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:320
 #, no-c-format
 msgid "only drop the tables"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:323
 #, no-c-format
-msgid "<literal>--create</literal>"
+msgid "--create"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:324
 #, no-c-format
 msgid "only create the tables"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:327 toolset_guide.xml:469
 #, no-c-format
-msgid "<literal>--text</literal>"
+msgid "--text"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:328
 #, no-c-format
 msgid "do not export to the database"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:331
 #, no-c-format
-msgid "<literal>--output=my_schema.ddl</literal>"
+msgid "--output=my_schema.ddl"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:332
 #, no-c-format
 msgid "output the ddl script to a file"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:335 toolset_guide.xml:473 toolset_guide.xml:534
 #, no-c-format
-msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgid "--naming=eg.MyNamingStrategy"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:336 toolset_guide.xml:474 toolset_guide.xml:535
 #, no-c-format
 msgid "select a <literal>NamingStrategy</literal>"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:339 toolset_guide.xml:481 toolset_guide.xml:542
 #, no-c-format
-msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgid "--config=hibernate.cfg.xml"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:340
 #, no-c-format
 msgid "read Hibernate configuration from an XML file"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:343 toolset_guide.xml:477 toolset_guide.xml:538
 #, no-c-format
-msgid "<literal>--properties=hibernate.properties</literal>"
+msgid "--properties=hibernate.properties"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:344 toolset_guide.xml:478 toolset_guide.xml:539
 #, no-c-format
 msgid "read database properties from a file"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:347
 #, no-c-format
-msgid "<literal>--format</literal>"
+msgid "--format"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:348
 #, no-c-format
 msgid "format the generated SQL nicely in the script"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:351
 #, no-c-format
-msgid "<literal>--delimiter=;</literal>"
+msgid "--delimiter=;"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:352
 #, no-c-format
 msgid "set an end of line delimiter for the script"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:358
 #, no-c-format
 msgid "You can even embed <literal>SchemaExport</literal> in your application:"
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:362
+#, no-c-format
+msgid ""
+      "<![CDATA[Configuration cfg = ....;\n"
+      "new SchemaExport(cfg).create(false, true);]]>"
+msgstr ""
+
 #. Tag: title
+#: toolset_guide.xml:367
 #, no-c-format
 msgid "Properties"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:369
 #, no-c-format
 msgid "Database properties can be specified:"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:375
 #, no-c-format
 msgid "as system properties with <literal>-D</literal><emphasis>&lt;property&gt;</emphasis>"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:378
 #, no-c-format
 msgid "in <literal>hibernate.properties</literal>"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:381
 #, no-c-format
 msgid "in a named properties file with <literal>--properties</literal>"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:385
 #, no-c-format
 msgid "The needed properties are:"
 msgstr ""
 
 #. Tag: title
+#: toolset_guide.xml:390
 #, no-c-format
 msgid "SchemaExport Connection Properties"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:396
 #, no-c-format
 msgid "Property Name"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:402
 #, no-c-format
-msgid "<literal>hibernate.connection.driver_class</literal>"
+msgid "hibernate.connection.driver_class"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:403
 #, no-c-format
 msgid "jdbc driver class"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:406
 #, no-c-format
-msgid "<literal>hibernate.connection.url</literal>"
+msgid "hibernate.connection.url"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:407
 #, no-c-format
 msgid "jdbc url"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:410
 #, no-c-format
-msgid "<literal>hibernate.connection.username</literal>"
+msgid "hibernate.connection.username"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:411
 #, no-c-format
 msgid "database user"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:414
 #, no-c-format
-msgid "<literal>hibernate.connection.password</literal>"
+msgid "hibernate.connection.password"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:415
 #, no-c-format
 msgid "user password"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: toolset_guide.xml:418
 #, no-c-format
-msgid "<literal>hibernate.dialect</literal>"
+msgid "hibernate.dialect"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:419
 #, no-c-format
 msgid "dialect"
 msgstr ""
 
 #. Tag: title
+#: toolset_guide.xml:428
 #, no-c-format
 msgid "Using Ant"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:430
 #, no-c-format
 msgid "You can call <literal>SchemaExport</literal> from your Ant build script:"
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:434
+#, 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:439
 #, no-c-format
 msgid "Incremental schema updates"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:441
 #, 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 ""
 
 #. Tag: para
+#: toolset_guide.xml:447
 #, 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 ""
 
 #. Tag: title
+#: toolset_guide.xml:453
 #, no-c-format
 msgid "<literal>SchemaUpdate</literal> Command Line Options"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:470
 #, no-c-format
 msgid "do not export the script to the database"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:482 toolset_guide.xml:543
 #, no-c-format
 msgid "specify a <literal>.cfg.xml</literal> file"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:488
 #, no-c-format
 msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:492
+#, no-c-format
+msgid ""
+      "<![CDATA[Configuration cfg = ....;\n"
+      "new SchemaUpdate(cfg).execute(false);]]>"
+msgstr ""
+
 #. Tag: title
+#: toolset_guide.xml:497
 #, no-c-format
 msgid "Using Ant for incremental schema updates"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:499
 #, no-c-format
 msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:503
+#, 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:508
 #, no-c-format
 msgid "Schema validation"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:510
 #, no-c-format
 msgid "The <literal>SchemaValidator</literal> tool will validate that the existing database schema \"matches\" your mapping documents. The <literal>SchemaValidator</literal> depends heavily upon the JDBC metadata API and, as such, will not work with all JDBC drivers. This tool is extremely useful for testing."
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:516
 #, 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 ""
 
 #. Tag: para
+#: toolset_guide.xml:520
 #, no-c-format
 msgid "The following table displays the <literal>SchemaValidator</literal> command line options:"
 msgstr ""
 
 #. Tag: title
+#: toolset_guide.xml:522
 #, no-c-format
 msgid "<literal>SchemaValidator</literal> Command Line Options"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:549
 #, no-c-format
 msgid "You can embed <literal>SchemaValidator</literal> in your application:"
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:553
+#, no-c-format
+msgid ""
+      "<![CDATA[Configuration cfg = ....;\n"
+      "new SchemaValidator(cfg).validate();]]>"
+msgstr ""
+
 #. Tag: title
+#: toolset_guide.xml:558
 #, no-c-format
 msgid "Using Ant for schema validation"
 msgstr ""
 
 #. Tag: para
+#: toolset_guide.xml:560
 #, no-c-format
 msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
 msgstr ""
 
+#. Tag: programlisting
+#: toolset_guide.xml:564
+#, 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 ""
+

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/transactions.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/transactions.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/transactions.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,658 +1,960 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
-"PO-Revision-Date: 2010-01-08T04:07:20\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: transactions.xml:31
 #, no-c-format
 msgid "Transactions and Concurrency"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:33
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:40
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:48
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:55
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:62
 #, no-c-format
 msgid "Session and transaction scopes"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:64
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:70
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:78
 #, 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:86
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:94
 #, no-c-format
 msgid "Unit of work"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:96
 #, 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."
+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 ""
 
 #. Tag: para
+#: transactions.xml:113
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:128
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:140
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:152
 #, 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\" />."
+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 ""
 
 #. Tag: para
+#: transactions.xml:160
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:175
 #, no-c-format
 msgid "Long conversations"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:177
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:187
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:194
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:202
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:208
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:216
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:229
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:237
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:247
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:260
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:269
 #, no-c-format
 msgid "Considering object identity"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:271
 #, 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 ""
 
 #. Tag: term
+#: transactions.xml:280
 #, no-c-format
 msgid "Database Identity"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: transactions.xml:283
 #, no-c-format
-msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgid "foo.getId().equals( bar.getId() )"
 msgstr ""
 
 #. Tag: term
+#: transactions.xml:288
 #, no-c-format
 msgid "JVM Identity"
 msgstr ""
 
-#. Tag: para
+#. Tag: literal
+#: transactions.xml:291
 #, no-c-format
-msgid "<literal>foo==bar</literal>"
+msgid "foo==bar"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:297
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:306
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:315
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:336
 #, no-c-format
 msgid "Common issues"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:338
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:347
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:358
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:370
 #, 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."
+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 ""
 
 #. Tag: title
+#: transactions.xml:388
 #, no-c-format
 msgid "Database transaction demarcation"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:390
 #, 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:400
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:410
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:419
 #, no-c-format
 msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:425
 #, no-c-format
 msgid "flush the session"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:430
 #, no-c-format
 msgid "commit the transaction"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:435
 #, no-c-format
 msgid "close the session"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:440
 #, no-c-format
 msgid "handle exceptions"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:446
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:453
 #, no-c-format
 msgid "Non-managed environment"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:455
 #, 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 ""
 
+#. Tag: programlisting
+#: transactions.xml:462
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:464
 #, 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."
+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 ""
 
 #. Tag: para
+#: transactions.xml:473
 #, no-c-format
 msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
 msgstr ""
 
+#. Tag: programlisting
+#: transactions.xml:478
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:480
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:490
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:499
 #, no-c-format
 msgid "Using JTA"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:501
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:508
 #, 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 ""
 
+#. Tag: programlisting
+#: transactions.xml:514
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:516
 #, 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 ""
 
+#. Tag: programlisting
+#: transactions.xml:522
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:524
 #, no-c-format
 msgid "With CMT, transaction demarcation is completed in session bean deployment descriptors, not programmatically. The code is reduced to:"
 msgstr ""
 
+#. Tag: programlisting
+#: transactions.xml:529
+#, no-c-format
+msgid ""
+      "<![CDATA[// CMT idiom\n"
+      " Session sess = factory.getCurrentSession();\n"
+      "\n"
+      " // do some work\n"
+      " ...\n"
+      "]]>"
+msgstr ""
+
 #. Tag: para
+#: transactions.xml:531
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:539
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:548
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:564
 #, no-c-format
 msgid "Exception handling"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:566
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:577
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:589
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:605
 #, no-c-format
 msgid "<literal>JDBCConnectionException</literal>: indicates an error with the underlying JDBC communication."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:611
 #, no-c-format
 msgid "<literal>SQLGrammarException</literal>: indicates a grammar or syntax problem with the issued SQL."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:617
 #, no-c-format
 msgid "<literal>ConstraintViolationException</literal>: indicates some form of integrity constraint violation."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:623
 #, no-c-format
 msgid "<literal>LockAcquisitionException</literal>: indicates an error acquiring a lock level necessary to perform the requested operation."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:629
 #, no-c-format
 msgid "<literal>GenericJDBCException</literal>: a generic exception which did not fall into any of the other categories."
 msgstr ""
 
 #. Tag: title
+#: transactions.xml:639
 #, no-c-format
 msgid "Transaction timeout"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:641
 #, 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 ""
 
+#. Tag: programlisting
+#: transactions.xml:654
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:656
 #, no-c-format
 msgid "<literal>setTimeout()</literal> cannot be called in a CMT bean, where transaction timeouts must be defined declaratively."
 msgstr ""
 
 #. Tag: title
+#: transactions.xml:666
 #, no-c-format
 msgid "Optimistic concurrency control"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:668
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:679
 #, no-c-format
 msgid "Application version checking"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:681
 #, 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 ""
 
+#. Tag: programlisting
+#: transactions.xml:690
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:692
 #, no-c-format
 msgid "The <literal>version</literal> property is mapped using <literal>&lt;version&gt;</literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:698
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:707
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:718
 #, no-c-format
 msgid "Extended session and automatic versioning"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:720
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:729
 #, 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 ""
 
+#. Tag: programlisting
+#: transactions.xml:737
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:738
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:753
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:764
 #, no-c-format
 msgid "Note"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:765
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:771
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:779
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:789
 #, no-c-format
 msgid "Detached objects and automatic versioning"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:791
 #, 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 ""
 
+#. Tag: programlisting
+#: transactions.xml:799
+#, 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 ""
+
 #. Tag: para
+#: transactions.xml:801
 #, no-c-format
 msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occurred."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:806
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:815
 #, no-c-format
 msgid "Customizing automatic versioning"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:817
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:824
 #, 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>&lt;class&gt;</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 ""
 
 #. Tag: para
+#: transactions.xml:836
 #, 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>&lt;class&gt;</literal>, Hibernate will only compare dirty fields during flush."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:842
 #, 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>&lt;class&gt;</literal> mapping, forcing Hibernate to <literal>SELECT</literal> the instance to ensure that changes did occur before updating the row."
 msgstr ""
 
 #. Tag: title
+#: transactions.xml:860
 #, no-c-format
 msgid "Pessimistic locking"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:862
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:869
 #, no-c-format
 msgid "Hibernate will always use the locking mechanism of the database; it never lock objects in memory."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:874
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:881
 #, no-c-format
 msgid "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate updates or inserts a row."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:887
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:893
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:899
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:906
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:915
 #, no-c-format
 msgid "The \"explicit user request\" is expressed in one of the following ways:"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:921
 #, no-c-format
 msgid "A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</literal>."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:926
 #, no-c-format
 msgid "A call to <literal>Session.lock()</literal>."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:931
 #, no-c-format
 msgid "A call to <literal>Query.setLockMode()</literal>."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:937
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:946
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:953
 #, 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 ""
 
 #. Tag: title
+#: transactions.xml:962
 #, no-c-format
 msgid "Connection release modes"
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:964
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:978
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:985
 #, no-c-format
 msgid "<literal>AFTER_TRANSACTION</literal>: releases connections after a <literal>org.hibernate.Transaction</literal> has been completed."
 msgstr ""
 
 #. Tag: para
+#: transactions.xml:991
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:1001
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:1008
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:1018
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:1024
 #, 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 ""
 
 #. Tag: para
+#: transactions.xml:1032
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/tutorial.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/tutorial.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/tutorial.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,698 +1,1582 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
-"PO-Revision-Date: 2010-01-08T04:07:20\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: tutorial.xml:40
 #, no-c-format
 msgid "Tutorial"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:42
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:51
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:60
 #, no-c-format
 msgid "The distribution contains another example application under the <filename>tutorial/eg</filename> project source directory."
 msgstr ""
 
 #. Tag: title
+#: tutorial.xml:68
 #, no-c-format
 msgid "Part 1 - The first Hibernate Application"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:70
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:76
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:85
 #, no-c-format
 msgid "Setup"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:87
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:97
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:103
+#, 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:106
 #, no-c-format
 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 ""
 
 #. Tag: para
+#: tutorial.xml:123
 #, no-c-format
 msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
 msgstr ""
 
 #. Tag: title
+#: tutorial.xml:130
 #, no-c-format
 msgid "The first class"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:132
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:137
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:139
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:147
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:162
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:170
 #, no-c-format
 msgid "Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</filename> directory."
 msgstr ""
 
 #. Tag: title
+#: tutorial.xml:177
 #, no-c-format
 msgid "The mapping file"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:179
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:187
 #, no-c-format
 msgid "The basic structure of a mapping file looks like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:191
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:193
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:206
 #, no-c-format
 msgid "We will omit the DTD declaration in future examples to shorten the code. It is, of course, not optional."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:212
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:219
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:221
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:231
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:233
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:243
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:255
 #, no-c-format
-msgid "<literal>native</literal> is no longer considered the best strategy in terms of portability. for further discussion, see <xref linkend=\"portability-idgen\" />"
+msgid "<literal>native</literal> is no longer considered the best strategy in terms of portability. for further discussion, see"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:261
 #, 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:267
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:269
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:280
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:290
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:306
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:313
 #, no-c-format
 msgid "Save this mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml</filename>."
 msgstr ""
 
 #. Tag: title
+#: tutorial.xml:321
 #, no-c-format
 msgid "Hibernate configuration"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:323
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:330
 #, no-c-format
 msgid "We do this so that the data remains between runs."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:335
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:346
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:357
 #, no-c-format
 msgid "The built-in Hibernate connection pool is not intended for production use."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:362
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:368
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:371
 #, no-c-format
 msgid "Notice that this configuration file specifies a different DTD"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:374
 #, 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>&lt;session-factory&gt;</literal> configurations in several configuration files."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:381
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:388
 #, no-c-format
-msgid "Hibernate is able to correctly determine which dialect to use in most cases. See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgid "Hibernate is able to correctly determine which dialect to use in most cases. See <xref linkend=\"portability-dialectresolver\"/> for more information."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:394
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:403
 #, no-c-format
 msgid "Save this file as <filename>hibernate.cfg.xml</filename> into the <filename>src/main/resources</filename> directory."
 msgstr ""
 
 #. Tag: title
+#: tutorial.xml:411
 #, no-c-format
 msgid "Building with Maven"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:413
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:423
+#, 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:428
 #, no-c-format
 msgid "Startup and helpers"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:430
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:444
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:450
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:452
 #, no-c-format
 msgid "Save this code as <filename>src/main/java/org/hibernate/tutorial/util/HibernateUtil.java</filename>"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:457
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:466
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:475
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:485
 #, no-c-format
 msgid "The tutorial infrastructure is complete and you are now ready to do some real work with Hibernate."
 msgstr ""
 
 #. Tag: title
+#: tutorial.xml:493
 #, no-c-format
 msgid "Loading and storing objects"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:495
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:501
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:503
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:510
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:523
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:537
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:546
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:559
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:576
 #, 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."
+msgid "See <xref linkend=\"transactions\"/> for more information about transaction handling and demarcation. The previous example also skipped any error handling and rollback."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:582
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:589
 #, no-c-format
 msgid "You may need to perform <command>mvn compile</command> first."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:594
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:599
+#, no-c-format
+msgid "<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values (?, ?, ?)]]>"
+msgstr ""
+
 #. Tag: para
+#: tutorial.xml:601
 #, no-c-format
 msgid "This is the <literal>INSERT</literal> executed by Hibernate."
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:605
 #, no-c-format
 msgid "To list stored events an option is added to the main method:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:609
+#, 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:611
 #, no-c-format
 msgid "A new <literal>listEvents() method is also added</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:615
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:617
 #, 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."
+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 ""
 
 #. Tag: para
+#: tutorial.xml:625
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:635
 #, no-c-format
 msgid "Part 2 - Mapping associations"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:637
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:645
 #, no-c-format
 msgid "Mapping the Person class"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:647
 #, no-c-format
 msgid "The first cut of the <literal>Person</literal> class looks like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:651
+#, 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:653
 #, no-c-format
 msgid "Save this to a file named <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:658
 #, no-c-format
 msgid "Next, create the new mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:663
+#, 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:665
 #, no-c-format
 msgid "Finally, add the new mapping to Hibernate's configuration:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:669
+#, no-c-format
+msgid ""
+      "<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
+      "<mapping resource=\"events/Person.hbm.xml\"/>]]>"
+msgstr ""
+
 #. Tag: para
+#: tutorial.xml:671
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:681
 #, no-c-format
 msgid "A unidirectional Set-based association"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:683
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:694
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:696
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:709
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:711
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:727
 #, no-c-format
 msgid "The database schema for this mapping is therefore:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:731
+#, 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:736
 #, no-c-format
 msgid "Working the association"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:738
 #, no-c-format
 msgid "Now we will bring some people and events together in a new method in <literal>EventManager</literal>:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:742
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:744
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:763
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:772
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:774
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:783
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:791
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:793
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:811
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:820
 #, no-c-format
 msgid "Collection of values"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:822
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:828
+#, 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:830
 #, no-c-format
 msgid "The mapping of this <literal>Set</literal> is as follows:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:834
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:836
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:852
 #, no-c-format
 msgid "Here is the updated schema:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:856
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:858
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:864
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:869
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:871
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:880
 #, no-c-format
 msgid "Bi-directional associations"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:882
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:890
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:898
 #, no-c-format
 msgid "First, add a collection of participants to the <literal>Event</literal> class:"
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:903
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:905
 #, no-c-format
 msgid "Now map this side of the association in <literal>Event.hbm.xml</literal>."
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:909
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:911
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:919
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:928
 #, no-c-format
 msgid "Working bi-directional links"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:930
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:940
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:945
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:947
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:954
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:970
 #, no-c-format
 msgid "Part 3 - The EventManager web application"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:972
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:980
 #, no-c-format
 msgid "Writing the basic servlet"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:982
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:988
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:990
 #, no-c-format
 msgid "Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:995
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:1004
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:1011
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:1016
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:1030
 #, no-c-format
 msgid "Processing and rendering"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:1032
 #, no-c-format
 msgid "Now you can implement the processing of the request and the rendering of the page."
 msgstr ""
 
+#. Tag: programlisting
+#: tutorial.xml:1036
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:1038
 #, no-c-format
 msgid "This coding style, with a mix of Java and HTML, would not scale in a more complex application&mdash;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:1047
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:1049
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:1055
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:1057
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:1063
+#, 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:1065
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:1079
 #, no-c-format
 msgid "Deploying and testing"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:1081
 #, 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 ""
 
+#. Tag: programlisting
+#: tutorial.xml:1087
+#, 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 ""
+
 #. Tag: para
+#: tutorial.xml:1089
 #, 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 ""
 
 #. Tag: para
+#: tutorial.xml:1096
 #, no-c-format
-msgid "If you do not have Tomcat installed, download it from <ulink url=\"http://tomcat.apache.org/\" /> and follow the installation instructions. Our application requires no changes to the standard Tomcat configuration."
+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 ""
 
 #. Tag: para
+#: tutorial.xml:1104
 #, 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 ""
 
 #. Tag: title
+#: tutorial.xml:1117
 #, no-c-format
 msgid "Summary"
 msgstr ""
 
 #. Tag: para
+#: tutorial.xml:1119
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/xml.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/xml.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/content/xml.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -1,143 +1,355 @@
-# 
-# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
+#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
-"PO-Revision-Date: 2010-01-08T04:07:20\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: None\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10 07:36+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
+#: xml.xml:31
 #, no-c-format
 msgid "XML Mapping"
 msgstr ""
 
-#. Tag: para
+#. Tag: emphasis
+#: xml.xml:33
 #, no-c-format
-msgid "<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is currently under active development. </emphasis>"
+msgid "XML Mapping is an experimental feature in Hibernate 3.0 and is currently under active development."
 msgstr ""
 
 #. Tag: title
+#: xml.xml:39
 #, no-c-format
 msgid "Working with XML data"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:41
 #, 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 ""
 
 #. Tag: para
+#: xml.xml:48
 #, 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 ""
 
 #. Tag: para
+#: xml.xml:58
 #, 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 ""
 
 #. Tag: para
+#: xml.xml:63
 #, 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 ""
 
 #. Tag: title
+#: xml.xml:70
 #, no-c-format
 msgid "Specifying XML and class mapping together"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:72
 #, no-c-format
 msgid "Here is an example of mapping a POJO and XML simultaneously:"
 msgstr ""
 
+#. Tag: programlisting
+#: xml.xml:76
+#, 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:80
 #, no-c-format
 msgid "Specifying only an XML mapping"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:82
 #, no-c-format
 msgid "Here is an example where there is no POJO class:"
 msgstr ""
 
+#. Tag: programlisting
+#: xml.xml:86
+#, 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 ""
+
 #. Tag: para
+#: xml.xml:88
 #, 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 ""
 
 #. Tag: title
+#: xml.xml:99
 #, no-c-format
 msgid "XML mapping metadata"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:101
 #, 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 ""
 
 #. Tag: para
+#: xml.xml:110
 #, no-c-format
 msgid "<literal>\"element-name\"</literal>: map to the named XML element"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:113
 #, no-c-format
 msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:116
 #, no-c-format
 msgid "<literal>\".\"</literal>: map to the parent element"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:119
 #, no-c-format
 msgid "<literal>\"element-name/@attribute-name\"</literal>: map to the named attribute of the named element"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:126
 #, 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 ""
 
 #. Tag: para
+#: xml.xml:136
 #, 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 ""
 
+#. Tag: programlisting
+#: xml.xml:141
+#, 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 ""
+
 #. Tag: para
+#: xml.xml:143
 #, 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 ""
 
+#. Tag: programlisting
+#: xml.xml:148
+#, no-c-format
+msgid "<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :lastName]]>"
+msgstr ""
+
 #. Tag: para
+#: xml.xml:150
 #, no-c-format
 msgid "would return datasets such as this:"
 msgstr ""
 
+#. Tag: programlisting
+#: xml.xml:154
+#, 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:156
 #, no-c-format
 msgid "If you set <literal>embed-xml=\"true\"</literal> on the <literal>&lt;one-to-many&gt;</literal> mapping, the data might look more like this:"
 msgstr ""
 
+#. Tag: programlisting
+#: xml.xml:161
+#, 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:167
 #, no-c-format
 msgid "Manipulating XML data"
 msgstr ""
 
 #. Tag: para
+#: xml.xml:169
 #, 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 ""
 
+#. Tag: programlisting
+#: xml.xml:174
+#, 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 ""
+
+#. Tag: programlisting
+#: xml.xml:176
+#, 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 ""
+
 #. Tag: para
+#: xml.xml:178
 #, 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 ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Conventions.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Conventions.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Conventions.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
-"PO-Revision-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-02-10T07:25:35\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Feedback.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Feedback.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Feedback.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
-"PO-Revision-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-02-10T07:25:35\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Legal_Notice.pot
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Legal_Notice.pot	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pot/fallback_content/Legal_Notice.pot	2010-02-11 02:42:15 UTC (rev 18772)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
-"PO-Revision-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-02-10T07:25:35\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Author_Group.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Author_Group.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Author_Group.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-10-13 09:55+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -117,6 +117,141 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr ""
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr ""
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr ""
+
 #~ msgid ""
 #~ "<firstname>Red Hat Documentation Group</firstname> <surname></surname>"
 #~ msgstr ""

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Book_Info.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Book_Info.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Book_Info.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-21 10:34+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -122,19 +122,21 @@
 msgid "Hibernate Core Reference Guide"
 msgstr "Guia de Referência do Hibernate Central "
 
-#. Tag: subtitle
+#. Tag: releaseinfo
 #, 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)"
+msgid "&version;"
 msgstr ""
-"por Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard e "
-"Steve Ebersole. Agradecimentos especiais para James Cobb (Desenho Industrial) e Cheyenne Weaver "
-"(Desenho Industrial)"
 
 #. Tag: para
 #, no-c-format
 msgid "The JBoss Hibernate Core 3.3.2.GA Reference Guide"
 msgstr "Guia de Referência do JBoss Hibernate Core 3.3.2.GA "
 
+#~ 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 ""
+#~ "por Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard e "
+#~ "Steve Ebersole. Agradecimentos especiais para James Cobb (Desenho "
+#~ "Industrial) e Cheyenne Weaver (Desenho Industrial)"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Revision_History.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Revision_History.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/Revision_History.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: Revision_History\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-11T05:07:38\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-21 10:35+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -122,8 +122,22 @@
 msgid "Revision History"
 msgstr "Histórico de Revisão"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Ben"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Jared"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Richard"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Merged with EAP5 and translations added"
 msgstr "Obtido com EAP5 e traduções adicionais"
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/Preface.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/Preface.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/Preface.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -109,7 +109,7 @@
 msgstr ""
 "Project-Id-Version: Preface\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:17\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-19 18:38+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -187,7 +187,7 @@
 "Hibernate, Mapeamento Objeto/Relacional ou mesmo Java:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
 "instructions. The source code for the tutorial is included in the "
@@ -198,7 +198,7 @@
 "<literal>doc/reference/tutorial/</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Read <xref linkend=\"architecture\" /> to understand the environments where "
 "Hibernate can be used."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/architecture.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/architecture.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/architecture.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: architecture\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-18 14:20+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -129,7 +129,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The diagram below provides a high-level view of the Hibernate architecture:"
+msgid ""
+"The diagram below provides a high-level view of the Hibernate architecture:"
 msgstr ""
 "O diagrama abaixo fornece uma visão de altíssimo nível da arquitetura do "
 "Hibernate:"
@@ -311,8 +312,10 @@
 
 #. Tag: term
 #, no-c-format
-msgid "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
-msgstr "Transaction Factory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgid ""
+"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgstr ""
+"Transaction Factory (<literal>org.hibernate.TransactionFactory</literal>)"
 
 #. Tag: para
 #, no-c-format
@@ -326,7 +329,7 @@
 "programador."
 
 #. Tag: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<emphasis>Extension Interfaces</emphasis>"
 msgstr "<emphasis>Interfaces de Extensão</emphasis>"
 
@@ -501,21 +504,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Consult the JBoss AS user guide for more information about these options."
+msgid ""
+"Consult the JBoss AS user guide for more information about these options."
 msgstr ""
 "Consulte o manual do usuário do JBoss AS, para obter maiores informações "
 "sobre essas opções."
 
 #. Tag: para
-#, no-c-format
+#, 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 ""
 "Outra opção disponível como um serviço JMX são as estatísticas de execução "
-"do Hibernate. Veja a <xref linkend=\"configuration-optional-statistics"
-"\"/> para maiores informações."
+"do Hibernate. Veja a <xref linkend=\"configuration-optional-statistics\"/> "
+"para maiores informações."
 
 #. Tag: title
 #, no-c-format
@@ -657,7 +661,7 @@
 "uma <literal>Session</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -676,10 +680,10 @@
 "uma transação do banco de dados\", também conhecida e usada como "
 "<emphasis>sessão por requisição</emphasis>. O começo e o fim de uma sessão "
 "Hibernate é definida pela duração da transação do banco de dados. Se você "
-"usar a demarcação programática de transação em JSE puro sem JTA, recomenda-se "
-"que utilize a API Hibernate <literal>Transaction</literal> para esconder o "
-"sistema de transação adjacente do seu código. Se você utiliza o JTA, use as "
-"interfaces JTA para demarcar as transações. Se você executar em um "
+"usar a demarcação programática de transação em JSE puro sem JTA, recomenda-"
+"se que utilize a API Hibernate <literal>Transaction</literal> para esconder "
+"o sistema de transação adjacente do seu código. Se você utiliza o JTA, use "
+"as interfaces JTA para demarcar as transações. Se você executar em um "
 "recipiente EJB que suporta CMT, os limites das transações são definidas "
 "declarativamente e você não precisará de qualquer transação ou operação de "
 "demarcação de sessão no seu código. Consulte o <xref linkend=\"transactions"
@@ -709,4 +713,3 @@
 "valor deste parâmetro nomearia apenas a classe de implementação para usar; "
 "para as três implementações fora da caixa, entretanto, há dois pequenos "
 "nomes correspondentes, \"jta\", \"thread\", e \"managed\"."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/association_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/association_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/association_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: association_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-11-16 14:59+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/basic_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/basic_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/basic_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: basic_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-19 07:43+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/batch.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/batch.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/batch.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: batch\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-19 07:46+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -294,7 +294,7 @@
 msgstr "Operações no estilo DML"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -353,7 +353,7 @@
 "referências de propriedade serem qualificadas."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, 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-"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/best_practices.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/best_practices.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/best_practices.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: best_practices\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-10-22 15:53+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/collection_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/collection_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/collection_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: collection_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-19 08:32+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -448,8 +448,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
-msgstr "A restrição da chave exterior pode usar <literal>ON DELETE CASCADE</literal>."
+msgid ""
+"The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgstr ""
+"A restrição da chave exterior pode usar <literal>ON DELETE CASCADE</literal>."
 
 #. Tag: para
 #, no-c-format
@@ -541,7 +543,9 @@
 msgid ""
 "<literal>column_name</literal> (required): the name of the column holding "
 "the collection index values."
-msgstr "<literal>column_name</literal> (requerido): O nome da coluna que mantém os valores do índice da coleção."
+msgstr ""
+"<literal>column_name</literal> (requerido): O nome da coluna que mantém os "
+"valores do índice da coleção."
 
 #. Tag: para
 #, no-c-format
@@ -549,21 +553,28 @@
 "<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> (opcional - padrão para <literal>0</literal>): o valor da coluna de índice que corresponde ao primeiro elemento da lista ou matriz."
+msgstr ""
+"<literal>base</literal> (opcional - padrão para <literal>0</literal>): o "
+"valor da coluna de índice que corresponde ao primeiro elemento da lista ou "
+"matriz."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection index values."
-msgstr "<literal>column</literal>(opcional): o nome da coluna que mnatém os valores do índice de coleção."
+msgstr ""
+"<literal>column</literal>(opcional): o nome da coluna que mnatém os valores "
+"do índice de coleção."
 
 #. 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> (opcional): Uma fórmula SQL usada para avaliar a chave ou o mapa."
+msgstr ""
+"<literal>formula</literal> (opcional): Uma fórmula SQL usada para avaliar a "
+"chave ou o mapa."
 
 #. Tag: para
 #, no-c-format
@@ -575,19 +586,26 @@
 msgid ""
 "<literal>column</literal> (optional): the name of the foreign key column for "
 "the collection index values."
-msgstr "<literal>column</literal> (opcional): o nome de uma coluna de chave exterior para os valores do índice de coleção."
+msgstr ""
+"<literal>column</literal> (opcional): o nome de uma coluna de chave exterior "
+"para os valores do índice de coleção."
 
 #. 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> (opcional): uma fórmula SQ usada para avaliar a chave exterior da chave do mapa."
+msgstr ""
+"<literal>formula</literal> (opcional): uma fórmula SQ usada para avaliar a "
+"chave exterior da chave do mapa."
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>class</literal> (required): the entity class used as the map key."
-msgstr "<literal>class</literal> (requerido): a classe da entidade usada como chave do mapa."
+msgid ""
+"<literal>class</literal> (required): the entity class used as the map key."
+msgstr ""
+"<literal>class</literal> (requerido): a classe da entidade usada como chave "
+"do mapa."
 
 #. Tag: para
 #, no-c-format
@@ -636,14 +654,18 @@
 msgid ""
 "<literal>column</literal> (optional): the name of the column holding the "
 "collection element values."
-msgstr "<literal>column</literal> (opcional): o nome da coluna que mantém os valores do elemento da coleção."
+msgstr ""
+"<literal>column</literal> (opcional): o nome da coluna que mantém os valores "
+"do elemento da coleção."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element."
-msgstr "<literal>formula</literal> (opcional): uma fórmula usada para avaliar o elemento."
+msgstr ""
+"<literal>formula</literal> (opcional): uma fórmula usada para avaliar o "
+"elemento."
 
 #. Tag: para
 #, no-c-format
@@ -655,21 +677,27 @@
 msgid ""
 "A <emphasis>many-to-many association</emphasis> is specified using the "
 "<literal>&lt;many-to-many&gt;</literal> element."
-msgstr "A <emphasis>associação muitos-para-muitos</emphasis> é especificada usando o elemento <literal>&lt;many-to-many&gt;</literal>. "
+msgstr ""
+"A <emphasis>associação muitos-para-muitos</emphasis> é especificada usando o "
+"elemento <literal>&lt;many-to-many&gt;</literal>. "
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>column</literal> (optional): the name of the element foreign key "
 "column."
-msgstr "<literal>column</literal> (opcional): o nome da coluna da chave exterior do elemento."
+msgstr ""
+"<literal>column</literal> (opcional): o nome da coluna da chave exterior do "
+"elemento."
 
 #. Tag: para
 #, no-c-format
 msgid ""
 "<literal>formula</literal> (optional): an SQL formula used to evaluate the "
 "element foreign key value."
-msgstr "<literal>formula</literal> (opcional): uma fórmula SQL usada para avaliar o valor da chave exterior do elemento."
+msgstr ""
+"<literal>formula</literal> (opcional): uma fórmula SQL usada para avaliar o "
+"valor da chave exterior do elemento."
 
 #. Tag: para
 #, no-c-format
@@ -687,9 +715,13 @@
 "itself, but also with this attribute on the <literal>&lt;many-to-many&gt;</"
 "literal> nested element."
 msgstr ""
-"<literal>fetch</literal> (opcional - padrão para <literal>join</literal>): ativa a busca de seleção seqüencial ou união exterior para esta associação. Isto é um caso especial; para uma busca completa num <literal>SELECT</"
-"literal> único de uma entidade e suas relações muitos-para-muitos com outras entidades, você deverá ativar a busca <literal>join</literal>, não apenas a própria coleção, mas também este atributo no elemento aninhado <literal>&lt;many-to-many&gt;</"
-"literal>."
+"<literal>fetch</literal> (opcional - padrão para <literal>join</literal>): "
+"ativa a busca de seleção seqüencial ou união exterior para esta associação. "
+"Isto é um caso especial; para uma busca completa num <literal>SELECT</"
+"literal> único de uma entidade e suas relações muitos-para-muitos com outras "
+"entidades, você deverá ativar a busca <literal>join</literal>, não apenas a "
+"própria coleção, mas também este atributo no elemento aninhado <literal>&lt;"
+"many-to-many&gt;</literal>."
 
 #. Tag: para
 #, no-c-format
@@ -697,7 +729,10 @@
 "<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> (opcional): ativa a geração DDl de uma restrição única para a coluna de chave exterior. Isto realiza efetivamente a multiplicidade da associação um-para-muitos."
+msgstr ""
+"<literal>unique</literal> (opcional): ativa a geração DDl de uma restrição "
+"única para a coluna de chave exterior. Isto realiza efetivamente a "
+"multiplicidade da associação um-para-muitos."
 
 #. Tag: para
 #, no-c-format
@@ -727,7 +762,10 @@
 "<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> (opcional): o nome de uma propriedade de classe associada que é unida a esta chave exterior. caso não especificada, a chave primária da classe associada será usada."
+msgstr ""
+"<literal>property-ref</literal> (opcional): o nome de uma propriedade de "
+"classe associada que é unida a esta chave exterior. caso não especificada, a "
+"chave primária da classe associada será usada."
 
 #. Tag: para
 #, no-c-format
@@ -751,7 +789,8 @@
 #. Tag: para
 #, no-c-format
 msgid "An array of entities, in this case, a many-to-many association:"
-msgstr "Uma matriz de entidades, neste caso, uma associação muitos-para-muitos: "
+msgstr ""
+"Uma matriz de entidades, neste caso, uma associação muitos-para-muitos: "
 
 #. Tag: para
 #, no-c-format
@@ -1025,7 +1064,8 @@
 msgid ""
 "The non-inverse side is used to save the in-memory representation to the "
 "database."
-msgstr "A outra ponta é usada para salvar a representação em memória à base de dados."
+msgstr ""
+"A outra ponta é usada para salvar a representação em memória à base de dados."
 
 #. Tag: para
 #, no-c-format
@@ -1085,11 +1125,10 @@
 "literal>. Devemos usar o seguinte mapeamento: "
 
 #. Tag: para
-#, no-c-format
+#, 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. <!-- TODO: Does this really "
-"result in some unnecessary update statements? -->"
+"responsible for updates to the foreign key."
 msgstr ""
 "Veja que neste mapeamento, o lado de coleção válida da associação é "
 "responsável pela atualização da chave exterior. <!-- TODO: Does this really "
@@ -1128,7 +1167,7 @@
 "mais tarde. "
 
 #. Tag: title
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Using an &lt;idbag&gt;</literal>"
 msgstr "<literal>Using an &lt;idbag&gt;</literal>"
 
@@ -1212,8 +1251,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The following class has a collection of <literal>Child</literal> instances:"
-msgstr "A seguinte classe possui uma coleção de instâncias <literal>Child</literal>:"
+msgid ""
+"The following class has a collection of <literal>Child</literal> instances:"
+msgstr ""
+"A seguinte classe possui uma coleção de instâncias <literal>Child</literal>:"
 
 #. Tag: para
 #, no-c-format
@@ -1269,7 +1310,7 @@
 msgstr "Definições das tabelas:"
 
 #. Tag: para
-#, no-c-format
+#, 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."
@@ -1283,4 +1324,3 @@
 msgstr ""
 "Até mesmo o mapeamento de associações mais complexos serão discutimos no "
 "próximo capítulo."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/component_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/component_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/component_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: component_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-10-26 11:53+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/configuration.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/configuration.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/configuration.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: configuration\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-12-19 08:53+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/events.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/events.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/events.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
 "PO-Revision-Date: 2009-10-28 16:51+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_mappings.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_mappings.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_mappings.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: example_mappings\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-10-28 16:59+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_parentchild.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_parentchild.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_parentchild.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: example_parentchild\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 08:56+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -251,8 +251,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
-msgstr "um <literal>INSERT</literal> para criar um registro para <literal>c</literal>"
+msgid ""
+"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr ""
+"um <literal>INSERT</literal> para criar um registro para <literal>c</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -340,7 +342,8 @@
 #. Tag: para
 #, no-c-format
 msgid "The code to add a <literal>Child</literal> looks like this:"
-msgstr "Agora, o código que adiciona um <literal>Child</literal> se parece com este: "
+msgstr ""
+"Agora, o código que adiciona um <literal>Child</literal> se parece com este: "
 
 #. Tag: title
 #, no-c-format
@@ -424,7 +427,7 @@
 msgstr "Cascatas e <literal>unsaved-value</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
 "literal>, made some changes in a UI action and wanted to persist these "
@@ -516,4 +519,3 @@
 "Infelizmente, existem duas grandes limitações para elementos compostos: "
 "elementos compostos podem não possuir coleções e assim sendo podem não ser "
 "filhos de nenhuma outra entidade a não ser do pai único. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_weblog.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_weblog.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/example_weblog.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: example_weblog\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-10-29 11:19+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/filters.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/filters.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/filters.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: filters\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-11-16 15:07+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/inheritance_mapping.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/inheritance_mapping.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/inheritance_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: inheritance_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 17:16+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -139,9 +139,9 @@
 msgstr "tabela por hierarquia de classes"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "table per subclass"
-msgstr "tabela por subclasse"
+msgstr "Tabela por subclasse"
 
 #. Tag: para
 #, no-c-format
@@ -546,7 +546,7 @@
 msgstr "tabela por classe concreta (subclasses de união)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code> (for <code>inverse="
 "\"true\"</code> only)"
@@ -583,3 +583,11 @@
 msgstr ""
 "Um-para-um polimórfico, um-para-muitos polimórfico, junções polimórficas e a "
 "busca de união externa não são suportadas."
+
+#, fuzzy
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "tabela por subclasse"
+
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "tabela por subclasse"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/performance.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/performance.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/performance.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: performance\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 17:17+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -407,7 +407,8 @@
 #. Tag: para
 #, no-c-format
 msgid "retrieval that happens implicitly when an association is navigated"
-msgstr "Recuperações que acontecem implicitamente quando navegamos por uma associação"
+msgstr ""
+"Recuperações que acontecem implicitamente quando navegamos por uma associação"
 
 #. Tag: para
 #, no-c-format
@@ -638,8 +639,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
-msgstr "Algumas operações <emphasis>não</emphasis> requerem inicialização por proxy: "
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgstr ""
+"Algumas operações <emphasis>não</emphasis> requerem inicialização por proxy: "
 
 #. Tag: para
 #, no-c-format
@@ -840,7 +843,8 @@
 msgid ""
 "You can use a collection filter to get the size of a collection without "
 "initializing it:"
-msgstr "Você pode usar um filtro de coleção para saber seu tamanho sem inicializá-la:"
+msgstr ""
+"Você pode usar um filtro de coleção para saber seu tamanho sem inicializá-la:"
 
 #. Tag: para
 #, no-c-format
@@ -900,8 +904,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
-msgstr "O Hibernate irá executar agora apenas três consultas; o padrão é 10, 10, 5."
+msgid ""
+"Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgstr ""
+"O Hibernate irá executar agora apenas três consultas; o padrão é 10, 10, 5."
 
 #. Tag: para
 #, no-c-format
@@ -1117,7 +1123,7 @@
 msgstr "Hashtable (não recomendado para uso de produção)"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 
@@ -1137,7 +1143,7 @@
 msgstr "EHCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 
@@ -1152,7 +1158,7 @@
 msgstr "OSCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 
@@ -1162,7 +1168,7 @@
 msgstr "SwarmCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 
@@ -1182,7 +1188,7 @@
 msgstr "JBoss Cache 1.x"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 
@@ -1207,7 +1213,7 @@
 msgstr "JBoss Cache 2"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 msgstr "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 
@@ -1387,7 +1393,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "None of the cache providers support all of the cache concurrency strategies."
+msgid ""
+"None of the cache providers support all of the cache concurrency strategies."
 msgstr ""
 "Nenhum provedor de cache suporta todas as estratégias de concorrência de "
 "cache. "
@@ -1798,7 +1805,8 @@
 
 #. Tag: title
 #, no-c-format
-msgid "Lists, maps, idbags and sets are the most efficient collections to update"
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
 msgstr ""
 "Listas, mapas, bags de id e conjuntos são coleções mais eficientes para "
 "atualizar"
@@ -2163,4 +2171,3 @@
 "</literal>, <literal>getEntityNames()</literal>, "
 "<literal>getCollectionRoleNames()</literal>, e "
 "<literal>getSecondLevelCacheRegionNames()</literal>. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/persistent_classes.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/persistent_classes.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/persistent_classes.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: persistent_classes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 17:20+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -244,7 +244,7 @@
 "que declaram uma propriedade de identificador:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Transitive reattachment for detached objects (cascade update or cascade "
 "merge) - see <xref linkend=\"objectstate-transitive\" />"
@@ -253,12 +253,12 @@
 "mesclagem de cascata) - veja <xref linkend=\"objectstate-transitive\" />"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.saveOrUpdate()</literal>"
 msgstr "<literal>Session.saveOrUpdate()</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.merge()</literal>"
 msgstr "<literal>Session.merge()</literal>"
 
@@ -465,7 +465,7 @@
 "emphasis>): "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -487,7 +487,7 @@
 msgstr "Nota"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis>The following features are currently considered experimental and "
 "may change in the near future.</emphasis>"
@@ -512,7 +512,7 @@
 "mapeamentos. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "By default, Hibernate works in normal POJO mode. You can set a default "
 "entity representation mode for a particular <literal>SessionFactory</"
@@ -606,7 +606,7 @@
 "manuseio da conexão para a unidade primária do trabalho. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "More information about the XML representation capabilities can be found in "
 "<xref linkend=\"xml\" />."

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/portability.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/portability.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/portability.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: portability\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 18:37+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -215,7 +215,7 @@
 "com antecedência e que em ocasião alguma era configurável ou substituível."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Starting with version 3.3, Hibernate has a fare more powerful way to "
 "automatically determine which dialect to should be used by relying on a "
@@ -352,13 +352,13 @@
 "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 msgstr ""
 "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
 

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_criteria.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_criteria.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_criteria.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: query_criteria\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 18:39+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -125,7 +125,8 @@
 #. Tag: para
 #, no-c-format
 msgid "Hibernate features an intuitive, extensible criteria query API."
-msgstr "O Hibernate provê uma API de consulta por critério intuitiva e extensível."
+msgstr ""
+"O Hibernate provê uma API de consulta por critério intuitiva e extensível."
 
 #. Tag: title
 #, no-c-format
@@ -238,7 +239,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "There is also an alternate form that is useful in certain circumstances:"
+msgid ""
+"There is also an alternate form that is useful in certain circumstances:"
 msgstr "A seguinte forma alternada é útil em certas circunstâncias:"
 
 #. Tag: para
@@ -279,7 +281,7 @@
 "execução usando <literal>setFetchMode()</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "This query will fetch both <literal>mate</literal> and <literal>kittens</"
 "literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
@@ -470,4 +472,3 @@
 "Uma vez que você tenha ativado o cache de consulta Hibernate, o "
 "<literal>Restrictions.naturalId()</literal> nos permite que utilizemos um "
 "algoritmo de cache mais eficiente."
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_hql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_hql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_hql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: query_hql\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 18:42+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -255,14 +255,14 @@
 msgstr "<literal>inner join</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>left outer join</literal>"
-msgstr "<literal>left outer join</literal>"
+msgstr "<literal>inner join</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>right outer join</literal>"
-msgstr "<literal>right outer join</literal>"
+msgstr "<literal>inner join</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -288,7 +288,7 @@
 "<literal>with</literal>."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "A \"fetch\" join allows associations or collections of values to be "
 "initialized along with their parent objects using a single select. This is "
@@ -572,7 +572,7 @@
 msgstr "As funções agregadas suportadas são: "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 
@@ -582,7 +582,7 @@
 msgstr "<literal>count(*)</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
 msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
 
@@ -722,7 +722,7 @@
 "propriedades, mas também instâncias: "
 
 #. Tag: para
-#, no-c-format
+#, 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-"
@@ -756,7 +756,7 @@
 "Mais uma vez, a segunda consulta não precisa de nenhuma união de tabela."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"queryhql-identifier-property\" /> for more information "
 "regarding referencing identifier properties)"
@@ -778,7 +778,7 @@
 "seu valor discriminante."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "You can also use components or composite user types, or properties of said "
 "component types. See <xref linkend=\"queryhql-components\" /> for more "
@@ -1245,7 +1245,7 @@
 "ou where. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Note that subqueries can also utilize <literal>row value constructor</"
 "literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
@@ -1365,7 +1365,7 @@
 msgstr "Atualização e correção em lote"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "HQL now supports <literal>update</literal>, <literal>delete</literal> and "
 "<literal>insert ... select ...</literal> statements. See <xref linkend="
@@ -1545,3 +1545,11 @@
 "Ao decidir se você quer usar esta sintáxe ou não, deve-se considerar o fato "
 "de que a consulta será dependente da ordenação das sub-propriedades do "
 "componente no metadados. "
+
+#, fuzzy
+#~ msgid "left outer join"
+#~ msgstr "<literal>left outer join</literal>"
+
+#, fuzzy
+#~ msgid "right outer join"
+#~ msgstr "<literal>right outer join</literal>"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_sql.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_sql.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/query_sql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: query_sql\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-19 18:44+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -510,14 +510,14 @@
 msgstr "Uma propriedade simples"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[propertyname]</literal>"
 msgstr "<literal>{[aliasname].[propertyname]</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>A_NAME as {item.name}</literal>"
-msgstr "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -525,12 +525,12 @@
 msgstr "Uma propriedade composta"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
 "literal>"
@@ -544,14 +544,14 @@
 msgstr "Discriminador de uma entidade"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].class}</literal>"
-msgstr "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>DISC as {item.class}</literal>"
-msgstr "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -559,9 +559,9 @@
 msgstr "Todas as propriedades de uma entidade"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].*}</literal>"
-msgstr "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -574,14 +574,14 @@
 msgstr "Uma chave de coleção"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].key}</literal>"
-msgstr "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>ORGID as {coll.key}</literal>"
-msgstr "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -589,14 +589,14 @@
 msgstr "O id de uma coleção"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].id}</literal>"
-msgstr "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>EMPID as {coll.id}</literal>"
-msgstr "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -604,14 +604,14 @@
 msgstr "O elemento de uma coleção"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element}</literal>"
-msgstr "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>XID as {coll.element}</literal>"
-msgstr "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -619,12 +619,12 @@
 msgstr "propriedade de elemento na coleção "
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>NAME as {coll.element.name}</literal>"
 msgstr "<literal>NAME as {coll.element.name}</literal>"
 
@@ -634,14 +634,14 @@
 msgstr "Todas as propriedades de elemento na coleção"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.*}</literal>"
-msgstr "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{coll.element.*}</literal>"
-msgstr "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1078,3 +1078,50 @@
 "Você pode até definir um carregador de entidade que carregue uma coleção por "
 "busca de união: "
 
+#, fuzzy
+#~ msgid "A_NAME as {item.name}"
+#~ msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].class}"
+#~ msgstr "<literal>{[aliasname].class}</literal>"
+
+#, fuzzy
+#~ msgid "DISC as {item.class}"
+#~ msgstr "<literal>DISC as {item.class}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].*}"
+#~ msgstr "<literal>{[aliasname].*}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].key}"
+#~ msgstr "<literal>{[aliasname].key}</literal>"
+
+#, fuzzy
+#~ msgid "ORGID as {coll.key}"
+#~ msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].id}"
+#~ msgstr "<literal>{[aliasname].id}</literal>"
+
+#, fuzzy
+#~ msgid "EMPID as {coll.id}"
+#~ msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element}"
+#~ msgstr "<literal>{[aliasname].element}</literal>"
+
+#, fuzzy
+#~ msgid "XID as {coll.element}"
+#~ msgstr "<literal>XID as {coll.element}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element.*}"
+#~ msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#, fuzzy
+#~ msgid "{coll.element.*}"
+#~ msgstr "<literal>{coll.element.*}</literal>"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/session_api.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/session_api.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/session_api.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: session_api\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-21 07:37+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -451,7 +451,7 @@
 "propriedades do objeto."
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -459,8 +459,9 @@
 "\"performance-fetching\" />."
 msgstr ""
 "O quanto Hibernate carrega do banco de dados e quantos SQL <literal>SELECT</"
-"literal> ele irá usar? Isto depende da estratégia de <emphasis>estratégia de busca</"
-"emphasis> usada e explicada na <xref linkend=\"performance-fetching\"/>."
+"literal> ele irá usar? Isto depende da estratégia de <emphasis>estratégia de "
+"busca</emphasis> usada e explicada na <xref linkend=\"performance-fetching\"/"
+">."
 
 #. Tag: title
 #, no-c-format
@@ -610,7 +611,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "named parameters are insensitive to the order they occur in the query string"
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
 msgstr ""
 "Parâmetros nomeados são insensíveis à ordem que eles ocorrem na faixa de "
 "consulta"
@@ -795,7 +797,7 @@
 "<literal>Critério</literal> intuitiva para estes casos: "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The <literal>Criteria</literal> and the associated <literal>Example</"
 "literal> API are discussed in more detail in <xref linkend=\"querycriteria"
@@ -826,7 +828,7 @@
 "deve incluir as aliases SQL dentro de chaves: "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -880,7 +882,7 @@
 "instâncias desanexadas."
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -967,7 +969,7 @@
 "executada. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "The application should individually <literal>update()</literal> detached "
 "instances that are reachable from the given detached instance "
@@ -1007,7 +1009,7 @@
 "único caso de uso para <literal>lock()</literal>.  "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Other models for long units of work are discussed in <xref linkend="
 "\"transactions-optimistic\" />."
@@ -1391,7 +1393,7 @@
 "retornará dados errados. "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -1407,13 +1409,13 @@
 "diferentes: somente limpe em um tempo submetido: somente quando a API da "
 "<literal>Transaction</literal> do Hibernate for usada, limpe automaticamente "
 "usando uma rotina explicada, ou nunca limpe a menos que o <literal>flush()</"
-"literal> seja chamado explicitamente. O último modo é útil para execução "
-"de unidades de trabalho longas, onde uma <literal>Session</literal> é mantida "
+"literal> seja chamado explicitamente. O último modo é útil para execução de "
+"unidades de trabalho longas, onde uma <literal>Session</literal> é mantida "
 "aberta e disconectada por um longo tempo (veja <xref linkend=\"transactions-"
 "optimistic-longsession\"/>)."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "During flush, an exception might occur (e.g. if a DML operation violates a "
 "constraint). Since handling exceptions involves some understanding of "
@@ -1719,4 +1721,3 @@
 "literal> e <literal>CollectionMetadata</literal> e pela hierarquia "
 "<literal>Type</literal>. Instâncias das interfaces de metadados podem ser "
 "obtidas a partir do <literal>SessionFactory</literal>. "
-

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/toolset_guide.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/toolset_guide.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/toolset_guide.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: toolset_guide\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-21 07:41+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -191,11 +191,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
-msgstr "<!-- <emphasis>Tarefas Ant:</emphasis> -->"
-
-#. Tag: para
-#, no-c-format
 msgid ""
 "Please refer to the <emphasis>Hibernate Tools</emphasis> package "
 "documentation for more information."
@@ -465,9 +460,9 @@
 msgstr "<literal>unique-key</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>unique_key_name</literal>"
-msgstr "<literal>unique_key_name</literal>"
+msgstr "<literal>unique-key</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -480,9 +475,9 @@
 msgstr "<literal>foreign-key</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foreign_key_name</literal>"
-msgstr "<literal>foreign_key_name</literal>"
+msgstr "<literal>foreign-key</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -506,9 +501,9 @@
 msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>SQL column type</literal>"
-msgstr "<literal>SQL column type</literal>"
+msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -653,9 +648,9 @@
 msgstr "não exporte para o banco de dados "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--output=my_schema.ddl</literal>"
-msgstr "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>scale</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -663,7 +658,7 @@
 msgstr "saia do script ddl para um arquivo"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
 msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
 
@@ -673,7 +668,7 @@
 msgstr "seleciona um <literal>NamingStrategy</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--config=hibernate.cfg.xml</literal>"
 msgstr "<literal>--config=hibernate.cfg.xml</literal>"
 
@@ -683,9 +678,9 @@
 msgstr "leia a configuração do Hibernate a partir do arquivo XML"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--properties=hibernate.properties</literal>"
-msgstr "<literal>--properties=hibernate.properties</literal>"
+msgstr "em <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -765,7 +760,7 @@
 msgstr "Nome de Propriedade"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.driver_class</literal>"
 msgstr "<literal>hibernate.connection.driver_class</literal>"
 
@@ -775,9 +770,9 @@
 msgstr "classe de driver jdbc"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.url</literal>"
-msgstr "<literal>hibernate.connection.url</literal>"
+msgstr "em <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -785,9 +780,9 @@
 msgstr "jdbc url"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.username</literal>"
-msgstr "<literal>hibernate.connection.username</literal>"
+msgstr "em <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -795,9 +790,9 @@
 msgstr "usuário de banco de dados"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.connection.password</literal>"
-msgstr "<literal>hibernate.connection.password</literal>"
+msgstr "em <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -805,9 +800,9 @@
 msgstr "senha do usuário"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>hibernate.dialect</literal>"
-msgstr "<literal>hibernate.dialect</literal>"
+msgstr "em <literal>hibernate.properties</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -948,3 +943,50 @@
 msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
 msgstr ""
 "Você pode chamar o <literal>SchemaValidator</literal> a partir do script Ant:"
+
+#, fuzzy
+#~ msgid "length"
+#~ msgstr "comprimento da coluna"
+
+#, fuzzy
+#~ msgid "precision"
+#~ msgstr "Expressão SQL "
+
+#, fuzzy
+#~ msgid "unique_key_name"
+#~ msgstr "<literal>unique_key_name</literal>"
+
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "<literal>foreign_key_name</literal>"
+
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "<literal>SQL column type</literal>"
+
+#, fuzzy
+#~ msgid "--output=my_schema.ddl"
+#~ msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#, fuzzy
+#~ msgid "--properties=hibernate.properties"
+#~ msgstr "<literal>--properties=hibernate.properties</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.url"
+#~ msgstr "<literal>hibernate.connection.url</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.username"
+#~ msgstr "<literal>hibernate.connection.username</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.connection.password"
+#~ msgstr "<literal>hibernate.connection.password</literal>"
+
+#, fuzzy
+#~ msgid "hibernate.dialect"
+#~ msgstr "<literal>hibernate.dialect</literal>"
+
+#~ msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+#~ msgstr "<!-- <emphasis>Tarefas Ant:</emphasis> -->"

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/transactions.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/transactions.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/transactions.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: transactions\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-21 07:53+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -250,7 +250,7 @@
 msgstr "Unidade de trabalho"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "First, let's define a unit of work. A unit of work is a design pattern "
 "described by Martin Fowler as <quote> [maintaining] a list of objects "
@@ -365,7 +365,7 @@
 "de código. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Your application code can access a \"current session\" to process the "
 "request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
@@ -589,7 +589,7 @@
 msgstr "Identidade da base de dados"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
 msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
 
@@ -757,7 +757,7 @@
 "recuperáveis e você tem que iniciar após o rollback de qualquer maneira. "
 
 #. Tag: para
-#, no-c-format
+#, 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 "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/tutorial.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/tutorial.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/tutorial.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: tutorial\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-21 07:55+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -471,7 +471,7 @@
 "o plugin na sua própria estratégia."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<literal>native</literal> is no longer considered the best strategy in terms "
 "of portability. for further discussion, see <xref linkend=\"portability-idgen"
@@ -697,7 +697,7 @@
 "gera."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Hibernate is able to correctly determine which dialect to use in most cases. "
 "See <xref linkend=\"portability-dialectresolver\" /> for more information."
@@ -1010,7 +1010,7 @@
 "aplicativo  da web real será demonstrado mais adiante neste tutorial."
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"transactions\" /> for more information about transaction "
 "handling and demarcation. The previous example also skipped any error "
@@ -1067,7 +1067,7 @@
 "literal>: "
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -1830,7 +1830,7 @@
 "para seu diretório Tomcat <literal>webapp</literal>. "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you do not have Tomcat installed, download it from <ulink url=\"http://"
 "tomcat.apache.org/\" /> and follow the installation instructions. Our "

Modified: core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/xml.po
===================================================================
--- core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/xml.po	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/pt-BR/content/xml.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -108,7 +108,7 @@
 msgstr ""
 "Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
 "PO-Revision-Date: 2009-12-21 07:56+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -123,13 +123,13 @@
 msgstr "Mapeamento XML"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
 "currently under active development. </emphasis>"
 msgstr ""
-"<emphasis> O Mapeamento XML é um recurso experimental no Hibernate 3.0 e está sob "
-"constante desenvolvimento. </emphasis>"
+"<emphasis> O Mapeamento XML é um recurso experimental no Hibernate 3.0 e "
+"está sob constante desenvolvimento. </emphasis>"
 
 #. Tag: title
 #, no-c-format
@@ -193,7 +193,8 @@
 #. Tag: title
 #, no-c-format
 msgid "Specifying XML and class mapping together"
-msgstr "Especificando o mapeamento de uma classe e de um arquivo XML simultaneamente "
+msgstr ""
+"Especificando o mapeamento de uma classe e de um arquivo XML simultaneamente "
 
 #. Tag: para
 #, no-c-format
@@ -243,7 +244,8 @@
 #. Tag: para
 #, no-c-format
 msgid "<literal>\"element-name\"</literal>: map to the named XML element"
-msgstr "<literal>\"element-name\"</literal>: mapeia para o elemento XML nomeado"
+msgstr ""
+"<literal>\"element-name\"</literal>: mapeia para o elemento XML nomeado"
 
 #. Tag: para
 #, no-c-format
@@ -343,4 +345,3 @@
 "É extremamente útil combinar essa funcionalidade com a operação "
 "<literal>replicate()</literal> do Hibernate para implementar importação/"
 "exportação de dados baseados em XML."
-

Modified: 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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Author_Group.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -13,3 +13,138 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr ""
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr ""
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr ""

Modified: 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	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Book_Info.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -19,22 +19,32 @@
 msgid "Hibernate Core Reference Guide"
 msgstr "Hibernate Core 参考指南"
 
-#. Tag: subtitle
+#. Tag: releaseinfo
 #, 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)"
+msgid "&version;"
+msgstr ""
 
 #. Tag: para
 #, fuzzy, no-c-format
 msgid "The JBoss Hibernate Core 3.3.2.GA Reference Guide"
 msgstr "Hibernate Core 参考指南"
 
+#~ 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)"
+
+#~ msgid "&HOLDER;"
+#~ msgstr "&HOLDER;"
+
 #~ 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;"
-

Modified: 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	2010-02-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/Revision_History.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -19,8 +19,22 @@
 msgid "Revision History"
 msgstr "修订历史记录"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Ben"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Jared"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Richard"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Merged with EAP5 and translations added"
 msgstr "和 EAP5 版本进行合并且添加了相关翻译"
-

Modified: 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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/Preface.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -21,43 +21,108 @@
 
 #. 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 的关系模型数据结构中去。"
+msgid ""
+"Working with object-oriented software and a relational database can be "
+"cumbersome and time consuming in today's enterprise environments. Hibernate "
+"is an object/relational mapping tool for Java environments. The term object/"
+"relational mapping (ORM) refers to the technique of mapping a data "
+"representation from an object model to a relational data model with a SQL-"
+"based schema."
+msgstr ""
+"在今日的企业环境中,把面向对象的软件和关系型数据库一起使用可能是相当麻烦和浪"
+"费时间的。Hibernate 是一个面向 Java 环境的对象/关系型数据库映射工具。对象/关"
+"系型数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把"
+"对象模型表示的对象映射到基于 SQL 的关系模型数据结构中去。"
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities. It can also significantly reduce development time otherwise spent with manual data handling in SQL and JDBC."
-msgstr "Hibernate 不仅管理 Java 类到数据库表的映射(包括 Java 数据类型到 SQL 数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时对人工使用 SQL 和 JDBC 处理数据的时间。 "
+msgid ""
+"Hibernate not only takes care of the mapping from Java classes to database "
+"tables (and from Java data types to SQL data types), but also provides data "
+"query and retrieval facilities. It can also significantly reduce development "
+"time otherwise spent with manual data handling in SQL and JDBC."
+msgstr ""
+"Hibernate 不仅管理 Java 类到数据库表的映射(包括 Java 数据类型到 SQL 数据类型"
+"的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时对人工使用 SQL "
+"和 JDBC 处理数据的时间。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate's goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects."
-msgstr "Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate 可能不是最好的解决方案;对于那些在基于 Java 的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate 是最有用的。不管怎样,Hibernate 一定可以帮助你消除或者包装那些针对特定厂商的 SQL 代码,而且帮助你结果集从表格式的表示形式转换到一系列的对象中去。 "
+msgid ""
+"Hibernate's goal is to relieve the developer from 95 percent of common data "
+"persistence related programming tasks. Hibernate may not be the best "
+"solution for data-centric applications that only use stored-procedures to "
+"implement the business logic in the database, it is most useful with object-"
+"oriented domain models and business logic in the Java-based middle-tier. "
+"However, Hibernate can certainly help you to remove or encapsulate vendor-"
+"specific SQL code and will help with the common task of result set "
+"translation from a tabular representation to a graph of objects."
+msgstr ""
+"Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 95%。"
+"对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,"
+"Hibernate 可能不是最好的解决方案;对于那些在基于 Java 的中间层应用中,它们实"
+"现面向对象的业务模型和商业逻辑的应用,Hibernate 是最有用的。不管怎样,"
+"Hibernate 一定可以帮助你消除或者包装那些针对特定厂商的 SQL 代码,而且帮助你结"
+"果集从表格式的表示形式转换到一系列的对象中去。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:"
-msgstr "如果你对 Hibernate 和对象/关系型数据库映射还是个新手,甚至对 Java 也不熟悉,请按照下面的步骤来学习。"
+msgid ""
+"If you are new to Hibernate and Object/Relational Mapping or even Java, "
+"please follow these steps:"
+msgstr ""
+"如果你对 Hibernate 和对象/关系型数据库映射还是个新手,甚至对 Java 也不熟悉,"
+"请按照下面的步骤来学习。"
 
 #. Tag: para
-#, 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> 目录下找到。 "
+#, fuzzy, no-c-format
+msgid ""
+"Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
+"instructions. The source code for the tutorial is included in the "
+"distribution in the <literal>doc/reference/tutorial/</literal> directory."
+msgstr ""
+"阅读 <xref linkend=\"tutorial\"/>,这是一篇包含详细的逐步知道的指南。本指南的"
+"源代码包含在发行包里,你可以在 <literal>doc/reference/tutorial/</literal> 目"
+"录下找到。 "
 
 #. Tag: para
-#, no-c-format
-msgid "Read <xref linkend=\"architecture\" /> to understand the environments where Hibernate can be used."
-msgstr "阅读 <xref linkend=\"architecture\"/> 来理解 Hibernate 可以使用的环境。 "
+#, fuzzy, no-c-format
+msgid ""
+"Read <xref linkend=\"architecture\" /> to understand the environments where "
+"Hibernate can be used."
+msgstr ""
+"阅读 <xref linkend=\"architecture\"/> 来理解 Hibernate 可以使用的环境。 "
 
 #. Tag: para
 #, no-c-format
-msgid "View the <literal>eg/</literal> directory in the Hibernate distribution. It contains a simple standalone application. Copy your JDBC driver to the <literal>lib/</literal> directory and edit <literal>etc/hibernate.properties</literal>, specifying correct values for your database. From a command prompt in the distribution directory, type <literal>ant eg</literal> (using Ant), or under Windows, type <literal>build eg</literal>."
-msgstr "查看 Hibernate 发行包中的 <literal>eg/</literal> 目录,里面有个一简单的独立运行的程序。把你的 JDBC 驱动复制到 <literal>lib/</literal> 目录并修改一下 <literal>etc/hibernate.properties</literal>,指定数据库的信息。然后进入命令行,切换到发行包的目录,输入 <literal>ant eg</literal>(使用 Ant),或者在 Windows 系统下使用 <literal>build eg</literal>。 "
+msgid ""
+"View the <literal>eg/</literal> directory in the Hibernate distribution. It "
+"contains a simple standalone application. Copy your JDBC driver to the "
+"<literal>lib/</literal> directory and edit <literal>etc/hibernate."
+"properties</literal>, specifying correct values for your database. From a "
+"command prompt in the distribution directory, type <literal>ant eg</literal> "
+"(using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr ""
+"查看 Hibernate 发行包中的 <literal>eg/</literal> 目录,里面有个一简单的独立运"
+"行的程序。把你的 JDBC 驱动复制到 <literal>lib/</literal> 目录并修改一下 "
+"<literal>etc/hibernate.properties</literal>,指定数据库的信息。然后进入命令"
+"行,切换到发行包的目录,输入 <literal>ant eg</literal>(使用 Ant),或者在 "
+"Windows 系统下使用 <literal>build eg</literal>。 "
 
 #. Tag: para
 #, 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 的示例程序。 "
+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
@@ -66,23 +131,48 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Third party demos, examples, and tutorials are linked on the Hibernate website."
+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 等)的好地方。"
+msgid ""
+"The Community Area on the Hibernate website is a good resource for design "
+"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, "
+"etc.)."
+msgstr ""
+"Hibernate 网站的社区是讨论关于设计模式以及很多整合方案(Tomcat、JBoss AS、"
+"Struts、EJB 等)的好地方。"
 
 #. Tag: para
 #, no-c-format
-msgid "If you have questions, use the user forum linked on the Hibernate website. We also provide a JIRA issue tracking system for bug reports and feature requests. If you are interested in the development of Hibernate, join the developer mailing list. If you are interested in translating this documentation into your language, contact us on the developer mailing list."
-msgstr "如果你有任何问题,请使用 Hibernate 网站上链接的用户论坛。我们也提供一个 JIRA 问题追踪系统,来搜集 bug 报告和新的功能请求。如果对开发 Hibernate 有兴趣,请加入开发者的邮件列表。如果你对翻译本文档感兴趣,请通过开发者的邮件列表来联系我们。 "
+msgid ""
+"If you have questions, use the user forum linked on the Hibernate website. "
+"We also provide a JIRA issue tracking system for bug reports and feature "
+"requests. If you are interested in the development of Hibernate, join the "
+"developer mailing list. If you are interested in translating this "
+"documentation into your language, contact us on the developer mailing list."
+msgstr ""
+"如果你有任何问题,请使用 Hibernate 网站上链接的用户论坛。我们也提供一个 JIRA "
+"问题追踪系统,来搜集 bug 报告和新的功能请求。如果对开发 Hibernate 有兴趣,请"
+"加入开发者的邮件列表。如果你对翻译本文档感兴趣,请通过开发者的邮件列表来联系"
+"我们。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Commercial development support, production support, and training for Hibernate is available through JBoss Inc. (see http://www.hibernate.org/SupportTraining/). Hibernate is a Professional Open Source project and a critical component of the JBoss Enterprise Middleware System (JEMS) suite of products."
-msgstr "商业开发、产品支持和 Hibernate 培训可以通过 JBoss Inc. 获得(请查阅: http://www.hibernate.org/SupportTraining/)。Hibernate 是一个专业的开源项目,也是 JBoss 企业级中间件系统(JBoss Enterprise Middleware System,JEMS)里的一个核心组件。  "
+msgid ""
+"Commercial development support, production support, and training for "
+"Hibernate is available through JBoss Inc. (see http://www.hibernate.org/"
+"SupportTraining/). Hibernate is a Professional Open Source project and a "
+"critical component of the JBoss Enterprise Middleware System (JEMS) suite of "
+"products."
+msgstr ""
+"商业开发、产品支持和 Hibernate 培训可以通过 JBoss Inc. 获得(请查阅: http://"
+"www.hibernate.org/SupportTraining/)。Hibernate 是一个专业的开源项目,也是 "
+"JBoss 企业级中间件系统(JBoss Enterprise Middleware System,JEMS)里的一个核"
+"心组件。  "
 
 #. Tag: title
 #, no-c-format
@@ -91,6 +181,10 @@
 
 #. 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> 来报告错误或改进本文档。"
-
+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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/architecture.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 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"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -26,28 +26,50 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The diagram below provides a high-level view of the Hibernate architecture:"
+msgid ""
+"The diagram below provides a high-level view of the Hibernate architecture:"
 msgstr "下面的图表提供了 Hibernate 体系结构的高层视图:"
 
 #. Tag: para
 #, 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 非常灵活,且支持多种应用方案, 所以我们这只描述一下两种极端的情况:“最小”和“全面解决”的体系结构方案。"
+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
 #, 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 如何使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。"
+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
 #, 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 的最小子集:"
+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
 #, 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 来处理这些细节。"
+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
 #, no-c-format
@@ -61,8 +83,17 @@
 
 #. Tag: para
 #, 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> 可以在进程或集群的级别上,为那些事务之间可以重用的数据提供可选的二级缓存。"
+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
 #, no-c-format
@@ -71,8 +102,17 @@
 
 #. Tag: para
 #, 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> 的工厂。它会持有一个针对持久化对象的必选(第一级)缓存,在遍历对象图或者根据持久化标识查找对象时会用到。"
+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
 #, no-c-format
@@ -81,8 +121,19 @@
 
 #. Tag: para
 #, 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> 被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用(例如,用作跟表示层打交道的数据传输对象)。"
+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
 #, no-c-format
@@ -91,8 +142,15 @@
 
 #. Tag: para
 #, 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> 已经被关闭而脱离持久化的对象。"
+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
 #, no-c-format
@@ -101,43 +159,84 @@
 
 #. Tag: para
 #, 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> 对象,事务边界的开启与关闭是必需的。 "
+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
 #, 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
 #, 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> 隔离开。仅供开发者扩展/实现用,并不开放给应用程序使用。"
+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
 #, 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
 #, 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> 对象实例的工厂。仅供开发者扩展/实现用,并不开发能够给应用程序使用。"
+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: term
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<emphasis>Extension Interfaces</emphasis>"
 msgstr "<emphasis>扩展接口</emphasis>"
 
 #. Tag: para
 #, 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 文档。"
+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
 #, 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 打交道。"
+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
 #, no-c-format
@@ -146,8 +245,16 @@
 
 #. Tag: para
 #, 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> 对象就是这个所谓的持久化上下文。这三种不同的状态如下:"
+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
 #, no-c-format
@@ -156,8 +263,11 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The instance is not associated with any persistence context. It has no persistent identity or primary key value."
-msgstr "该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键值)。 "
+msgid ""
+"The instance is not associated with any persistence context. It has no "
+"persistent identity or primary key value."
+msgstr ""
+"该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键值)。 "
 
 #. Tag: term
 #, no-c-format
@@ -166,8 +276,16 @@
 
 #. Tag: para
 #, 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 标识(其值代表对象在内存中的位置)等价。 "
+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
 #, no-c-format
@@ -176,8 +294,17 @@
 
 #. Tag: para
 #, 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 标识的关系。 "
+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
 #, no-c-format
@@ -186,33 +313,79 @@
 
 #. Tag: para
 #, 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>。 "
+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
 #, 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 也提供如下好处:"
+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
 #, 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>。"
+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
 #, 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 文件中所有的映射文件。"
+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
 #, no-c-format
-msgid "Consult the JBoss AS user guide for more information about these options."
+msgid ""
+"Consult the JBoss AS user guide for more information about these options."
 msgstr "这些选项更多的描述,请参考 JBoss 应用程序用户指南。"
 
 #. Tag: para
-#, 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\"/>。"
+#, 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\"/>。"
 
 #. Tag: title
 #, no-c-format
@@ -221,8 +394,13 @@
 
 #. Tag: para
 #, 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 的支持,仍处于实验性阶段。"
+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
 #, no-c-format
@@ -231,46 +409,155 @@
 
 #. Tag: para
 #, 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)的上下文相关的会话。"
+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
 #, 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> 的上下文相关的会话可以满足你一切需要。"
+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
 #, 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)的定义进行拔插。"
+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
 #, 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 内置了此接口的三种实现:"
+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
 #, 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。"
+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
 #, 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。"
+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
 #, 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>。"
+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
-#, 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\"/> 一节来阅读更多的内容和示例代码。"
+#, 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 ""
+"前两种实现都提供了“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
 #, 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\"。 "
-
+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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/association_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: association_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/basic_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: basic_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -27,13 +27,25 @@
 
 #. Tag: para
 #, 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 为中心,这意味着映射文档是按照持久化类的定义来创建的,而非表的定义。 "
+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
 #, 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。"
+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
 #, no-c-format
@@ -42,8 +54,16 @@
 
 #. Tag: para
 #, 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> 属性)。"
+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
 #, no-c-format
@@ -52,8 +72,19 @@
 
 #. Tag: para
 #, 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 声明。"
+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
 #, no-c-format
@@ -62,18 +93,44 @@
 
 #. Tag: para
 #, 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 命名空间:"
+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
 #, 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 来查找这些实体。 "
+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
 #, 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 来查找这些实体。"
+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
 #, no-c-format
@@ -82,8 +139,13 @@
 
 #. Tag: para
 #, no-c-format
-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\"/>。 "
+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: title
 #, no-c-format
@@ -92,8 +154,25 @@
 
 #. Tag: para
 #, 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> 属性默认让我们在查询语言中可以使用非全限定名的类名。"
+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
 #, no-c-format
@@ -107,38 +186,81 @@
 
 #. Tag: para
 #, 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>):默认的级联风格。 "
+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
 #, 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> 接口自定义。 "
+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
 #, 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 会采取什么样的默认加载风格。 "
+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
 #, 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>):指定我们是否可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。 "
+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
 #, 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>(可选):指定一个包前缀,如果在映射文档中没有指定全限定的类名,就使用这个作为包名。 "
+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
 #, 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 会抛出一个异常。"
+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
 #, no-c-format
-msgid "The <literal>hibernate-mapping</literal> element allows you to nest several persistent <literal>&lt;class&gt;</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>&lt;class&gt;</literal> 映射。但是最好的做法(也许一些工具需要的)是一个持久化类(或一个类的继承层次)对应一个映射文件,并以持久化的超类名称命名,例如:<literal>Cat.hbm.xml</literal>、<literal>Dog.hbm.xml</literal>,或者如果使用继承,<literal>Animal.hbm.xml</literal>。"
+msgid ""
+"The <literal>hibernate-mapping</literal> element allows you to nest several "
+"persistent <literal>&lt;class&gt;</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>&lt;class&gt;</literal> 映射。但是最好的做法(也许一些工具需要的)是"
+"一个持久化类(或一个类的继承层次)对应一个映射文件,并以持久化的超类名称命"
+"名,例如:<literal>Cat.hbm.xml</literal>、<literal>Dog.hbm.xml</literal>,或"
+"者如果使用继承,<literal>Animal.hbm.xml</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -147,153 +269,351 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can declare a persistent class using the <literal>class</literal> element. For example:"
+msgid ""
+"You can declare a persistent class using the <literal>class</literal> "
+"element. For example:"
 msgstr "你可以使用 <literal>class</literal> 元素来定义一个持久化类。例如:"
 
 #. Tag: para
 #, 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 的实体映射。 "
+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
 #, no-c-format
-msgid "<literal>table</literal> (optional - defaults to the unqualified class name): the name of its database table."
-msgstr "<literal>table</literal>(可选 — 默认是类的非全限定名):对应的数据库表名。 "
+msgid ""
+"<literal>table</literal> (optional - defaults to the unqualified class "
+"name): the name of its database table."
+msgstr ""
+"<literal>table</literal>(可选 — 默认是类的非全限定名):对应的数据库表名。 "
 
 #. Tag: para
 #, 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>。 "
+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
 #, 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>):表明该类的实例是可变的或者不可变的。 "
+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
 #, no-c-format
-msgid "<literal>schema</literal> (optional): overrides the schema name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
-msgstr "<literal>schema</literal>(可选):覆盖在根 <literal>&lt;hibernate-mapping&gt;</literal> 元素中指定的 schema 名字。 "
+msgid ""
+"<literal>schema</literal> (optional): overrides the schema name specified by "
+"the root <literal>&lt;hibernate-mapping&gt;</literal> element."
+msgstr ""
+"<literal>schema</literal>(可选):覆盖在根 <literal>&lt;hibernate-"
+"mapping&gt;</literal> 元素中指定的 schema 名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>catalog</literal> (optional): overrides the catalog name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
-msgstr "<literal>catalog</literal>(可选):覆盖在根 <literal>&lt;hibernate-mapping&gt;</literal> 元素中指定的 catalog 名字。 "
+msgid ""
+"<literal>catalog</literal> (optional): overrides the catalog name specified "
+"by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
+msgstr ""
+"<literal>catalog</literal>(可选):覆盖在根 <literal>&lt;hibernate-"
+"mapping&gt;</literal> 元素中指定的 catalog 名字。 "
 
 #. Tag: para
 #, 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>(可选):指定一个接口,在延迟装载时作为代理使用。你可以在这里使用该类自己的名字。 "
+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
 #, 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 将会在运行时动态生成,并且只更新那些改变过的字段。 "
+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
 #, 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 将会在运行时动态生成,并且只包含那些非空值字段。 "
+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
 #, 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>。"
+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
 #, 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 的具体表继承策略中用到 — 译注)。 "
+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
 #, 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> 条件,在抓取这个类的对象时会一直增加这个条件。 "
+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
 #, no-c-format
-msgid "<literal>persister</literal> (optional): specifies a custom <literal>ClassPersister</literal>."
-msgstr "<literal>persister</literal>(可选):指定一个定制的 <literal>ClassPersister</literal>。 "
+msgid ""
+"<literal>persister</literal> (optional): specifies a custom "
+"<literal>ClassPersister</literal>."
+msgstr ""
+"<literal>persister</literal>(可选):指定一个定制的 "
+"<literal>ClassPersister</literal>。 "
 
 #. Tag: para
 #, 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\"(批次抓取数量)。 "
+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
 #, 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>):决定乐观锁定的策略。 "
+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
 #, 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)。"
+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
 #, 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\"/>。 "
+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
 #, 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>。 "
+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
 #, 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)的物理位置。 "
+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
 #, 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)并且只读的实体映射到一个数据库的子查询中。当你想用视图代替一张基本表的时候,这是有用的,但最好不要这样做。更多的介绍请看下面内容。 "
+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
 #, no-c-format
-msgid "<literal>abstract</literal> (optional): is used to mark abstract superclasses in <literal>&lt;union-subclass&gt;</literal> hierarchies."
-msgstr "<literal>abstract</literal>(可选):用于在 <literal>&lt;union-subclass&gt;</literal> 的层次结构(hierarchies)中标识抽象超类。"
+msgid ""
+"<literal>abstract</literal> (optional): is used to mark abstract "
+"superclasses in <literal>&lt;union-subclass&gt;</literal> hierarchies."
+msgstr ""
+"<literal>abstract</literal>(可选):用于在 <literal>&lt;union-subclass&gt;</"
+"literal> 的层次结构(hierarchies)中标识抽象超类。"
 
 #. Tag: para
 #, 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>&lt;subclass&gt;</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>&lt;subclass&gt;</literal> 来指定该接口的实际实现类。你可以持久化任何 <emphasis>static</emphasis>(静态的)内部类。你应该使用标准的类名格式来指定类名,比如:<literal>Foo$Bar</literal>。"
+msgid ""
+"It is acceptable for the named persistent class to be an interface. You can "
+"declare implementing classes of that interface using the <literal>&lt;"
+"subclass&gt;</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>&lt;subclass&gt;</literal> 来指定该接口的实际实现类。你可以持久化任"
+"何 <emphasis>static</emphasis>(静态的)内部类。你应该使用标准的类名格式来指"
+"定类名,比如:<literal>Foo$Bar</literal>。"
 
 #. Tag: para
 #, 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 实现一些小小的性能优化。"
+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
 #, 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 代理。当代理的某个方法被实际调用的时候,真实的持久化对象才会被装载。参见下面的“用于延迟装载的代理”。 "
+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
 #, 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>&lt;class&gt;</literal> declaration as a <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</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>&lt;class&gt;</literal> 的定义中作为 <literal>&lt;subclass&gt;</literal> 或者 <literal>&lt;joined-subclass&gt;</literal> 出现的子类,才会可能返回。在大多数情况下,默认的 <literal>polymorphism=\"implicit\"</literal> 都是合适的。显式的多态在有两个不同的类映射到同一个表的时候很有用。(允许一个“轻量级”的类,只包含部分表字段)。 "
+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>&lt;class&gt;"
+"</literal> declaration as a <literal>&lt;subclass&gt;</literal> or "
+"<literal>&lt;joined-subclass&gt;</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>&lt;class&gt;</literal> 的定义中作为 <literal>&lt;subclass&gt;</"
+"literal> 或者 <literal>&lt;joined-subclass&gt;</literal> 出现的子类,才会可能"
+"返回。在大多数情况下,默认的 <literal>polymorphism=\"implicit\"</literal> 都"
+"是合适的。显式的多态在有两个不同的类映射到同一个表的时候很有用。(允许一个“轻"
+"量级”的类,只包含部分表字段)。 "
 
 #. Tag: para
 #, 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> 的一个简单例子。 "
+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
 #, 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>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</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>&lt;subclass&gt;</literal> 或者 <literal>&lt;joined-subclass&gt;</literal> 元素中可能需要再次设置。这些设置在某些情况下能够提高效率,而其他情况下则反而可能降低性能。"
+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>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</"
+"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>&lt;subclass&gt;</literal> "
+"或者 <literal>&lt;joined-subclass&gt;</literal> 元素中可能需要再次设置。这些"
+"设置在某些情况下能够提高效率,而其他情况下则反而可能降低性能。"
 
 #. Tag: para
 #, 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。这就很有用了。"
+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
 #, 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
 #, no-c-format
@@ -307,8 +627,11 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>dirty</literal>: check the changed columns, allowing some concurrent updates"
-msgstr "<literal>dirty(脏检查)</literal>:只检察修改过的字段,允许某些并行更新"
+msgid ""
+"<literal>dirty</literal>: check the changed columns, allowing some "
+"concurrent updates"
+msgstr ""
+"<literal>dirty(脏检查)</literal>:只检察修改过的字段,允许某些并行更新"
 
 #. Tag: para
 #, no-c-format
@@ -317,18 +640,42 @@
 
 #. Tag: para
 #, 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> 的时候)。"
+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
 #, 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 子查询表达式: "
+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
 #, 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>&lt;subselect&gt;</literal> is available both as an attribute and a nested mapping element."
-msgstr "定义这个实体用到的表为同步(synchronize),确保自动刷新(auto-flush)正确执行,并且依赖原实体的查询不会返回过期数据。在属性元素和嵌套映射元素中都可使用 <literal>&lt;subselect&gt;</literal>。"
+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>&lt;subselect&gt;</literal> is available both as an "
+"attribute and a nested mapping element."
+msgstr ""
+"定义这个实体用到的表为同步(synchronize),确保自动刷新(auto-flush)正确执"
+"行,并且依赖原实体的查询不会返回过期数据。在属性元素和嵌套映射元素中都可使用 "
+"<literal>&lt;subselect&gt;</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -337,48 +684,82 @@
 
 #. Tag: para
 #, 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>&lt;id&gt;</literal> element defines the mapping from that property to the primary key column."
-msgstr "被映射的类<emphasis>必须</emphasis>定义对应数据库表主键字段。大多数类有一个 JavaBeans 风格的属性, 为每一个实例包含唯一的标识。<literal>&lt;id&gt;</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>&lt;id&gt;</"
+"literal> element defines the mapping from that property to the primary key "
+"column."
+msgstr ""
+"被映射的类<emphasis>必须</emphasis>定义对应数据库表主键字段。大多数类有一个 "
+"JavaBeans 风格的属性, 为每一个实例包含唯一的标识。<literal>&lt;id&gt;</"
+"literal> 元素定义了该属性到数据库表主键字段的映射。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>name</literal> (optional): the name of the identifier property."
+msgid ""
+"<literal>name</literal> (optional): the name of the identifier property."
 msgstr "<literal>name</literal>(可选):标识属性的名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgid ""
+"<literal>type</literal> (optional): a name that indicates the Hibernate type."
 msgstr "<literal>type</literal>(可选):一个 Hibernate 类型的名字。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>column</literal> (optional - defaults to the property name): the name of the primary key column."
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the primary key column."
 msgstr "<literal>column</literal>(可选 — 默认为属性名):主键字段的名字。 "
 
 #. Tag: para
 #, 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 中装载过(可能又做过修改--译者注)但未再次持久化的实例区分开来。 "
+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
 #, 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 用来访问属性值的策略。 "
+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
 #, no-c-format
-msgid "If the <literal>name</literal> attribute is missing, it is assumed that the class has no identifier property."
+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
 #, no-c-format
-msgid "The <literal>unsaved-value</literal> attribute is almost never needed in Hibernate3."
+msgid ""
+"The <literal>unsaved-value</literal> attribute is almost never needed in "
+"Hibernate3."
 msgstr "<literal>unsaved-value</literal> 属性在 Hibernate3 中几乎不再需要。"
 
 #. Tag: para
 #, no-c-format
-msgid "There is an alternative <literal>&lt;composite-id&gt;</literal> declaration that allows access to legacy data with composite keys. Its use is strongly discouraged for anything else."
-msgstr "还有一个另外的 <literal>&lt;composite-id&gt;</literal> 定义可以访问旧式的多主键数据。我们非常不鼓励使用这种方式。"
+msgid ""
+"There is an alternative <literal>&lt;composite-id&gt;</literal> declaration "
+"that allows access to legacy data with composite keys. Its use is strongly "
+"discouraged for anything else."
+msgstr ""
+"还有一个另外的 <literal>&lt;composite-id&gt;</literal> 定义可以访问旧式的多主"
+"键数据。我们非常不鼓励使用这种方式。"
 
 #. Tag: title
 #, no-c-format
@@ -387,13 +768,29 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The optional <literal>&lt;generator&gt;</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>&lt;param&gt;</literal> element."
-msgstr "可选的 <literal>&lt;generator&gt;</literal> 子元素是一个 Java 类的名字,用来为该持久化类的实例生成唯一的标识。如果这个生成器实例需要某些配置值或者初始化参数,用 <literal>&lt;param&gt;</literal> 元素来传递。"
+msgid ""
+"The optional <literal>&lt;generator&gt;</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>&lt;param&gt;</"
+"literal> element."
+msgstr ""
+"可选的 <literal>&lt;generator&gt;</literal> 子元素是一个 Java 类的名字,用来"
+"为该持久化类的实例生成唯一的标识。如果这个生成器实例需要某些配置值或者初始化"
+"参数,用 <literal>&lt;param&gt;</literal> 元素来传递。"
 
 #. Tag: para
 #, 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 提供了很多内置的实现。下面是一些内置生成器的快捷名字:  "
+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: term
 #, no-c-format
@@ -402,8 +799,15 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -412,8 +816,14 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -422,8 +832,14 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -432,8 +848,18 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -442,8 +868,14 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -452,8 +884,13 @@
 
 #. Tag: para
 #, 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 进制数字的字符串。 "
+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: term
 #, no-c-format
@@ -472,8 +909,13 @@
 
 #. Tag: para
 #, 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> 中的一个。"
+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: term
 #, no-c-format
@@ -482,8 +924,13 @@
 
 #. Tag: para
 #, 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>&lt;generator&gt;</literal> element is specified."
-msgstr "让应用程序在调用 <literal>save()</literal> 之前为对象分配一个标识符。这是 <literal>&lt;generator&gt;</literal> 元素没有指定时的默认生成策略。"
+msgid ""
+"lets the application assign an identifier to the object before <literal>save"
+"()</literal> is called. This is the default strategy if no <literal>&lt;"
+"generator&gt;</literal> element is specified."
+msgstr ""
+"让应用程序在调用 <literal>save()</literal> 之前为对象分配一个标识符。这是 "
+"<literal>&lt;generator&gt;</literal> 元素没有指定时的默认生成策略。"
 
 #. Tag: term
 #, no-c-format
@@ -492,7 +939,9 @@
 
 #. Tag: para
 #, 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."
+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: term
@@ -502,8 +951,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "uses the identifier of another associated object. It is usually used in conjunction with a <literal>&lt;one-to-one&gt;</literal> primary key association."
-msgstr "使用另外一个相关联的对象的标识符。它通常和 <literal>&lt;one-to-one&gt;</literal> 联合起来使用。"
+msgid ""
+"uses the identifier of another associated object. It is usually used in "
+"conjunction with a <literal>&lt;one-to-one&gt;</literal> primary key "
+"association."
+msgstr ""
+"使用另外一个相关联的对象的标识符。它通常和 <literal>&lt;one-to-one&gt;</"
+"literal> 联合起来使用。"
 
 #. Tag: term
 #, no-c-format
@@ -512,8 +966,18 @@
 
 #. Tag: para
 #, 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,这些插入语句的注释被关闭了。"
+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
 #, no-c-format
@@ -522,13 +986,31 @@
 
 #. Tag: para
 #, 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 风格的序列(在被支持的情况下)。 "
+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: para
 #, 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>。"
+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
 #, no-c-format
@@ -537,8 +1019,15 @@
 
 #. Tag: para
 #, 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 的前提下的能做的最好实现了。"
+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
 #, no-c-format
@@ -547,13 +1036,30 @@
 
 #. Tag: para
 #, 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 查询。例如:"
+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: para
 #, 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> 中进行选择,选择哪一个,这取决于底层数据库的支持能力。"
+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
 #, no-c-format
@@ -562,13 +1068,35 @@
 
 #. Tag: para
 #, 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>&lt;generator&gt;</literal> element."
-msgstr "如果你需要应用程序分配一个标示符(而非 Hibernate 来生成),你可以使用 <literal>assigned</literal> 生成器。这种特殊的生成器会使用已经分配给对象的标识符属性的标识符值。 这个生成器使用一个自然键(natural key,有商业意义的列-译注)作为主键,而不是使用一个代理键( surrogate key,没有商业意义的列-译注)。这是没有指定 <literal>&lt;generator&gt;</literal> 元素时的默认行为。"
+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>&lt;generator&gt;</literal> "
+"element."
+msgstr ""
+"如果你需要应用程序分配一个标示符(而非 Hibernate 来生成),你可以使用 "
+"<literal>assigned</literal> 生成器。这种特殊的生成器会使用已经分配给对象的标"
+"识符属性的标识符值。 这个生成器使用一个自然键(natural key,有商业意义的列-"
+"译注)作为主键,而不是使用一个代理键( surrogate key,没有商业意义的列-译"
+"注)。这是没有指定 <literal>&lt;generator&gt;</literal> 元素时的默认行为。"
 
 #. Tag: para
 #, 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)。"
+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
 #, no-c-format
@@ -577,13 +1105,21 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgid ""
+"Hibernate does not generate DDL with triggers. It is for legacy schemas only."
 msgstr "仅仅用于遗留的 schema 中(Hibernate 不能用触发器生成 DDL)。"
 
 #. Tag: para
 #, 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)的值由触发器生成。"
+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
 #, no-c-format
@@ -592,88 +1128,212 @@
 
 #. Tag: para
 #, 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 进行引用。"
+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
 #, 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 试图用基于表的生成器来模拟的。这个生成器有如下的配置参数:"
+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
 #, 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>):序列或表的名字"
+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
 #, 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\"。"
+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
 #, 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\"。"
+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
 #, 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>):即使方言可能支持序列,是否也应该强制把表用作后台结构。"
+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
 #, 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>):只和表结构相关,它是用于保存值的字段的名称。"
+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
 #, 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\" />。"
+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
 #, 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> 的替代品。基本上这个生成器定义了一个可以利用多个不同的键值记录存储大量不同增量值的表。这个生成器有如下的配置参数:"
+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
 #, 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>):所用的表的名称。"
+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
 #, 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>):用于存储这些值的表的字段的名字。"
+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
 #, 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\" 的字段的名称。这是标识使用哪个增量值的值。"
+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
 #, 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\"。"
+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
 #, 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 字段的字段大小。"
+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
 #, 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>):从表里获取的初始值。"
+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
 #, 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>):对表随后的调用应该区分的值。"
+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
 #, 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\" />。"
+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
 #, no-c-format
@@ -682,23 +1342,58 @@
 
 #. Tag: para
 #, 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\"/>)。 "
+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
 #, 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,通常这是缺省配置):这不会执行任何优化,在每次请求时都访问数据库。"
+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
 #, 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 值”。"
+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
 #, 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> 表示数据库里的值。"
+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
 #, no-c-format
@@ -707,68 +1402,147 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A table with a composite key can be mapped with multiple properties of the class as identifier properties. The <literal>&lt;composite-id&gt;</literal> element accepts <literal>&lt;key-property&gt;</literal> property mappings and <literal>&lt;key-many-to-one&gt;</literal> mappings as child elements."
-msgstr "如果表使用联合主键,你可以映射类的多个属性为标识符属性。<literal>&lt;composite-id&gt;</literal> 元素接受 <literal>&lt;key-property&gt;</literal> 属性映射和 <literal>&lt;key-many-to-one&gt;</literal> 属性映射作为子元素。 "
+msgid ""
+"A table with a composite key can be mapped with multiple properties of the "
+"class as identifier properties. The <literal>&lt;composite-id&gt;</literal> "
+"element accepts <literal>&lt;key-property&gt;</literal> property mappings "
+"and <literal>&lt;key-many-to-one&gt;</literal> mappings as child elements."
+msgstr ""
+"如果表使用联合主键,你可以映射类的多个属性为标识符属性。<literal>&lt;"
+"composite-id&gt;</literal> 元素接受 <literal>&lt;key-property&gt;</literal> "
+"属性映射和 <literal>&lt;key-many-to-one&gt;</literal> 属性映射作为子元素。 "
 
 #. Tag: para
 #, 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> 接口也是必须的。"
+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
 #, 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>的组合标识符,在重要的应用中不鼓励使用这种用法。 "
+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
 #, 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>&lt;composite-id&gt;</literal> element are duplicated on both the persistent class and a separate identifier class."
-msgstr "第二种方法我们称为 <emphasis>mapped(映射式)</emphasis>组合标识符(mapped composite identifier),<literal>&lt;composite-id&gt;</literal> 元素中列出的标识属性不但在持久化类出现,还形成一个独立的标识符类。"
+msgid ""
+"A second approach is what we call a <emphasis>mapped</emphasis> composite "
+"identifier, where the identifier properties named inside the <literal>&lt;"
+"composite-id&gt;</literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
+msgstr ""
+"第二种方法我们称为 <emphasis>mapped(映射式)</emphasis>组合标识符(mapped "
+"composite identifier),<literal>&lt;composite-id&gt;</literal> 元素中列出的"
+"标识属性不但在持久化类出现,还形成一个独立的标识符类。"
 
 #. Tag: para
 #, 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> 接口。这种方法的缺点是出现了明显的代码重复。"
+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
 #, 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
 #, 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>):指明使用一个映射式组合标识符,其包含的属性映射同时在实体类和组合标识符类中出现。 "
+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
 #, 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>(可选,但对映射式组合标识符必须指定):作为组合标识符类使用的类名。"
+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
 #, 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)类,这是更方便的方法。下面的属性仅对第三种方法有效: "
+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
 #, 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 章)。"
+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
 #, 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 用来访问属性值的策略。 "
+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
 #, 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>(可选 — 默认会用反射来自动判定属性类型 ):用来作为组合标识符的组件类的类名(参阅下一节)。 "
+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
 #, no-c-format
-msgid "The third approach, an <emphasis>identifier component</emphasis>, is recommended for almost all applications."
-msgstr "第三种方式,被称为 <emphasis>identifier component(标识符组件)</emphasis>是我们对几乎所有应用都推荐使用的方式。 "
+msgid ""
+"The third approach, an <emphasis>identifier component</emphasis>, is "
+"recommended for almost all applications."
+msgstr ""
+"第三种方式,被称为 <emphasis>identifier component(标识符组件)</emphasis>是"
+"我们对几乎所有应用都推荐使用的方式。 "
 
 #. Tag: title
 #, no-c-format
@@ -777,48 +1551,105 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;discriminator&gt;</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>&lt;discriminator&gt;</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>。"
+msgid ""
+"The <literal>&lt;discriminator&gt;</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>&lt;discriminator&gt;</"
+"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
 #, 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 器字段的名字。"
+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
 #, 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 字段类型的名字 "
+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
 #, 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 指定允许的鉴别器值,即使当取得的所有实例都是根类的。 "
+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
 #, 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> 时不包含该列) "
+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
 #, 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 表达式,在类型判断(判断是父类还是具体子类 — 译注)时执行。可用于基于内容的鉴别器。 "
+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
 #, no-c-format
-msgid "Actual values of the discriminator column are specified by the <literal>discriminator-value</literal> attribute of the <literal>&lt;class&gt;</literal> and <literal>&lt;subclass&gt;</literal> elements."
-msgstr "鉴别器字段的实际值是根据 <literal>&lt;class&gt;</literal> 和 <literal>&lt;subclass&gt;</literal> 元素中的 <literal>discriminator-value</literal> 属性得来的。"
+msgid ""
+"Actual values of the discriminator column are specified by the "
+"<literal>discriminator-value</literal> attribute of the <literal>&lt;"
+"class&gt;</literal> and <literal>&lt;subclass&gt;</literal> elements."
+msgstr ""
+"鉴别器字段的实际值是根据 <literal>&lt;class&gt;</literal> 和 <literal>&lt;"
+"subclass&gt;</literal> 元素中的 <literal>discriminator-value</literal> 属性得"
+"来的。"
 
 #. Tag: para
 #, 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> 属性仅仅在这种情况下有用的:表中包含没有被映射到持久化类的附加辨别器值。这种情况不会经常遇到。 "
+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
 #, 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 表达式,用来判断一行数据的类型。"
+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
 #, no-c-format
@@ -827,53 +1658,114 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;version&gt;</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>&lt;version&gt;</literal> 元素是可选的,表明表中包含附带版本信息的数据。这在你准备使用<emphasis> 长事务(long transactions)</emphasis>的时候特别有用。下面是更多信息:"
+msgid ""
+"The <literal>&lt;version&gt;</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>&lt;version&gt;</literal> 元素是可选的,表明表中包含附带版本信息的数"
+"据。这在你准备使用<emphasis> 长事务(long transactions)</emphasis>的时候特别"
+"有用。下面是更多信息:"
 
 #. Tag: para
 #, 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>(可选 — 默认为属性名):指定持有版本号的字段名。 "
+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
 #, no-c-format
-msgid "<literal>name</literal>: the name of a property of the persistent class."
+msgid ""
+"<literal>name</literal>: the name of a property of the persistent class."
 msgstr "<literal>name</literal>:持久化类的属性名。 "
 
 #. Tag: para
 #, 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>):版本号的类型。 "
+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
 #, 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 用来访问属性值的策略。 "
+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
 #, 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> 指明应被使用的标识属性值。) "
+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
 #, 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\"/> 部分的讨论。 "
+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
 #, 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>。 "
+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
 #, 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>。"
+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
 #, 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>。"
+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
 #, no-c-format
@@ -882,33 +1774,78 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The optional <literal>&lt;timestamp&gt;</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>&lt;timestamp&gt;</literal> 元素指明了表中包含时间戳数据。这用来作为版本的替代。时间戳本质上是一种对乐观锁定的一种不是特别安全的实现。当然,有时候应用程序可能在其他方面使用时间戳。 "
+msgid ""
+"The optional <literal>&lt;timestamp&gt;</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>&lt;timestamp&gt;</literal> 元素指明了表中包含时间戳数据。这"
+"用来作为版本的替代。时间戳本质上是一种对乐观锁定的一种不是特别安全的实现。当"
+"然,有时候应用程序可能在其他方面使用时间戳。 "
 
 #. Tag: para
 #, 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>(可选 — 默认为属性名):存有时间戳的字段名。 "
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of a column holding the timestamp."
+msgstr ""
+"<literal>column</literal>(可选 — 默认为属性名):存有时间戳的字段名。 "
 
 #. Tag: para
 #, 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> 的。 "
+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
 #, 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> 指明使用标识属性值进行这种判断。) "
+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
 #, 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)。 "
+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
 #, 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\"/> 的讨论。 "
+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
 #, no-c-format
@@ -917,8 +1854,16 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>&lt;Timestamp&gt;</literal> is equivalent to <literal>&lt;version type=\"timestamp\"&gt;</literal>. And <literal>&lt;timestamp source=\"db\"&gt;</literal> is equivalent to <literal>&lt;version type=\"dbtimestamp\"&gt;</literal>"
-msgstr "注意,<literal>&lt;timestamp&gt;</literal> 和 <literal>&lt;version type=\"timestamp\"&gt;</literal> 是等价的。并且 <literal>&lt;timestamp source=\"db\"&gt;</literal> 和 <literal>&lt;version type=\"dbtimestamp\"&gt;</literal> 是等价的。 "
+msgid ""
+"<literal>&lt;Timestamp&gt;</literal> is equivalent to <literal>&lt;version "
+"type=\"timestamp\"&gt;</literal>. And <literal>&lt;timestamp source=\"db"
+"\"&gt;</literal> is equivalent to <literal>&lt;version type=\"dbtimestamp"
+"\"&gt;</literal>"
+msgstr ""
+"注意,<literal>&lt;timestamp&gt;</literal> 和 <literal>&lt;version type="
+"\"timestamp\"&gt;</literal> 是等价的。并且 <literal>&lt;timestamp source=\"db"
+"\"&gt;</literal> 和 <literal>&lt;version type=\"dbtimestamp\"&gt;</literal> "
+"是等价的。 "
 
 #. Tag: title
 #, no-c-format
@@ -927,53 +1872,109 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;property&gt;</literal> element declares a persistent JavaBean style property of the class."
-msgstr "<literal>&lt;property&gt;</literal> 元素为类定义了一个持久化的、JavaBean 风格的属性。 "
+msgid ""
+"The <literal>&lt;property&gt;</literal> element declares a persistent "
+"JavaBean style property of the class."
+msgstr ""
+"<literal>&lt;property&gt;</literal> 元素为类定义了一个持久化的、JavaBean 风格"
+"的属性。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>name</literal>: the name of the property, with an initial lowercase letter."
+msgid ""
+"<literal>name</literal>: the name of the property, with an initial lowercase "
+"letter."
 msgstr "<literal>name</literal>:属性的名字,以小写字母开头。"
 
 #. Tag: para
 #, 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>&lt;column&gt;</literal> element(s)."
-msgstr "<literal>column</literal>(可选 — 默认为属性名字):对应的数据库字段名。 也可以通过嵌套的 <literal>&lt;column&gt;</literal> 元素指定。 "
+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>&lt;column&gt;</literal> element(s)."
+msgstr ""
+"<literal>column</literal>(可选 — 默认为属性名字):对应的数据库字段名。 也可"
+"以通过嵌套的 <literal>&lt;column&gt;</literal> 元素指定。 "
 
 #. Tag: para
 #, 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(触发器)或其他程序生成。 "
+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
 #, 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
 #, 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)( 需要运行时字节码增强)。 "
+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
 #, 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> 引用的目标。 "
+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
 #, 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)的约束。 "
+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
 #, 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)的值是否增长。 "
+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
 #, 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\"/> 的讨论。 "
+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
 #, no-c-format
@@ -982,13 +1983,23 @@
 
 #. Tag: para
 #, 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>)。 "
+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
 #, 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>)。 "
+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
 #, no-c-format
@@ -997,28 +2008,71 @@
 
 #. Tag: para
 #, 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>)。 "
+msgid ""
+"The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
+"literal> etc."
+msgstr ""
+"一个自定义类型的类的名字。(比如:<literal>com.illflow.type.MyCustomType</"
+"literal>)。 "
 
 #. Tag: para
 #, 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>,或者为了指定一个自定义类型。) "
+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
 #, 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 中设置你自定义策略类的名字。 "
+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
 #, 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> 子查询语句。 "
+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
 #, 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>&lt;formula&gt;</literal> mapping element if you do not want to use the attribute."
-msgstr "注意,你可以使用实体自己的表,而不用为这个特别的列定义别名(上面例子中的 <literal>customerId</literal>)。同时注意,如果你不喜欢使用属性, 你可以使用嵌套的 <literal>&lt;formula&gt;</literal> 映射元素。 "
+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>&lt;formula&gt;</literal> mapping "
+"element if you do not want to use the attribute."
+msgstr ""
+"注意,你可以使用实体自己的表,而不用为这个特别的列定义别名(上面例子中的 "
+"<literal>customerId</literal>)。同时注意,如果你不喜欢使用属性, 你可以使用"
+"嵌套的 <literal>&lt;formula&gt;</literal> 映射元素。 "
 
 #. Tag: title
 #, no-c-format
@@ -1027,8 +2081,15 @@
 
 #. Tag: para
 #, 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> 元素,可以定义一种常见的与另一个持久化类的关联。这种关系模型是多对一关联(实际上是一个对象引用-译注):这个表的一个外键引用目标表的主键字段。 "
+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
 #, no-c-format
@@ -1037,78 +2098,178 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>column</literal> (optional): the name of the foreign key column. This can also be specified by nested <literal>&lt;column&gt;</literal> element(s)."
-msgstr "<literal>column</literal>(可选):外键字段的名称。也可以通过嵌套的  <literal>&lt;column&gt;</literal> 指定。 "
+msgid ""
+"<literal>column</literal> (optional): the name of the foreign key column. "
+"This can also be specified by nested <literal>&lt;column&gt;</literal> "
+"element(s)."
+msgstr ""
+"<literal>column</literal>(可选):外键字段的名称。也可以通过嵌套的  "
+"<literal>&lt;column&gt;</literal> 指定。 "
 
 #. Tag: para
 #, 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>(可选 — 默认是通过反射得到的属性类型):被关联的类的名字。  "
+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
 #, 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>(可选)表明操作是否从父对象级联到被关联的对象。 "
+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
 #, 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)两者中选择其一。 "
+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
 #, 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(触发器)、或其他程序生成。 "
+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
 #, 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>:(可选)被关联到此外键的类中的对应属性的名字。如果没有指定,被关联类的主键将被使用。 "
+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
 #, 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> 的目标属性。这使关联同时具有一对一的效果。 "
+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
 #, 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 为外键字段生成一个非空约束。 "
+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
 #, 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> 指定此关联总是被预先抓取。 "
+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
 #, 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> 会把缺失的行作为一个空关联处理。 "
+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
 #, no-c-format
-msgid "<literal>entity-name</literal> (optional): the entity name of the associated class."
+msgid ""
+"<literal>entity-name</literal> (optional): the entity name of the associated "
+"class."
 msgstr "<literal>entity-name</literal>(可选):被关联的类的实体名。 "
 
 #. Tag: para
 #, 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
 #, 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,删除不再被引用的值)。 "
+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
 #, no-c-format
-msgid "Here is an example of a typical <literal>many-to-one</literal> declaration:"
+msgid ""
+"Here is an example of a typical <literal>many-to-one</literal> declaration:"
 msgstr "一个典型的简单 <literal>many-to-one</literal> 定义例子: "
 
 #. Tag: para
 #, 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 生成。) "
+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
 #, no-c-format
@@ -1122,12 +2283,19 @@
 
 #. Tag: para
 #, 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>&lt;properties&gt;</literal> element."
-msgstr "如果被引用的唯一主键由关联实体的多个属性组成,你应该在名称为 <literal>&lt;properties&gt;</literal> 的元素 里面映射所有关联的属性。"
+msgid ""
+"If the referenced unique key comprises multiple properties of the associated "
+"entity, you should map the referenced properties inside a named <literal>&lt;"
+"properties&gt;</literal> element."
+msgstr ""
+"如果被引用的唯一主键由关联实体的多个属性组成,你应该在名称为 <literal>&lt;"
+"properties&gt;</literal> 的元素 里面映射所有关联的属性。"
 
 #. Tag: para
 #, no-c-format
-msgid "If the referenced unique key is the property of a component, you can specify a property path:"
+msgid ""
+"If the referenced unique key is the property of a component, you can specify "
+"a property path:"
 msgstr "假若被引用的唯一主键是组件的属性,你可以指定属性路径: "
 
 #. Tag: title
@@ -1137,28 +2305,70 @@
 
 #. Tag: para
 #, 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: para
 #, 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 中被使用)。 "
+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
 #, 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>:(可选)指定关联类的属性名,这个属性将会和本类的主键相对应。如果没有指定,会使用对方关联类的主键。 "
+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
 #, 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 找到例子) "
+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
 #, 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>。"
+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
 #, no-c-format
@@ -1177,33 +2387,63 @@
 
 #. Tag: para
 #, 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 "主键关联不需要额外的表字段;如果两行是通过这种一对一关系相关联的,那么这两行就共享同样的主关键字值。所以如果你希望两个对象通过主键一对一关联,你必须确认它们被赋予同样的标识值。"
+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
 #, 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> 进行主键一对一关联:"
+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: para
 #, 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 标识符生成策略: "
+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
 #, 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> 实例同样的关键字值。 "
+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
 #, 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> 的例子,如果使用这种关联方式,可以表达成: "
+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
 #, no-c-format
-msgid "This association can be made bidirectional by adding the following to the <literal>Person</literal> mapping:"
-msgstr "如果在 <literal>Person</literal> 的映射加入下面几句,这种关联就是双向的: "
+msgid ""
+"This association can be made bidirectional by adding the following to the "
+"<literal>Person</literal> mapping:"
+msgstr ""
+"如果在 <literal>Person</literal> 的映射加入下面几句,这种关联就是双向的: "
 
 #. Tag: title
 #, no-c-format
@@ -1212,23 +2452,48 @@
 
 #. Tag: para
 #, 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>&lt;natural-id&gt;</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>&lt;natural-id&gt;</literal> 元素中列出自然键的属性。Hibernate 会帮你生成必须的唯一键值和非空约束,你的映射会更加的明显易懂(原文是 self-documenting,自我注解)。 "
+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>&lt;"
+"natural-id&gt;</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>&lt;"
+"natural-id&gt;</literal> 元素中列出自然键的属性。Hibernate 会帮你生成必须的唯"
+"一键值和非空约束,你的映射会更加的明显易懂(原文是 self-documenting,自我注"
+"解)。 "
 
 #. Tag: para
 #, 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> 方法,来比较实体的自然键属性。 "
+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
 #, no-c-format
-msgid "This mapping is not intended for use with entities that have natural primary keys."
+msgid ""
+"This mapping is not intended for use with entities that have natural primary "
+"keys."
 msgstr "这一映射不是为了把自然键作为主键而准备的。 "
 
 #. Tag: para
 #, 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>):默认情况下,自然标识属性被假定为不可变的(常量)。 "
+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
 #, no-c-format
@@ -1237,53 +2502,105 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;component&gt;</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>&lt;component&gt;</literal> 元素把子对象的一些元素与父类对应的表的一些字段映射起来。然后组件可以定义它们自己的属性、组件或者集合。参见后面的“Components”一章。 "
+msgid ""
+"The <literal>&lt;component&gt;</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>&lt;component&gt;</literal> 元素把子对象的一些元素与父类对应的表的一"
+"些字段映射起来。然后组件可以定义它们自己的属性、组件或者集合。参见后面"
+"的“Components”一章。 "
 
 #. Tag: para
 #, 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>(可选 — 默认为通过反射得到的属性类型):组件(子)类的名字。 "
+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
 #, 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> 语句中? "
+msgid ""
+"<literal>insert</literal>: do the mapped columns appear in SQL "
+"<literal>INSERTs</literal>?"
+msgstr ""
+"<literal>insert</literal>:被映射的字段是否出现在 SQL 的 <literal>INSERT</"
+"literal> 语句中? "
 
 #. Tag: para
 #, 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> 语句中? "
+msgid ""
+"<literal>update</literal>: do the mapped columns appear in SQL "
+"<literal>UPDATEs</literal>?"
+msgstr ""
+"<literal>update</literal>:被映射的字段是否出现在 SQL 的 <literal>UPDATE</"
+"literal> 语句中? "
 
 #. Tag: para
 #, 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>):表明此组件应在实例变量第一次被访问的时候延迟加载(需要编译时字节码装置器)。"
+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
 #, 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)。"
+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
 #, 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>):表明组件映射的所有字段上都有唯一性约束。"
+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
 #, no-c-format
-msgid "The child <literal>&lt;property&gt;</literal> tags map properties of the child class to table columns."
-msgstr "其 <literal>&lt;property&gt;</literal> 子标签为子类的一些属性与表字段之间建立映射。"
+msgid ""
+"The child <literal>&lt;property&gt;</literal> tags map properties of the "
+"child class to table columns."
+msgstr ""
+"其 <literal>&lt;property&gt;</literal> 子标签为子类的一些属性与表字段之间建立"
+"映射。"
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
-msgstr "<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
+msgid ""
+"The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
+"parent&gt;</literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;"
+"</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;dynamic-component&gt;</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>&lt;dynamic-component&gt;</literal> 元素允许把一个 <literal>Map</literal> 映射为组件,其属性名对应 map 的键值。参见 <xref linkend=\"components-dynamic\"/>。 "
+msgid ""
+"The <literal>&lt;dynamic-component&gt;</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>&lt;dynamic-component&gt;</literal> 元素允许把一个 <literal>Map</"
+"literal> 映射为组件,其属性名对应 map 的键值。参见 <xref linkend="
+"\"components-dynamic\"/>。 "
 
 #. Tag: title
 #, no-c-format
@@ -1292,32 +2609,60 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;properties&gt;</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>&lt;properties&gt;</literal> 元素允许定义一个命名的逻辑分组(grouping)包含一个类中的多个属性。这个元素最重要的用处是允许多个属性的组合作为 <literal>property-ref</literal> 的目标(target)。这也是定义多字段唯一约束的一种方便途径。例如:"
+msgid ""
+"The <literal>&lt;properties&gt;</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>&lt;properties&gt;</literal> 元素允许定义一个命名的逻辑分组"
+"(grouping)包含一个类中的多个属性。这个元素最重要的用处是允许多个属性的组合"
+"作为 <literal>property-ref</literal> 的目标(target)。这也是定义多字段唯一约"
+"束的一种方便途径。例如:"
 
 #. Tag: para
 #, 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> 实际属性的名称。 "
+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
 #, 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)。"
+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
 #, no-c-format
-msgid "For example, if we have the following <literal>&lt;properties&gt;</literal> mapping:"
+msgid ""
+"For example, if we have the following <literal>&lt;properties&gt;</literal> "
+"mapping:"
 msgstr "例如,如果我们有如下的 <literal>&lt;properties&gt;</literal> 映射:"
 
 #. Tag: para
 #, 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> 表的这个唯一键,而不是主键:"
+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
 #, no-c-format
-msgid "The use of this outside the context of mapping legacy data is not recommended."
+msgid ""
+"The use of this outside the context of mapping legacy data is not "
+"recommended."
 msgstr "我们并不推荐这样使用,除非在映射遗留数据的情况下。 "
 
 #. Tag: title
@@ -1327,37 +2672,66 @@
 
 #. Tag: para
 #, 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>&lt;subclass&gt;</literal> declaration is used. For example:"
-msgstr "最后,多态持久化需要为父类的每个子类都进行定义。对于“每一棵类继承树对应一个表”的策略来说,就需要使用 <literal>&lt;subclass&gt;</literal> 定义。 "
+msgid ""
+"Polymorphic persistence requires the declaration of each subclass of the "
+"root persistent class. For the table-per-class-hierarchy mapping strategy, "
+"the <literal>&lt;subclass&gt;</literal> declaration is used. For example:"
+msgstr ""
+"最后,多态持久化需要为父类的每个子类都进行定义。对于“每一棵类继承树对应一个"
+"表”的策略来说,就需要使用 <literal>&lt;subclass&gt;</literal> 定义。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>name</literal>: the fully qualified class name of the subclass."
+msgid ""
+"<literal>name</literal>: the fully qualified class name of the subclass."
 msgstr "<literal>name</literal>:子类的全限定名。 "
 
 #. Tag: para
 #, 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>(可选 — 默认为类名):一个用于区分每个独立的子类的值。 "
+msgid ""
+"<literal>discriminator-value</literal> (optional - defaults to the class "
+"name): a value that distinguishes individual subclasses."
+msgstr ""
+"<literal>discriminator-value(辨别标志)</literal>(可选 — 默认为类名):一个"
+"用于区分每个独立的子类的值。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>proxy</literal> (optional): specifies a class or interface used for lazy initializing proxies."
-msgstr "<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使用。 "
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface used for "
+"lazy initializing proxies."
+msgstr ""
+"<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使"
+"用。 "
 
 #. Tag: para
 #, 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> 禁止使用延迟装载。 "
+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
 #, no-c-format
-msgid "Each subclass declares its own persistent properties and subclasses. <literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</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>&lt;version&gt;</literal> 和 <literal>&lt;id&gt;</literal> 属性可以从根父类继承下来。在一棵继承树上的每个子类都必须定义一个唯一的 <literal>discriminator-value</literal>。如果没有指定,就会使用 Java 类的全限定名。 "
+msgid ""
+"Each subclass declares its own persistent properties and subclasses. "
+"<literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</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>&lt;version&gt;</"
+"literal> 和 <literal>&lt;id&gt;</literal> 属性可以从根父类继承下来。在一棵继"
+"承树上的每个子类都必须定义一个唯一的 <literal>discriminator-value</literal>。"
+"如果没有指定,就会使用 Java 类的全限定名。 "
 
 #. Tag: para
 #, no-c-format
-msgid "For information about inheritance mappings see <xref linkend=\"inheritance\" />."
+msgid ""
+"For information about inheritance mappings see <xref linkend=\"inheritance"
+"\" />."
 msgstr "更多关于继承映射的信息,参考 <xref linkend=\"inheritance\"/>。 "
 
 #. Tag: title
@@ -1367,8 +2741,15 @@
 
 #. Tag: para
 #, 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>&lt;joined-subclass&gt;</literal> element. For example:"
-msgstr "此外,每个子类可能被映射到他自己的表中(每个子类一个表的策略)。被继承的状态通过和超类的表关联得到。我们使用 <literal>&lt;joined-subclass&gt;</literal> 元素。 "
+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>&lt;joined-"
+"subclass&gt;</literal> element. For example:"
+msgstr ""
+"此外,每个子类可能被映射到他自己的表中(每个子类一个表的策略)。被继承的状态"
+"通过和超类的表关联得到。我们使用 <literal>&lt;joined-subclass&gt;</literal> "
+"元素。 "
 
 #. Tag: para
 #, no-c-format
@@ -1377,18 +2758,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>proxy</literal> (optional): specifies a class or interface to use for lazy initializing proxies."
-msgstr "<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使用。 "
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface to use "
+"for lazy initializing proxies."
+msgstr ""
+"<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使"
+"用。 "
 
 #. Tag: para
 #, 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> 禁止使用延迟装载。 "
+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
 #, 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>&lt;key&gt;</literal> element. The mapping at the start of the chapter would then be re-written as:"
-msgstr "这种映射策略不需要指定辨别标志(discriminator)字段。但是,每一个子类都必须使用 <literal>&lt;key&gt;</literal> 元素指定一个表字段来持有对象的标识符。本章开始的映射可以被用如下方式重写: "
+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>&lt;key&gt;</literal> element. The mapping at the start "
+"of the chapter would then be re-written as:"
+msgstr ""
+"这种映射策略不需要指定辨别标志(discriminator)字段。但是,每一个子类都必须使"
+"用 <literal>&lt;key&gt;</literal> 元素指定一个表字段来持有对象的标识符。本章"
+"开始的映射可以被用如下方式重写: "
 
 #. Tag: title
 #, no-c-format
@@ -1397,12 +2793,27 @@
 
 #. Tag: para
 #, 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>&lt;class&gt;</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>&lt;union-subclass&gt;</literal> mapping. For example:"
-msgstr "第三种选择是仅仅映射类继承树中具体类部分到表中(每个具体类一张表的策略)。其中,每张表定义了类的所有持久化状态,包括继承的状态。在 Hibernate 中,并不需要完全显式地映射这样的继承树。你可以简单地使用单独的 <literal>&lt;class&gt;</literal> 定义映射每个类。然而,如果你想使用多态关联(例如,一个对类继承树中超类的关联),你需要使用 <literal>&lt;union-subclass&gt;</literal> 映射。 "
+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>&lt;"
+"class&gt;</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>&lt;union-subclass&gt;</literal> mapping. For "
+"example:"
+msgstr ""
+"第三种选择是仅仅映射类继承树中具体类部分到表中(每个具体类一张表的策略)。其"
+"中,每张表定义了类的所有持久化状态,包括继承的状态。在 Hibernate 中,并不需要"
+"完全显式地映射这样的继承树。你可以简单地使用单独的 <literal>&lt;class&gt;</"
+"literal> 定义映射每个类。然而,如果你想使用多态关联(例如,一个对类继承树中超"
+"类的关联),你需要使用 <literal>&lt;union-subclass&gt;</literal> 映射。 "
 
 #. Tag: para
 #, no-c-format
-msgid "No discriminator column or key column is required for this mapping strategy."
+msgid ""
+"No discriminator column or key column is required for this mapping strategy."
 msgstr "这种映射策略不需要指定辨别标志(discriminator)字段。"
 
 #. Tag: title
@@ -1412,8 +2823,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Using the <literal>&lt;join&gt;</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>&lt;join&gt;</literal> 元素,假若在表之间存在一对一关联,可以将一个类的属性映射到多张表中。 "
+msgid ""
+"Using the <literal>&lt;join&gt;</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>&lt;join&gt;</literal> 元素,假若在表之间存在一对一关联,可以将"
+"一个类的属性映射到多张表中。 "
 
 #. Tag: para
 #, no-c-format
@@ -1422,28 +2838,66 @@
 
 #. Tag: para
 #, 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>&lt;join&gt;</literal> defined by a class or its superclasses. It will use an outer join for a <literal>&lt;join&gt;</literal> defined by a subclass. If set to <literal>select</literal> then Hibernate will use a sequential select for a <literal>&lt;join&gt;</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>&lt;join&gt;</literal> defined by the class and its superclasses."
-msgstr "<literal>fetch</literal>(可选 — 默认是 <literal>join</literal>):如果设置为默认值 <literal>join</literal>,Hibernate 将使用一个内连接来得到这个类或其超类定义的 <literal>&lt;join&gt;</literal>,而使用一个外连接来得到其子类定义的 <literal>&lt;join&gt;</literal>。如果设置为 <literal>select</literal>,则 Hibernate 将为子类定义的 <literal>&lt;join&gt;</literal> 使用顺序选择。这仅在一行数据表示一个子类的对象的时候才会发生。对这个类和其超类定义的 <literal>&lt;join&gt;</literal>,依然会使用内连接得到。 "
+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>&lt;join&gt;</literal> defined by a class or its "
+"superclasses. It will use an outer join for a <literal>&lt;join&gt;</"
+"literal> defined by a subclass. If set to <literal>select</literal> then "
+"Hibernate will use a sequential select for a <literal>&lt;join&gt;</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>&lt;join&gt;</literal> defined by the class and its superclasses."
+msgstr ""
+"<literal>fetch</literal>(可选 — 默认是 <literal>join</literal>):如果设置为"
+"默认值 <literal>join</literal>,Hibernate 将使用一个内连接来得到这个类或其超"
+"类定义的 <literal>&lt;join&gt;</literal>,而使用一个外连接来得到其子类定义的 "
+"<literal>&lt;join&gt;</literal>。如果设置为 <literal>select</literal>,则 "
+"Hibernate 将为子类定义的 <literal>&lt;join&gt;</literal> 使用顺序选择。这仅在"
+"一行数据表示一个子类的对象的时候才会发生。对这个类和其超类定义的 "
+"<literal>&lt;join&gt;</literal>,依然会使用内连接得到。 "
 
 #. Tag: para
 #, 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 不会插入或者更新此连接定义的属性。 "
+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
 #, 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 只会在此连接定义的属性非空时插入一行数据,并且总是使用一个外连接来得到这些属性。 "
+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
 #, 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)信息可以被映射到单独的表中(并保留所有属性的值类型语义): "
+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
 #, 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 "此特性常常对遗留数据模型有用,我们推荐表个数比类个数少,以及细粒度的领域模型。然而,在单独的继承树上切换继承映射策略是有用的,后面会解释这点。 "
+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
 #, no-c-format
@@ -1452,43 +2906,94 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;key&gt;</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>&lt;key&gt;</literal> 元素多次了。这个元素在父映射元素定义了对新表的连接,并且在被连接表中定义了一个外键引用原表的主键的情况下经常使用。 "
+msgid ""
+"The <literal>&lt;key&gt;</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>&lt;key&gt;</literal> 元素多次了。这个元素在父映"
+"射元素定义了对新表的连接,并且在被连接表中定义了一个外键引用原表的主键的情况"
+"下经常使用。 "
 
 #. Tag: para
 #, 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>):表明外键关联是否打开数据库级别的级联删除。 "
+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
 #, 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>(可选):表明外键引用的字段不是原表的主键(提供给遗留数据)。 "
+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
 #, 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>(可选):表明外键的字段不可为空(这意味着无论何时外键都是主键的一部分)。 "
+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
 #, 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>(可选):表明外键决不应该被更新(这意味着无论何时外键都是主键的一部分)。 "
+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
 #, 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>(可选):表明外键应有唯一性约束(这意味着无论何时外键都是主键的一部分)。 "
+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
 #, 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)采用的乐观锁策略。 "
+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
 #, 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>&lt;key not-null=\"true\"&gt;</literal>."
-msgstr "<literal>not-null</literal> 和 <literal>update</literal> 属性在映射单向一对多关联的时候有用。如果你映射一个单向一对多关联到非空的(non-nullable)外键,你<emphasis>必须</emphasis> 用 <literal>&lt;key not-null=\"true\"&gt;</literal> 定义此键字段。 "
+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>&lt;key not-"
+"null=\"true\"&gt;</literal>."
+msgstr ""
+"<literal>not-null</literal> 和 <literal>update</literal> 属性在映射单向一对多"
+"关联的时候有用。如果你映射一个单向一对多关联到非空的(non-nullable)外键,你"
+"<emphasis>必须</emphasis> 用 <literal>&lt;key not-null=\"true\"&gt;</"
+"literal> 定义此键字段。 "
 
 #. Tag: title
 #, no-c-format
@@ -1497,13 +3002,25 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Mapping elements which accept a <literal>column</literal> attribute will alternatively accept a <literal>&lt;column&gt;</literal> subelement. Likewise, <literal>&lt;formula&gt;</literal> is an alternative to the <literal>formula</literal> attribute. For example:"
-msgstr "任何接受 <literal>column</literal> 属性的映射元素都可以选择接受 <literal>&lt;column&gt;</literal> 子元素。同样的,<literal>formula</literal> 子元素也可以替换 <literal>&lt;formula&gt;</literal> 属性。 "
+msgid ""
+"Mapping elements which accept a <literal>column</literal> attribute will "
+"alternatively accept a <literal>&lt;column&gt;</literal> subelement. "
+"Likewise, <literal>&lt;formula&gt;</literal> is an alternative to the "
+"<literal>formula</literal> attribute. For example:"
+msgstr ""
+"任何接受 <literal>column</literal> 属性的映射元素都可以选择接受 <literal>&lt;"
+"column&gt;</literal> 子元素。同样的,<literal>formula</literal> 子元素也可以"
+"替换 <literal>&lt;formula&gt;</literal> 属性。 "
 
 #. Tag: para
 #, 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> 属性甚至可以在同一个属性或关联映射中被合并来表达,例如,一些奇异的连接条件。 "
+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
 #, no-c-format
@@ -1512,18 +3029,31 @@
 
 #. Tag: para
 #, 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(引用)”。你甚至可以引用没有被明确映射的类和接口。 "
+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: para
 #, no-c-format
-msgid "<literal>class</literal>: the fully qualified class name of any Java class."
+msgid ""
+"<literal>class</literal>: the fully qualified class name of any Java class."
 msgstr "<literal>class</literal>:任何 Java 类的全限定名。 "
 
 #. Tag: para
 #, 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>(可选 — 默认为类的全限定名):在查询语句中可以使用的名字。 "
+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
 #, no-c-format
@@ -1532,13 +3062,34 @@
 
 #. Tag: para
 #, no-c-format
-msgid "There is one more type of property mapping. The <literal>&lt;any&gt;</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>&lt;any&gt;</literal> 映射元素定义了一种从多个表到类的多态关联。这种类型的映射常常需要多于一个字段。第一个字段持有被关联实体的类型,其他的字段持有标识符。对这种类型的关联来说,不可能指定一个外键约束,所以这当然不是映射(多态)关联的通常的方式。你只应该在非常特殊的情况下使用它(比如,审计 log,用户会话数据等等)。 "
+msgid ""
+"There is one more type of property mapping. The <literal>&lt;any&gt;</"
+"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>&lt;any&gt;</literal> 映射元素定义了一种从"
+"多个表到类的多态关联。这种类型的映射常常需要多于一个字段。第一个字段持有被关"
+"联实体的类型,其他的字段持有标识符。对这种类型的关联来说,不可能指定一个外键"
+"约束,所以这当然不是映射(多态)关联的通常的方式。你只应该在非常特殊的情况下"
+"使用它(比如,审计 log,用户会话数据等等)。 "
 
 #. Tag: para
 #, 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 的值到类名的映射。 "
+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: para
 #, no-c-format
@@ -1552,18 +3103,33 @@
 
 #. Tag: para
 #, 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)映射的任何类型。 "
+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
 #, 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
 #, 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)。"
+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
 #, no-c-format
@@ -1577,23 +3143,72 @@
 
 #. Tag: para
 #, no-c-format
-msgid "In relation to the persistence service, Java language-level objects are classified into two groups:"
+msgid ""
+"In relation to the persistence service, Java language-level objects are "
+"classified into two groups:"
 msgstr "和持久化服务相比,Java 级别的对象分为两个组别:"
 
 #. Tag: para
 #, 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 模型中关于对象通过可触及保持持久性有一些不同 — 比较起来更加接近应用程序对象通常在一个大系统中的使用方法。实体支持循环引用和交叉引用,它们也可以加上版本信息。 "
+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
 #, 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>类型实例的引用。值可以是原始类型,集合(不是集合中的对象),组件或者特定的不可变对象。与实体不同,值(特别是集合和组件)是通过可触及性来进行持久化和删除的。因为值对象(和原始类型数据)是随着包含他们的实体而被持久化和删除的,他们不能被独立的加上版本信息。值没有独立的标识,所以他们不能被两个实体或者集合共享。 "
+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
 #, 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 提供的类型(类)都是值类型的语义,而用于自定义类型可能被映射为实体类型或值类型语义。采用哪种类型的语义取决于开发人员。在领域模型中,寻找实体类的一个好线索是共享引用指向这个类的单一实例,而组合或聚合通常被转化为值类型。 "
+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
 #, no-c-format
@@ -1602,13 +3217,34 @@
 
 #. Tag: para
 #, 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>&lt;class&gt;</literal>, <literal>&lt;subclass&gt;</literal> and so on are used. For value types we use <literal>&lt;property&gt;</literal>, <literal>&lt;component&gt;</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>&lt;class&gt;</literal>,<literal>&lt;subclass&gt;</literal> 等等。对于值类型,我们使用 <literal>&lt;property&gt;</literal>,<literal>&lt;component&gt;</literal> 及其他,通常跟随着 <literal>type</literal> 属性。这个属性的值是Hibernate 的<emphasis>映射类型</emphasis>的名字。Hibernate 提供了许多现成的映射(标准的 JDK 值类型)。你也可以编写自己的映射类型并实现自定义的变换策略,随后我们会看到这点。 "
+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>&lt;"
+"class&gt;</literal>, <literal>&lt;subclass&gt;</literal> and so on are used. "
+"For value types we use <literal>&lt;property&gt;</literal>, <literal>&lt;"
+"component&gt;</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>&lt;class&gt;</literal>,<literal>&lt;subclass&gt;</literal> 等等。"
+"对于值类型,我们使用 <literal>&lt;property&gt;</literal>,<literal>&lt;"
+"component&gt;</literal> 及其他,通常跟随着 <literal>type</literal> 属性。这个"
+"属性的值是Hibernate 的<emphasis>映射类型</emphasis>的名字。Hibernate 提供了许"
+"多现成的映射(标准的 JDK 值类型)。你也可以编写自己的映射类型并实现自定义的变"
+"换策略,随后我们会看到这点。 "
 
 #. Tag: para
 #, no-c-format
-msgid "With the exception of collections, all built-in Hibernate types support null semantics."
-msgstr "所有的 Hibernate 内建类型,除了 collections 以外,都支持空(null)语义。 "
+msgid ""
+"With the exception of collections, all built-in Hibernate types support null "
+"semantics."
+msgstr ""
+"所有的 Hibernate 内建类型,除了 collections 以外,都支持空(null)语义。 "
 
 #. Tag: title
 #, no-c-format
@@ -1617,18 +3253,32 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The built-in <emphasis>basic mapping types</emphasis> can be roughly categorized into the following:"
+msgid ""
+"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
+"categorized into the following:"
 msgstr "内置的 <emphasis>basic mapping types</emphasis> 可以大致地分类为:"
 
 #. Tag: term
 #, no-c-format
-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>"
+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
 #, 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: term
 #, no-c-format
@@ -1637,8 +3287,12 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -1647,8 +3301,14 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -1657,8 +3317,12 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -1667,8 +3331,14 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -1677,8 +3347,20 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -1687,8 +3369,14 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -1707,8 +3395,12 @@
 
 #. Tag: para
 #, 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: term
 #, no-c-format
@@ -1717,8 +3409,14 @@
 
 #. Tag: para
 #, 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>。 "
+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: term
 #, no-c-format
@@ -1727,28 +3425,65 @@
 
 #. Tag: para
 #, 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 对象可能在一个事务之外是无法重用的。(而且, 驱动程序对这种类型的支持充满着补丁和前后矛盾。) "
+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: term
 #, no-c-format
-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>"
+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
 #, 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>。要改变属性的值,并且保存这一改变,应用程序必须对这一属性重新设置一个新的(不一样的)对象。 "
+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
 #, 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> 之外的任何基础类型。(联合标识也是允许的,后面会说到。)"
+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
 #, 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
 #, no-c-format
@@ -1757,48 +3492,125 @@
 
 #. Tag: para
 #, 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>。 "
+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
 #, 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> 这个例子,看看它是怎么做的。 "
+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
 #, no-c-format
-msgid "Notice the use of <literal>&lt;column&gt;</literal> tags to map a property to multiple columns."
-msgstr "注意使用 <literal>&lt;column&gt;</literal> 标签来把一个属性映射到多个字段的做法。"
+msgid ""
+"Notice the use of <literal>&lt;column&gt;</literal> tags to map a property "
+"to multiple columns."
+msgstr ""
+"注意使用 <literal>&lt;column&gt;</literal> 标签来把一个属性映射到多个字段的做"
+"法。"
 
 #. Tag: para
 #, 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
 #, 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>&lt;type&gt;</literal> element in your mapping files."
-msgstr "你甚至可以在一个映射文件中提供参数给一个 <literal>UserType</literal>。 为了这样做,你的 <literal>UserType</literal> 必须实现 <literal>org.hibernate.usertype.ParameterizedType</literal> 接口。为了给自定义类型提供参数,你可以在映射文件中使用 <literal>&lt;type&gt;</literal> 元素。 "
+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>&lt;"
+"type&gt;</literal> element in your mapping files."
+msgstr ""
+"你甚至可以在一个映射文件中提供参数给一个 <literal>UserType</literal>。 为了这"
+"样做,你的 <literal>UserType</literal> 必须实现 <literal>org.hibernate."
+"usertype.ParameterizedType</literal> 接口。为了给自定义类型提供参数,你可以在"
+"映射文件中使用 <literal>&lt;type&gt;</literal> 元素。 "
 
 #. Tag: para
 #, 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
 #, 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>&lt;typedef&gt;</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>&lt;typedef&gt;</literal> 元素来实现。Typedefs 为一自定义类型赋予一个名称,并且如果此类型是参数化的,还可以包含一系列默认的参数值。 "
+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>&lt;"
+"typedef&gt;</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>&lt;typedef&gt;</literal> 元素来实现。Typedefs 为一自"
+"定义类型赋予一个名称,并且如果此类型是参数化的,还可以包含一系列默认的参数"
+"值。 "
 
 #. Tag: para
 #, 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 ""
+"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
 #, 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> 来映射是不错的选择,虽然他可以很容易地被映射成组件。这样做的动机之一是抽象。使用自定义类型,以后假若你改变表示金额的方法时,它可以保证映射文件不需要修改。 "
+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
 #, no-c-format
@@ -1807,13 +3619,27 @@
 
 #. Tag: para
 #, 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(实体名字)。 "
+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
 #, 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> 的。 "
+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
 #, no-c-format
@@ -1822,8 +3648,17 @@
 
 #. Tag: para
 #, 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 中是反向引号)。 "
+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
 #, no-c-format
@@ -1832,8 +3667,12 @@
 
 #. Tag: para
 #, 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)的方法。 "
+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
 #, no-c-format
@@ -1842,8 +3681,17 @@
 
 #. Tag: para
 #, 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> 类的例子。 "
+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
 #, no-c-format
@@ -1857,8 +3705,25 @@
 
 #. Tag: para
 #, 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 的元数据。 "
+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
 #, no-c-format
@@ -1867,8 +3732,13 @@
 
 #. Tag: para
 #, 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 模块。 "
+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
 #, no-c-format
@@ -1877,28 +3747,66 @@
 
 #. Tag: para
 #, 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 来获得生成的值。 "
+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
 #, 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。 "
+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
 #, no-c-format
-msgid "<literal>never</literal> (the default): the given property value is not generated within the database."
+msgid ""
+"<literal>never</literal> (the default): the given property value is not "
+"generated within the database."
 msgstr "<literal>never</literal>(默认)标明此属性值不是从数据库中生成。 "
 
 #. Tag: para
 #, 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,但是不适用这个选项... "
+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
 #, no-c-format
-msgid "<literal>always</literal>: the property value is generated both on insert and on update."
-msgstr "<literal>always</literal> — 标明此属性值在 insert 和 update 时都会被生成。 "
+msgid ""
+"<literal>always</literal>: the property value is generated both on insert "
+"and on update."
+msgstr ""
+"<literal>always</literal> — 标明此属性值在 insert 和 update 时都会被生成。 "
 
 #. Tag: title
 #, no-c-format
@@ -1907,22 +3815,46 @@
 
 #. Tag: para
 #, 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,等等)。本质上有两种模式来定义辅助数据库对象... "
+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
 #, no-c-format
-msgid "The first mode is to explicitly list the CREATE and DROP commands in the mapping file:"
+msgid ""
+"The first mode is to explicitly list the CREATE and DROP commands in the "
+"mapping file:"
 msgstr "第一种模式是在映射文件中显式声明 CREATE 和 DROP 命令: "
 
 #. Tag: para
 #, 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> 接口。 "
+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
 #, no-c-format
-msgid "Additionally, these database objects can be optionally scoped so that they only apply when certain dialects are used."
+msgid ""
+"Additionally, these database objects can be optionally scoped so that they "
+"only apply when certain dialects are used."
 msgstr "还有,这些数据库对象可以特别指定为仅在特定的方言中才使用。 "
 
 #~ msgid ""
@@ -2057,6 +3989,7 @@
 #~ "        </class>\n"
 #~ "\n"
 #~ "</hibernate-mapping>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\"?>\n"
 #~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
@@ -2089,6 +4022,7 @@
 #~ "    <class>\n"
 #~ "    &types;\n"
 #~ "</hibernate-mapping>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<hibernate-mapping\n"
 #~ "         schema=\"schemaName\"\n"
@@ -2109,6 +4043,7 @@
 #~ "         auto-import=\"true|false\"\n"
 #~ "         package=\"package.name\"\n"
 #~ " />]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class\n"
 #~ "        name=\"ClassName\"\n"
@@ -2159,6 +4094,7 @@
 #~ "        abstract=\"true|false\"\n"
 #~ "        node=\"element-name\"\n"
 #~ "/>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Summary\">\n"
 #~ "    <subselect>\n"
@@ -2185,6 +4121,7 @@
 #~ "    <id name=\"name\"/>\n"
 #~ "    ...\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<id\n"
 #~ "        name=\"propertyName\"\n"
@@ -2207,6 +4144,7 @@
 #~ "\n"
 #~ "        <generator class=\"generatorClass\"/>\n"
 #~ "</id>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
 #~ "        <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
@@ -2221,26 +4159,37 @@
 #~ "                <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"
@@ -2257,6 +4206,7 @@
 #~ "                <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"
@@ -2271,6 +4221,7 @@
 #~ "                <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"
@@ -2283,6 +4234,7 @@
 #~ "                <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"
@@ -2293,6 +4245,7 @@
 #~ "\"0\">\n"
 #~ "        <generator class=\"identity\"/>\n"
 #~ "</id>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
 #~ "        <generator class=\"select\">\n"
@@ -2305,6 +4258,7 @@
 #~ "                <param name=\"key\">socialSecurityNumber</param>\n"
 #~ "        </generator>\n"
 #~ "</id>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<composite-id\n"
 #~ "        name=\"propertyName\"\n"
@@ -2333,6 +4287,7 @@
 #~ "\"column_name\"/>\n"
 #~ "        ......\n"
 #~ "</composite-id>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<composite-id>\n"
 #~ "        <key-property name=\"medicareNumber\"/>\n"
@@ -2343,6 +4298,7 @@
 #~ "        <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"
@@ -2353,6 +4309,7 @@
 #~ "        <key-property name=\"medicareNumber\"/>\n"
 #~ "        <key-property name=\"dependent\"/>\n"
 #~ "</composite-id>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<discriminator\n"
 #~ "        column=\"discriminator_column\"\n"
@@ -2369,6 +4326,7 @@
 #~ "        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"
@@ -2379,6 +4337,7 @@
 #~ "    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"
@@ -2401,6 +4360,7 @@
 #~ "        insert=\"true|false\"\n"
 #~ "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
 #~ "/>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<timestamp\n"
 #~ "        column=\"timestamp_column\"\n"
@@ -2421,6 +4381,7 @@
 #~ "        generated=\"never|always\"\n"
 #~ "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
 #~ "/>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<property\n"
 #~ "        name=\"propertyName\"\n"
@@ -3156,18 +5117,23 @@
 #~ "        &lt;column .... /&gt;\n"
 #~ "        .....\n"
 #~ "&lt;/any&gt;"
+
 #~ 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"
 
@@ -3585,4 +5551,3 @@
 #~ "&gt;\n"
 #~ "    &lt;/database-object&gt;\n"
 #~ "&lt;/hibernate-mapping&gt;"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/batch.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -21,33 +21,62 @@
 
 #. Tag: para
 #, 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 条记录插入到数据库的一个很天真的做法可能是这样的:"
+msgid ""
+"A naive approach to inserting 100,000 rows in the database using Hibernate "
+"might look like this:"
+msgstr ""
+"使用 Hibernate 将 100,000 条记录插入到数据库的一个很天真的做法可能是这样的:"
 
 #. Tag: para
 #, 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 级别的缓存区进行了缓存的缘故。 "
+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
 #, 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 之间):"
+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
 #, 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 级别透明的关闭插入语句的批量执行。 "
+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
 #, 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:"
+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
 #, 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
 #, no-c-format
@@ -56,8 +85,13 @@
 
 #. Tag: para
 #, 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> 来控制第一级缓存的大小。 "
+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
 #, no-c-format
@@ -66,8 +100,13 @@
 
 #. Tag: para
 #, 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> 方法以便充分利用服务器端游标所带来的好处。 "
+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
 #, no-c-format
@@ -76,18 +115,57 @@
 
 #. Tag: para
 #, 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 相当接近。 "
+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
 #, 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)。它们与任何持久化上下文都没有关系。 "
+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
 #, 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> 操作有很大的不同。 "
+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
 #, no-c-format
@@ -95,14 +173,36 @@
 msgstr "DML(数据操作语言)风格的操作(DML-style operations)"
 
 #. Tag: para
-#, 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 语句的方法。 "
+#, 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 (<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
 #, 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>。"
+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
 #, no-c-format
@@ -116,13 +216,26 @@
 
 #. Tag: para
 #, 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)中只能有一个实体名,它可以是别名。如果实体名是别名,那么任何被引用的属性都必须加上此别名的前缀;如果不是别名,那么任何有前缀的属性引用都是非法的。 "
+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
-#, 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。 "
+#, fuzzy, 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
 #, no-c-format
@@ -131,62 +244,182 @@
 
 #. Tag: para
 #, 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 的 <literal>PreparedStatement.executeUpdate()</literal>): "
+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
-#, no-c-format
-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> 关键字来实现的。 "
+#, fuzzy, no-c-format
+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
 #, 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> 语句联用。 "
+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
 #, 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: para
 #, 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 映射方式的子类的表。 "
+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
 #, 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 ""
+"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
 #, 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 ""
+"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
+"INTO ... VALUES ... form."
+msgstr ""
+"只支持 INSERT INTO ... SELECT ... 形式,不支持 INSERT INTO ... VALUES ... 形"
+"式。"
 
 #. Tag: para
 #, 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> 天生不支持多态性。"
+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
 #, 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> 的两个属性可能会产生类型不匹配错误,虽然数据库级可能不加区分或者可以处理这种转换。 "
+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
 #, 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>,它不能在此使用,因为它没有得到其值的途径。 "
+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
 #, 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>)。"
+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
 #, no-c-format
-msgid "The following is an example of an HQL <literal>INSERT</literal> statement execution:"
+msgid ""
+"The following is an example of an HQL <literal>INSERT</literal> statement "
+"execution:"
 msgstr "下面是一个执行 HQL <literal>INSERT</literal> 语句的例子:"
 
 #~ msgid ""
@@ -207,10 +440,13 @@
 #~ "}\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"
@@ -243,6 +479,7 @@
 #~ "   \n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -283,6 +520,7 @@
 #~ "   \n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
 #~ "();\n"
@@ -313,6 +551,7 @@
 #~ "   \n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -341,6 +580,7 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -363,6 +603,7 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -385,6 +626,7 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -405,4 +647,3 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/best_practices.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/collection_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -26,33 +26,94 @@
 
 #. Tag: para
 #, no-c-format
-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 要求持久化集合值字段必须声明为接口,例如:"
+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
 #, 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> 的实现)。"
+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
 #, 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> 实现。注意下面的错误:"
+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
 #, 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>。"
+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
 #, 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 对空的集合引用和空集合不加区别。 "
+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
 #, 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 集合类一样来使用持久化集合类。只是要确认你理解了双向关联的语义(后文将进行讨论)。"
+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
 #, no-c-format
@@ -61,18 +122,38 @@
 
 #. Tag: para
 #, 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 生成工具,来体会一下不同的映射声明是如何被翻译为数据库表的。 "
+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
 #, no-c-format
-msgid "The Hibernate mapping element used for mapping a collection depends upon the type of interface. For example, a <literal>&lt;set&gt;</literal> element is used for mapping properties of type <literal>Set</literal>."
-msgstr "用于映射集合类的 Hibernate 映射元素取决于接口的类型。比如,<literal>&lt;set&gt;</literal> 元素用来映射 <literal>Set</literal> 类型的属性。 "
+msgid ""
+"The Hibernate mapping element used for mapping a collection depends upon the "
+"type of interface. For example, a <literal>&lt;set&gt;</literal> element is "
+"used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+"用于映射集合类的 Hibernate 映射元素取决于接口的类型。比如,<literal>&lt;"
+"set&gt;</literal> 元素用来映射 <literal>Set</literal> 类型的属性。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Apart from <literal>&lt;set&gt;</literal>, there is also <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal>, <literal>&lt;array&gt;</literal> and <literal>&lt;primitive-array&gt;</literal> mapping elements. The <literal>&lt;map&gt;</literal> element is representative:"
-msgstr "除了 <literal>&lt;set&gt;</literal>,还有<literal>&lt;list&gt;</literal>,<literal>&lt;map&gt;</literal>,<literal>&lt;bag&gt;</literal>,<literal>&lt;array&gt;</literal> 和 <literal>&lt;primitive-array&gt;</literal> 映射元素。<literal>&lt;map&gt;</literal> 具有代表性:"
+msgid ""
+"Apart from <literal>&lt;set&gt;</literal>, there is also <literal>&lt;"
+"list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</"
+"literal>, <literal>&lt;array&gt;</literal> and <literal>&lt;primitive-"
+"array&gt;</literal> mapping elements. The <literal>&lt;map&gt;</literal> "
+"element is representative:"
+msgstr ""
+"除了 <literal>&lt;set&gt;</literal>,还有<literal>&lt;list&gt;</literal>,"
+"<literal>&lt;map&gt;</literal>,<literal>&lt;bag&gt;</literal>,<literal>&lt;"
+"array&gt;</literal> 和 <literal>&lt;primitive-array&gt;</literal> 映射元素。"
+"<literal>&lt;map&gt;</literal> 具有代表性:"
 
 #. Tag: para
 #, no-c-format
@@ -81,68 +162,138 @@
 
 #. Tag: para
 #, 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>(可选——默认为属性的名称)这个集合表的名称(不能在一对多的关联关系中使用)。"
+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
 #, 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"
+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
 #, 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\" 抓取,此时大多数操作不会初始化集合类(适用于非常大的集合)。"
+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
 #, 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>)标记这个集合作为双向关联关系中的方向一端。 "
+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
 #, 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>)让操作级联到子实体。"
+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
 #, 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>)或者给定一个用来比较的类。 "
+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
 #, 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 的迭代顺序。"
+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
 #, 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 条件,该条件将在重新载入或者删除这个集合时使用(当集合中的数据仅仅是所有可用数据的一个子集时这个条件非常有用)。"
+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
 #, 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 抓取之间选择。"
+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
 #, 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\")。"
+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
 #, 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 取得集合属性值时使用的策略。"
+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
 #, 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>):对集合的状态的改变会是否导致其所属的实体的版本增长(对一对多关联来说,关闭这个属性常常是有理的)。"
+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
 #, 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>,表明集合中的元素不会改变(在某些情况下可以进行一些小的性能优化)。 "
+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
 #, no-c-format
@@ -151,22 +302,40 @@
 
 #. Tag: para
 #, 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>&lt;key&gt;</literal> element."
-msgstr "集合实例在数据库中依靠持有集合的实体的外键加以辨别。此外键作为<emphasis>集合关键字段(collection key column)</emphasis>(或多个字段)加以引用。集合关键字段通过 <literal>&lt;key&gt;</literal> 元素映射。 "
+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>&lt;key&gt;</"
+"literal> element."
+msgstr ""
+"集合实例在数据库中依靠持有集合的实体的外键加以辨别。此外键作为<emphasis>集合"
+"关键字段(collection key column)</emphasis>(或多个字段)加以引用。集合关键"
+"字段通过 <literal>&lt;key&gt;</literal> 元素映射。 "
 
 #. Tag: para
 #, 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>。 "
+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
 #, no-c-format
-msgid "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgid ""
+"The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
 msgstr "外键约束可以使用 <literal>ON DELETE CASCADE</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "See the previous chapter for a full definition of the <literal>&lt;key&gt;</literal> element."
+msgid ""
+"See the previous chapter for a full definition of the <literal>&lt;key&gt;</"
+"literal> element."
 msgstr "对 <literal>&lt;key&gt;</literal> 元素的完整定义,请参阅前面的章节。"
 
 #. Tag: title
@@ -176,13 +345,36 @@
 
 #. Tag: para
 #, 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 类型,包括所有的基本类型、自定义类型、组件,当然还有对其他实体的引用。存在一个重要的区别:位于集合中的对象可能是根据“值”语义来操作(其声明周期完全依赖于集合持有者),或者它可能是指向另一个实体的引用,具有其自己的生命周期。在后者的情况下,被作为集合持有的状态考虑的,只有两个对象之间的“连接”。 "
+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
 #, no-c-format
-msgid "The contained type is referred to as the <emphasis>collection element type</emphasis>. Collection elements are mapped by <literal>&lt;element&gt;</literal> or <literal>&lt;composite-element&gt;</literal>, or in the case of entity references, with <literal>&lt;one-to-many&gt;</literal> or <literal>&lt;many-to-many&gt;</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>&lt;element&gt;</literal> 或 <literal>&lt;composite-element&gt;</literal> 映射,或在其是实体引用的时候,通过  <literal>&lt;one-to-many&gt;</literal> 或 <literal>&lt;many-to-many&gt;</literal> 映射。前两种用于使用值语义映射元素,后两种用于映射实体关联。"
+msgid ""
+"The contained type is referred to as the <emphasis>collection element type</"
+"emphasis>. Collection elements are mapped by <literal>&lt;element&gt;</"
+"literal> or <literal>&lt;composite-element&gt;</literal>, or in the case of "
+"entity references, with <literal>&lt;one-to-many&gt;</literal> or "
+"<literal>&lt;many-to-many&gt;</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>&lt;element&gt;</literal> 或 <literal>&lt;"
+"composite-element&gt;</literal> 映射,或在其是实体引用的时候,通过  "
+"<literal>&lt;one-to-many&gt;</literal> 或 <literal>&lt;many-to-many&gt;</"
+"literal> 映射。前两种用于使用值语义映射元素,后两种用于映射实体关联。"
 
 #. Tag: title
 #, no-c-format
@@ -191,27 +383,58 @@
 
 #. Tag: para
 #, 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>&lt;map-key&gt;</literal>. It can be an entity reference mapped with <literal>&lt;map-key-many-to-many&gt;</literal>, or it can be a composite type mapped with <literal>&lt;composite-map-key&gt;</literal>. The index of an array or list is always of type <literal>integer</literal> and is mapped using the <literal>&lt;list-index&gt;</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>&lt;map-key&gt;</literal>,<literal>Map</literal> 的索引可以是任何基础类型;若通过 <literal>&lt;map-key-many-to-many&gt;</literal>,它也可以是一个实体引用;若通过 <literal>&lt;composite-map-key&gt;</literal>,它还可以是一个组合类型。数组或列表的索引必须是 <literal>integer</literal> 类型,并且使用 <literal>&lt;list-index&gt;</literal> 元素定义映射。被映射的字段包含有顺序排列的整数(默认从 0 开始)。 "
+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>&lt;map-key&gt;</literal>. It can be "
+"an entity reference mapped with <literal>&lt;map-key-many-to-many&gt;</"
+"literal>, or it can be a composite type mapped with <literal>&lt;composite-"
+"map-key&gt;</literal>. The index of an array or list is always of type "
+"<literal>integer</literal> and is mapped using the <literal>&lt;list-"
+"index&gt;</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>&lt;map-key&gt;</literal>,<literal>Map</literal> 的索引可以是任何基"
+"础类型;若通过 <literal>&lt;map-key-many-to-many&gt;</literal>,它也可以是一"
+"个实体引用;若通过 <literal>&lt;composite-map-key&gt;</literal>,它还可以是一"
+"个组合类型。数组或列表的索引必须是 <literal>integer</literal> 类型,并且使用 "
+"<literal>&lt;list-index&gt;</literal> 元素定义映射。被映射的字段包含有顺序排"
+"列的整数(默认从 0 开始)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>column_name</literal> (required): the name of the column holding the collection index values."
+msgid ""
+"<literal>column_name</literal> (required): the name of the column holding "
+"the collection index values."
 msgstr "<literal>column_name</literal>(必需):持有集合索引值的字段的名称。 "
 
 #. Tag: para
 #, 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>)对应列表或队列的第一个元素的索引字段的值。"
+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."
+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."
+msgid ""
+"<literal>formula</literal> (optional): a SQL formula used to evaluate the "
+"key of the map."
 msgstr "<literal>formula</literal>(可选):用于对表键求值的 SQL 公式。"
 
 #. Tag: para
@@ -221,47 +444,76 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>column</literal> (optional): the name of the foreign key column for the collection index values."
+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 公式。"
+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."
+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>&lt;bag&gt;</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>&lt;bag&gt;</emphasis>。从数据库中获取的时候,bag 不维护其顺序,但也可选择性的进行排序。 "
+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>&lt;bag&gt;</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>&lt;bag&gt;</emphasis>。从数据"
+"库中获取的时候,bag 不维护其顺序,但也可选择性的进行排序。 "
 
 #. Tag: title
 #, no-c-format
 msgid "Collections of values and many-to-many associations"
-msgstr "值集合于多对多关联(Collections of values and many-to-many associations)"
+msgstr ""
+"值集合于多对多关联(Collections of values and many-to-many associations)"
 
 #. Tag: para
 #, 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>,以及还可能有一个或多个索引字段。 "
+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
 #, no-c-format
-msgid "For a collection of values use the <literal>&lt;element&gt;</literal> tag. For example:"
-msgstr "对于一个值集合,我们使用 <literal>&lt;element&gt;</literal> 标签。例如:"
+msgid ""
+"For a collection of values use the <literal>&lt;element&gt;</literal> tag. "
+"For example:"
+msgstr ""
+"对于一个值集合,我们使用 <literal>&lt;element&gt;</literal> 标签。例如:"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>column</literal> (optional): the name of the column holding the collection element values."
+msgid ""
+"<literal>column</literal> (optional): the name of the column holding the "
+"collection element values."
 msgstr "<literal>column</literal>(可选):持有集合元素值的字段的名称。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element."
+msgid ""
+"<literal>formula</literal> (optional): an SQL formula used to evaluate the "
+"element."
 msgstr "<literal>formula</literal>(可选):用于对元素求值的 SQL 公式。"
 
 #. Tag: para
@@ -271,17 +523,25 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A <emphasis>many-to-many association</emphasis> is specified using the <literal>&lt;many-to-many&gt;</literal> element."
-msgstr "用 <literal>&lt;many-to-many&gt;</literal> 元素指定 <emphasis>many-to-many association</emphasis>。"
+msgid ""
+"A <emphasis>many-to-many association</emphasis> is specified using the "
+"<literal>&lt;many-to-many&gt;</literal> element."
+msgstr ""
+"用 <literal>&lt;many-to-many&gt;</literal> 元素指定 <emphasis>many-to-many "
+"association</emphasis>。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>column</literal> (optional): the name of the element foreign key column."
+msgid ""
+"<literal>column</literal> (optional): the name of the element foreign key "
+"column."
 msgstr "<literal>column</literal>(必需):元素外键字段的名称。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element foreign key value."
+msgid ""
+"<literal>formula</literal> (optional): an SQL formula used to evaluate the "
+"element foreign key value."
 msgstr "<literal>formula</literal>(可选):用于对元素外键值求值的 SQL 公式。"
 
 #. Tag: para
@@ -291,28 +551,61 @@
 
 #. Tag: para
 #, no-c-format
-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>&lt;many-to-many&gt;</literal> nested element."
-msgstr "<literal>fetch</literal>(可选 - 缺省为 <literal>join</literal>): 为这个关联启用外连接或序列性选择抓取。这是一个特例。对于在单个 <literal>SELECT</literal> 里进行完全的 eager fetching 以及使 <literal>&lt;many-to-many&gt;</literal> n用多对多关联,你可以启用 <literal>join</literal> fetching,这不仅是对于集合本身,也对 <literal>&lt;many-to-many&gt;</literal> 嵌套元素的属性。"
+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>&lt;many-to-many&gt;</"
+"literal> nested element."
+msgstr ""
+"<literal>fetch</literal>(可选 - 缺省为 <literal>join</literal>): 为这个关"
+"联启用外连接或序列性选择抓取。这是一个特例。对于在单个 <literal>SELECT</"
+"literal> 里进行完全的 eager fetching 以及使 <literal>&lt;many-to-many&gt;</"
+"literal> n用多对多关联,你可以启用 <literal>join</literal> fetching,这不仅是"
+"对于集合本身,也对 <literal>&lt;many-to-many&gt;</literal> 嵌套元素的属性。"
 
 #. Tag: para
 #, no-c-format
-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 生成。这使得关联一对多的多样性更为有效。"
+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: para
 #, 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> 会把缺失的行作为一个空关联处理。 "
+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
 #, 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> 的替代。 "
+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: para
 #, 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>(可选):连接至这个外键的关联类的属性名称。如果未指定,关联类的主键将被使用。"
+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
 #, no-c-format
@@ -326,13 +619,19 @@
 
 #. Tag: para
 #, 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> 参数指定了迭代的顺序): "
+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
 #, no-c-format
 msgid "An array of entities, in this case, a many-to-many association:"
-msgstr "一个实体数组,在这个案例中是一个多对多的关联(注意这里的实体是自动管理生命周期的对象(lifecycle objects),<literal>cascade=\"all\"</literal>): "
+msgstr ""
+"一个实体数组,在这个案例中是一个多对多的关联(注意这里的实体是自动管理生命周"
+"期的对象(lifecycle objects),<literal>cascade=\"all\"</literal>): "
 
 #. Tag: para
 #, no-c-format
@@ -351,43 +650,88 @@
 
 #. Tag: para
 #, 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 集合的语义:"
+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
 #, no-c-format
-msgid "An instance of the contained entity class cannot belong to more than one instance of the collection."
+msgid ""
+"An instance of the contained entity class cannot belong to more than one "
+"instance of the collection."
 msgstr "一个被包含的实体的实例只能被包含在一个集合的实例中。"
 
 #. Tag: para
 #, no-c-format
-msgid "An instance of the contained entity class cannot appear at more than one value of the collection index."
+msgid ""
+"An instance of the contained entity class cannot appear at more than one "
+"value of the collection index."
 msgstr "一个被包含的实体的实例只能对应于集合索引的一个值中。"
 
 #. Tag: para
 #, 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>&lt;one-to-many&gt;</literal> tag indicates that this is a one-to-many association."
-msgstr "一个从 <literal>Product</literal> 到 <literal>Part</literal> 的关联需要关键字字段,可能还有一个索引字段指向 <literal>Part</literal> 所对应的表。<literal>&lt;one-to-many&gt;</literal> 标记指明了一个一对多的关联。 "
+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>&lt;one-to-many&gt;</"
+"literal> tag indicates that this is a one-to-many association."
+msgstr ""
+"一个从 <literal>Product</literal> 到 <literal>Part</literal> 的关联需要关键字"
+"字段,可能还有一个索引字段指向 <literal>Part</literal> 所对应的表。"
+"<literal>&lt;one-to-many&gt;</literal> 标记指明了一个一对多的关联。 "
 
 #. Tag: para
 #, 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> 会把缺失的行作为一个空关联处理。 "
+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
 #, no-c-format
-msgid "The <literal>&lt;one-to-many&gt;</literal> element does not need to declare any columns. Nor is it necessary to specify the <literal>table</literal> name anywhere."
-msgstr "注意:<literal>&lt;one-to-many&gt;</literal> 元素不需要定义任何字段。也不需要指定表名。 "
+msgid ""
+"The <literal>&lt;one-to-many&gt;</literal> element does not need to declare "
+"any columns. Nor is it necessary to specify the <literal>table</literal> "
+"name anywhere."
+msgstr ""
+"注意:<literal>&lt;one-to-many&gt;</literal> 元素不需要定义任何字段。也不需要"
+"指定表名。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If the foreign key column of a <literal>&lt;one-to-many&gt;</literal> association is declared <literal>NOT NULL</literal>, you must declare the <literal>&lt;key&gt;</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>&lt;key&gt;</literal> 映射声明为 <literal>not-null=\"true\"</literal>,或者使用<emphasis>双向关联</emphasis>,并且标明 <literal>inverse=\"true\"</literal>。参阅本章后面关于双向关联的讨论。 "
+msgid ""
+"If the foreign key column of a <literal>&lt;one-to-many&gt;</literal> "
+"association is declared <literal>NOT NULL</literal>, you must declare the "
+"<literal>&lt;key&gt;</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>&lt;key&gt;</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> 的持久化属性)。注意其中的基于公式的索引的用法。 "
+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
 #, no-c-format
@@ -401,23 +745,49 @@
 
 #. Tag: para
 #, 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: para
 #, 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
 #, 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
 #, 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 查询中完成排序,而不是在内存中。 "
+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
 #, no-c-format
@@ -426,13 +796,20 @@
 
 #. Tag: para
 #, 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 的。"
+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
 #, no-c-format
-msgid "Associations can even be sorted by arbitrary criteria at runtime using a collection <literal>filter()</literal>:"
-msgstr "关联还可以在运行时使用集合 <literal>filter()</literal> 根据任意的条件来排序:"
+msgid ""
+"Associations can even be sorted by arbitrary criteria at runtime using a "
+"collection <literal>filter()</literal>:"
+msgstr ""
+"关联还可以在运行时使用集合 <literal>filter()</literal> 根据任意的条件来排序:"
 
 #. Tag: title
 #, no-c-format
@@ -441,8 +818,13 @@
 
 #. Tag: para
 #, 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 中,支持两种类型的双向关联: "
+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
 #, no-c-format
@@ -466,33 +848,65 @@
 
 #. Tag: para
 #, 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>(使用哪一端要根据你的选择,但它不能是一个索引集合)。 "
+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
 #, 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: "
+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
 #, 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 中创建多对多关系的,这可以让你更容易理解: "
+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
 #, 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
 #, 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>。 "
+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
 #, 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> 不会影响级联操作,二者是正交的概念。"
+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
 #, no-c-format
@@ -501,17 +915,35 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A bidirectional association where one end is represented as a <literal>&lt;list&gt;</literal> or <literal>&lt;map&gt;</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>&lt;list&gt;</literal> 或者 <literal>&lt;map&gt;</literal> 的双向关联,需要加以特别考虑。假若子类中的一个属性映射到索引字段,没问题,我们仍然可以在集合类映射上使用 <literal>inverse=\"true\"</literal>: "
+msgid ""
+"A bidirectional association where one end is represented as a <literal>&lt;"
+"list&gt;</literal> or <literal>&lt;map&gt;</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>&lt;list&gt;</literal> 或者 <literal>&lt;map&gt;</"
+"literal> 的双向关联,需要加以特别考虑。假若子类中的一个属性映射到索引字段,没"
+"问题,我们仍然可以在集合类映射上使用 <literal>inverse=\"true\"</literal>: "
 
 #. Tag: para
 #, 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>。我们需要这样用: "
+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
-#, 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? -->"
+#, 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 "注意在这个映射中,关联中集合类\"值\"一端负责来更新外键。  "
 
 #. Tag: title
@@ -521,48 +953,95 @@
 
 #. Tag: para
 #, 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>,把一个关联作为其索引: "
+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: para
 #, no-c-format
-msgid "A second approach is to remodel the association as an entity class. This is the most common approach."
-msgstr "第二种方法是简单的把关联重新建模为一个实体类。这使我们最经常使用的方法。 "
+msgid ""
+"A second approach is to remodel the association as an entity class. This is "
+"the most common approach."
+msgstr ""
+"第二种方法是简单的把关联重新建模为一个实体类。这使我们最经常使用的方法。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A final alternative is to use composite elements, which will be discussed later."
+msgid ""
+"A final alternative is to use composite elements, which will be discussed "
+"later."
 msgstr "最后一种选择是使用复合元素,我们会在后面讨论。"
 
 #. Tag: title
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Using an &lt;idbag&gt;</literal>"
 msgstr "<literal>使用 an &lt;idbag&gt;</literal>"
 
 #. Tag: para
 #, 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 提供了一个(一点点试验性质的)功能,让你把多对多关联和值集合应得到一个使用代用标识符的表去。 "
+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
 #, no-c-format
-msgid "The <literal>&lt;idbag&gt;</literal> element lets you map a <literal>List</literal> (or <literal>Collection</literal>) with bag semantics. For example:"
-msgstr "<literal>&lt;idbag&gt;</literal> 属性让你使用 bag 语义来映射一个 <literal>List</literal> (或 <literal>Collection</literal>)。 "
+msgid ""
+"The <literal>&lt;idbag&gt;</literal> element lets you map a <literal>List</"
+"literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr ""
+"<literal>&lt;idbag&gt;</literal> 属性让你使用 bag 语义来映射一个 "
+"<literal>List</literal> (或 <literal>Collection</literal>)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "An <literal>&lt;idbag&gt;</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>&lt;idbag&gt;</literal> 人工的 id 生成器,就好像是实体类一样!集合的每一行都有一个不同的人造关键字。但是,Hibernate 没有提供任何机制来让你取得某个特定行的人造关键字。 "
+msgid ""
+"An <literal>&lt;idbag&gt;</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>&lt;idbag&gt;</literal> 人工的 id 生成器,就好像是实体类"
+"一样!集合的每一行都有一个不同的人造关键字。但是,Hibernate 没有提供任何机制"
+"来让你取得某个特定行的人造关键字。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The update performance of an <literal>&lt;idbag&gt;</literal> supersedes a regular <literal>&lt;bag&gt;</literal>. Hibernate can locate individual rows efficiently and update or delete them individually, similar to a list, map or set."
-msgstr "注意 <literal>&lt;idbag&gt;</literal> 的更新性能要比普通的 <literal>&lt;bag&gt;</literal> 高得多!Hibernate 可以有效的定位到不同的行,分别进行更新或删除工作,就如同处理一个 list,map 或者 set 一样。 "
+msgid ""
+"The update performance of an <literal>&lt;idbag&gt;</literal> supersedes a "
+"regular <literal>&lt;bag&gt;</literal>. Hibernate can locate individual rows "
+"efficiently and update or delete them individually, similar to a list, map "
+"or set."
+msgstr ""
+"注意 <literal>&lt;idbag&gt;</literal> 的更新性能要比普通的 <literal>&lt;"
+"bag&gt;</literal> 高得多!Hibernate 可以有效的定位到不同的行,分别进行更新或"
+"删除工作,就如同处理一个 list,map 或者 set 一样。 "
 
 #. Tag: para
 #, no-c-format
-msgid "In the current implementation, the <literal>native</literal> identifier generation strategy is not supported for <literal>&lt;idbag&gt;</literal> collection identifiers."
-msgstr "在目前的实现中,还不支持使用 <literal>identity</literal> 标识符生成器策略来生成 <literal>&lt;idbag&gt;</literal> 集合的标识符。"
+msgid ""
+"In the current implementation, the <literal>native</literal> identifier "
+"generation strategy is not supported for <literal>&lt;idbag&gt;</literal> "
+"collection identifiers."
+msgstr ""
+"在目前的实现中,还不支持使用 <literal>identity</literal> 标识符生成器策略来生"
+"成 <literal>&lt;idbag&gt;</literal> 集合的标识符。"
 
 #. Tag: title
 #, no-c-format
@@ -576,13 +1055,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The following class has a collection of <literal>Child</literal> instances:"
+msgid ""
+"The following class has a collection of <literal>Child</literal> instances:"
 msgstr "下面的代码是用来添加一个新的 <literal>Child</literal>:"
 
 #. Tag: para
 #, 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 的关联关系: "
+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
 #, no-c-format
@@ -591,8 +1075,12 @@
 
 #. Tag: para
 #, 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: para
 #, no-c-format
@@ -601,13 +1089,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Alternatively, if this association must be unidirectional you can declare the <literal>NOT NULL</literal> constraint on the <literal>&lt;key&gt;</literal> mapping:"
-msgstr "另外,如果你绝对坚持这个关联应该是单向的,你可以对 <literal>&lt;key&gt;</literal> 映射声明 <literal>NOT NULL</literal> 约束: "
+msgid ""
+"Alternatively, if this association must be unidirectional you can declare "
+"the <literal>NOT NULL</literal> constraint on the <literal>&lt;key&gt;</"
+"literal> mapping:"
+msgstr ""
+"另外,如果你绝对坚持这个关联应该是单向的,你可以对 <literal>&lt;key&gt;</"
+"literal> 映射声明 <literal>NOT NULL</literal> 约束: "
 
 #. Tag: para
 #, 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 关联: "
+msgid ""
+"On the other hand, if a child has multiple parents, a many-to-many "
+"association is appropriate:"
+msgstr ""
+"另外一方面,如果一个子实例可能有多个父实例,那么就应该使用 many-to-many 关"
+"联: "
 
 #. Tag: para
 #, no-c-format
@@ -615,9 +1112,13 @@
 msgstr "表定义:"
 
 #. Tag: para
-#, 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\"/>。  "
+#, 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
 #, no-c-format
@@ -644,6 +1145,7 @@
 #~ "    public String getSerialNumber() { return serialNumber; }\n"
 #~ "    void setSerialNumber(String sn) { serialNumber = sn; }\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Cat cat = new DomesticCat();\n"
 #~ "Cat kitten = new DomesticCat();\n"
@@ -664,6 +1166,7 @@
 #~ "session.persist(cat);\n"
 #~ "kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
 #~ "(HashSet) cat.getKittens(); // Error!]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Product\">\n"
 #~ "    <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
@@ -680,6 +1183,7 @@
 #~ "        <one-to-many class=\"Part\"/>\n"
 #~ "    </set>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<map\n"
 #~ "    name=\"propertyName\"\n"
@@ -730,12 +1234,15 @@
 #~ "    <map-key .... />\n"
 #~ "    <element .... />\n"
 #~ "</map>]]>"
+
 #~ msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
 #~ msgstr "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
 #~ msgstr ""
 #~ "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
+
 #~ msgid ""
 #~ "<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area "
 #~ "id=\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA"
@@ -818,6 +1325,7 @@
 #~ "</para> </callout> <callout arearefs=\"indexmanytomany3\"> <para> "
 #~ "<literal>class</literal> (required): the entity class used as the map "
 #~ "key. </para> </callout> </calloutlist> </programlistingco>"
+
 #~ msgid ""
 #~ "<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> "
 #~ "<area id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords="
@@ -952,6 +1460,7 @@
 #~ "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 ""
 #~ "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
 #~ "    <key column=\"person_id\"/>\n"
@@ -962,6 +1471,7 @@
 #~ "    <key column=\"person_id\"/>\n"
 #~ "    <element column=\"person_name\" type=\"string\"/>\n"
 #~ "</set>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<bag name=\"sizes\" \n"
 #~ "        table=\"item_sizes\" \n"
@@ -976,6 +1486,7 @@
 #~ "    <key column=\"item_id\"/>\n"
 #~ "    <element column=\"size\" type=\"integer\"/>\n"
 #~ "</bag>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<array name=\"addresses\" \n"
 #~ "        table=\"PersonAddress\" \n"
@@ -992,6 +1503,7 @@
 #~ "    <list-index column=\"sortOrder\"/>\n"
 #~ "    <many-to-many column=\"addressId\" class=\"Address\"/>\n"
 #~ "</array>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<map name=\"holidays\" \n"
 #~ "        table=\"holidays\" \n"
@@ -1010,6 +1522,7 @@
 #~ "    <map-key column=\"hol_name\" type=\"string\"/>\n"
 #~ "    <element column=\"hol_date\" type=\"date\"/>\n"
 #~ "</map>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<list name=\"carComponents\" \n"
 #~ "        table=\"CarComponents\">\n"
@@ -1032,6 +1545,7 @@
 #~ "        <property name=\"serialNumber\" column=\"serialNum\"/>\n"
 #~ "    </composite-element>\n"
 #~ "</list>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<one-to-many \n"
 #~ "        class=\"ClassName\"\n"
@@ -1048,6 +1562,7 @@
 #~ "        node=\"element-name\"\n"
 #~ "        embed-xml=\"true|false\"\n"
 #~ "    />]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<map name=\"parts\"\n"
 #~ "        cascade=\"all\">\n"
@@ -1062,6 +1577,7 @@
 #~ "    <map-key formula=\"partName\"/>\n"
 #~ "    <one-to-many class=\"Part\"/>\n"
 #~ "</map>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<set name=\"aliases\" \n"
 #~ "            table=\"person_aliases\" \n"
@@ -1088,6 +1604,7 @@
 #~ "    <map-key column=\"hol_name\" type=\"string\"/>\n"
 #~ "    <element column=\"hol_date\" type=\"date\"/>\n"
 #~ "</map>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower"
 #~ "(name) asc\">\n"
@@ -1112,12 +1629,14 @@
 #~ "    <map-key column=\"hol_name\" type=\"string\"/>\n"
 #~ "    <element column=\"hol_date type=\"date\"/>\n"
 #~ "</map>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this."
 #~ "name\" ).list();]]>"
 #~ msgstr ""
 #~ "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this."
 #~ "name\" ).list();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Category\">\n"
 #~ "    <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
@@ -1158,6 +1677,7 @@
 #~ "        <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
 #~ "    </bag>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[\n"
 #~ "category.getItems().add(item);          // The category now \"knows\" "
@@ -1180,6 +1700,7 @@
 #~ "saved!\n"
 #~ "session.persist(category);               // The relationship will be "
 #~ "saved]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Parent\">\n"
 #~ "    <id name=\"id\" column=\"parent_id\"/>\n"
@@ -1216,6 +1737,7 @@
 #~ "        column=\"parent_id\"\n"
 #~ "        not-null=\"true\"/>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Parent\">\n"
 #~ "    <id name=\"id\" column=\"parent_id\"/>\n"
@@ -1260,6 +1782,7 @@
 #~ "        column=\"parent_id\"\n"
 #~ "        not-null=\"true\"/>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Parent\">\n"
 #~ "    <id name=\"id\" column=\"parent_id\"/>\n"
@@ -1306,6 +1829,7 @@
 #~ "        update=\"false\"\n"
 #~ "        not-null=\"true\"/>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<map name=\"contracts\">\n"
 #~ "    <key column=\"employer_id\" not-null=\"true\"/>\n"
@@ -1318,6 +1842,7 @@
 #~ "    <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"
@@ -1330,6 +1855,7 @@
 #~ "    <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"
@@ -1346,6 +1872,7 @@
 #~ "    <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"
@@ -1380,6 +1907,7 @@
 #~ "    ....\n"
 #~ "    ....\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<hibernate-mapping>\n"
 #~ "\n"
@@ -1422,6 +1950,7 @@
 #~ "    </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), "
@@ -1432,6 +1961,7 @@
 #~ "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"
@@ -1478,6 +2008,7 @@
 #~ "    </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"
@@ -1492,6 +2023,7 @@
 #~ "                     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"
@@ -1534,6 +2066,7 @@
 #~ "    </class>\n"
 #~ "\n"
 #~ "</hibernate-mapping>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<hibernate-mapping>\n"
 #~ "\n"
@@ -1576,6 +2109,7 @@
 #~ "    </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"
@@ -1596,4 +2130,3 @@
 #~ "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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/component_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -21,8 +21,12 @@
 
 #. Tag: para
 #, 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 中几处不同的地方为了不同的目的被重复使用。"
+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
 #, no-c-format
@@ -31,13 +35,29 @@
 
 #. Tag: para
 #, 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)这个概念可以像下面这样来建模: "
+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: para
 #, 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 方法,但是你不需要实现任何的接口或申明标识符字段。  "
+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
 #, no-c-format
@@ -46,23 +66,54 @@
 
 #. Tag: para
 #, 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 ""
+"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
 #, 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 将假定整个组件为空。在大多数情况下,这样假定应该是没有问题的。"
+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
 #, 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)对象模型。"
+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
 #, no-c-format
-msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
-msgstr "<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
+msgid ""
+"The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
+"parent&gt;</literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;"
+"</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
 
 #. Tag: title
 #, no-c-format
@@ -71,33 +122,93 @@
 
 #. Tag: para
 #, 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>&lt;element&gt;</literal> tag with a <literal>&lt;composite-element&gt;</literal> tag:"
-msgstr "Hibernate 支持组件的集合(例如:一个元素是姓名(Name)这种类型的数组)。你可以使用 <literal>&lt;composite-element&gt;</literal> 标签替代 <literal>&lt;element&gt;</literal> 标签来定义你的组件集合。"
+msgid ""
+"Collections of components are supported (e.g. an array of type "
+"<literal>Name</literal>). Declare your component collection by replacing the "
+"<literal>&lt;element&gt;</literal> tag with a <literal>&lt;composite-"
+"element&gt;</literal> tag:"
+msgstr ""
+"Hibernate 支持组件的集合(例如:一个元素是姓名(Name)这种类型的数组)。你可"
+"以使用 <literal>&lt;composite-element&gt;</literal> 标签替代 <literal>&lt;"
+"element&gt;</literal> 标签来定义你的组件集合。"
 
 #. Tag: para
 #, 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> 是非常重要的。 "
+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
 #, no-c-format
-msgid "Composite elements can contain components but not collections. If your composite element contains components, use the <literal>&lt;nested-composite-element&gt;</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>&lt;nested-composite-element&gt;</literal> 标签。这是一个相当特殊的案例 — 在一个组件的集合里,那些组件本身又可以包含其他的组件。这个时候你就应该考虑一下使用 one-to-many 关联是否会更恰当。尝试对这个组合元素重新建模为一个实体 — 但是需要注意的是,虽然 Java 模型和重新建模前是一样的,关系模型和持久性语义会有细微的变化。 "
+msgid ""
+"Composite elements can contain components but not collections. If your "
+"composite element contains components, use the <literal>&lt;nested-composite-"
+"element&gt;</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>&lt;nested-composite-element&gt;</literal> 标签。这是一个相当特"
+"殊的案例 — 在一个组件的集合里,那些组件本身又可以包含其他的组件。这个时候你就"
+"应该考虑一下使用 one-to-many 关联是否会更恰当。尝试对这个组合元素重新建模为一"
+"个实体 — 但是需要注意的是,虽然 Java 模型和重新建模前是一样的,关系模型和持久"
+"性语义会有细微的变化。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A composite element mapping does not support null-able properties if you are using a <literal>&lt;set&gt;</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>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal> or <literal>&lt;idbag&gt;</literal>."
-msgstr "请注意如果你使用 <literal>&lt;set&gt;</literal> 标签,一个组合元素的映射不支持可能为空的属性. 当删除对象时,Hibernate 必须使用每一个字段的值来确定一条记录(在组合元素表中,没有单独的关键字段),如果有为 null 的字段,这样做就不可能了。你必须作出一个选择,要么在组合元素中使用不能为空的属性,要么选择使用 <literal>&lt;list&gt;</literal>,<literal>&lt;map&gt;</literal>,<literal>&lt;bag&gt;</literal> 或者 <literal>&lt;idbag&gt;</literal> 而不是 <literal>&lt;set&gt;</literal>。 "
+msgid ""
+"A composite element mapping does not support null-able properties if you are "
+"using a <literal>&lt;set&gt;</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>&lt;list&gt;</literal>, <literal>&lt;map&gt;</"
+"literal>, <literal>&lt;bag&gt;</literal> or <literal>&lt;idbag&gt;</literal>."
+msgstr ""
+"请注意如果你使用 <literal>&lt;set&gt;</literal> 标签,一个组合元素的映射不支"
+"持可能为空的属性. 当删除对象时,Hibernate 必须使用每一个字段的值来确定一条记"
+"录(在组合元素表中,没有单独的关键字段),如果有为 null 的字段,这样做就不可"
+"能了。你必须作出一个选择,要么在组合元素中使用不能为空的属性,要么选择使用 "
+"<literal>&lt;list&gt;</literal>,<literal>&lt;map&gt;</literal>,"
+"<literal>&lt;bag&gt;</literal> 或者 <literal>&lt;idbag&gt;</literal> 而不是 "
+"<literal>&lt;set&gt;</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A special case of a composite element is a composite element with a nested <literal>&lt;many-to-one&gt;</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>&lt;many-to-one&gt;</literal>元素。类似这样的映射允许你将一个 many-to-many 关联表的额外字段映射为组合元素类。接下来的的例子是从 <literal>Order</literal> 到 <literal>Item</literal> 的一个多对多的关联关系,关联属性是 <literal>purchaseDate</literal>,<literal>price</literal> 和 <literal>quantity</literal> 。 "
+msgid ""
+"A special case of a composite element is a composite element with a nested "
+"<literal>&lt;many-to-one&gt;</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>&lt;many-to-one&gt;</literal>"
+"元素。类似这样的映射允许你将一个 many-to-many 关联表的额外字段映射为组合元素"
+"类。接下来的的例子是从 <literal>Order</literal> 到 <literal>Item</literal> 的"
+"一个多对多的关联关系,关联属性是 <literal>purchaseDate</literal>,"
+"<literal>price</literal> 和 <literal>quantity</literal> 。 "
 
 #. Tag: para
 #, 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> 所引用。 "
+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
 #, no-c-format
@@ -106,7 +217,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Composite elements can appear in queries using the same syntax as associations to other entities."
+msgid ""
+"Composite elements can appear in queries using the same syntax as "
+"associations to other entities."
 msgstr "在查询中,表达组合元素的语法和关联到其他实体的语法是一样的。 "
 
 #. Tag: title
@@ -116,8 +229,15 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;composite-map-key&gt;</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>&lt;composite-map-key&gt;</literal> 元素允许你映射一个组件类作为一个 <literal>Map</literal> 的 key,前提是你必须正确的在这个类中重写了 <literal>hashCode()</literal> 和 <literal>equals()</literal> 方法。 "
+msgid ""
+"The <literal>&lt;composite-map-key&gt;</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>&lt;composite-map-key&gt;</literal> 元素允许你映射一个组件类作为一"
+"个 <literal>Map</literal> 的 key,前提是你必须正确的在这个类中重写了 "
+"<literal>hashCode()</literal> 和 <literal>equals()</literal> 方法。 "
 
 #. Tag: title
 #, no-c-format
@@ -126,8 +246,11 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can use a component as an identifier of an entity class. Your component class must satisfy certain requirements:"
-msgstr "你可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求: "
+msgid ""
+"You can use a component as an identifier of an entity class. Your component "
+"class must satisfy certain requirements:"
+msgstr ""
+"你可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求: "
 
 #. Tag: para
 #, no-c-format
@@ -136,8 +259,12 @@
 
 #. Tag: para
 #, 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> 方法,始终和组合关键字在数据库中的概念保持一致 "
+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
 #, no-c-format
@@ -146,38 +273,75 @@
 
 #. Tag: para
 #, no-c-format
-msgid "In Hibernate3, although the second requirement is not an absolutely hard requirement of Hibernate, it is recommended."
-msgstr "注意:在 Hibernate3 中,第二个要求并非是 Hibernate 强制必须的。但最好这样做。 "
+msgid ""
+"In Hibernate3, although the second requirement is not an absolutely hard "
+"requirement of Hibernate, it is recommended."
+msgstr ""
+"注意:在 Hibernate3 中,第二个要求并非是 Hibernate 强制必须的。但最好这样"
+"做。 "
 
 #. Tag: para
 #, 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> 产生组合关键字。一个应用程序必须分配它自己的标识符。 "
+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
 #, no-c-format
-msgid "Use the <literal>&lt;composite-id&gt;</literal> tag, with nested <literal>&lt;key-property&gt;</literal> elements, in place of the usual <literal>&lt;id&gt;</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>&lt;composite-id&gt;</literal> 标签(并且内嵌 <literal>&lt;key-property&gt;</literal> 元素)代替通常的 <literal>&lt;id&gt;</literal> 标签。比如,<literal>OrderLine</literal> 类具有一个主键,这个主键依赖于 <literal>Order</literal> 的(联合)主键。 "
+msgid ""
+"Use the <literal>&lt;composite-id&gt;</literal> tag, with nested "
+"<literal>&lt;key-property&gt;</literal> elements, in place of the usual "
+"<literal>&lt;id&gt;</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>&lt;composite-id&gt;</literal> 标签(并且内嵌 <literal>&lt;key-"
+"property&gt;</literal> 元素)代替通常的 <literal>&lt;id&gt;</literal> 标签。"
+"比如,<literal>OrderLine</literal> 类具有一个主键,这个主键依赖于 "
+"<literal>Order</literal> 的(联合)主键。 "
 
 #. Tag: para
 #, 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> 的关联可能被这样映射: "
+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
 #, no-c-format
-msgid "The <literal>&lt;column&gt;</literal> tag is an alternative to the <literal>column</literal> attribute everywhere. Using the <literal>&lt;column&gt;</literal> tag just gives more declaration options, which are mostly useful when utilizing <literal>hbm2ddl</literal>."
-msgstr "(注意在各个地方 <literal>&lt;column&gt;</literal> 标签都是 <literal>column</literal> 属性的替代写法。) "
+msgid ""
+"The <literal>&lt;column&gt;</literal> tag is an alternative to the "
+"<literal>column</literal> attribute everywhere. Using the <literal>&lt;"
+"column&gt;</literal> tag just gives more declaration options, which are "
+"mostly useful when utilizing <literal>hbm2ddl</literal>."
+msgstr ""
+"(注意在各个地方 <literal>&lt;column&gt;</literal> 标签都是 <literal>column</"
+"literal> 属性的替代写法。) "
 
 #. Tag: para
 #, 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: para
 #, 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: para
 #, no-c-format
@@ -186,7 +350,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If <literal>OrderLine</literal> itself owns a collection, it also has a composite foreign key."
+msgid ""
+"If <literal>OrderLine</literal> itself owns a collection, it also has a "
+"composite foreign key."
 msgstr "假若 <literal>OrderLine</literal> 本身拥有一个集合,它也具有组合外键。"
 
 #. Tag: title
@@ -201,8 +367,20 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are identical to <literal>&lt;component&gt;</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>&lt;dynamic-component&gt;</literal> 映射的语义上来讲,它和 <literal>&lt;component&gt;</literal> 是相同的。这种映射类型的优点在于通过修改映射文件,就可以具有在部署时检测真实属性的能力。利用一个 DOM 解析器,也可以在程序运行时操作映射文件。更好的是,你可以通过 <literal>Configuration</literal> 对象来访问(或者修改)Hibernate 的运行时元模型。 "
+msgid ""
+"The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are "
+"identical to <literal>&lt;component&gt;</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>&lt;dynamic-component&gt;</literal> 映射的语义上来讲,它和 "
+"<literal>&lt;component&gt;</literal> 是相同的。这种映射类型的优点在于通过修改"
+"映射文件,就可以具有在部署时检测真实属性的能力。利用一个 DOM 解析器,也可以在"
+"程序运行时操作映射文件。更好的是,你可以通过 <literal>Configuration</"
+"literal> 对象来访问(或者修改)Hibernate 的运行时元模型。 "
 
 #~ msgid ""
 #~ "<![CDATA[public class Person {\n"
@@ -256,6 +434,7 @@
 #~ "    ......\n"
 #~ "    ......\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[public class Name {\n"
 #~ "    char initial;\n"
@@ -304,6 +483,7 @@
 #~ "        this.initial = initial;\n"
 #~ "    }\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
 #~ "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
@@ -330,6 +510,7 @@
 #~ "        <property name=\"last\"/>\n"
 #~ "    </component>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
 #~ "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
@@ -358,6 +539,7 @@
 #~ "        <property name=\"last\"/>\n"
 #~ "    </component>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
 #~ "    <key column=\"id\"/>\n"
@@ -578,4 +760,3 @@
 #~ "    &lt;property name=\"bar\" column=\"BAR\" type=\"integer\"/&gt;\n"
 #~ "    &lt;many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/&gt;\n"
 #~ "&lt;/dynamic-component&gt;"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/configuration.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:18\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"
@@ -21,8 +21,19 @@
 
 #. Tag: para
 #, 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)下并进行定制。"
+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
 #, no-c-format
@@ -31,63 +42,124 @@
 
 #. Tag: para
 #, 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 映射定义文件编译而来。"
+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
 #, 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 "你可以直接实例化 <classname>org.hibernate.cfg.Configuration</classname> 来获取一个实例,并为它指定 XML 映射定义文件。如果映射定义文件在类路径(classpath)中,请使用 <literal>addResource()</literal>。例如:"
+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
 #, 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 帮你寻找映射定义文件: "
+msgid ""
+"An alternative way is to specify the mapped class and allow Hibernate to "
+"find the mapping document for you:"
+msgstr ""
+"一个替代方法(有时是更好的选择)是,指定被映射的类,让 Hibernate 帮你寻找映射"
+"定义文件: "
 
 #. Tag: para
 #, 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)。"
+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
 #, no-c-format
-msgid "A <classname>org.hibernate.cfg.Configuration</classname> also allows you to specify configuration properties. For example:"
-msgstr "<classname>org.hibernate.cfg.Configuration</classname>> 也允许你指定配置属性。例如:"
+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
 #, no-c-format
-msgid "This is not the only way to pass configuration properties to Hibernate. Some alternative options include:"
+msgid ""
+"This is not the only way to pass configuration properties to Hibernate. Some "
+"alternative options include:"
 msgstr "当然这不是唯一的传递 Hibernate 配置属性的方式,其他可选方式还包括: "
 
 #. Tag: para
 #, 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>。"
+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
 #, 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)。"
+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
 #, 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
 #, no-c-format
-msgid "Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate.cfg.xml</literal> (this is discussed later)."
-msgstr "在 <literal>hibernate.cfg.xml</literal> 中加入元素 <literal>&lt;property&gt;</literal>(稍后讨论)。 "
+msgid ""
+"Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate."
+"cfg.xml</literal> (this is discussed later)."
+msgstr ""
+"在 <literal>hibernate.cfg.xml</literal> 中加入元素 <literal>&lt;property&gt;"
+"</literal>(稍后讨论)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If you want to get started quickly<filename>hibernate.properties</filename> is the easiest approach."
-msgstr "如果你想快速上路,<filename>hibernate.properties</filename> 就是最容易的途径。"
+msgid ""
+"If you want to get started quickly<filename>hibernate.properties</filename> "
+"is the easiest approach."
+msgstr ""
+"如果你想快速上路,<filename>hibernate.properties</filename> 就是最容易的途"
+"径。"
 
 #. Tag: para
 #, 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> 创建完成它就被丢弃了。"
+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
 #, no-c-format
@@ -96,13 +168,25 @@
 
 #. Tag: para
 #, 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 <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> 实例的工厂。这个工厂将被应用程序的所有线程共享: "
+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
 #, 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> 实例。这对 使用多个数据库的应用来说很有用。 "
+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
 #, no-c-format
@@ -111,23 +195,46 @@
 
 #. Tag: para
 #, 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 "通常你希望  <interfacename>org.hibernate.SessionFactory</interfacename> 来为你创建和缓存(pool)JDBC 连接。如果你采用这种方式,只需要如下例所示那样,打开一个 <interfacename>org.hibernate.Session</interfacename>:"
+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
 #, 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 连接。 "
+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
 #, 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 连接配置中最重要的设置。"
+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
 #, 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 连接:"
+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
 #, no-c-format
@@ -196,23 +303,57 @@
 
 #. Tag: para
 #, 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。  "
+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
 #, 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 网站获取更多的信息。 "
+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
 #, no-c-format
-msgid "The following is an example <filename>hibernate.properties</filename> file for c3p0:"
-msgstr "这是一个使用 C3P0 的 <literal>hibernate.properties</literal> 样例文件: "
+msgid ""
+"The following is an example <filename>hibernate.properties</filename> file "
+"for c3p0:"
+msgstr ""
+"这是一个使用 C3P0 的 <literal>hibernate.properties</literal> 样例文件: "
 
 #. Tag: para
 #, 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> 处获得连接,你至少需要设置下列属性中的一个: "
+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
 #, no-c-format
@@ -246,8 +387,11 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></emphasis> (optional)"
-msgstr "<emphasis>JNDI <literal>InitialContextFactory</literal> 类</emphasis>(可选)"
+msgid ""
+"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+msgstr ""
+"<emphasis>JNDI <literal>InitialContextFactory</literal> 类</emphasis>(可选)"
 
 #. Tag: para
 #, no-c-format
@@ -261,23 +405,46 @@
 
 #. Tag: para
 #, 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> 样例文件: "
+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
 #, 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
 #, 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> 连接属性。 "
+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
 #, 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>,你可以选择一个自定义的实现。 "
+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
 #, no-c-format
@@ -286,13 +453,24 @@
 
 #. Tag: para
 #, 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 在运行期的行为。它们都是可选的,并拥有适当的默认值。 "
+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: 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>用上面描述的其他方法来设置。 "
+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
 #, no-c-format
@@ -306,18 +484,33 @@
 
 #. 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> 的类名。"
+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
 #, 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> "
+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
 #, 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 "在大多数情况下,Hibernate 可以根据 JDBC 驱动返回的 <literal>JDBC metadata</literal> 选择正确的 <classname>org.hibernate.dialect.Dialect</classname> 实现。"
+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: para
 #, no-c-format
@@ -326,13 +519,22 @@
 
 #. 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>。"
+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
 #, 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> "
+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: para
 #, no-c-format
@@ -351,13 +553,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Qualify unqualified table names with the given schema/tablespace in generated SQL."
-msgstr "在生成的 SQL 中,将给定的 schema/tablespace 附加于非全限定名的表名上。 "
+msgid ""
+"Qualify unqualified table names with the given schema/tablespace in "
+"generated SQL."
+msgstr ""
+"在生成的 SQL 中,将给定的 schema/tablespace 附加于非全限定名的表名上。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
-msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>SCHEMA_NAME</literal> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>SCHEMA_NAME</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -366,13 +573,16 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Qualifies unqualified table names with the given catalog in generated SQL."
+msgid ""
+"Qualifies unqualified table names with the given catalog in generated SQL."
 msgstr "在生成的 SQL 中,将给定的 catalog 附加于非全限定名的表名上。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
-msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>CATALOG_NAME</literal> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>CATALOG_NAME</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -381,13 +591,21 @@
 
 #. 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 中。"
+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
 #, 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> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>jndi/composite/name</"
+"literal> "
 
 #. Tag: para
 #, no-c-format
@@ -396,13 +614,22 @@
 
 #. 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> 意味着将关闭默认的外连接抓取。 "
+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
 #, 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> 之间取值 "
+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: para
 #, no-c-format
@@ -416,8 +643,12 @@
 
 #. Tag: para
 #, 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> "
+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: para
 #, no-c-format
@@ -426,13 +657,21 @@
 
 #. 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 指定默认的实体表现模式。  "
+msgid ""
+"Sets a default mode for entity representation for all sessions opened from "
+"this <literal>SessionFactory</literal>."
+msgstr ""
+"为由这个 <literal>SessionFactory</literal> 打开的所有 Session 指定默认的实体"
+"表现模式。  "
 
 #. Tag: para
 #, 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: para
 #, no-c-format
@@ -441,8 +680,13 @@
 
 #. 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 更新排序。这么做将减少在高并发系统中事务的死锁。"
+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: para
 #, no-c-format
@@ -451,7 +695,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
+msgid ""
+"If enabled, Hibernate will collect statistics useful for performance tuning."
 msgstr "如果开启,Hibernate 将收集有助于性能调节的统计数据。"
 
 #. Tag: para
@@ -461,7 +706,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted."
+msgid ""
+"If enabled, generated identifier properties will be reset to default values "
+"when objects are deleted."
 msgstr "如果开启,在对象被删除时生成的标识属性将被重设为默认值。"
 
 #. Tag: para
@@ -471,8 +718,12 @@
 
 #. 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>。"
+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
 #, no-c-format
@@ -486,8 +737,12 @@
 
 #. 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>)。"
+msgid ""
+"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
+"setFetchSize()</literal>)."
+msgstr ""
+"非零值,指定 JDBC 抓取数量的大小(调用 <literal>Statement.setFetchSize()</"
+"literal>)。"
 
 #. Tag: para
 #, no-c-format
@@ -501,8 +756,12 @@
 
 #. Tag: para
 #, 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> 之间的值 "
+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: para
 #, no-c-format
@@ -511,8 +770,16 @@
 
 #. 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>。 "
+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: para
 #, no-c-format
@@ -521,13 +788,21 @@
 
 #. 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>。多数应用程序不需要这个配置属性。 "
+msgid ""
+"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
+"Most applications will not need this configuration property."
+msgstr ""
+"选择一个自定义的 <literal>Batcher</literal>。多数应用程序不需要这个配置属"
+"性。 "
 
 #. Tag: para
 #, 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> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.Batcher</"
+"literal> "
 
 #. Tag: para
 #, no-c-format
@@ -536,8 +811,13 @@
 
 #. 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 会使用连接的元数据。 "
+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: para
 #, no-c-format
@@ -546,8 +826,13 @@
 
 #. 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)(系统级属性)。 "
+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: para
 #, no-c-format
@@ -556,13 +841,23 @@
 
 #. 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。默认情况下将使用连接的元数据来判定驱动的能力。 "
+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
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
-msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>true | false</literal> "
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>true | false</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -571,13 +866,22 @@
 
 #. 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 连接。 "
+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
 #, 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> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"ConnectionProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
+"ConnectionProvider</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -586,13 +890,20 @@
 
 #. 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> 来了解各个值的具体意义,但请注意多数数据库都不支持所有的隔离级别。 "
+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
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
-msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>1, 2, 4, 8</literal> "
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>1, 2, 4, 8</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -611,38 +922,87 @@
 
 #. 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>。"
+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
 #, 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> "
+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
 #, 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\" />。"
+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: para
 #, no-c-format
-msgid "<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</emphasis>"
-msgstr "<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</emphasis>"
+msgid ""
+"<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</"
+"emphasis>"
+msgstr ""
+"<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</"
+"emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid "Pass the JDBC property <emphasis>&lt;propertyName&gt;</emphasis> to <literal>DriverManager.getConnection()</literal>."
-msgstr "把 JDBC 属性 <emphasis>&lt;propertyName&gt;</emphasis> 传递给 <literal>DriverManager.getConnection()</literal>。"
+msgid ""
+"Pass the JDBC property <emphasis>&lt;propertyName&gt;</emphasis> to "
+"<literal>DriverManager.getConnection()</literal>."
+msgstr ""
+"把 JDBC 属性 <emphasis>&lt;propertyName&gt;</emphasis> 传递给 "
+"<literal>DriverManager.getConnection()</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid "<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
-msgstr "<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
+msgid ""
+"<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
+msgstr ""
+"<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid "Pass the property <emphasis>&lt;propertyName&gt;</emphasis> to the JNDI <literal>InitialContextFactory</literal>."
-msgstr "把 <emphasis>&lt;propertyName&gt;</emphasis> 属性传递给 JNDI <literal>InitialContextFactory</literal>。"
+msgid ""
+"Pass the property <emphasis>&lt;propertyName&gt;</emphasis> to the JNDI "
+"<literal>InitialContextFactory</literal>."
+msgstr ""
+"把 <emphasis>&lt;propertyName&gt;</emphasis> 属性传递给 JNDI "
+"<literal>InitialContextFactory</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -661,8 +1021,12 @@
 
 #. Tag: para
 #, 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> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"CacheProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
+"CacheProvider</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -671,8 +1035,13 @@
 
 #. 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 中,这个设置对的集群缓存非常有用,对集群缓存的实现而言,默认是开启的。 "
+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: para
 #, no-c-format
@@ -681,7 +1050,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Enables the query cache. Individual queries still have to be set cachable."
+msgid ""
+"Enables the query cache. Individual queries still have to be set cachable."
 msgstr "允许查询缓存,个别查询仍然需要被设置为可缓存的。 "
 
 #. Tag: para
@@ -691,8 +1061,13 @@
 
 #. 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>&lt;cache&gt;</literal> mapping."
-msgstr "能用来完全禁止使用二级缓存。对那些在类的映射定义中指定 <literal>&lt;cache&gt;</literal> 的类,会默认开启二级缓存。 "
+msgid ""
+"Can be used to completely disable the second level cache, which is enabled "
+"by default for classes which specify a <literal>&lt;cache&gt;</literal> "
+"mapping."
+msgstr ""
+"能用来完全禁止使用二级缓存。对那些在类的映射定义中指定 <literal>&lt;cache&gt;"
+"</literal> 的类,会默认开启二级缓存。 "
 
 #. Tag: para
 #, no-c-format
@@ -701,13 +1076,21 @@
 
 #. 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>。"
+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
 #, 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> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.QueryCache</"
+"literal> "
 
 #. Tag: para
 #, no-c-format
@@ -731,7 +1114,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format."
+msgid ""
+"Forces Hibernate to store data in the second-level cache in a more human-"
+"friendly format."
 msgstr "强制 Hibernate 以更人性化的格式将数据存入二级缓存。"
 
 #. Tag: title
@@ -746,13 +1131,23 @@
 
 #. 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>)。"
+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
 #, 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> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
+"TransactionFactory</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -761,8 +1156,12 @@
 
 #. 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>。"
+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: para
 #, no-c-format
@@ -771,13 +1170,22 @@
 
 #. 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 生成器的时候需要该类。 "
+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
 #, 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> "
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal>"
+msgstr ""
+"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
+"TransactionManagerLookup</literal> "
 
 #. Tag: para
 #, no-c-format
@@ -786,8 +1194,15 @@
 
 #. 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\"/>。 "
+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: para
 #, no-c-format
@@ -796,8 +1211,15 @@
 
 #. 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\"/>。  "
+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
 #, no-c-format
@@ -811,13 +1233,24 @@
 
 #. 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\"/>。 "
+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
 #, 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> "
+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: para
 #, no-c-format
@@ -831,8 +1264,14 @@
 
 #. Tag: para
 #, 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> "
+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: para
 #, no-c-format
@@ -841,13 +1280,21 @@
 
 #. 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 查询中的符号(符号可能是函数名或常量名字)。  "
+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
 #, 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> "
+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: para
 #, no-c-format
@@ -856,13 +1303,26 @@
 
 #. 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。 "
+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
 #, 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> "
+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: para
 #, no-c-format
@@ -871,8 +1331,15 @@
 
 #. 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> 中设置此属性。 "
+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
 #, no-c-format
@@ -881,8 +1348,17 @@
 
 #. Tag: para
 #, 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 将为上面列出的一些属性使用合理的默认值,这样你就不用手工指定它们。"
+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
 #, no-c-format
@@ -1136,13 +1612,34 @@
 
 #. Tag: para
 #, 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 关联获取连接对象的整个对象图。"
+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
 #, 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> 来映射。 "
+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
 #, no-c-format
@@ -1156,8 +1653,17 @@
 
 #. Tag: para
 #, 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> "
+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
 #, no-c-format
@@ -1166,8 +1672,14 @@
 
 #. Tag: para
 #, 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\"/> 获取更多的详情。"
+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
 #, no-c-format
@@ -1176,17 +1688,26 @@
 
 #. Tag: para
 #, 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 中定义新的查询符号。例如: "
+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
 #, 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 中被翻译成整数常量。"
+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
 #, no-c-format
-msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgid ""
+"This would allow you to rename the SQL <literal>LOWER</literal> function."
 msgstr "将允许你重命名 SQL 中的 <literal>LOWER</literal> 函数。"
 
 #. Tag: title
@@ -1196,8 +1717,18 @@
 
 #. Tag: para
 #, 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,以获得更多信息。 "
+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
 #, no-c-format
@@ -1206,13 +1737,42 @@
 
 #. Tag: para
 #, 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 "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> 目录里带有一个属性文件的例子。"
+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
 #, 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 的日志可能地详细。这是必要的查错利器。最令人感兴趣的日志分类有如下这些:"
+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
 #, no-c-format
@@ -1266,8 +1826,11 @@
 
 #. 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: para
 #, no-c-format
@@ -1326,13 +1889,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Log everything. This is a lot of information but it is useful for troubleshooting"
+msgid ""
+"Log everything. This is a lot of information but it is useful for "
+"troubleshooting"
 msgstr "为任何 Hibernate 相关信息记录日志(信息量较大,但对查错非常有帮助)"
 
 #. Tag: para
 #, 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
 #, no-c-format
@@ -1341,23 +1913,44 @@
 
 #. Tag: para
 #, 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
 #, 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 使用的缺省策略是相当精简的。"
+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
 #, no-c-format
-msgid "You can specify a different strategy by calling <literal>Configuration.setNamingStrategy()</literal> before adding mappings:"
-msgstr "在加入映射定义前,你可以调用 <literal>Configuration.setNamingStrategy()</literal> 指定一个不同的命名策略: "
+msgid ""
+"You can specify a different strategy by calling <literal>Configuration."
+"setNamingStrategy()</literal> before adding mappings:"
+msgstr ""
+"在加入映射定义前,你可以调用 <literal>Configuration.setNamingStrategy()</"
+"literal> 指定一个不同的命名策略: "
 
 #. Tag: para
 #, 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
 #, no-c-format
@@ -1366,18 +1959,40 @@
 
 #. Tag: para
 #, 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
 #, 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> 的根目录下。下面是一个例子: "
+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
 #, 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 语法的优势之外,两者是等价的。 "
+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
 #, no-c-format
@@ -1401,28 +2016,78 @@
 
 #. Tag: para
 #, 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。 "
+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
 #, 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
 #, 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)。 "
+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
 #, 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 启动前,数据源必须是可用的,等等)。 "
+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
 #, 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
 #, no-c-format
@@ -1431,13 +2096,33 @@
 
 #. Tag: para
 #, 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>。 "
+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
 #, 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
 #, no-c-format
@@ -1461,8 +2146,13 @@
 
 #. Tag: para
 #, 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 管理的事务。"
+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: term
 #, no-c-format
@@ -1476,13 +2166,25 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can also define your own transaction strategies (for a CORBA transaction service, for example)."
+msgid ""
+"You can also define your own transaction strategies (for a CORBA transaction "
+"service, for example)."
 msgstr "你也可以定义属于你自己的事务策略(如,针对 CORBA 的事务服务)。"
 
 #. Tag: para
 #, 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> 的引用: "
+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
 #, no-c-format
@@ -1501,8 +2203,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1511,8 +2215,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</"
+"literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1521,8 +2229,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</"
+"literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1531,8 +2243,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</"
+"literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1541,8 +2257,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1551,8 +2269,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1561,8 +2281,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1571,8 +2293,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1581,8 +2305,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1591,8 +2317,10 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
-msgstr "<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
+msgid ""
+"<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -1606,33 +2334,87 @@
 
 #. Tag: para
 #, 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> 没有关系,它们只是恰巧用了相同的注册表。"
+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
 #, 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)。"
+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
 #, 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
 #, 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 部署(见后面讨论)。"
+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
 #, 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>。 "
+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
 #, 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&mdash;see chapter 1."
-msgstr "我们建议,在受管理的环境中,把 <literal>SessionFactory</literal> 绑定到 JNDI,在其它情况下,使用一个 <literal>static(静态的)</literal>singleton。为了在你的应用程序代码中隐藏这些细节,我们还建议你用一个 helper 类把实际查找 <literal>SessionFactory</literal> 的代码隐藏起来,比如 <literal>HibernateUtil.getSessionFactory()</literal>。注意,这个类也就可以方便地启动 Hibernate,参见第一章。 "
+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&mdash;see chapter 1."
+msgstr ""
+"我们建议,在受管理的环境中,把 <literal>SessionFactory</literal> 绑定到 "
+"JNDI,在其它情况下,使用一个 <literal>static(静态的)</literal>singleton。为"
+"了在你的应用程序代码中隐藏这些细节,我们还建议你用一个 helper 类把实际查找 "
+"<literal>SessionFactory</literal> 的代码隐藏起来,比如 "
+"<literal>HibernateUtil.getSessionFactory()</literal>。注意,这个类也就可以方"
+"便地启动 Hibernate,参见第一章。 "
 
 #. Tag: title
 #, no-c-format
@@ -1641,8 +2423,42 @@
 
 #. Tag: para
 #, 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 使用声明式事务声明。 "
+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\" /> 一节的讨论。使用 <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
 #, no-c-format
@@ -1651,18 +2467,50 @@
 
 #. Tag: para
 #, 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>。  "
+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
 #, 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> 样例: "
+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
 #, 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 ""
+"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 ""
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
@@ -1672,6 +2520,7 @@
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
 #~ "    .addResource(\"Item.hbm.xml\")\n"
 #~ "    .addResource(\"Bid.hbm.xml\");]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
 #~ "    .addClass(org.hibernate.auction.Item.class)\n"
@@ -1680,6 +2529,7 @@
 #~ "<![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"
@@ -1698,20 +2548,26 @@
 #~ "    .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"
@@ -1732,8 +2588,10 @@
 #~ "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"
@@ -1748,14 +2606,19 @@
 #~ "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"
@@ -1768,6 +2631,7 @@
 #~ "    .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"
@@ -1848,12 +2712,14 @@
 #~ "    </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"
@@ -1862,6 +2728,7 @@
 #~ "<![CDATA[SessionFactory sf = new Configuration()\n"
 #~ "    .configure(\"catdb.cfg.xml\")\n"
 #~ "    .buildSessionFactory();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\"?>\n"
 #~ "<server>\n"
@@ -1958,4 +2825,3 @@
 #~ "</mbean>\n"
 #~ "\n"
 #~ "</server>]]>"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/events.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\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"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_mappings.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_parentchild.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/example_weblog.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/filters.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/inheritance_mapping.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -283,8 +283,8 @@
 "请注意这里没有显性地提及 <literal>Payment</literal> 接口。<literal>Payment</"
 "literal> 的属性映射到每个子类。如果你想避免重复,请考虑使用 XML 实体(如:"
 "<literal>DOCTYPE</literal> 声明里的  <literal>[ &lt;!ENTITY allproperties "
-"SYSTEM \"allproperties.xml\"&gt; ]</literal> 和映射里的 "
-"<literal>&amp;allproperties&semi;</literal>)。"
+"SYSTEM \"allproperties.xml\"&gt; ]</literal> 和映射里的 <literal>&amp;"
+"allproperties&semi;</literal>)。"
 
 #. Tag: para
 #, no-c-format
@@ -420,7 +420,7 @@
 msgstr "每个具体类一张表(union-subclass)"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Polymorphic one-to-many: <code>&lt;one-to-many&gt;</code> (for <code>inverse="
 "\"true\"</code> only)"
@@ -848,6 +848,10 @@
 #~ "    &lt;/joined-subclass&gt;\n"
 #~ "&lt;/class&gt;"
 
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "<entry>每个子类一张表</entry>"
+
 #~ msgid "Features of inheritance mappings"
 #~ msgstr "继承映射特性(Features of inheritance mappings)"
 
@@ -893,9 +897,6 @@
 #~ msgid "supported"
 #~ msgstr "支持"
 
-#~ msgid "<entry>table per subclass</entry>"
-#~ msgstr "<entry>每个子类一张表</entry>"
-
 #~ msgid "&lt;any&gt;"
 #~ msgstr "&lt;any&gt;"
 

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/performance.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: performance\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:26\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -27,8 +27,16 @@
 
 #. Tag: para
 #, 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>中重载声明。"
+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
 #, no-c-format
@@ -37,23 +45,54 @@
 
 #. Tag: para
 #, 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>(外连接)来获得对象的关联实例或者关联集合。 "
+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
 #, 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 语句。"
+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
 #, 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 语句。"
+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
 #, 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> 语句获取一批对象实例或集合。"
+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
 #, no-c-format
@@ -62,38 +101,86 @@
 
 #. Tag: para
 #, 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>:当宿主被加载时,关联、集合或属性被立即抓取。"
+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
 #, 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>:直到应用程序对集合进行了一次操作时,集合才被抓取(对集合而言这是默认行为)。"
+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
 #, 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 不会试图去把整个集合都抓取到内存里来(适用于非常大的集合)。"
+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
 #, 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 操作时才抓取。"
+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
 #, 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。这种方法需要在编译期间进行字节码增强操作,因此很少需要用到。"
+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
 #, 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>:对属性或返回单值的关联而言,当其实例变量被访问的时候进行抓取。需要编译期字节码强化,因此这一方法很少是必要的。"
+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
 #, 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>来定义一些契约,对某特定类的某个脱管的实例,知道有哪些数据是可以使用的。"
+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
 #, no-c-format
@@ -102,33 +189,75 @@
 
 #. Tag: para
 #, 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 抓取,对返回单值的关联使用延迟代理抓取。对几乎是所有的应用而言,其绝大多数的关联,这种策略都是有效的。"
+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
 #, 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 会对延迟加载采取批量抓取优化措施(这种优化也可能会在更细化的级别打开)。"
+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
 #, 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 上下文之外调用延迟集合会导致一次意外。比如: "
+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
 #, 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 读取数据的代码移到事务提交之前。"
+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
 #, 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 最终几乎需要在每个事务中载入整个数据库到内存中。"
+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
 #, 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 中,具体选择哪种抓取策略的机制是和选择 单值关联或集合关联相一致的。 "
+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
 #, no-c-format
@@ -137,18 +266,26 @@
 
 #. Tag: para
 #, 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: para
 #, 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
 #, 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
 #, no-c-format
@@ -167,27 +304,53 @@
 
 #. Tag: para
 #, 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 查询后紧跟着一系列的查询。 "
+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
 #, 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>语句。 "
+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
 #, 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> 语句中的数据抓取策略。例如: "
+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
 #, no-c-format
-msgid "This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan\"."
-msgstr "这就是其他 ORM 解决方案的“抓取计划(fetch plan)”在 Hibernate 中的等价物。"
+msgid ""
+"This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan"
+"\"."
+msgstr ""
+"这就是其他 ORM 解决方案的“抓取计划(fetch plan)”在 Hibernate 中的等价物。"
 
 #. Tag: para
 #, no-c-format
-msgid "A completely different approach to problems with N+1 selects is to use the second-level cache."
+msgid ""
+"A completely different approach to problems with N+1 selects is to use the "
+"second-level cache."
 msgstr "截然不同的一种避免 N+1 次查询的方法是,使用二级缓存。 "
 
 #. Tag: title
@@ -197,28 +360,61 @@
 
 #. Tag: para
 #, 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 库), 为持久对象实现了延迟载入代理。 "
+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
 #, 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> 关联的延迟抓取。 "
+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
 #, 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>"
+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
 #, no-c-format
-msgid "There are potential problems to note when extending this approach to polymorphic classes.For example:"
+msgid ""
+"There are potential problems to note when extending this approach to "
+"polymorphic classes.For example:"
 msgstr "在如此方式定义一个多态类的时候,有许多值得注意的常见性的问题,例如: "
 
 #. Tag: para
 #, 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: para
 #, no-c-format
@@ -227,28 +423,61 @@
 
 #. Tag: para
 #, 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 ""
+"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
 #, 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 "第三,你不能对 <literal>final</literal> 类或具有 <literal>final</literal> 方法的类使用 CGLIB 代理。"
+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: para
 #, 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 "最后,如果你的持久化对象在实例化时需要某些资源(例如,在实例化方法、默认构造方法中),那么代理对象也同样需要使用这些资源。实际上,代理类是持久化类的子类。"
+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
 #, 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 的单根继承模型的天生限制。如果你希望避免这些问题,那么你的每个持久化类必须实现一个接口, 在此接口中已经声明了其业务方法。然后,你需要在映射文档中再指定这些接口,如 <literal>CatImpl</literal> 实现 <literal>Cat</literal> 而 <literal>DomesticCatImpl</literal> 实现 <literal>DomesticCat</literal> 接口。例如:"
+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
 #, 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>load()</literal> 和 <literal>iterate()</literal> 永远也不会返回 <literal>Cat</literal> 和 <literal>DomesticCat</literal> 实例的代理。"
+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
 #, no-c-format
@@ -262,23 +491,37 @@
 
 #. Tag: para
 #, 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
 #, no-c-format
-msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
 msgstr "有些方法中是<emphasis>不</emphasis>需要代理初始化的:"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>equals()</literal>: if the persistent class does not override <literal>equals()</literal>"
-msgstr "<literal>equals()</literal> 方法,如果持久类没有重载 <literal>equals()</literal> 方法。"
+msgid ""
+"<literal>equals()</literal>: if the persistent class does not override "
+"<literal>equals()</literal>"
+msgstr ""
+"<literal>equals()</literal> 方法,如果持久类没有重载 <literal>equals()</"
+"literal> 方法。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>hashCode()</literal>: if the persistent class does not override <literal>hashCode()</literal>"
-msgstr "<literal>hashCode()</literal>:如果持久类没有重载 <literal>hashCode()</literal> 方法。"
+msgid ""
+"<literal>hashCode()</literal>: if the persistent class does not override "
+"<literal>hashCode()</literal>"
+msgstr ""
+"<literal>hashCode()</literal>:如果持久类没有重载 <literal>hashCode()</"
+"literal> 方法。"
 
 #. Tag: para
 #, no-c-format
@@ -287,13 +530,24 @@
 
 #. Tag: para
 #, 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
 #, 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>,我们可以避免类型转换带来的问题。然而,这样我们就需要编译期字节码增强,并且所有的操作都会导致立刻进行代理初始化。 "
+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
 #, no-c-format
@@ -302,53 +556,149 @@
 
 #. Tag: para
 #, 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> 异常。也就是说,在分离状态下,访问一个实体所拥有的集合,或者访问其指向代理的属性时,会引发此异常。 "
+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
 #, 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> 之类的方法来确保这一点。 但是这样的程序会造成读者的疑惑,也不符合通常的代码规范。 "
+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
 #, 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 的集合具有同样的功能。 "
+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
 #, 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 状态经常会是一个问题。有两种方法可以解决此问题: "
+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
 #, 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\" 模式,你可以找到示例。 "
+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
 #, 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>,那么这项任务将会变得简单的多。 "
+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
 #, 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>自动完成这些任务,因为这将引入一个特殊的事务语义。 "
+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
 #, 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 "有时候,你并不需要完全实例化整个大的集合,仅需要了解它的部分信息(例如其大小)、或者集合的部分内容。 "
+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
 #, 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: para
 #, 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: title
 #, no-c-format
@@ -357,33 +707,90 @@
 
 #. Tag: para
 #, 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 将不载入其他未实例化的代理。批量抓取是延迟查询抓取的优化方案,你可以在两种批量抓取方案之间进行选择:在类级别和集合级别。 "
+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
 #, 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>,改变其行为: "
+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
 #, no-c-format
-msgid "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgid ""
+"Hibernate will now execute only three queries: the pattern is 10, 10, 5."
 msgstr "随之,Hibernate 将只需要执行三次查询,分别为 10、10、 5。 "
 
 #. Tag: para
 #, 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 将可以预先抓取整个集合。请看例子: "
+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
 #, 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
 #, 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>可能是更好的解决方法。)"
+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
 #, no-c-format
@@ -392,8 +799,14 @@
 
 #. Tag: para
 #, 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 重新运行原来的查询,一次性读入所有的实例。这和批量抓取的实现方法是一样的,不会有破碎的加载。 "
+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
 #, no-c-format
@@ -402,18 +815,39 @@
 
 #. Tag: para
 #, 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>。 请注意,该技术更多的属于市场特性。在实际应用中,优化行读取比优化列读取更重要。但是,仅载入类的部分属性在某些特定情况下会有用,例如在原有表中拥有几百列数据、数据模型无法改动的情况下。 "
+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
 #, 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: para
 #, 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 将会忽略这些属性的延迟设置,仍然将其直接载入。 "
+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
 #, no-c-format
@@ -422,13 +856,23 @@
 
 #. Tag: para
 #, 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)特性,可以避免读取非必要的列, 这一点至少对只读事务是非常有用的。它无需在代码构建时“二进制指令”处理,因此是一个更加值得选择的解决方法。 "
+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
 #, 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>,强行抓取所有内容。 "
+msgid ""
+"You can force the usual eager fetching of properties using <literal>fetch "
+"all properties</literal> in HQL."
+msgstr ""
+"有时你需要在 HQL 中通过<literal>抓取所有属性</literal>,强行抓取所有内容。 "
 
 #. Tag: title
 #, no-c-format
@@ -437,13 +881,38 @@
 
 #. Tag: para
 #, 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>)的缓存。你甚至可以为之插入一个集群的缓存。注意,缓存永远不知道其他应用程序对持久化仓库(数据库)可能进行的修改 (即使可以将缓存数据设定为定期失效)。 "
+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
 #, 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 起就不再这样了。 "
+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
 #, no-c-format
@@ -481,7 +950,7 @@
 msgstr "Hashtable (not intended for production use)"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
 
@@ -501,7 +970,7 @@
 msgstr "EHCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
 
@@ -516,7 +985,7 @@
 msgstr "OSCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
 
@@ -526,7 +995,7 @@
 msgstr "SwarmCache"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
 
@@ -546,7 +1015,7 @@
 msgstr "JBoss Cache 1.x"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
 
@@ -571,7 +1040,7 @@
 msgstr "JBoss Cache 2"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 msgstr "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
 
@@ -587,33 +1056,64 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;cache&gt;</literal> element of a class or collection mapping has the following form:"
-msgstr "类或者集合映射的“<literal>&lt;cache&gt;</literal> 元素”可以有下列形式:"
+msgid ""
+"The <literal>&lt;cache&gt;</literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"类或者集合映射的“<literal>&lt;cache&gt;</literal> 元素”可以有下列形式:"
 
 #. Tag: para
 #, 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>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
 #, 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) "
+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
 #, 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> 的实体的属性可能无法被缓存 "
+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
 #, no-c-format
-msgid "Alternatively, you can specify <literal>&lt;class-cache&gt;</literal> and <literal>&lt;collection-cache&gt;</literal> elements in <literal>hibernate.cfg.xml</literal>."
-msgstr "另外(首选?),你可以在<literal>hibernate.cfg.xml</literal> 中指定 <literal>&lt;class-cache&gt;</literal> 和 <literal>&lt;collection-cache&gt;</literal> 元素。"
+msgid ""
+"Alternatively, you can specify <literal>&lt;class-cache&gt;</literal> and "
+"<literal>&lt;collection-cache&gt;</literal> elements in <literal>hibernate."
+"cfg.xml</literal>."
+msgstr ""
+"另外(首选?),你可以在<literal>hibernate.cfg.xml</literal> 中指定 "
+"<literal>&lt;class-cache&gt;</literal> 和 <literal>&lt;collection-cache&gt;</"
+"literal> 元素。"
 
 #. Tag: para
 #, 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
 #, no-c-format
@@ -622,8 +1122,15 @@
 
 #. Tag: para
 #, 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> 缓存。这是最简单,也是实用性最好的方法。甚至在集群中,它也能完美地运作。 "
+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
 #, no-c-format
@@ -632,8 +1139,28 @@
 
 #. Tag: para
 #, 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 内置的缓存策略并不支持锁定功能。 "
+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
 #, no-c-format
@@ -642,8 +1169,22 @@
 
 #. Tag: para
 #, 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> 调用前,整个事务已经结束。 "
+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
 #, no-c-format
@@ -652,8 +1193,15 @@
 
 #. Tag: para
 #, 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> 属性。 "
+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
 #, no-c-format
@@ -662,18 +1210,26 @@
 
 #. Tag: para
 #, no-c-format
-msgid "None of the cache providers support all of the cache concurrency strategies."
-msgstr "没有一种缓存提供商能够支持上列的所有缓存并发策略。下表中列出了各种提供器、及其各自适用的并发策略。 "
+msgid ""
+"None of the cache providers support all of the cache concurrency strategies."
+msgstr ""
+"没有一种缓存提供商能够支持上列的所有缓存并发策略。下表中列出了各种提供器、及"
+"其各自适用的并发策略。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The following table shows which providers are compatible with which concurrency strategies."
-msgstr "没有一种缓存提供商能够支持上列的所有缓存并发策略。下表中列出了各种提供器、及其各自适用的并发策略。 "
+msgid ""
+"The following table shows which providers are compatible with which "
+"concurrency strategies."
+msgstr ""
+"没有一种缓存提供商能够支持上列的所有缓存并发策略。下表中列出了各种提供器、及"
+"其各自适用的并发策略。 "
 
 #. Tag: title
 #, no-c-format
 msgid "Cache Concurrency Strategy Support"
-msgstr "各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support)"
+msgstr ""
+"各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support)"
 
 #. Tag: entry
 #, no-c-format
@@ -702,63 +1258,125 @@
 
 #. Tag: para
 #, 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> 的内部缓存中。 "
+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
 #, 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> 方法,从一级缓存中去掉这些对象及其集合。 "
+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
 #, 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
 #, no-c-format
-msgid "To evict all objects from the session cache, call <literal>Session.clear()</literal>"
-msgstr "如若要把所有的对象从 session 缓存中彻底清除,则需要调用 <literal>Session.clear()</literal>。 "
+msgid ""
+"To evict all objects from the session cache, call <literal>Session.clear()</"
+"literal>"
+msgstr ""
+"如若要把所有的对象从 session 缓存中彻底清除,则需要调用 <literal>Session."
+"clear()</literal>。 "
 
 #. Tag: para
 #, 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: para
 #, no-c-format
-msgid "The <literal>CacheMode</literal> controls how a particular session interacts with the second-level cache:"
-msgstr "<literal>CacheMode</literal> 参数用于控制具体的 Session 如何与二级缓存进行交互。 "
+msgid ""
+"The <literal>CacheMode</literal> controls how a particular session interacts "
+"with the second-level cache:"
+msgstr ""
+"<literal>CacheMode</literal> 参数用于控制具体的 Session 如何与二级缓存进行交"
+"互。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>CacheMode.NORMAL</literal>: will read items from and write items to the second-level cache"
+msgid ""
+"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
+"the second-level cache"
 msgstr "<literal>CacheMode.NORMAL</literal>:从二级缓存中读、写数据。"
 
 #. Tag: para
 #, 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>:从二级缓存中读取数据,仅在数据更新时对二级缓存写数据。"
+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
 #, 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>:仅向二级缓存写数据,但不从二级缓存中读数据。"
+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
 #, 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> 的设置,强制二级缓存从数据库中读取数据,刷新缓存内容。"
+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
 #, 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: para
 #, 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 更人工可读的方式维护缓存内容。 "
+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
 #, no-c-format
@@ -767,28 +1385,70 @@
 
 #. Tag: para
 #, 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 "查询的结果集也可以被缓存。只有当经常使用同样的参数进行查询时,这才会有些用处。要使用查询缓存,首先你必须打开它: "
+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
 #, 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>)。请注意:在查询缓存中,它并不缓存结果集中所包含的实体的确切状态;它只缓存这些实体的标识符属性的值、以及各值类型的结果。所以查询缓存通常会和二级缓存一起使用。 "
+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
 #, 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>方法。这个调用会让查询在执行过程中时先从缓存中查找结果,并将自己的结果集放到缓存中去。 "
+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
 #, 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> 方法,为每个查询指定其命名的缓存区域。 "
+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
 #, 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
 #, no-c-format
@@ -797,8 +1457,13 @@
 
 #. Tag: para
 #, 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
 #, no-c-format
@@ -827,8 +1492,17 @@
 
 #. Tag: para
 #, 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
 #, no-c-format
@@ -847,53 +1521,131 @@
 
 #. Tag: para
 #, no-c-format
-msgid "All indexed collections (maps, lists, and arrays) have a primary key consisting of the <literal>&lt;key&gt;</literal> and <literal>&lt;index&gt;</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>&lt;key&gt;</literal> 和 <literal>&lt;index&gt;</literal> 组成的主键。这种情况下集合类的更新是非常高效的 — 主键已经被有效的索引,因此当 Hibernate 试图更新或删除一行时,可以迅速找到该行数据。 "
+msgid ""
+"All indexed collections (maps, lists, and arrays) have a primary key "
+"consisting of the <literal>&lt;key&gt;</literal> and <literal>&lt;index&gt;</"
+"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>&lt;key&gt;</"
+"literal> 和 <literal>&lt;index&gt;</literal> 组成的主键。这种情况下集合类的更"
+"新是非常高效的 — 主键已经被有效的索引,因此当 Hibernate 试图更新或删除一行"
+"时,可以迅速找到该行数据。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Sets have a primary key consisting of <literal>&lt;key&gt;</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>&lt;set&gt;</literal>, you must declare all columns as <literal>not-null=\"true\"</literal>."
-msgstr "集合(sets)的主键由 <literal>&lt;key&gt;</literal> 和其他元素字段构成。对于有些元素类型来说,这很低效,特别是组合元素或者大文本、大二进制字段;数据库可能无法有效的对复杂的主键进行索引。另一方面,对于一对多、多对多关联,特别是合成的标识符来说,集合也可以达到同样的高效性能。( 附注:如果你希望 <literal>SchemaExport</literal> 为你的 <literal>&lt;set&gt;</literal> 创建主键,你必须把所有的字段都声明为 <literal>not-null=\"true\"</literal>。) "
+msgid ""
+"Sets have a primary key consisting of <literal>&lt;key&gt;</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>&lt;set&gt;</literal>, you must declare all columns as <literal>not-"
+"null=\"true\"</literal>."
+msgstr ""
+"集合(sets)的主键由 <literal>&lt;key&gt;</literal> 和其他元素字段构成。对于"
+"有些元素类型来说,这很低效,特别是组合元素或者大文本、大二进制字段;数据库可"
+"能无法有效的对复杂的主键进行索引。另一方面,对于一对多、多对多关联,特别是合"
+"成的标识符来说,集合也可以达到同样的高效性能。( 附注:如果你希望 "
+"<literal>SchemaExport</literal> 为你的 <literal>&lt;set&gt;</literal> 创建主"
+"键,你必须把所有的字段都声明为 <literal>not-null=\"true\"</literal>。) "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>&lt;idbag&gt;</literal> mappings define a surrogate key, so they are efficient to update. In fact, they are the best case."
-msgstr "<literal>&lt;idbag&gt;</literal> 映射定义了代理键,因此它总是可以很高效的被更新。事实上,<literal>&lt;idbag&gt;</literal> 拥有着最好的性能表现。 "
+msgid ""
+"<literal>&lt;idbag&gt;</literal> mappings define a surrogate key, so they "
+"are efficient to update. In fact, they are the best case."
+msgstr ""
+"<literal>&lt;idbag&gt;</literal> 映射定义了代理键,因此它总是可以很高效的被更"
+"新。事实上,<literal>&lt;idbag&gt;</literal> 拥有着最好的性能表现。 "
 
 #. Tag: para
 #, 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 是非常低效的。 "
+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
 #, 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 在集合的各数据行中是如何进行“定位”的。) "
+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
 #, no-c-format
-msgid "Lists, maps, idbags and sets are the most efficient collections to update"
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
 msgstr "Lists,maps 和 sets 用于更新效率最高"
 
 #. Tag: para
 #, 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 都可以在增加、删除、修改元素中拥有最好的性能。 "
+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
 #, 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> 操作时“改变”才有效。再次强调:这段讨论对“一对多关联”并不适用。 "
+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
 #, 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”的语义在关系模型中是最自然的。 "
+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
 #, 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> 的一对多的关联。对于这些关联,更新操作将会在多对一的这一端进行处理。因此对于此类情况,无需考虑其集合的更新性能。 "
+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
 #, no-c-format
@@ -902,8 +1654,22 @@
 
 #. Tag: para
 #, 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 不同)。因此对于下面的相同代码来说,速度会快得多。 "
+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
 #, no-c-format
@@ -912,18 +1678,36 @@
 
 #. Tag: para
 #, 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 就搞定了。 "
+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
 #, 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)。这当然是令人满意的。 "
+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
 #, 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
 #, no-c-format
@@ -932,23 +1716,40 @@
 
 #. Tag: para
 #, no-c-format
-msgid "remove the whole collection in one SQL <literal>DELETE</literal> and insert all five current elements one by one"
+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
 #, 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 不这么聪明也是好事,否则可能会引发意外的“数据库触发器”之类的问题。)"
+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
 #, 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 "幸运的是,你可以强制使用第二种策略。你需要取消原来的整个集合类(解除其引用),然后再返回一个新的实例化的集合类,只包含需要的元素。有些时候这是非常有用的。 "
+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
 #, no-c-format
-msgid "One-shot-delete does not apply to collections mapped <literal>inverse=\"true\"</literal>."
-msgstr "显然,一次性删除并不适用于被映射为 <literal>inverse=\"true\"</literal> 的集合。 "
+msgid ""
+"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
+"\"</literal>."
+msgstr ""
+"显然,一次性删除并不适用于被映射为 <literal>inverse=\"true\"</literal> 的集"
+"合。 "
 
 #. Tag: title
 #, no-c-format
@@ -957,8 +1758,14 @@
 
 #. Tag: para
 #, 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
 #, no-c-format
@@ -967,33 +1774,64 @@
 
 #. Tag: para
 #, 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
 #, 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。下面的代码即是其演示代码: "
+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: para
 #, no-c-format
-msgid "You can activate and deactivate the monitoring for a <literal>SessionFactory</literal>:"
-msgstr "你可以通过以下方法打开或关闭 <literal>SessionFactory</literal> 的监测功能: "
+msgid ""
+"You can activate and deactivate the monitoring for a "
+"<literal>SessionFactory</literal>:"
+msgstr ""
+"你可以通过以下方法打开或关闭 <literal>SessionFactory</literal> 的监测功能: "
 
 #. Tag: para
 #, 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 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
 #, 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 ""
+"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
 #, 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 级别)其总结。 "
+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
 #, no-c-format
@@ -1002,38 +1840,85 @@
 
 #. Tag: para
 #, 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 进行访问,主要分为三类:"
+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
 #, 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
 #, no-c-format
-msgid "Metrics related to the entities, collections, queries, and caches as a whole (aka global metrics)."
+msgid ""
+"Metrics related to the entities, collections, queries, and caches as a whole "
+"(aka global metrics)."
 msgstr "实体、集合、查询、缓存等内容的统一数据记录。"
 
 #. Tag: para
 #, 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
 #, 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 秒。 "
+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
 #, 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 文档以抓取更多信息。下面的代码则是个简单的例子: "
+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
 #, 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 ""
+"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 ""
 #~ "<![CDATA[s = sessions.openSession();\n"
@@ -1061,6 +1946,7 @@
 #~ "\n"
 #~ "Integer accessLevel = (Integer) permissions.get(\"accounts\");  // "
 #~ "Error!]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<set name=\"permissions\" \n"
 #~ "            fetch=\"join\">\n"
@@ -1073,10 +1959,12 @@
 #~ "    <key column=\"userId\"/>\n"
 #~ "    <one-to-many class=\"Permission\"/>\n"
 #~ "</set]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
 #~ msgstr ""
 #~ "<![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"
@@ -1087,6 +1975,7 @@
 #~ "                .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
 #~ "                .add( Restrictions.idEq(userId) )\n"
 #~ "                .uniqueResult();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
 #~ "    ......\n"
@@ -1101,6 +1990,7 @@
 #~ "        .....\n"
 #~ "    </subclass>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);  // instantiate a "
 #~ "proxy (does not hit the db)\n"
@@ -1117,6 +2007,7 @@
 #~ "    DomesticCat dc = (DomesticCat) cat;       // Error!\n"
 #~ "    ....\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);            // "
 #~ "instantiate a Cat proxy\n"
@@ -1131,12 +2022,14 @@
 #~ "        (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"
@@ -1151,6 +2044,7 @@
 #~ "        .....\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."
@@ -1161,20 +2055,24 @@
 #~ "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"
@@ -1187,6 +2085,7 @@
 #~ "        ...\n"
 #~ "    </set>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Document\">\n"
 #~ "       <id name=\"id\">\n"
@@ -1209,6 +2108,7 @@
 #~ "    <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."
@@ -1239,8 +2139,10 @@
 #~ "        </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"
@@ -1253,6 +2155,7 @@
 #~ "    region=\"RegionName\"\n"
 #~ "    include=\"all|non-lazy\"\n"
 #~ "/>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
 #~ "    <cache usage=\"read-only\"/>\n"
@@ -1263,6 +2166,7 @@
 #~ "    <cache usage=\"read-only\"/>\n"
 #~ "    ....\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"eg.Cat\" .... >\n"
 #~ "    <cache usage=\"read-write\"/>\n"
@@ -1281,6 +2185,7 @@
 #~ "        ....\n"
 #~ "    </set>\n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\")."
 #~ "scroll(); //a huge result set\n"
@@ -1297,6 +2202,7 @@
 #~ "    doSomethingWithACat(cat);\n"
 #~ "    sess.evict(cat);\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular "
 #~ "Cat\n"
@@ -1313,6 +2219,7 @@
 #~ "particular collection of kittens\n"
 #~ "sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten "
 #~ "collections]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
 #~ "        .getSecondLevelCacheStatistics(regionName)\n"
@@ -1321,14 +2228,17 @@
 #~ "<![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"
@@ -1345,6 +2255,7 @@
 #~ "    .setCacheable(true)\n"
 #~ "    .setCacheRegion(\"frontpages\")\n"
 #~ "    .list();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
 #~ "Child c = new Child();\n"
@@ -1357,6 +2268,7 @@
 #~ "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"
@@ -1381,6 +2293,7 @@
 #~ "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"
@@ -1401,6 +2314,7 @@
 #~ "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"
@@ -1437,4 +2351,3 @@
 #~ "        + entityStats.getUpdateCount()\n"
 #~ "        + entityStats.getDeleteCount();\n"
 #~ "log.info(Cat.class.getName() + \" changed \" + changes + \"times\"  );]]>"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/persistent_classes.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: persistent_classes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -127,7 +127,7 @@
 msgstr "实际上,一些功能只对那些声明了标识符属性的类起作用: "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Transitive reattachment for detached objects (cascade update or cascade "
 "merge) - see <xref linkend=\"objectstate-transitive\" />"
@@ -136,12 +136,12 @@
 "\"objectstate-transitive\"/>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.saveOrUpdate()</literal>"
 msgstr "<literal>Session.saveOrUpdate()</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>Session.merge()</literal>"
 msgstr "<literal>Session.merge()</literal>"
 
@@ -333,7 +333,7 @@
 "世界里标识我们的实例(是一个<emphasis>自然的</emphasis>候选码)。"
 
 #. Tag: para
-#, no-c-format
+#, 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 "
@@ -354,7 +354,7 @@
 msgstr "注意"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "<emphasis>The following features are currently considered experimental and "
 "may change in the near future.</emphasis>"
@@ -376,7 +376,7 @@
 "用写持久化类,只写映射文件就行了。 "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "By default, Hibernate works in normal POJO mode. You can set a default "
 "entity representation mode for a particular <literal>SessionFactory</"
@@ -460,7 +460,7 @@
 "<literal>close()</literal>,同样的,把事务和连接的处理交给原来的工作单元。 "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "More information about the XML representation capabilities can be found in "
 "<xref linkend=\"xml\" />."

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/portability.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -26,8 +26,21 @@
 
 #. Tag: para
 #, no-c-format
-msgid "One of the selling points of Hibernate (and really Object/Relational Mapping as a whole) is the notion of database portability. This could mean an internal IT user migrating from one database vendor to another, or it could mean a framework or deployable application consuming Hibernate to simultaneously target multiple database products by their users. Regardless of the exact scenario, the basic idea is that you want Hibernate to help you run against any number of databases without changes to your code, and ideally without any changes to the mapping metadata."
-msgstr "Hibernate(实际上是整个 Object/Relational Mapping)的一个卖点是数据库的移植性。这意味着内部的 IT 用户可以改变数据库供应商,或者可部署的应用程序/框架使用 Hibernate 来同时使用多个数据库产品。不考虑具体的应用情景,这里的基本概念是 Hibernate 可帮助你运行多种数据库而无需修改你的代码,理想情况下甚至不用修改映射元数据。"
+msgid ""
+"One of the selling points of Hibernate (and really Object/Relational Mapping "
+"as a whole) is the notion of database portability. This could mean an "
+"internal IT user migrating from one database vendor to another, or it could "
+"mean a framework or deployable application consuming Hibernate to "
+"simultaneously target multiple database products by their users. Regardless "
+"of the exact scenario, the basic idea is that you want Hibernate to help you "
+"run against any number of databases without changes to your code, and "
+"ideally without any changes to the mapping metadata."
+msgstr ""
+"Hibernate(实际上是整个 Object/Relational Mapping)的一个卖点是数据库的移植"
+"性。这意味着内部的 IT 用户可以改变数据库供应商,或者可部署的应用程序/框架使"
+"用 Hibernate 来同时使用多个数据库产品。不考虑具体的应用情景,这里的基本概念"
+"是 Hibernate 可帮助你运行多种数据库而无需修改你的代码,理想情况下甚至不用修改"
+"映射元数据。"
 
 #. Tag: title
 #, no-c-format
@@ -36,8 +49,21 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The first line of portability for Hibernate is the dialect, which is a specialization of the <classname>org.hibernate.dialect.Dialect</classname> contract. A dialect encapsulates all the differences in how Hibernate must communicate with a particular database to accomplish some task like getting a sequence value or structuring a SELECT query. Hibernate bundles a wide range of dialects for many of the most popular databases. If you find that your particular database is not among them, it is not terribly difficult to write your own."
-msgstr "Hibernate 的移植性的首要问题是方言(dialect),也就是 <classname>org.hibernate.dialect.Dialect</classname> 合约的具体实例。方言封装了 Hibernate 和特定数据库通讯以完成某些任务如获取序列值或构建 SELECT 查询等的所有差异。Hibernate 捆绑了用于许多最常用的数据库的方言。如果你发现自己使用的数据库不在其中,编写自定义的方言也不是很困难的事情。"
+msgid ""
+"The first line of portability for Hibernate is the dialect, which is a "
+"specialization of the <classname>org.hibernate.dialect.Dialect</classname> "
+"contract. A dialect encapsulates all the differences in how Hibernate must "
+"communicate with a particular database to accomplish some task like getting "
+"a sequence value or structuring a SELECT query. Hibernate bundles a wide "
+"range of dialects for many of the most popular databases. If you find that "
+"your particular database is not among them, it is not terribly difficult to "
+"write your own."
+msgstr ""
+"Hibernate 的移植性的首要问题是方言(dialect),也就是 <classname>org."
+"hibernate.dialect.Dialect</classname> 合约的具体实例。方言封装了 Hibernate 和"
+"特定数据库通讯以完成某些任务如获取序列值或构建 SELECT 查询等的所有差异。"
+"Hibernate 捆绑了用于许多最常用的数据库的方言。如果你发现自己使用的数据库不在"
+"其中,编写自定义的方言也不是很困难的事情。"
 
 #. Tag: title
 #, no-c-format
@@ -46,23 +72,82 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Originally, Hibernate would always require that users specify which dialect to use. In the case of users looking to simultaneously target multiple databases with their build that was problematic. Generally this required their users to configure the Hibernate dialect or defining their own method of setting that value."
-msgstr "最开始,Hibernate 总是要求用户指定所使用的方言(dialect)。在用户希望同时使用多个数据库时就会出现问题。通常这要求用户配置 Hibernate 方言或者定义自己设置这个值的方法。"
+msgid ""
+"Originally, Hibernate would always require that users specify which dialect "
+"to use. In the case of users looking to simultaneously target multiple "
+"databases with their build that was problematic. Generally this required "
+"their users to configure the Hibernate dialect or defining their own method "
+"of setting that value."
+msgstr ""
+"最开始,Hibernate 总是要求用户指定所使用的方言(dialect)。在用户希望同时使用"
+"多个数据库时就会出现问题。通常这要求用户配置 Hibernate 方言或者定义自己设置这"
+"个值的方法。"
 
 #. Tag: para
 #, no-c-format
-msgid "Starting with version 3.2, Hibernate introduced the notion of automatically detecting the dialect to use based on the <interfacename>java.sql.DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql.Connection</interfacename> to that database. This was much better, expect that this resolution was limited to databases Hibernate know about ahead of time and was in no way configurable or overrideable."
-msgstr "从版本 3.2 开始,Hibernate 引入了方言的自动检测,它基于从该数据库的 <interfacename>java.sql.Connection</interfacename> 上获得的 <interfacename>java.sql.DatabaseMetaData</interfacename>。这是一个更好的方案,但它局限于 Hibernate 已知的数据库且无法进行配置和覆盖。"
+msgid ""
+"Starting with version 3.2, Hibernate introduced the notion of automatically "
+"detecting the dialect to use based on the <interfacename>java.sql."
+"DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql."
+"Connection</interfacename> to that database. This was much better, expect "
+"that this resolution was limited to databases Hibernate know about ahead of "
+"time and was in no way configurable or overrideable."
+msgstr ""
+"从版本 3.2 开始,Hibernate 引入了方言的自动检测,它基于从该数据库的 "
+"<interfacename>java.sql.Connection</interfacename> 上获得的 "
+"<interfacename>java.sql.DatabaseMetaData</interfacename>。这是一个更好的方"
+"案,但它局限于 Hibernate 已知的数据库且无法进行配置和覆盖。"
 
 #. Tag: para
-#, 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>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 被认为是“非瞬时的”(也就是不可恢复的)连接问题且指示立即终止解析。所有其他的异常都导致警告发出并使用下一个解析者。\""
+#, fuzzy, no-c-format
+msgid ""
+"Starting with version 3.3, Hibernate has a fare more powerful way to "
+"automatically determine which dialect to should be used by relying on a "
+"series of delegates which implement the <interfacename>org.hibernate.dialect."
+"resolver.DialectResolver</interfacename> which defines only a single method:"
+"<programlisting>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
 #, no-c-format
-msgid "The cool part about these resolvers is that users can also register their own custom resolvers which will be processed ahead of the built-in Hibernate ones. This might be useful in a number of different situations: it allows easy integration for auto-detection of dialects beyond those shipped with HIbernate itself; it allows you to specify to use a custom dialect when a particular database is recognized; etc. To register one or more resolvers, simply specify them (seperated by commas, tabs or spaces) using the 'hibernate.dialect_resolvers' configuration setting (see the <constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate.cfg.Environment</classname>)."
-msgstr "这些解析者最棒的功能是用户也可以注册自定义的解析者,它们将在内置的解析者之前被调用。在许多情况下这可能很有用:它可以轻易地集成内置方言之外的方言的自动检测;它让你可以使用自定义的方言等。要注册一个或多个解析者,只要用 'hibernate.dialect_resolvers' 配置设置指定它们(由逗号、制表符或空格隔开)就可以了(请参考 <classname>org.hibernate.cfg.Environment</classname> 上的 <constant>DIALECT_RESOLVERS</constant>)。"
+msgid ""
+"The cool part about these resolvers is that users can also register their "
+"own custom resolvers which will be processed ahead of the built-in Hibernate "
+"ones. This might be useful in a number of different situations: it allows "
+"easy integration for auto-detection of dialects beyond those shipped with "
+"HIbernate itself; it allows you to specify to use a custom dialect when a "
+"particular database is recognized; etc. To register one or more resolvers, "
+"simply specify them (seperated by commas, tabs or spaces) using the "
+"'hibernate.dialect_resolvers' configuration setting (see the "
+"<constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate."
+"cfg.Environment</classname>)."
+msgstr ""
+"这些解析者最棒的功能是用户也可以注册自定义的解析者,它们将在内置的解析者之前"
+"被调用。在许多情况下这可能很有用:它可以轻易地集成内置方言之外的方言的自动检"
+"测;它让你可以使用自定义的方言等。要注册一个或多个解析者,只要用 'hibernate."
+"dialect_resolvers' 配置设置指定它们(由逗号、制表符或空格隔开)就可以了(请参"
+"考 <classname>org.hibernate.cfg.Environment</classname> 上的 "
+"<constant>DIALECT_RESOLVERS</constant>)。"
 
 #. Tag: title
 #, no-c-format
@@ -71,38 +156,84 @@
 
 #. Tag: para
 #, no-c-format
-msgid "When considering portability between databases, another important decision is selecting the identifier generation stratagy you want to use. Originally Hibernate provided the <emphasis>native</emphasis> generator for this purpose, which was intended to select between a <emphasis>sequence</emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> strategy depending on the capability of the underlying database. However, an insidious implication of this approach comes about when targtetting some databases which support <emphasis>identity</emphasis> generation and some which do not. <emphasis>identity</emphasis> generation relies on the SQL definition of an IDENTITY (or auto-increment) column to manage the identifier value; it is what is known as a post-insert generation strategy becauase the insert must actually happen before we can know the identifier value. Because Hibernate relies on this identifier value to uniquely reference entities within a persisten!
 ce context it must then issue the insert immediately when the users requests the entitiy be associated with the session (like via save() e.g.) regardless of current transactional semantics. 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  语句而不管当前的事务性语义。底层的问题是应用程序的语义在这些情况下自è!
 º«ä¹Ÿä¼šå‘生改变。"
+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. 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
 #, no-c-format
-msgid "Hibernate has been improved so that the insert is delayed in cases where that is feasible."
+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> 标识符生成器,它以很不同的方式实现移植性。"
+msgid ""
+"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
+"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
+"targetting portability in a much different way."
+msgstr ""
+"从 3.2.3 版本开始,Hibernate 带有一套 <ulink url=\"http://in.relation."
+"to/2082.lace\">enhanced</ulink> 标识符生成器,它以很不同的方式实现移植性。"
 
 #. Tag: para
 #, no-c-format
-msgid "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+msgid ""
+"There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
 msgstr "特别是两个捆绑的 <emphasis>enhanced</emphasis> 生成器:"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
-msgstr "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+msgstr ""
+"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, 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)的数据库上的序列行为。"
+msgid ""
+"The idea behind these generators is to port the actual semantics of the "
+"identifer value generation to the different databases. For example, the "
+"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> "
+"mimics the behavior of a sequence on databases which do not support "
+"sequences by using a table."
+msgstr ""
+"这些生成器背后的概念是把标识符值生成的实际情景移植到不同的数据库里。例如,"
+"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> 通过"
+"使用表来模拟不支持序列(sequences)的数据库上的序列行为。"
 
 #. Tag: title
 #, no-c-format
@@ -111,23 +242,46 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This is a new area in Hibernate and as such it is not as mature as the overall Hibernate experience."
+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
 #, 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 "用户可以以多种方式引用 SQL 函数。然而,不是所有的数据库都支持相同的函数集。Hibernate 提供了一种映射<emphasis>逻辑</emphasis>函数名到代理的方法,这个代理知道如何解析特定的函数,甚至可能使用完全不同的物理函数调用。"
+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
 #, no-c-format
-msgid "Technically this function registration is handled through the <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> class which is intended to allow users to provide custom function definitions without having to provide a custom dialect. This specific behavior is not fully completed as of yet."
-msgstr "从技术上来讲,这个函数注册是通过 <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> 类进行处理的,它的目的是允许用户提供自定义的函数定义而无需提供自定义的方言。这种特殊的行为目前还未全部开发完毕。"
+msgid ""
+"Technically this function registration is handled through the <classname>org."
+"hibernate.dialect.function.SQLFunctionRegistry</classname> class which is "
+"intended to allow users to provide custom function definitions without "
+"having to provide a custom dialect. This specific behavior is not fully "
+"completed as of yet."
+msgstr ""
+"从技术上来讲,这个函数注册是通过 <classname>org.hibernate.dialect.function."
+"SQLFunctionRegistry</classname> 类进行处理的,它的目的是允许用户提供自定义的"
+"函数定义而无需提供自定义的方言。这种特殊的行为目前还未全部开发完毕。"
 
 #. Tag: para
 #, no-c-format
-msgid "It is sort of implemented such that users can programatically register functions with the <classname>org.hibernate.cfg.Configuration</classname> and those functions will be recognized for HQL."
-msgstr "其中一些功能已经实现,如用户可以在程序里用 <classname>org.hibernate.cfg.Configuration</classname> 注册函数且这些函数可被 HQL 识别。"
+msgid ""
+"It is sort of implemented such that users can programatically register "
+"functions with the <classname>org.hibernate.cfg.Configuration</classname> "
+"and those functions will be recognized for HQL."
+msgstr ""
+"其中一些功能已经实现,如用户可以在程序里用 <classname>org.hibernate.cfg."
+"Configuration</classname> 注册函数且这些函数可被 HQL 识别。"
 
 #. Tag: title
 #, no-c-format
@@ -138,4 +292,3 @@
 #, no-c-format
 msgid "This section scheduled for completion at a later date..."
 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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_criteria.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -31,8 +31,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The interface <literal>org.hibernate.Criteria</literal> represents a query against a particular persistent class. The <literal>Session</literal> is a factory for <literal>Criteria</literal> instances."
-msgstr "<literal>org.hibernate.Criteria</literal >接口表示特定持久类的一个查询。<literal>Session</literal> 是 <literal>Criteria</literal> 实例的工厂。"
+msgid ""
+"The interface <literal>org.hibernate.Criteria</literal> represents a query "
+"against a particular persistent class. The <literal>Session</literal> is a "
+"factory for <literal>Criteria</literal> instances."
+msgstr ""
+"<literal>org.hibernate.Criteria</literal >接口表示特定持久类的一个查询。"
+"<literal>Session</literal> 是 <literal>Criteria</literal> 实例的工厂。"
 
 #. Tag: title
 #, no-c-format
@@ -41,8 +46,15 @@
 
 #. Tag: para
 #, no-c-format
-msgid "An individual query criterion is an instance of the interface <literal>org.hibernate.criterion.Criterion</literal>. The class <literal>org.hibernate.criterion.Restrictions</literal> defines factory methods for obtaining certain built-in <literal>Criterion</literal> types."
-msgstr "一个单独的查询条件是 <literal>org.hibernate.criterion.Criterion</literal> 接口的一个实例。<literal>org.hibernate.criterion.Restrictions</literal> 类定义了获得某些内置 <literal>Criterion</literal> 类型的工厂方法。"
+msgid ""
+"An individual query criterion is an instance of the interface <literal>org."
+"hibernate.criterion.Criterion</literal>. The class <literal>org.hibernate."
+"criterion.Restrictions</literal> defines factory methods for obtaining "
+"certain built-in <literal>Criterion</literal> types."
+msgstr ""
+"一个单独的查询条件是 <literal>org.hibernate.criterion.Criterion</literal> 接"
+"口的一个实例。<literal>org.hibernate.criterion.Restrictions</literal> 类定义"
+"了获得某些内置 <literal>Criterion</literal> 类型的工厂方法。"
 
 #. Tag: para
 #, no-c-format
@@ -51,18 +63,30 @@
 
 #. Tag: para
 #, no-c-format
-msgid "There are a range of built-in criterion types (<literal>Restrictions</literal> subclasses). One of the most useful allows you to specify SQL directly."
-msgstr "Hibernate 提供了相当多的内置 criterion 类型(<literal>Restrictions</literal> 子类),但是尤其有用的是可以允许你直接使用 SQL。 "
+msgid ""
+"There are a range of built-in criterion types (<literal>Restrictions</"
+"literal> subclasses). One of the most useful allows you to specify SQL "
+"directly."
+msgstr ""
+"Hibernate 提供了相当多的内置 criterion 类型(<literal>Restrictions</literal> "
+"子类),但是尤其有用的是可以允许你直接使用 SQL。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>{alias}</literal> placeholder with be replaced by the row alias of the queried entity."
+msgid ""
+"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
+"of the queried entity."
 msgstr "<literal>{alias}</literal> 占位符应当被替换为被查询实体的列别名。"
 
 #. Tag: para
 #, no-c-format
-msgid "You can also obtain a criterion from a <literal>Property</literal> instance. You can create a <literal>Property</literal> by calling <literal>Property.forName()</literal>:"
-msgstr "<literal>Property</literal> 实例是获得一个条件的另外一种途径。你可以通过调用 <literal>Property.forName()</literal> 创建一个 <literal>Property</literal>:"
+msgid ""
+"You can also obtain a criterion from a <literal>Property</literal> instance. "
+"You can create a <literal>Property</literal> by calling <literal>Property."
+"forName()</literal>:"
+msgstr ""
+"<literal>Property</literal> 实例是获得一个条件的另外一种途径。你可以通过调用 "
+"<literal>Property.forName()</literal> 创建一个 <literal>Property</literal>:"
 
 #. Tag: title
 #, no-c-format
@@ -71,8 +95,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can order the results using <literal>org.hibernate.criterion.Order</literal>."
-msgstr "你可以使用 <literal>org.hibernate.criterion.Order</literal> 来为查询结果排序。 "
+msgid ""
+"You can order the results using <literal>org.hibernate.criterion.Order</"
+"literal>."
+msgstr ""
+"你可以使用 <literal>org.hibernate.criterion.Order</literal> 来为查询结果排"
+"序。 "
 
 #. Tag: title
 #, no-c-format
@@ -81,28 +109,50 @@
 
 #. Tag: para
 #, no-c-format
-msgid "By navigating associations using <literal>createCriteria()</literal> you can specify constraints upon related entities:"
-msgstr "通过使用 <literal>createCriteria()</literal> 对关联进行导航,你可以指定相关实体的约束。"
+msgid ""
+"By navigating associations using <literal>createCriteria()</literal> you can "
+"specify constraints upon related entities:"
+msgstr ""
+"通过使用 <literal>createCriteria()</literal> 对关联进行导航,你可以指定相关实"
+"体的约束。"
 
 #. Tag: para
 #, no-c-format
-msgid "The second <literal>createCriteria()</literal> returns a new instance of <literal>Criteria</literal> that refers to the elements of the <literal>kittens</literal> collection."
-msgstr "注意第二个 <literal>createCriteria()</literal> 返回一个新的 <literal>Criteria</literal> 实例,该实例引用 <literal>kittens</literal> 集合中的元素。 "
+msgid ""
+"The second <literal>createCriteria()</literal> returns a new instance of "
+"<literal>Criteria</literal> that refers to the elements of the "
+"<literal>kittens</literal> collection."
+msgstr ""
+"注意第二个 <literal>createCriteria()</literal> 返回一个新的 "
+"<literal>Criteria</literal> 实例,该实例引用 <literal>kittens</literal> 集合"
+"中的元素。 "
 
 #. Tag: para
 #, no-c-format
-msgid "There is also an alternate form that is useful in certain circumstances:"
+msgid ""
+"There is also an alternate form that is useful in certain circumstances:"
 msgstr "接下来,替换形态在某些情况下也是很有用的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "(<literal>createAlias()</literal> does not create a new instance of <literal>Criteria</literal>.)"
-msgstr "(<literal>createAlias()</literal> 并不创建一个新的 <literal>Criteria</literal> 实例。)"
+msgid ""
+"(<literal>createAlias()</literal> does not create a new instance of "
+"<literal>Criteria</literal>.)"
+msgstr ""
+"(<literal>createAlias()</literal> 并不创建一个新的 <literal>Criteria</"
+"literal> 实例。)"
 
 #. Tag: para
 #, no-c-format
-msgid "The kittens collections held by the <literal>Cat</literal> instances returned by the previous two queries are <emphasis>not</emphasis> pre-filtered by the criteria. If you want to retrieve just the kittens that match the criteria, you must use a <literal>ResultTransformer</literal>."
-msgstr "<literal>Cat</literal> 实例所保存的之前两次查询所返回的 kittens 集合是 <emphasis>没有</emphasis>被条件预过滤的。如果你希望只获得符合条件的 kittens,你必须使用 <literal>ResultTransformer</literal>。 "
+msgid ""
+"The kittens collections held by the <literal>Cat</literal> instances "
+"returned by the previous two queries are <emphasis>not</emphasis> pre-"
+"filtered by the criteria. If you want to retrieve just the kittens that "
+"match the criteria, you must use a <literal>ResultTransformer</literal>."
+msgstr ""
+"<literal>Cat</literal> 实例所保存的之前两次查询所返回的 kittens 集合是 "
+"<emphasis>没有</emphasis>被条件预过滤的。如果你希望只获得符合条件的 kittens,"
+"你必须使用 <literal>ResultTransformer</literal>。 "
 
 #. Tag: title
 #, no-c-format
@@ -111,13 +161,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can specify association fetching semantics at runtime using <literal>setFetchMode()</literal>."
-msgstr "你可以使用 <literal>setFetchMode()</literal> 在运行时定义动态关联抓取的语义。 "
+msgid ""
+"You can specify association fetching semantics at runtime using "
+"<literal>setFetchMode()</literal>."
+msgstr ""
+"你可以使用 <literal>setFetchMode()</literal> 在运行时定义动态关联抓取的语"
+"义。 "
 
 #. Tag: para
-#, 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\" /> 可以获得更多信息。"
+#, fuzzy, no-c-format
+msgid ""
+"This query will fetch both <literal>mate</literal> and <literal>kittens</"
+"literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
+"more information."
+msgstr ""
+"这个查询可以通过外连接抓取 <literal>mate</literal> 和 <literal>kittens</"
+"literal>。查看 <xref linkend=\"performance-fetching\" /> 可以获得更多信息。"
 
 #. Tag: title
 #, no-c-format
@@ -126,12 +185,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The class <literal>org.hibernate.criterion.Example</literal> allows you to construct a query criterion from a given instance."
-msgstr "<literal>org.hibernate.criterion.Example</literal> 类允许你通过一个给定实例构建一个条件查询。"
+msgid ""
+"The class <literal>org.hibernate.criterion.Example</literal> allows you to "
+"construct a query criterion from a given instance."
+msgstr ""
+"<literal>org.hibernate.criterion.Example</literal> 类允许你通过一个给定实例构"
+"建一个条件查询。"
 
 #. Tag: para
 #, no-c-format
-msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded."
+msgid ""
+"Version properties, identifiers and associations are ignored. By default, "
+"null valued properties are excluded."
 msgstr "版本属性、标识符和关联被忽略。默认情况下值为 null 的属性将被排除。"
 
 #. Tag: para
@@ -151,27 +216,53 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The class <literal>org.hibernate.criterion.Projections</literal> is a factory for <literal>Projection</literal> instances. You can apply a projection to a query by calling <literal>setProjection()</literal>."
-msgstr "<literal>org.hibernate.criterion.Projections</literal> 是 <literal>Projection</literal> 的实例工厂。我们通过调用 <literal>setProjection()</literal> 应用投影到一个查询。 "
+msgid ""
+"The class <literal>org.hibernate.criterion.Projections</literal> is a "
+"factory for <literal>Projection</literal> instances. You can apply a "
+"projection to a query by calling <literal>setProjection()</literal>."
+msgstr ""
+"<literal>org.hibernate.criterion.Projections</literal> 是 "
+"<literal>Projection</literal> 的实例工厂。我们通过调用 <literal>setProjection"
+"()</literal> 应用投影到一个查询。 "
 
 #. Tag: para
 #, no-c-format
-msgid "There is no explicit \"group by\" necessary in a criteria query. Certain projection types are defined to be <emphasis>grouping projections</emphasis>, which also appear in the SQL <literal>group by</literal> clause."
-msgstr "在一个条件查询中没有必要显式的使用 \"group by\" 。某些投影类型就是被定义为<emphasis>分组投影</emphasis>,他们也出现在 SQL 的 <literal>group by</literal> 子句中。"
+msgid ""
+"There is no explicit \"group by\" necessary in a criteria query. Certain "
+"projection types are defined to be <emphasis>grouping projections</"
+"emphasis>, which also appear in the SQL <literal>group by</literal> clause."
+msgstr ""
+"在一个条件查询中没有必要显式的使用 \"group by\" 。某些投影类型就是被定义为"
+"<emphasis>分组投影</emphasis>,他们也出现在 SQL 的 <literal>group by</"
+"literal> 子句中。"
 
 #. Tag: para
 #, no-c-format
-msgid "An alias can be assigned to a projection so that the projected value can be referred to in restrictions or orderings. Here are two different ways to do this:"
-msgstr "你可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。下面是两种不同的实现方式: "
+msgid ""
+"An alias can be assigned to a projection so that the projected value can be "
+"referred to in restrictions or orderings. Here are two different ways to do "
+"this:"
+msgstr ""
+"你可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。下面"
+"是两种不同的实现方式: "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>alias()</literal> and <literal>as()</literal> methods simply wrap a projection instance in another, aliased, instance of <literal>Projection</literal>. As a shortcut, you can assign an alias when you add the projection to a projection list:"
-msgstr "<literal>alias()</literal> 和 <literal>as()</literal> 方法简便的将一个投影实例包装到另外一个 别名的 <literal>Projection</literal> 实例中。简而言之,当你添加一个投影到一个投影列表中时你可以为它指定一个别名:"
+msgid ""
+"The <literal>alias()</literal> and <literal>as()</literal> methods simply "
+"wrap a projection instance in another, aliased, instance of "
+"<literal>Projection</literal>. As a shortcut, you can assign an alias when "
+"you add the projection to a projection list:"
+msgstr ""
+"<literal>alias()</literal> 和 <literal>as()</literal> 方法简便的将一个投影实"
+"例包装到另外一个 别名的 <literal>Projection</literal> 实例中。简而言之,当你"
+"添加一个投影到一个投影列表中时你可以为它指定一个别名:"
 
 #. Tag: para
 #, no-c-format
-msgid "You can also use <literal>Property.forName()</literal> to express projections:"
+msgid ""
+"You can also use <literal>Property.forName()</literal> to express "
+"projections:"
 msgstr "你也可以使用 <literal>Property.forName()</literal> 来表示投影:"
 
 #. Tag: title
@@ -181,13 +272,24 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>DetachedCriteria</literal> class allows you to create a query outside the scope of a session and then execute it using an arbitrary <literal>Session</literal>."
-msgstr "<literal>DetachedCriteria</literal> 类使你在一个 session 范围之外创建一个查询,并且可以使用任意的 <literal>Session</literal> 来执行它。 "
+msgid ""
+"The <literal>DetachedCriteria</literal> class allows you to create a query "
+"outside the scope of a session and then execute it using an arbitrary "
+"<literal>Session</literal>."
+msgstr ""
+"<literal>DetachedCriteria</literal> 类使你在一个 session 范围之外创建一个查"
+"询,并且可以使用任意的 <literal>Session</literal> 来执行它。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A <literal>DetachedCriteria</literal> can also be used to express a subquery. Criterion instances involving subqueries can be obtained via <literal>Subqueries</literal> or <literal>Property</literal>."
-msgstr "<literal>DetachedCriteria</literal> 也可以用以表示子查询。条件实例包含子查询可以通过  <literal>Subqueries</literal> 或者 <literal>Property</literal> 获得。 "
+msgid ""
+"A <literal>DetachedCriteria</literal> can also be used to express a "
+"subquery. Criterion instances involving subqueries can be obtained via "
+"<literal>Subqueries</literal> or <literal>Property</literal>."
+msgstr ""
+"<literal>DetachedCriteria</literal> 也可以用以表示子查询。条件实例包含子查询"
+"可以通过  <literal>Subqueries</literal> 或者 <literal>Property</literal> 获"
+"得。 "
 
 #. Tag: para
 #, no-c-format
@@ -201,23 +303,45 @@
 
 #. Tag: para
 #, no-c-format
-msgid "For most queries, including criteria queries, the query cache is not efficient because query cache invalidation occurs too frequently. However, there is a special kind of query where you can optimize the cache invalidation algorithm: lookups by a constant natural key. In some applications, this kind of query occurs frequently. The criteria API provides special provision for this use case."
-msgstr "对大多数查询,包括条件查询而言,因为查询缓存的失效(invalidation)发生得太频繁,查询缓存不是非常高效。然而,有一种特别的查询,可以通过不变的自然键优化缓存的失效算法。在某些应用中,这种类型的查询比较常见。条件查询 API 对这种用例提供了特别规约。 "
+msgid ""
+"For most queries, including criteria queries, the query cache is not "
+"efficient because query cache invalidation occurs too frequently. However, "
+"there is a special kind of query where you can optimize the cache "
+"invalidation algorithm: lookups by a constant natural key. In some "
+"applications, this kind of query occurs frequently. The criteria API "
+"provides special provision for this use case."
+msgstr ""
+"对大多数查询,包括条件查询而言,因为查询缓存的失效(invalidation)发生得太频"
+"繁,查询缓存不是非常高效。然而,有一种特别的查询,可以通过不变的自然键优化缓"
+"存的失效算法。在某些应用中,这种类型的查询比较常见。条件查询 API 对这种用例提"
+"供了特别规约。 "
 
 #. Tag: para
 #, no-c-format
-msgid "First, map the natural key of your entity using <literal>&lt;natural-id&gt;</literal> and enable use of the second-level cache."
-msgstr "首先,你应该对你的 entity 使用 <literal>&lt;natural-id&gt;</literal> 来映射自然键,然后打开第二级缓存。 "
+msgid ""
+"First, map the natural key of your entity using <literal>&lt;natural-id&gt;</"
+"literal> and enable use of the second-level cache."
+msgstr ""
+"首先,你应该对你的 entity 使用 <literal>&lt;natural-id&gt;</literal> 来映射自"
+"然键,然后打开第二级缓存。 "
 
 #. Tag: para
 #, no-c-format
-msgid "This functionality is not intended for use with entities with <emphasis>mutable</emphasis> natural keys."
-msgstr "注意,此功能对具有<emphasis>mutable</emphasis>自然键的 entity 并不适用。 "
+msgid ""
+"This functionality is not intended for use with entities with "
+"<emphasis>mutable</emphasis> natural keys."
+msgstr ""
+"注意,此功能对具有<emphasis>mutable</emphasis>自然键的 entity 并不适用。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Once you have enabled the Hibernate query cache, the <literal>Restrictions.naturalId()</literal> allows you to make use of the more efficient cache algorithm."
-msgstr "现在,我们可以用 <literal>Restrictions.naturalId()</literal> 来使用更加高效的缓存算法。 "
+msgid ""
+"Once you have enabled the Hibernate query cache, the <literal>Restrictions."
+"naturalId()</literal> allows you to make use of the more efficient cache "
+"algorithm."
+msgstr ""
+"现在,我们可以用 <literal>Restrictions.naturalId()</literal> 来使用更加高效的"
+"缓存算法。 "
 
 #, fuzzy
 #~ msgid ""
@@ -725,4 +849,3 @@
 #~ "        .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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_hql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:19\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -177,7 +177,7 @@
 "通过 HQL 的 <literal>with</literal> 关键字,你可以提供额外的 join 条件。"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "A \"fetch\" join allows associations or collections of values to be "
 "initialized along with their parent objects using a single select. This is "
@@ -432,7 +432,7 @@
 msgstr "受支持的聚集函数如下: "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
 
@@ -442,7 +442,7 @@
 msgstr "<literal>count(*)</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
 msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
 
@@ -573,7 +573,7 @@
 "<literal>=</literal> 运算符不仅可以被用来比较属性的值,也可以用来比较实例: "
 
 #. Tag: para
-#, no-c-format
+#, 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-"
@@ -604,7 +604,7 @@
 msgstr "第二个查询也不需要进行表连接。 "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "See <xref linkend=\"queryhql-identifier-property\" /> for more information "
 "regarding referencing identifier properties)"
@@ -625,7 +625,7 @@
 "名字将被转换为该类的鉴别值。 "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "You can also use components or composite user types, or properties of said "
 "component types. See <xref linkend=\"queryhql-components\" /> for more "
@@ -1067,7 +1067,7 @@
 msgstr "注意,HQL 自查询只可以在 select 或者 where 子句中出现。 "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Note that subqueries can also utilize <literal>row value constructor</"
 "literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
@@ -1175,7 +1175,7 @@
 msgstr "批量的 UPDATE 和 DELETE"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "HQL now supports <literal>update</literal>, <literal>delete</literal> and "
 "<literal>insert ... select ...</literal> statements. See <xref linkend="
@@ -1345,6 +1345,10 @@
 #~ msgstr "from eg.Cat"
 
 #, fuzzy
+#~ msgid "<![CDATA[from Cat]]>"
+#~ msgstr "from eg.Cat"
+
+#, fuzzy
 #~ msgid "<![CDATA[from Cat as cat]]>"
 #~ msgstr "from Cat as cat"
 
@@ -1385,6 +1389,10 @@
 #~ msgstr "<literal>left outer join</literal>(左外连接)"
 
 #, fuzzy
+#~ msgid "right outer join"
+#~ msgstr "<literal>left outer join</literal>(左外连接)"
+
+#, fuzzy
 #~ msgid ""
 #~ "<![CDATA[from Cat as cat\n"
 #~ "    join cat.mate as mate\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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/query_sql.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -21,13 +21,26 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can also express queries in the native SQL dialect of your database. This is useful if you want to utilize database-specific features such as query hints or the <literal>CONNECT</literal> keyword in Oracle. It also provides a clean migration path from a direct SQL/JDBC based application to Hibernate."
-msgstr "你也可以使用你的数据库的 Native SQL 语言来查询数据。这对你在要使用数据库的某些特性的时候(比如说在查询提示或者 Oracle 中的 <literal>CONNECT</literal> 关键字),这是非常有用的。这就能够扫清你把原来直接使用 SQL/JDBC 的程序迁移到基于 Hibernate 应用的道路上的障碍。 "
+msgid ""
+"You can also express queries in the native SQL dialect of your database. "
+"This is useful if you want to utilize database-specific features such as "
+"query hints or the <literal>CONNECT</literal> keyword in Oracle. It also "
+"provides a clean migration path from a direct SQL/JDBC based application to "
+"Hibernate."
+msgstr ""
+"你也可以使用你的数据库的 Native SQL 语言来查询数据。这对你在要使用数据库的某"
+"些特性的时候(比如说在查询提示或者 Oracle 中的 <literal>CONNECT</literal> 关"
+"键字),这是非常有用的。这就能够扫清你把原来直接使用 SQL/JDBC 的程序迁移到基"
+"于 Hibernate 应用的道路上的障碍。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate3 allows you to specify handwritten SQL, including stored procedures, for all create, update, delete, and load operations."
-msgstr "Hibernate3 允许你使用手写的 sql 来完成所有的 create、update、delete 和 load 操作(包括存储过程) "
+msgid ""
+"Hibernate3 allows you to specify handwritten SQL, including stored "
+"procedures, for all create, update, delete, and load operations."
+msgstr ""
+"Hibernate3 允许你使用手写的 sql 来完成所有的 create、update、delete 和 load "
+"操作(包括存储过程) "
 
 #. Tag: title
 #, no-c-format
@@ -36,8 +49,15 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Execution of native SQL queries is controlled via the <literal>SQLQuery</literal> interface, which is obtained by calling <literal>Session.createSQLQuery()</literal>. The following sections describe how to use this API for querying."
-msgstr "对原生 SQL 查询执行的控制是通过 <literal>SQLQuery</literal> 接口进行的,通过执行<literal>Session.createSQLQuery()</literal>获取这个接口。下面来描述如何使用这个 API 进行查询。 "
+msgid ""
+"Execution of native SQL queries is controlled via the <literal>SQLQuery</"
+"literal> interface, which is obtained by calling <literal>Session."
+"createSQLQuery()</literal>. The following sections describe how to use this "
+"API for querying."
+msgstr ""
+"对原生 SQL 查询执行的控制是通过 <literal>SQLQuery</literal> 接口进行的,通过"
+"执行<literal>Session.createSQLQuery()</literal>获取这个接口。下面来描述如何使"
+"用这个 API 进行查询。 "
 
 #. Tag: title
 #, no-c-format
@@ -51,13 +71,24 @@
 
 #. Tag: para
 #, no-c-format
-msgid "These will return a List of Object arrays (Object[]) with scalar values for each column in the CATS table. Hibernate will use ResultSetMetadata to deduce the actual order and types of the returned scalar values."
-msgstr "它们都将返回一个 Object 数组(Object[])组成的 List,数组每个元素都是 CATS 表的一个字段值。Hibernate 会使用 ResultSetMetadata 来判定返回的标量值的实际顺序和类型。 "
+msgid ""
+"These will return a List of Object arrays (Object[]) with scalar values for "
+"each column in the CATS table. Hibernate will use ResultSetMetadata to "
+"deduce the actual order and types of the returned scalar values."
+msgstr ""
+"它们都将返回一个 Object 数组(Object[])组成的 List,数组每个元素都是 CATS 表"
+"的一个字段值。Hibernate 会使用 ResultSetMetadata 来判定返回的标量值的实际顺序"
+"和类型。 "
 
 #. Tag: para
 #, no-c-format
-msgid "To avoid the overhead of using <literal>ResultSetMetadata</literal>, or simply to be more explicit in what is returned, one can use <literal>addScalar()</literal>:"
-msgstr "如果要避免过多的使用 <literal>ResultSetMetadata</literal>,或者只是为了更加明确的指名返回值,可以使用 <literal>addScalar()</literal>: "
+msgid ""
+"To avoid the overhead of using <literal>ResultSetMetadata</literal>, or "
+"simply to be more explicit in what is returned, one can use "
+"<literal>addScalar()</literal>:"
+msgstr ""
+"如果要避免过多的使用 <literal>ResultSetMetadata</literal>,或者只是为了更加明"
+"确的指名返回值,可以使用 <literal>addScalar()</literal>: "
 
 #. Tag: para
 #, no-c-format
@@ -76,23 +107,48 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This will return Object arrays, but now it will not use <literal>ResultSetMetadata</literal> but will instead explicitly get the ID, NAME and BIRTHDATE column as respectively a Long, String and a Short from the underlying resultset. This also means that only these three columns will be returned, even though the query is using <literal>*</literal> and could return more than the three listed columns."
-msgstr "它仍然会返回 Object 数组,但是此时不再使用 <literal>ResultSetMetdata</literal>,而是明确的将 ID,NAME 和 BIRTHDATE 按照 Long,String 和 Short 类型从 resultset 中取出。同时,也指明了就算 query 是使用 <literal>*</literal> 来查询的,可能获得超过列出的这三个字段,也仅仅会返回这三个字段。 "
+msgid ""
+"This will return Object arrays, but now it will not use "
+"<literal>ResultSetMetadata</literal> but will instead explicitly get the ID, "
+"NAME and BIRTHDATE column as respectively a Long, String and a Short from "
+"the underlying resultset. This also means that only these three columns will "
+"be returned, even though the query is using <literal>*</literal> and could "
+"return more than the three listed columns."
+msgstr ""
+"它仍然会返回 Object 数组,但是此时不再使用 <literal>ResultSetMetdata</"
+"literal>,而是明确的将 ID,NAME 和 BIRTHDATE 按照 Long,String 和 Short 类型"
+"从 resultset 中取出。同时,也指明了就算 query 是使用 <literal>*</literal> 来"
+"查询的,可能获得超过列出的这三个字段,也仅仅会返回这三个字段。 "
 
 #. Tag: para
 #, no-c-format
-msgid "It is possible to leave out the type information for all or some of the scalars."
+msgid ""
+"It is possible to leave out the type information for all or some of the "
+"scalars."
 msgstr "对全部或者部分的标量值不设置类型信息也是可以的。"
 
 #. Tag: para
 #, no-c-format
-msgid "This is essentially the same query as before, but now <literal>ResultSetMetaData</literal> is used to determine the type of NAME and BIRTHDATE, where as the type of ID is explicitly specified."
-msgstr "基本上这和前面一个查询相同,只是此时使用 <literal>ResultSetMetaData</literal> 来决定 NAME 和 BIRTHDATE 的类型,而 ID 的类型是明确指出的。 "
+msgid ""
+"This is essentially the same query as before, but now "
+"<literal>ResultSetMetaData</literal> is used to determine the type of NAME "
+"and BIRTHDATE, where as the type of ID is explicitly specified."
+msgstr ""
+"基本上这和前面一个查询相同,只是此时使用 <literal>ResultSetMetaData</literal> "
+"来决定 NAME 和 BIRTHDATE 的类型,而 ID 的类型是明确指出的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "How the java.sql.Types returned from ResultSetMetaData is mapped to Hibernate types is controlled by the Dialect. If a specific type is not mapped, or does not result in the expected type, it is possible to customize it via calls to <literal>registerHibernateType</literal> in the Dialect."
-msgstr "关于从 ResultSetMetaData 返回的 java.sql.Types 是如何映射到 Hibernate 类型,是由方言(Dialect)控制的。假若某个指定的类型没有被映射,或者不是你所预期的类型,你可以通过 Dialet 的 <literal>registerHibernateType</literal> 调用自行定义。 "
+msgid ""
+"How the java.sql.Types returned from ResultSetMetaData is mapped to "
+"Hibernate types is controlled by the Dialect. If a specific type is not "
+"mapped, or does not result in the expected type, it is possible to customize "
+"it via calls to <literal>registerHibernateType</literal> in the Dialect."
+msgstr ""
+"关于从 ResultSetMetaData 返回的 java.sql.Types 是如何映射到 Hibernate 类型,"
+"是由方言(Dialect)控制的。假若某个指定的类型没有被映射,或者不是你所预期的类"
+"型,你可以通过 Dialet 的 <literal>registerHibernateType</literal> 调用自行定"
+"义。 "
 
 #. Tag: title
 #, no-c-format
@@ -101,8 +157,14 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The above queries were all about returning scalar values, basically returning the \"raw\" values from the resultset. The following shows how to get entity objects from a native sql query via <literal>addEntity()</literal>."
-msgstr "上面的查询都是返回标量值的,也就是从 resultset 中返回的“裸”数据。下面展示如何通过 <literal>addEntity()</literal> 让原生查询返回实体对象。"
+msgid ""
+"The above queries were all about returning scalar values, basically "
+"returning the \"raw\" values from the resultset. The following shows how to "
+"get entity objects from a native sql query via <literal>addEntity()</"
+"literal>."
+msgstr ""
+"上面的查询都是返回标量值的,也就是从 resultset 中返回的“裸”数据。下面展示如何"
+"通过 <literal>addEntity()</literal> 让原生查询返回实体对象。"
 
 #. Tag: para
 #, no-c-format
@@ -111,13 +173,29 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Assuming that Cat is mapped as a class with the columns ID, NAME and BIRTHDATE the above queries will both return a List where each element is a Cat entity."
-msgstr "假设 Cat 被映射为拥有 ID,NAME 和 BIRTHDATE 三个字段的类,以上的两个查询都返回一个 List,每个元素都是一个 Cat 实体。"
+msgid ""
+"Assuming that Cat is mapped as a class with the columns ID, NAME and "
+"BIRTHDATE the above queries will both return a List where each element is a "
+"Cat entity."
+msgstr ""
+"假设 Cat 被映射为拥有 ID,NAME 和 BIRTHDATE 三个字段的类,以上的两个查询都返"
+"回一个 List,每个元素都是一个 Cat 实体。"
 
 #. Tag: para
 #, no-c-format
-msgid "If the entity is mapped with a <literal>many-to-one</literal> to another entity it is required to also return this when performing the native query, otherwise a database specific \"column not found\" error will occur. The additional columns will automatically be returned when using the * notation, but we prefer to be explicit as in the following example for a <literal>many-to-one</literal> to a <literal>Dog</literal>:"
-msgstr "假若实体在映射时有一个 <literal>many-to-one</literal> 的关联指向另外一个实体,在查询时必须也返回那个实体,否则会导致发生一个 \"column not found\" 的数据库错误。这些附加的字段可以使用 * 标注来自动返回,但我们希望还是明确指明,看下面这个具有指向 <literal>Dog</literal> 的 <literal>many-to-one</literal> 的例子:"
+msgid ""
+"If the entity is mapped with a <literal>many-to-one</literal> to another "
+"entity it is required to also return this when performing the native query, "
+"otherwise a database specific \"column not found\" error will occur. The "
+"additional columns will automatically be returned when using the * notation, "
+"but we prefer to be explicit as in the following example for a <literal>many-"
+"to-one</literal> to a <literal>Dog</literal>:"
+msgstr ""
+"假若实体在映射时有一个 <literal>many-to-one</literal> 的关联指向另外一个实"
+"体,在查询时必须也返回那个实体,否则会导致发生一个 \"column not found\" 的数"
+"据库错误。这些附加的字段可以使用 * 标注来自动返回,但我们希望还是明确指明,看"
+"下面这个具有指向 <literal>Dog</literal> 的 <literal>many-to-one</literal> 的"
+"例子:"
 
 #. Tag: para
 #, no-c-format
@@ -131,18 +209,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid "It is possible to eagerly join in the <literal>Dog</literal> to avoid the possible extra roundtrip for initializing the proxy. This is done via the <literal>addJoin()</literal> method, which allows you to join in an association or collection."
-msgstr "通过提前抓取将 <literal>Dog</literal> 连接获得,而避免初始化 proxy 带来的额外开销也是可能的。这是通过 <literal>addJoin()</literal> 方法进行的,这个方法可以让你将关联或集合连接进来。"
+msgid ""
+"It is possible to eagerly join in the <literal>Dog</literal> to avoid the "
+"possible extra roundtrip for initializing the proxy. This is done via the "
+"<literal>addJoin()</literal> method, which allows you to join in an "
+"association or collection."
+msgstr ""
+"通过提前抓取将 <literal>Dog</literal> 连接获得,而避免初始化 proxy 带来的额外"
+"开销也是可能的。这是通过 <literal>addJoin()</literal> 方法进行的,这个方法可"
+"以让你将关联或集合连接进来。"
 
 #. Tag: para
 #, no-c-format
-msgid "In this example, the returned <literal>Cat</literal>'s will have their <literal>dog</literal> property fully initialized without any extra roundtrip to the database. Notice that you added an alias name (\"cat\") to be able to specify the target property path of the join. It is possible to do the same eager joining for collections, e.g. if the <literal>Cat</literal> had a one-to-many to <literal>Dog</literal> instead."
-msgstr "上面这个例子中,返回的 <literal>Cat</literal> 对象,其 <literal>dog</literal> 属性被完全初始化了,不再需要数据库的额外操作。注意,我们加了一个别名(\"cat\"),以便指明 join 的目标属性路径。通过同样的提前连接也可以作用于集合类,例如,假若 <literal>Cat</literal> 有一个指向 <literal>Dog</literal> 的一对多关联。 "
+msgid ""
+"In this example, the returned <literal>Cat</literal>'s will have their "
+"<literal>dog</literal> property fully initialized without any extra "
+"roundtrip to the database. Notice that you added an alias name (\"cat\") to "
+"be able to specify the target property path of the join. It is possible to "
+"do the same eager joining for collections, e.g. if the <literal>Cat</"
+"literal> had a one-to-many to <literal>Dog</literal> instead."
+msgstr ""
+"上面这个例子中,返回的 <literal>Cat</literal> 对象,其 <literal>dog</"
+"literal> 属性被完全初始化了,不再需要数据库的额外操作。注意,我们加了一个别名"
+"(\"cat\"),以便指明 join 的目标属性路径。通过同样的提前连接也可以作用于集合"
+"类,例如,假若 <literal>Cat</literal> 有一个指向 <literal>Dog</literal> 的一"
+"对多关联。 "
 
 #. Tag: para
 #, no-c-format
-msgid "At this stage you are reaching the limits of what is possible with native queries, without starting to enhance the sql queries to make them usable in Hibernate. Problems can arise when returning multiple entities of the same type or when the default alias/column names are not enough."
-msgstr "到此为止,我们碰到了天花板:若不对 SQL 查询进行增强,这些已经是在 Hibernate 中使用原生 SQL 查询所能做到的最大可能了。下面的问题即将出现:返回多个同样类型的实体怎么办?或者默认的别名/字段不够又怎么办? "
+msgid ""
+"At this stage you are reaching the limits of what is possible with native "
+"queries, without starting to enhance the sql queries to make them usable in "
+"Hibernate. Problems can arise when returning multiple entities of the same "
+"type or when the default alias/column names are not enough."
+msgstr ""
+"到此为止,我们碰到了天花板:若不对 SQL 查询进行增强,这些已经是在 Hibernate "
+"中使用原生 SQL 查询所能做到的最大可能了。下面的问题即将出现:返回多个同样类型"
+"的实体怎么办?或者默认的别名/字段不够又怎么办? "
 
 #. Tag: title
 #, no-c-format
@@ -151,18 +254,36 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Until now, the result set column names are assumed to be the same as the column names specified in the mapping document. This can be problematic for SQL queries that join multiple tables, since the same column names can appear in more than one table."
-msgstr "到目前为止,结果集字段名被假定为和映射文件中指定的的字段名是一致的。假若 SQL 查询连接了多个表,同一个字段名可能在多个表中出现多次,这就会造成问题。 "
+msgid ""
+"Until now, the result set column names are assumed to be the same as the "
+"column names specified in the mapping document. This can be problematic for "
+"SQL queries that join multiple tables, since the same column names can "
+"appear in more than one table."
+msgstr ""
+"到目前为止,结果集字段名被假定为和映射文件中指定的的字段名是一致的。假若 SQL "
+"查询连接了多个表,同一个字段名可能在多个表中出现多次,这就会造成问题。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Column alias injection is needed in the following query (which most likely will fail):"
+msgid ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
 msgstr "下面的查询中需要使用字段别名注射(这个例子本身会失败):"
 
 #. Tag: para
 #, no-c-format
-msgid "The query was intended to return two Cat instances per row: a cat and its mother. The query will, however, fail because there is a conflict of names; the instances are mapped to the same column names. Also, on some databases the returned column aliases will most likely be on the form \"c.ID\", \"c.NAME\", etc. which are not equal to the columns specified in the mappings (\"ID\" and \"NAME\")."
-msgstr "这个查询的本意是希望每行返回两个 Cat 实例,一个是 cat,另一个是它的妈妈。但是因为它们的字段名被映射为相同的,而且在某些数据库中,返回的字段别名是“c.ID”,\"c.NAME\" 这样的形式,而它们和在映射文件中的名字(\"ID\" 和 \"NAME\")不匹配,这就会造成失败。 "
+msgid ""
+"The query was intended to return two Cat instances per row: a cat and its "
+"mother. The query will, however, fail because there is a conflict of names; "
+"the instances are mapped to the same column names. Also, on some databases "
+"the returned column aliases will most likely be on the form \"c.ID\", \"c."
+"NAME\", etc. which are not equal to the columns specified in the mappings "
+"(\"ID\" and \"NAME\")."
+msgstr ""
+"这个查询的本意是希望每行返回两个 Cat 实例,一个是 cat,另一个是它的妈妈。但是"
+"因为它们的字段名被映射为相同的,而且在某些数据库中,返回的字段别名是“c.ID”,"
+"\"c.NAME\" 这样的形式,而它们和在映射文件中的名字(\"ID\" 和 \"NAME\")不匹"
+"配,这就会造成失败。 "
 
 #. Tag: para
 #, no-c-format
@@ -171,7 +292,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "the SQL query string, with placeholders for Hibernate to inject column aliases"
+msgid ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
 msgstr "SQL 查询语句,其中包含占位附来让 Hibernate 注射字段别名"
 
 #. Tag: para
@@ -181,8 +304,20 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The {cat.*} and {mother.*} notation used above is a shorthand for \"all properties\". Alternatively, you can list the columns explicitly, but even in this case Hibernate injects the SQL column aliases for each property. The placeholder for a column alias is just the property name qualified by the table alias. In the following example, you retrieve Cats and their mothers from a different table (cat_log) to the one declared in the mapping metadata. You can even use the property aliases in the where clause."
-msgstr "上面使用的 {cat.*} 和 {mother.*} 标记是作为“所有属性”的简写形式出现的。当然你也可以明确地罗列出字段名,但在这个例子里面我们让 Hibernate 来为每个属性注射 SQL 字段别名。字段别名的占位符是属性名加上表别名的前缀。在下面的例子中,我们从另外一个表(cat_log)中通过映射元数据中的指定获取 Cat 和它的妈妈。注意,要是我们愿意,我们甚至可以在 where 子句中使用属性别名。 "
+msgid ""
+"The {cat.*} and {mother.*} notation used above is a shorthand for \"all "
+"properties\". Alternatively, you can list the columns explicitly, but even "
+"in this case Hibernate injects the SQL column aliases for each property. The "
+"placeholder for a column alias is just the property name qualified by the "
+"table alias. In the following example, you retrieve Cats and their mothers "
+"from a different table (cat_log) to the one declared in the mapping "
+"metadata. You can even use the property aliases in the where clause."
+msgstr ""
+"上面使用的 {cat.*} 和 {mother.*} 标记是作为“所有属性”的简写形式出现的。当然你"
+"也可以明确地罗列出字段名,但在这个例子里面我们让 Hibernate 来为每个属性注射 "
+"SQL 字段别名。字段别名的占位符是属性名加上表别名的前缀。在下面的例子中,我们"
+"从另外一个表(cat_log)中通过映射元数据中的指定获取 Cat 和它的妈妈。注意,要"
+"是我们愿意,我们甚至可以在 where 子句中使用属性别名。 "
 
 #. Tag: title
 #, no-c-format
@@ -191,13 +326,26 @@
 
 #. Tag: para
 #, no-c-format
-msgid "In most cases the above alias injection is needed. For queries relating to more complex mappings, like composite properties, inheritance discriminators, collections etc., you can use specific aliases that allow Hibernate to inject the proper aliases."
-msgstr "大多数情况下,都需要上面的属性注射,但在使用更加复杂的映射,比如复合属性、通过标识符构造继承树,以及集合类等等情况下,也有一些特别的别名,来允许 Hibernate 注入合适的别名。 "
+msgid ""
+"In most cases the above alias injection is needed. For queries relating to "
+"more complex mappings, like composite properties, inheritance "
+"discriminators, collections etc., you can use specific aliases that allow "
+"Hibernate to inject the proper aliases."
+msgstr ""
+"大多数情况下,都需要上面的属性注射,但在使用更加复杂的映射,比如复合属性、通"
+"过标识符构造继承树,以及集合类等等情况下,也有一些特别的别名,来允许 "
+"Hibernate 注入合适的别名。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The following table shows the different ways you can use the alias injection. Please note that the alias names in the result are simply examples; each alias will have a unique and probably different name when used."
-msgstr "下表列出了使用别名注射参数的不同可能性。注意:下面结果中的别名只是示例,实用时每个别名需要唯一并且不同的名字。 "
+msgid ""
+"The following table shows the different ways you can use the alias "
+"injection. Please note that the alias names in the result are simply "
+"examples; each alias will have a unique and probably different name when "
+"used."
+msgstr ""
+"下表列出了使用别名注射参数的不同可能性。注意:下面结果中的别名只是示例,实用"
+"时每个别名需要唯一并且不同的名字。 "
 
 #. Tag: title
 #, no-c-format
@@ -225,14 +373,14 @@
 msgstr "简单属性"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[propertyname]</literal>"
 msgstr "<literal>{[aliasname].[propertyname]</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>A_NAME as {item.name}</literal>"
-msgstr "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -240,14 +388,18 @@
 msgstr "复合属性"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
-msgid "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</literal>"
-msgstr "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</literal>"
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
+"literal>"
+msgstr ""
+"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
+"literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -255,14 +407,14 @@
 msgstr "实体辨别器(Discriminator of an entity)"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].class}</literal>"
-msgstr "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>DISC as {item.class}</literal>"
-msgstr "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -270,9 +422,9 @@
 msgstr "实体的所有属性"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].*}</literal>"
-msgstr "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -285,14 +437,14 @@
 msgstr "集合键(collection key)"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].key}</literal>"
-msgstr "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>ORGID as {coll.key}</literal>"
-msgstr "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -300,14 +452,14 @@
 msgstr "集合 id"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].id}</literal>"
-msgstr "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{item.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>EMPID as {coll.id}</literal>"
-msgstr "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>{coll.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -315,14 +467,14 @@
 msgstr "集合元素"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element}</literal>"
-msgstr "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>XID as {coll.element}</literal>"
-msgstr "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -330,14 +482,14 @@
 msgstr "集合元素的属性 "
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
 msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>NAME as {coll.element.name}</literal>"
-msgstr "<literal>NAME as {coll.element.name}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -345,9 +497,9 @@
 msgstr "集合元素的所有属性"
 
 #. Tag: entry
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>{[aliasname].element.*}</literal>"
-msgstr "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -371,8 +523,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "It is possible to apply a ResultTransformer to native SQL queries, allowing it to return non-managed entities."
-msgstr "可以对原生 sql 查询使用 ResultTransformer。这会返回不受 Hibernate 管理的实体。 "
+msgid ""
+"It is possible to apply a ResultTransformer to native SQL queries, allowing "
+"it to return non-managed entities."
+msgstr ""
+"可以对原生 sql 查询使用 ResultTransformer。这会返回不受 Hibernate 管理的实"
+"体。 "
 
 #. Tag: para
 #, no-c-format
@@ -381,8 +537,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The above query will return a list of <literal>CatDTO</literal> which has been instantiated and injected the values of NAME and BIRTHNAME into its corresponding properties or fields."
-msgstr "上面的查询将会返回 <literal>CatDTO</literal> 的列表,它将被实例化并且将 NAME 和 BIRTHDAY 的值注射入对应的属性或者字段。"
+msgid ""
+"The above query will return a list of <literal>CatDTO</literal> which has "
+"been instantiated and injected the values of NAME and BIRTHNAME into its "
+"corresponding properties or fields."
+msgstr ""
+"上面的查询将会返回 <literal>CatDTO</literal> 的列表,它将被实例化并且将 NAME "
+"和 BIRTHDAY 的值注射入对应的属性或者字段。"
 
 #. Tag: title
 #, no-c-format
@@ -391,8 +552,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Native SQL queries which query for entities that are mapped as part of an inheritance must include all properties for the baseclass and all its subclasses."
-msgstr "原生 SQL 查询假若其查询结果实体是继承树中的一部分,它必须包含基类和所有子类的所有属性。 "
+msgid ""
+"Native SQL queries which query for entities that are mapped as part of an "
+"inheritance must include all properties for the baseclass and all its "
+"subclasses."
+msgstr ""
+"原生 SQL 查询假若其查询结果实体是继承树中的一部分,它必须包含基类和所有子类的"
+"所有属性。 "
 
 #. Tag: title
 #, no-c-format
@@ -411,27 +577,52 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Named SQL queries can be defined in the mapping document and called in exactly the same way as a named HQL query. In this case, you do <emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
-msgstr "可以在映射文档中定义查询的名字,然后就可以象调用一个命名的 HQL 查询一样直接调用命名 SQL 查询.在这种情况下,我们<emphasis>不</emphasis> 需要调用 <literal>addEntity()</literal> 方法。 "
+msgid ""
+"Named SQL queries can be defined in the mapping document and called in "
+"exactly the same way as a named HQL query. In this case, you do "
+"<emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
+msgstr ""
+"可以在映射文档中定义查询的名字,然后就可以象调用一个命名的 HQL 查询一样直接调"
+"用命名 SQL 查询.在这种情况下,我们<emphasis>不</emphasis> 需要调用 "
+"<literal>addEntity()</literal> 方法。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>&lt;return-join&gt;</literal> element is use to join associations and the <literal>&lt;load-collection&gt;</literal> element is used to define queries which initialize collections,"
-msgstr "<literal>&lt;return-join&gt;</literal> 和 <literal>&lt;load-collection&gt;</literal> 元素是用来连接关联以及将查询定义为预先初始化各个集合的。 "
+msgid ""
+"The <literal>&lt;return-join&gt;</literal> element is use to join "
+"associations and the <literal>&lt;load-collection&gt;</literal> element is "
+"used to define queries which initialize collections,"
+msgstr ""
+"<literal>&lt;return-join&gt;</literal> 和 <literal>&lt;load-collection&gt;</"
+"literal> 元素是用来连接关联以及将查询定义为预先初始化各个集合的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A named SQL query may return a scalar value. You must declare the column alias and Hibernate type using the <literal>&lt;return-scalar&gt;</literal> element:"
-msgstr "一个命名查询可能会返回一个标量值。你必须使用 <literal>&lt;return-scalar&gt;</literal> 元素来指定字段的别名和 Hibernate 类型:"
+msgid ""
+"A named SQL query may return a scalar value. You must declare the column "
+"alias and Hibernate type using the <literal>&lt;return-scalar&gt;</literal> "
+"element:"
+msgstr ""
+"一个命名查询可能会返回一个标量值。你必须使用 <literal>&lt;return-scalar&gt;</"
+"literal> 元素来指定字段的别名和 Hibernate 类型:"
 
 #. Tag: para
 #, no-c-format
-msgid "You can externalize the resultset mapping information in a <literal>&lt;resultset&gt;</literal> element which will allow you to either reuse them across several named queries or through the <literal>setResultSetMapping()</literal> API."
-msgstr "你可以把结果集映射的信息放在外部的 <literal>&lt;resultset&gt;</literal> 元素中,这样就可以在多个命名查询间,或者通过 <literal>setResultSetMapping()</literal> API 来访问。 "
+msgid ""
+"You can externalize the resultset mapping information in a <literal>&lt;"
+"resultset&gt;</literal> element which will allow you to either reuse them "
+"across several named queries or through the <literal>setResultSetMapping()</"
+"literal> API."
+msgstr ""
+"你可以把结果集映射的信息放在外部的 <literal>&lt;resultset&gt;</literal> 元素"
+"中,这样就可以在多个命名查询间,或者通过 <literal>setResultSetMapping()</"
+"literal> API 来访问。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can, alternatively, use the resultset mapping information in your hbm files directly in java code."
+msgid ""
+"You can, alternatively, use the resultset mapping information in your hbm "
+"files directly in java code."
 msgstr "另外,你可以在 java 代码中直接使用 hbm 文件中的结果集定义信息。 "
 
 #. Tag: title
@@ -441,23 +632,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can explicitly tell Hibernate what column aliases to use with <literal>&lt;return-property&gt;</literal>, instead of using the <literal>{}</literal>-syntax to let Hibernate inject its own aliases.For example:"
-msgstr "使用 <literal>&lt;return-property&gt;</literal> 你可以明确的告诉 Hibernate 使用哪些字段别名,这取代了使用 <literal>{}</literal>-语法 来让 Hibernate 注入它自己的别名。例如:"
+msgid ""
+"You can explicitly tell Hibernate what column aliases to use with "
+"<literal>&lt;return-property&gt;</literal>, instead of using the <literal>{}"
+"</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr ""
+"使用 <literal>&lt;return-property&gt;</literal> 你可以明确的告诉 Hibernate 使"
+"用哪些字段别名,这取代了使用 <literal>{}</literal>-语法 来让 Hibernate 注入它"
+"自己的别名。例如:"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>&lt;return-property&gt;</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>&lt;return-property&gt;</literal> 也可用于多个字段,它解决了使用 <literal>{}</literal>-语法不能细粒度控制多个字段的限制。 "
+msgid ""
+"<literal>&lt;return-property&gt;</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>&lt;return-property&gt;</literal> 也可用于多个字段,它解决了使用 "
+"<literal>{}</literal>-语法不能细粒度控制多个字段的限制。 "
 
 #. Tag: para
 #, no-c-format
-msgid "In this example <literal>&lt;return-property&gt;</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>&lt;return-property&gt;</literal> 结合 <literal>{}</literal> 的注入语法。允许用户来选择如何引用字段以及属性。 "
+msgid ""
+"In this example <literal>&lt;return-property&gt;</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>&lt;return-property&gt;</literal> 结合 "
+"<literal>{}</literal> 的注入语法。允许用户来选择如何引用字段以及属性。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If your mapping has a discriminator you must use <literal>&lt;return-discriminator&gt;</literal> to specify the discriminator column."
-msgstr "如果你映射一个识别器(discriminator),你必须使用 <literal>&lt;return-discriminator&gt;</literal> 来指定识别器字段。"
+msgid ""
+"If your mapping has a discriminator you must use <literal>&lt;return-"
+"discriminator&gt;</literal> to specify the discriminator column."
+msgstr ""
+"如果你映射一个识别器(discriminator),你必须使用 <literal>&lt;return-"
+"discriminator&gt;</literal> 来指定识别器字段。"
 
 #. Tag: title
 #, no-c-format
@@ -466,8 +677,17 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate3 provides support for queries via stored procedures and functions. Most of the following documentation is equivalent for both. The stored procedure/function must return a resultset as the first out-parameter to be able to work with Hibernate. An example of such a stored function in Oracle 9 and higher is as follows:"
-msgstr "Hibernate 3 引入了对存储过程查询(stored procedure)和函数(function)的支持。以下的说明中,这二者一般都适用。存储过程/函数必须返回一个结果集,作为 Hibernate 能够使用的第一个外部参数。下面是一个 Oracle9 和更高版本的存储过程例子。 "
+msgid ""
+"Hibernate3 provides support for queries via stored procedures and functions. "
+"Most of the following documentation is equivalent for both. The stored "
+"procedure/function must return a resultset as the first out-parameter to be "
+"able to work with Hibernate. An example of such a stored function in Oracle "
+"9 and higher is as follows:"
+msgstr ""
+"Hibernate 3 引入了对存储过程查询(stored procedure)和函数(function)的支"
+"持。以下的说明中,这二者一般都适用。存储过程/函数必须返回一个结果集,作为 "
+"Hibernate 能够使用的第一个外部参数。下面是一个 Oracle9 和更高版本的存储过程例"
+"子。 "
 
 #. Tag: para
 #, no-c-format
@@ -476,8 +696,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Stored procedures currently only return scalars and entities. <literal>&lt;return-join&gt;</literal> and <literal>&lt;load-collection&gt;</literal> are not supported."
-msgstr "注意存储过程当前仅仅返回标量和实体现在。不支持 <literal>&lt;return-join&gt;</literal> 和 <literal>&lt;load-collection&gt;</literal>。 "
+msgid ""
+"Stored procedures currently only return scalars and entities. <literal>&lt;"
+"return-join&gt;</literal> and <literal>&lt;load-collection&gt;</literal> are "
+"not supported."
+msgstr ""
+"注意存储过程当前仅仅返回标量和实体现在。不支持 <literal>&lt;return-join&gt;</"
+"literal> 和 <literal>&lt;load-collection&gt;</literal>。 "
 
 #. Tag: title
 #, no-c-format
@@ -486,18 +711,38 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You cannot use stored procedures with Hibernate unless you follow some procedure/function rules. If they do not follow those rules they are not usable with Hibernate. If you still want to use these procedures you have to execute them via <literal>session.connection()</literal>. The rules are different for each database, since database vendors have different stored procedure semantics/syntax."
-msgstr "为了在 Hibernate 中使用存储过程,你必须遵循一些规则。不遵循这些规则的存储过程将不可用。如果你仍然想使用他们,你必须通过 <literal>session.connection()</literal> 来执行他们。这些规则针对于不同的数据库。因为数据库提供商有各种不同的存储过程语法和语义。 "
+msgid ""
+"You cannot use stored procedures with Hibernate unless you follow some "
+"procedure/function rules. If they do not follow those rules they are not "
+"usable with Hibernate. If you still want to use these procedures you have to "
+"execute them via <literal>session.connection()</literal>. The rules are "
+"different for each database, since database vendors have different stored "
+"procedure semantics/syntax."
+msgstr ""
+"为了在 Hibernate 中使用存储过程,你必须遵循一些规则。不遵循这些规则的存储过程"
+"将不可用。如果你仍然想使用他们,你必须通过 <literal>session.connection()</"
+"literal> 来执行他们。这些规则针对于不同的数据库。因为数据库提供商有各种不同的"
+"存储过程语法和语义。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Stored procedure queries cannot be paged with <literal>setFirstResult()/setMaxResults()</literal>."
-msgstr "对存储过程进行的查询无法使用 <literal>setFirstResult()/setMaxResults()</literal> 进行分页。 "
+msgid ""
+"Stored procedure queries cannot be paged with <literal>setFirstResult()/"
+"setMaxResults()</literal>."
+msgstr ""
+"对存储过程进行的查询无法使用 <literal>setFirstResult()/setMaxResults()</"
+"literal> 进行分页。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The recommended call form is standard SQL92: <literal>{ ? = call functionName(&lt;parameters&gt;) }</literal> or <literal>{ ? = call procedureName(&lt;parameters&gt;}</literal>. Native call syntax is not supported."
-msgstr "建议采用的调用方式是标准 SQL92: <literal>{ ? = call functionName(&lt;parameters&gt;) }</literal> 或者 <literal>{ ? = call procedureName(&lt;parameters&gt;) }</literal>。原生调用语法不被支持。 "
+msgid ""
+"The recommended call form is standard SQL92: <literal>{ ? = call functionName"
+"(&lt;parameters&gt;) }</literal> or <literal>{ ? = call procedureName(&lt;"
+"parameters&gt;}</literal>. Native call syntax is not supported."
+msgstr ""
+"建议采用的调用方式是标准 SQL92: <literal>{ ? = call functionName(&lt;"
+"parameters&gt;) }</literal> 或者 <literal>{ ? = call procedureName(&lt;"
+"parameters&gt;) }</literal>。原生调用语法不被支持。 "
 
 #. Tag: para
 #, no-c-format
@@ -506,8 +751,17 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A function must return a result set. The first parameter of a procedure must be an <literal>OUT</literal> that returns a result set. This is done by using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle you need to define a <literal>REF CURSOR</literal> type. See Oracle literature for further information."
-msgstr "函数必须返回一个结果集。存储过程的第一个参数必须是 <literal>OUT</literal>,它返回一个结果集。这是通过 Oracle 9 或 10 的 <literal>SYS_REFCURSOR</literal> 类型来完成的。在 Oracle 中你需要定义一个 <literal>REF CURSOR</literal> 类型,参见 Oracle 的手册。 "
+msgid ""
+"A function must return a result set. The first parameter of a procedure must "
+"be an <literal>OUT</literal> that returns a result set. This is done by "
+"using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle "
+"you need to define a <literal>REF CURSOR</literal> type. See Oracle "
+"literature for further information."
+msgstr ""
+"函数必须返回一个结果集。存储过程的第一个参数必须是 <literal>OUT</literal>,它"
+"返回一个结果集。这是通过 Oracle 9 或 10 的 <literal>SYS_REFCURSOR</literal> "
+"类型来完成的。在 Oracle 中你需要定义一个 <literal>REF CURSOR</literal> 类型,"
+"参见 Oracle 的手册。 "
 
 #. Tag: para
 #, no-c-format
@@ -516,13 +770,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The procedure must return a result set. Note that since these servers can return multiple result sets and update counts, Hibernate will iterate the results and take the first result that is a result set as its return value. Everything else will be discarded."
-msgstr "存储过程必须返回一个结果集。注意这些 servers 可能返回多个结果集以及更新的数目。Hibernate 将取出第一条结果集作为它的返回值,其他将被丢弃。 "
+msgid ""
+"The procedure must return a result set. Note that since these servers can "
+"return multiple result sets and update counts, Hibernate will iterate the "
+"results and take the first result that is a result set as its return value. "
+"Everything else will be discarded."
+msgstr ""
+"存储过程必须返回一个结果集。注意这些 servers 可能返回多个结果集以及更新的数"
+"目。Hibernate 将取出第一条结果集作为它的返回值,其他将被丢弃。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it will probably be more efficient, but this is not a requirement."
-msgstr "如果你能够在存储过程里设定 <literal>SET NOCOUNT ON</literal>,这可能会效率更高,但这不是必需的。"
+msgid ""
+"If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it "
+"will probably be more efficient, but this is not a requirement."
+msgstr ""
+"如果你能够在存储过程里设定 <literal>SET NOCOUNT ON</literal>,这可能会效率更"
+"高,但这不是必需的。"
 
 #. Tag: title
 #, no-c-format
@@ -531,33 +795,70 @@
 
 #. Tag: para
 #, 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>&lt;sql-insert&gt;</literal>, <literal>&lt;sql-delete&gt;</literal>, and <literal>&lt;sql-update&gt;</literal> override these strings:"
-msgstr "Hibernate3 能够使用定制的 SQL 语句来执行 create,update 和 delete 操作。在 Hibernate 中,持久化的类和集合已经包含了一套配置期产生的语句(insertsql,deletesql,updatesql 等等),这些映射标记 <literal>&lt;sql-insert&gt;</literal>,<literal>&lt;sql-delete&gt;</literal> 和 <literal>&lt;sql-update&gt;</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>&lt;sql-insert&gt;</literal>, "
+"<literal>&lt;sql-delete&gt;</literal>, and <literal>&lt;sql-update&gt;</"
+"literal> override these strings:"
+msgstr ""
+"Hibernate3 能够使用定制的 SQL 语句来执行 create,update 和 delete 操作。在 "
+"Hibernate 中,持久化的类和集合已经包含了一套配置期产生的语句(insertsql,"
+"deletesql,updatesql 等等),这些映射标记 <literal>&lt;sql-insert&gt;</"
+"literal>,<literal>&lt;sql-delete&gt;</literal> 和 <literal>&lt;sql-"
+"update&gt;</literal> 重载了这些语句。"
 
 #. Tag: para
 #, no-c-format
-msgid "The SQL is directly executed in your database, so you can use any dialect you like. This will reduce the portability of your mapping if you use database specific SQL."
-msgstr "这些 SQL 直接在你的数据库里执行,所以你可以自由的使用你喜欢的任意语法。但如果你使用数据库特定的语法,这当然会降低你映射的可移植性。 "
+msgid ""
+"The SQL is directly executed in your database, so you can use any dialect "
+"you like. This will reduce the portability of your mapping if you use "
+"database specific SQL."
+msgstr ""
+"这些 SQL 直接在你的数据库里执行,所以你可以自由的使用你喜欢的任意语法。但如果"
+"你使用数据库特定的语法,这当然会降低你映射的可移植性。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Stored procedures are supported if the <literal>callable</literal> attribute is set:"
+msgid ""
+"Stored procedures are supported if the <literal>callable</literal> attribute "
+"is set:"
 msgstr "如果设定 <literal>callable</literal>,则能够支持存储过程了。"
 
 #. Tag: para
 #, no-c-format
-msgid "The order of the positional parameters is vital, as they must be in the same sequence as Hibernate expects them."
+msgid ""
+"The order of the positional parameters is vital, as they must be in the same "
+"sequence as Hibernate expects them."
 msgstr "参数的位置顺序是非常重要的,他们必须和 Hibernate 所期待的顺序相同。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can view the expected order by enabling debug logging for the <literal>org.hibernate.persister.entity</literal> level. With this level enabled, Hibernate will print out the static SQL that is used to create, update, delete etc. entities. To view the expected sequence, do not include your custom SQL in the mapping files, as this will override the Hibernate generated static SQL."
-msgstr "你能够通过设定日志调试级别为 <literal>org.hiberante.persister.entity</literal> 来查看 Hibernate 所期待的顺序。在这个级别下,Hibernate 将会打印出create,update 和 delete 实体的静态 SQL。(如果想看到预计的顺序。记得不要将定制 SQL 包含在映射文件里,因为他们会重载 Hibernate 生成的静态 SQL。) "
+msgid ""
+"You can view the expected order by enabling debug logging for the "
+"<literal>org.hibernate.persister.entity</literal> level. With this level "
+"enabled, Hibernate will print out the static SQL that is used to create, "
+"update, delete etc. entities. To view the expected sequence, do not include "
+"your custom SQL in the mapping files, as this will override the Hibernate "
+"generated static SQL."
+msgstr ""
+"你能够通过设定日志调试级别为 <literal>org.hiberante.persister.entity</"
+"literal> 来查看 Hibernate 所期待的顺序。在这个级别下,Hibernate 将会打印出"
+"create,update 和 delete 实体的静态 SQL。(如果想看到预计的顺序。记得不要将定"
+"制 SQL 包含在映射文件里,因为他们会重载 Hibernate 生成的静态 SQL。) "
 
 #. Tag: para
 #, no-c-format
-msgid "The stored procedures are in most cases required to return the number of rows inserted, updated and deleted, as Hibernate has some runtime checks for the success of the statement. Hibernate always registers the first statement parameter as a numeric output parameter for the CUD operations:"
-msgstr "在大多数情况下(最好这么做),存储过程需要返回插入/更新/删除的行数,因为 Hibernate 对语句的成功执行有些运行时的检查。Hibernate 常会把进行 CUD 操作的语句的第一个参数注册为一个数值型输出参数。 "
+msgid ""
+"The stored procedures are in most cases required to return the number of "
+"rows inserted, updated and deleted, as Hibernate has some runtime checks for "
+"the success of the statement. Hibernate always registers the first statement "
+"parameter as a numeric output parameter for the CUD operations:"
+msgstr ""
+"在大多数情况下(最好这么做),存储过程需要返回插入/更新/删除的行数,因为 "
+"Hibernate 对语句的成功执行有些运行时的检查。Hibernate 常会把进行 CUD 操作的语"
+"句的第一个参数注册为一个数值型输出参数。 "
 
 #. Tag: title
 #, no-c-format
@@ -571,8 +872,11 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This is just a named query declaration, as discussed earlier. You can reference this named query in a class mapping:"
-msgstr "这只是一个前面讨论过的命名查询声明,你可以在类映射里引用这个命名查询。 "
+msgid ""
+"This is just a named query declaration, as discussed earlier. You can "
+"reference this named query in a class mapping:"
+msgstr ""
+"这只是一个前面讨论过的命名查询声明,你可以在类映射里引用这个命名查询。 "
 
 #. Tag: para
 #, no-c-format
@@ -586,7 +890,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can also define an entity loader that loads a collection by join fetching:"
+msgid ""
+"You can also define an entity loader that loads a collection by join "
+"fetching:"
 msgstr "你甚至还可以定义一个实体装载器,它通过连接抓取装载一个集合: "
 
 #, fuzzy
@@ -719,8 +1025,62 @@
 #~ "List loggedCats = sess.createSQLQuery(sql)\n"
 #~ "        .addEntity(\"cat\", Cat.class)\n"
 #~ "        .addEntity(\"mother\", Cat.class).list()"
+
+#, fuzzy
+#~ msgid "A_NAME as {item.name}"
+#~ msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].class}"
+#~ msgstr "<literal>{[aliasname].class}</literal>"
+
+#, fuzzy
+#~ msgid "DISC as {item.class}"
+#~ msgstr "<literal>DISC as {item.class}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].*}"
+#~ msgstr "<literal>{[aliasname].*}</literal>"
+
 #~ msgid "{item.*}"
 #~ msgstr "{item.*}"
+
+#, fuzzy
+#~ msgid "{[aliasname].key}"
+#~ msgstr "<literal>{[aliasname].key}</literal>"
+
+#, fuzzy
+#~ msgid "ORGID as {coll.key}"
+#~ msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].id}"
+#~ msgstr "<literal>{[aliasname].id}</literal>"
+
+#, fuzzy
+#~ msgid "EMPID as {coll.id}"
+#~ msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element}"
+#~ msgstr "<literal>{[aliasname].element}</literal>"
+
+#, fuzzy
+#~ msgid "XID as {coll.element}"
+#~ msgstr "<literal>XID as {coll.element}</literal>"
+
+#, fuzzy
+#~ msgid "NAME as {coll.element.name}"
+#~ msgstr "<literal>NAME as {coll.element.name}</literal>"
+
+#, fuzzy
+#~ msgid "{[aliasname].element.*}"
+#~ msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#, fuzzy
+#~ msgid "{coll.element.*}"
+#~ msgstr "{coll.*}"
+
 #~ msgid "{coll.*}"
 #~ msgstr "{coll.*}"
 
@@ -1191,4 +1551,3 @@
 #~ "        ON pers.ID = emp.PERSON_ID\n"
 #~ "    WHERE ID=?\n"
 #~ "&lt;/sql-query&gt;"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/session_api.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: session_api\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -22,13 +22,31 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate is a full object/relational mapping solution that not only shields the developer from the details of the underlying database management system, but also offers <emphasis>state management</emphasis> of objects. This is, contrary to the management of SQL <literal>statements</literal> in common JDBC/SQL persistence layers, a natural object-oriented view of persistence in Java applications."
-msgstr "Hibernate 是完整的对象/关系映射解决方案,它提供了对象<emphasis>状态管理(state management)</emphasis>的功能,使开发者不再需要理会底层数据库系统的细节。也就是说,相对于常见的 JDBC/SQL 持久层方案中需要<literal>管理 SQL 语句</literal>,Hibernate 采用了更自然的面向对象的视角来持久化 Java 应用中的数据。 "
+msgid ""
+"Hibernate is a full object/relational mapping solution that not only shields "
+"the developer from the details of the underlying database management system, "
+"but also offers <emphasis>state management</emphasis> of objects. This is, "
+"contrary to the management of SQL <literal>statements</literal> in common "
+"JDBC/SQL persistence layers, a natural object-oriented view of persistence "
+"in Java applications."
+msgstr ""
+"Hibernate 是完整的对象/关系映射解决方案,它提供了对象<emphasis>状态管理"
+"(state management)</emphasis>的功能,使开发者不再需要理会底层数据库系统的细"
+"节。也就是说,相对于常见的 JDBC/SQL 持久层方案中需要<literal>管理 SQL 语句</"
+"literal>,Hibernate 采用了更自然的面向对象的视角来持久化 Java 应用中的数据。 "
 
 #. Tag: para
 #, no-c-format
-msgid "In other words, Hibernate application developers should always think about the <emphasis>state</emphasis> of their objects, and not necessarily about the execution of SQL statements. This part is taken care of by Hibernate and is only relevant for the application developer when tuning the performance of the system."
-msgstr "换句话说,使用 Hibernate 的开发者应该总是关注对象的<emphasis>状态(state)</emphasis>,不必考虑 SQL 语句的执行。这部分细节已经由 Hibernate 掌管妥当,只有开发者在进行系统性能调优的时候才需要进行了解。"
+msgid ""
+"In other words, Hibernate application developers should always think about "
+"the <emphasis>state</emphasis> of their objects, and not necessarily about "
+"the execution of SQL statements. This part is taken care of by Hibernate and "
+"is only relevant for the application developer when tuning the performance "
+"of the system."
+msgstr ""
+"换句话说,使用 Hibernate 的开发者应该总是关注对象的<emphasis>状态(state)</"
+"emphasis>,不必考虑 SQL 语句的执行。这部分细节已经由 Hibernate 掌管妥当,只有"
+"开发者在进行系统性能调优的时候才需要进行了解。"
 
 #. Tag: title
 #, no-c-format
@@ -42,23 +60,76 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>Transient</emphasis> - an object is transient if it has just been instantiated using the <literal>new</literal> operator, and it is not associated with a Hibernate <literal>Session</literal>. It has no persistent representation in the database and no identifier value has been assigned. Transient instances will be destroyed by the garbage collector if the application does not hold a reference anymore. Use the Hibernate <literal>Session</literal> to make an object persistent (and let Hibernate take care of the SQL statements that need to be executed for this transition)."
-msgstr "<emphasis>瞬时(Transient)</emphasis> — 由 <literal>new</literal> 操作符创建,且尚未与Hibernate <literal>Session</literal> 关联的对象被认定为瞬时(Transient)的。瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier)。 如果瞬时(Transient)对象在程序中没有被引用,它会被垃圾回收器(garbage collector)销毁。 使用 Hibernate <literal>Session</literal>可以将其变为持久(Persistent)状态。(Hibernate会自动执行必要的SQL语句) "
+msgid ""
+"<emphasis>Transient</emphasis> - an object is transient if it has just been "
+"instantiated using the <literal>new</literal> operator, and it is not "
+"associated with a Hibernate <literal>Session</literal>. It has no persistent "
+"representation in the database and no identifier value has been assigned. "
+"Transient instances will be destroyed by the garbage collector if the "
+"application does not hold a reference anymore. Use the Hibernate "
+"<literal>Session</literal> to make an object persistent (and let Hibernate "
+"take care of the SQL statements that need to be executed for this "
+"transition)."
+msgstr ""
+"<emphasis>瞬时(Transient)</emphasis> — 由 <literal>new</literal> 操作符创"
+"建,且尚未与Hibernate <literal>Session</literal> 关联的对象被认定为瞬时"
+"(Transient)的。瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持"
+"久化标识(identifier)。 如果瞬时(Transient)对象在程序中没有被引用,它会被"
+"垃圾回收器(garbage collector)销毁。 使用 Hibernate <literal>Session</"
+"literal>可以将其变为持久(Persistent)状态。(Hibernate会自动执行必要的SQL语"
+"句) "
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>Persistent</emphasis> - a persistent instance has a representation in the database and an identifier value. It might just have been saved or loaded, however, it is by definition in the scope of a <literal>Session</literal>. Hibernate will detect any changes made to an object in persistent state and synchronize the state with the database when the unit of work completes. Developers do not execute manual <literal>UPDATE</literal> statements, or <literal>DELETE</literal> statements when an object should be made transient."
-msgstr "<emphasis>持久(Persistent)</emphasis> — 持久(Persistent)的实例在数据库中有对应的记录,并拥有一个持久化标识(identifier)。 持久(Persistent)的实例可能是刚被保存的,或刚被加载的,无论哪一种,按定义,它存在于相关联的<literal>Session</literal>作用范围内。 Hibernate会检测到处于持久(Persistent)状态的对象的任何改动,在当前操作单元(unit of work)执行完毕时将对象数据(state)与数据库同步(synchronize)。 开发者不需要手动执行<literal>UPDATE</literal>。将对象从持久(Persistent)状态变成瞬时(Transient)状态同样也不需要手动执行 <literal>DELETE</literal> 语句。 "
+msgid ""
+"<emphasis>Persistent</emphasis> - a persistent instance has a representation "
+"in the database and an identifier value. It might just have been saved or "
+"loaded, however, it is by definition in the scope of a <literal>Session</"
+"literal>. Hibernate will detect any changes made to an object in persistent "
+"state and synchronize the state with the database when the unit of work "
+"completes. Developers do not execute manual <literal>UPDATE</literal> "
+"statements, or <literal>DELETE</literal> statements when an object should be "
+"made transient."
+msgstr ""
+"<emphasis>持久(Persistent)</emphasis> — 持久(Persistent)的实例在数据库中"
+"有对应的记录,并拥有一个持久化标识(identifier)。 持久(Persistent)的实例可"
+"能是刚被保存的,或刚被加载的,无论哪一种,按定义,它存在于相关联的"
+"<literal>Session</literal>作用范围内。 Hibernate会检测到处于持久"
+"(Persistent)状态的对象的任何改动,在当前操作单元(unit of work)执行完毕时"
+"将对象数据(state)与数据库同步(synchronize)。 开发者不需要手动执行"
+"<literal>UPDATE</literal>。将对象从持久(Persistent)状态变成瞬时"
+"(Transient)状态同样也不需要手动执行 <literal>DELETE</literal> 语句。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>Detached</emphasis> - a detached instance is an object that has been persistent, but its <literal>Session</literal> has been closed. The reference to the object is still valid, of course, and the detached instance might even be modified in this state. A detached instance can be reattached to a new <literal>Session</literal> at a later point in time, making it (and all the modifications) persistent again. This feature enables a programming model for long running units of work that require user think-time. We call them <emphasis>application transactions</emphasis>, i.e., a unit of work from the point of view of the user."
-msgstr "<emphasis>脱管(Detached)</emphasis> — 与持久(Persistent)对象关联的<literal>Session</literal>被关闭后,对象就变为脱管(Detached)的。对脱管(Detached)对象的引用依然有效,对象可继续被修改。脱管(Detached)对象如果重新关联到某个新的 <literal>Session</literal> 上, 会再次转变为持久(Persistent)的(在Detached其间的改动将被持久化到数据库)。 这个功能使得一种编程模型,即中间会给用户思考时间(user think-time)的长时间运行的操作单元(unit of work)的编程模型成为可能。我们称之为<emphasis>应用程序事务</emphasis>,即从用户观点看是一个操作单元(unit of work)。 "
+msgid ""
+"<emphasis>Detached</emphasis> - a detached instance is an object that has "
+"been persistent, but its <literal>Session</literal> has been closed. The "
+"reference to the object is still valid, of course, and the detached instance "
+"might even be modified in this state. A detached instance can be reattached "
+"to a new <literal>Session</literal> at a later point in time, making it (and "
+"all the modifications) persistent again. This feature enables a programming "
+"model for long running units of work that require user think-time. We call "
+"them <emphasis>application transactions</emphasis>, i.e., a unit of work "
+"from the point of view of the user."
+msgstr ""
+"<emphasis>脱管(Detached)</emphasis> — 与持久(Persistent)对象关联的"
+"<literal>Session</literal>被关闭后,对象就变为脱管(Detached)的。对脱管"
+"(Detached)对象的引用依然有效,对象可继续被修改。脱管(Detached)对象如果重"
+"新关联到某个新的 <literal>Session</literal> 上, 会再次转变为持久"
+"(Persistent)的(在Detached其间的改动将被持久化到数据库)。 这个功能使得一种"
+"编程模型,即中间会给用户思考时间(user think-time)的长时间运行的操作单元"
+"(unit of work)的编程模型成为可能。我们称之为<emphasis>应用程序事务</"
+"emphasis>,即从用户观点看是一个操作单元(unit of work)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "We will now discuss the states and state transitions (and the Hibernate methods that trigger a transition) in more detail."
-msgstr "接下来我们来细致地讨论下状态(states)及状态间的转换(state transitions)(以及触发状态转换的 Hibernate 方法)。 "
+msgid ""
+"We will now discuss the states and state transitions (and the Hibernate "
+"methods that trigger a transition) in more detail."
+msgstr ""
+"接下来我们来细致地讨论下状态(states)及状态间的转换(state transitions)(以"
+"及触发状态转换的 Hibernate 方法)。 "
 
 #. Tag: title
 #, no-c-format
@@ -67,38 +138,104 @@
 
 #. Tag: para
 #, 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: para
 #, no-c-format
-msgid "If <literal>Cat</literal> has a generated identifier, the identifier is generated and assigned to the <literal>cat</literal> when <literal>save()</literal> is called. If <literal>Cat</literal> has an <literal>assigned</literal> identifier, or a composite key, the identifier should be assigned to the <literal>cat</literal> instance before calling <literal>save()</literal>. You can also use <literal>persist()</literal> instead of <literal>save()</literal>, with the semantics defined in the EJB3 early draft."
-msgstr "如果 <literal>Cat</literal> 的持久化标识(identifier)是 <literal>generated</literal> 类型的, 那么该标识(identifier)会自动在 <literal>save()</literal> 被调用时产生并分配给 <literal>cat</literal>。如果 <literal>Cat</literal> 的持久化标识(identifier)是<literal>assigned</literal>类型的,或是一个复合主键(composite key),那么该标识(identifier)应当在调用 <literal>save()</literal> 之前手动赋予给 <literal>cat</literal>。你也可以按照 EJB3 early draft 中定义的语义,使用 <literal>persist()</literal> 替代<literal>save()</literal>。 "
+msgid ""
+"If <literal>Cat</literal> has a generated identifier, the identifier is "
+"generated and assigned to the <literal>cat</literal> when <literal>save()</"
+"literal> is called. If <literal>Cat</literal> has an <literal>assigned</"
+"literal> identifier, or a composite key, the identifier should be assigned "
+"to the <literal>cat</literal> instance before calling <literal>save()</"
+"literal>. You can also use <literal>persist()</literal> instead of "
+"<literal>save()</literal>, with the semantics defined in the EJB3 early "
+"draft."
+msgstr ""
+"如果 <literal>Cat</literal> 的持久化标识(identifier)是 <literal>generated</"
+"literal> 类型的, 那么该标识(identifier)会自动在 <literal>save()</literal> "
+"被调用时产生并分配给 <literal>cat</literal>。如果 <literal>Cat</literal> 的持"
+"久化标识(identifier)是<literal>assigned</literal>类型的,或是一个复合主键"
+"(composite key),那么该标识(identifier)应当在调用 <literal>save()</"
+"literal> 之前手动赋予给 <literal>cat</literal>。你也可以按照 EJB3 early "
+"draft 中定义的语义,使用 <literal>persist()</literal> 替代<literal>save()</"
+"literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>persist()</literal> makes a transient instance persistent. However, it does not guarantee that the identifier value will be assigned to the persistent instance immediately, the assignment might happen at flush time. <literal>persist()</literal> also guarantees that it will not execute an <literal>INSERT</literal> statement if it is called outside of transaction boundaries. This is useful in long-running conversations with an extended Session/persistence context."
-msgstr "<literal>persist()</literal> 使一个临时实例持久化。然而,它不保证立即把标识符值分配给持久性实例,这会发生在冲刷(flush)的时候。<literal>persist()</literal> 也保证它在事务边界外调用时不会执行 <literal>INSERT</literal> 语句。这对于长期运行的带有扩展会话/持久化上下文的会话是很有用的。"
+msgid ""
+"<literal>persist()</literal> makes a transient instance persistent. However, "
+"it does not guarantee that the identifier value will be assigned to the "
+"persistent instance immediately, the assignment might happen at flush time. "
+"<literal>persist()</literal> also guarantees that it will not execute an "
+"<literal>INSERT</literal> statement if it is called outside of transaction "
+"boundaries. This is useful in long-running conversations with an extended "
+"Session/persistence context."
+msgstr ""
+"<literal>persist()</literal> 使一个临时实例持久化。然而,它不保证立即把标识符"
+"值分配给持久性实例,这会发生在冲刷(flush)的时候。<literal>persist()</"
+"literal> 也保证它在事务边界外调用时不会执行 <literal>INSERT</literal> 语句。"
+"这对于长期运行的带有扩展会话/持久化上下文的会话是很有用的。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>save()</literal> does guarantee to return an identifier. If an INSERT has to be executed to get the identifier ( e.g. \"identity\" generator, not \"sequence\"), this INSERT happens immediately, no matter if you are inside or outside of a transaction. This is problematic in a long-running conversation with an extended Session/persistence context."
-msgstr "<literal>save()</literal> 保证返回一个标识符。如果需要运行 INSERT 来获取标识符(如 \"identity\" 而非 \"sequence\" 生成器),这个 INSERT 将立即执行,不管你是否在事务内部还是外部。这对于长期运行的带有扩展会话/持久化上下文的会话来说会出现问题。"
+msgid ""
+"<literal>save()</literal> does guarantee to return an identifier. If an "
+"INSERT has to be executed to get the identifier ( e.g. \"identity\" "
+"generator, not \"sequence\"), this INSERT happens immediately, no matter if "
+"you are inside or outside of a transaction. This is problematic in a long-"
+"running conversation with an extended Session/persistence context."
+msgstr ""
+"<literal>save()</literal> 保证返回一个标识符。如果需要运行 INSERT 来获取标识"
+"符(如 \"identity\" 而非 \"sequence\" 生成器),这个 INSERT 将立即执行,不管"
+"你是否在事务内部还是外部。这对于长期运行的带有扩展会话/持久化上下文的会话来说"
+"会出现问题。"
 
 #. Tag: para
 #, no-c-format
-msgid "Alternatively, you can assign the identifier using an overloaded version of <literal>save()</literal>."
+msgid ""
+"Alternatively, you can assign the identifier using an overloaded version of "
+"<literal>save()</literal>."
 msgstr "此外,你可以用一个重载版本的 <literal>save()</literal> 方法。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If the object you make persistent has associated objects (e.g. the <literal>kittens</literal> collection in the previous example), these objects can be made persistent in any order you like unless you have a <literal>NOT NULL</literal> constraint upon a foreign key column. There is never a risk of violating foreign key constraints. However, you might violate a <literal>NOT NULL</literal> constraint if you <literal>save()</literal> the objects in the wrong order."
-msgstr "如果你持久化的对象有关联的对象(associated objects)(例如上例中的 <literal>kittens</literal> 集合) 那么对这些对象(译注:pk 和 kittens)进行持久化的顺序是任意的(也就是说可以先对 kittens 进行持久化也可以先对 pk 进行持久化), 除非你在外键列上有 <literal>NOT NULL</literal> 约束。 Hibernate 不会违反外键约束,但是如果你用错误的顺序持久化对象(译注:在 pk 持久化之前持久化kitten),那么可能会违反 <literal>NOT NULL</literal> 约束。 "
+msgid ""
+"If the object you make persistent has associated objects (e.g. the "
+"<literal>kittens</literal> collection in the previous example), these "
+"objects can be made persistent in any order you like unless you have a "
+"<literal>NOT NULL</literal> constraint upon a foreign key column. There is "
+"never a risk of violating foreign key constraints. However, you might "
+"violate a <literal>NOT NULL</literal> constraint if you <literal>save()</"
+"literal> the objects in the wrong order."
+msgstr ""
+"如果你持久化的对象有关联的对象(associated objects)(例如上例中的 "
+"<literal>kittens</literal> 集合) 那么对这些对象(译注:pk 和 kittens)进行持"
+"久化的顺序是任意的(也就是说可以先对 kittens 进行持久化也可以先对 pk 进行持久"
+"化), 除非你在外键列上有 <literal>NOT NULL</literal> 约束。 Hibernate 不会违"
+"反外键约束,但是如果你用错误的顺序持久化对象(译注:在 pk 持久化之前持久化"
+"kitten),那么可能会违反 <literal>NOT NULL</literal> 约束。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Usually you do not bother with this detail, as you will normally use Hibernate's <emphasis>transitive persistence</emphasis> feature to save the associated objects automatically. Then, even <literal>NOT NULL</literal> constraint violations do not occur - Hibernate will take care of everything. Transitive persistence is discussed later in this chapter."
-msgstr "通常你不会为这些细节烦心,因为你很可能会使用 Hibernate 的<emphasis>传播性持久化(transitive persistence)</emphasis>功能自动保存相关联那些对象。这样连违反 <literal>NOT NULL</literal> 约束的情况都不会出现了 — Hibernate 会管好所有的事情。传播性持久化(transitive persistence)将在本章稍后讨论。"
+msgid ""
+"Usually you do not bother with this detail, as you will normally use "
+"Hibernate's <emphasis>transitive persistence</emphasis> feature to save the "
+"associated objects automatically. Then, even <literal>NOT NULL</literal> "
+"constraint violations do not occur - Hibernate will take care of everything. "
+"Transitive persistence is discussed later in this chapter."
+msgstr ""
+"通常你不会为这些细节烦心,因为你很可能会使用 Hibernate 的<emphasis>传播性持久"
+"化(transitive persistence)</emphasis>功能自动保存相关联那些对象。这样连违"
+"反 <literal>NOT NULL</literal> 约束的情况都不会出现了 — Hibernate 会管好所有"
+"的事情。传播性持久化(transitive persistence)将在本章稍后讨论。"
 
 #. Tag: title
 #, no-c-format
@@ -107,43 +244,100 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>load()</literal> methods of <literal>Session</literal> provide a way of retrieving a persistent instance if you know its identifier. <literal>load()</literal> takes a class object and loads the state into a newly instantiated instance of that class in a persistent state."
-msgstr "如果你知道某个实例的持久化标识(identifier),你就可以使用 <literal>Session</literal> 的 <literal>load()</literal> 方法来获取它。<literal>load()</literal> 的另一个参数是指定类的对象。本方法会创建指定类的持久化实例,并从数据库加载其数据(state)。 "
+msgid ""
+"The <literal>load()</literal> methods of <literal>Session</literal> provide "
+"a way of retrieving a persistent instance if you know its identifier. "
+"<literal>load()</literal> takes a class object and loads the state into a "
+"newly instantiated instance of that class in a persistent state."
+msgstr ""
+"如果你知道某个实例的持久化标识(identifier),你就可以使用 <literal>Session</"
+"literal> 的 <literal>load()</literal> 方法来获取它。<literal>load()</"
+"literal> 的另一个参数是指定类的对象。本方法会创建指定类的持久化实例,并从数据"
+"库加载其数据(state)。 "
 
 #. Tag: para
 #, no-c-format
 msgid "Alternatively, you can load state into a given instance:"
-msgstr "此外,你可以把数据(state)加载到指定的对象实例上(覆盖掉该实例原来的数据)。"
+msgstr ""
+"此外,你可以把数据(state)加载到指定的对象实例上(覆盖掉该实例原来的数据)。"
 
 #. Tag: para
 #, no-c-format
-msgid "Be aware that <literal>load()</literal> will throw an unrecoverable exception if there is no matching database row. If the class is mapped with a proxy, <literal>load()</literal> just returns an uninitialized proxy and does not actually hit the database until you invoke a method of the proxy. This is useful if you wish to create an association to an object without actually loading it from the database. It also allows multiple instances to be loaded as a batch if <literal>batch-size</literal> is defined for the class mapping."
-msgstr "请注意如果没有匹配的数据库记录,<literal>load()</literal> 方法可能抛出无法恢复的异常(unrecoverable exception)。如果类的映射使用了代理(proxy),<literal>load()</literal> 方法会返回一个未初始化的代理,直到你调用该代理的某方法时才会去访问数据库。 若你希望在某对象中创建一个指向另一个对象的关联,又不想在从数据库中装载该对象时同时装载相关联的那个对象,那么这种操作方式就用得上的了。如果为相应类映射关系设置了 <literal>batch-size</literal>,那么使用这种操作方式允许多个对象被一批装载(因为返回的是代理,无需从数据库中抓取所有对象的数据)。 "
+msgid ""
+"Be aware that <literal>load()</literal> will throw an unrecoverable "
+"exception if there is no matching database row. If the class is mapped with "
+"a proxy, <literal>load()</literal> just returns an uninitialized proxy and "
+"does not actually hit the database until you invoke a method of the proxy. "
+"This is useful if you wish to create an association to an object without "
+"actually loading it from the database. It also allows multiple instances to "
+"be loaded as a batch if <literal>batch-size</literal> is defined for the "
+"class mapping."
+msgstr ""
+"请注意如果没有匹配的数据库记录,<literal>load()</literal> 方法可能抛出无法恢"
+"复的异常(unrecoverable exception)。如果类的映射使用了代理(proxy),"
+"<literal>load()</literal> 方法会返回一个未初始化的代理,直到你调用该代理的某"
+"方法时才会去访问数据库。 若你希望在某对象中创建一个指向另一个对象的关联,又不"
+"想在从数据库中装载该对象时同时装载相关联的那个对象,那么这种操作方式就用得上"
+"的了。如果为相应类映射关系设置了 <literal>batch-size</literal>,那么使用这种"
+"操作方式允许多个对象被一批装载(因为返回的是代理,无需从数据库中抓取所有对象"
+"的数据)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If you are not certain that a matching row exists, you should use the <literal>get()</literal> method which hits the database immediately and returns null if there is no matching row."
-msgstr "如果你不确定是否有匹配的行存在,应该使用 <literal>get()</literal> 方法,它会立刻访问数据库,如果没有对应的记录,会返回 null。 "
+msgid ""
+"If you are not certain that a matching row exists, you should use the "
+"<literal>get()</literal> method which hits the database immediately and "
+"returns null if there is no matching row."
+msgstr ""
+"如果你不确定是否有匹配的行存在,应该使用 <literal>get()</literal> 方法,它会"
+"立刻访问数据库,如果没有对应的记录,会返回 null。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can even load an object using an SQL <literal>SELECT ... FOR UPDATE</literal>, using a <literal>LockMode</literal>. See the API documentation for more information."
-msgstr "你甚至可以选用某个 <literal>LockMode</literal>,用 SQL 的 <literal>SELECT ... FOR UPDATE</literal> 装载对象。 请查阅 API 文档以获取更多信息。 "
+msgid ""
+"You can even load an object using an SQL <literal>SELECT ... FOR UPDATE</"
+"literal>, using a <literal>LockMode</literal>. See the API documentation for "
+"more information."
+msgstr ""
+"你甚至可以选用某个 <literal>LockMode</literal>,用 SQL 的 "
+"<literal>SELECT ... FOR UPDATE</literal> 装载对象。 请查阅 API 文档以获取更多"
+"信息。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Any associated instances or contained collections will <emphasis>not</emphasis> be selected <literal>FOR UPDATE</literal>, unless you decide to specify <literal>lock</literal> or <literal>all</literal> as a cascade style for the association."
-msgstr "注意,任何关联的对象或者包含的集合都<emphasis>不会</emphasis>被以 <literal>FOR UPDATE</literal> 方式返回, 除非你指定了 <literal>lock</literal> 或者 <literal>all</literal> 作为关联(association)的级联风格(cascade style)。 "
+msgid ""
+"Any associated instances or contained collections will <emphasis>not</"
+"emphasis> be selected <literal>FOR UPDATE</literal>, unless you decide to "
+"specify <literal>lock</literal> or <literal>all</literal> as a cascade style "
+"for the association."
+msgstr ""
+"注意,任何关联的对象或者包含的集合都<emphasis>不会</emphasis>被以 "
+"<literal>FOR UPDATE</literal> 方式返回, 除非你指定了 <literal>lock</"
+"literal> 或者 <literal>all</literal> 作为关联(association)的级联风格"
+"(cascade style)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "It is possible to re-load an object and all its collections at any time, using the <literal>refresh()</literal> method. This is useful when database triggers are used to initialize some of the properties of the object."
-msgstr "任何时候都可以使用 <literal>refresh()</literal> 方法强迫装载对象和它的集合。如果你使用数据库触发器功能来处理对象的某些属性,这个方法就很有用了。"
+msgid ""
+"It is possible to re-load an object and all its collections at any time, "
+"using the <literal>refresh()</literal> method. This is useful when database "
+"triggers are used to initialize some of the properties of the object."
+msgstr ""
+"任何时候都可以使用 <literal>refresh()</literal> 方法强迫装载对象和它的集合。"
+"如果你使用数据库触发器功能来处理对象的某些属性,这个方法就很有用了。"
 
 #. Tag: para
-#, 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\" /> 中解释。 "
+#, 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
 #, no-c-format
@@ -152,8 +346,19 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If you do not know the identifiers of the objects you are looking for, you need a query. Hibernate supports an easy-to-use but powerful object oriented query language (HQL). For programmatic query creation, Hibernate supports a sophisticated Criteria and Example query feature (QBC and QBE). You can also express your query in the native SQL of your database, with optional support from Hibernate for result set conversion into objects."
-msgstr "如果不知道所要寻找的对象的持久化标识,那么你需要使用查询。Hibernate 支持强大且易于使用的面向对象查询语言(HQL)。如果希望通过编程的方式创建查询,Hibernate 提供了完善的按条件(Query By Criteria,QBC)以及按样例(Query By Example,QBE)进行查询的功能。你也可以用原生 SQL(native SQL)描述查询,Hibernate 额外提供了将结果集(result set)转化为对象的支持。 "
+msgid ""
+"If you do not know the identifiers of the objects you are looking for, you "
+"need a query. Hibernate supports an easy-to-use but powerful object oriented "
+"query language (HQL). For programmatic query creation, Hibernate supports a "
+"sophisticated Criteria and Example query feature (QBC and QBE). You can also "
+"express your query in the native SQL of your database, with optional support "
+"from Hibernate for result set conversion into objects."
+msgstr ""
+"如果不知道所要寻找的对象的持久化标识,那么你需要使用查询。Hibernate 支持强大"
+"且易于使用的面向对象查询语言(HQL)。如果希望通过编程的方式创建查询,"
+"Hibernate 提供了完善的按条件(Query By Criteria,QBC)以及按样例(Query By "
+"Example,QBE)进行查询的功能。你也可以用原生 SQL(native SQL)描述查询,"
+"Hibernate 额外提供了将结果集(result set)转化为对象的支持。 "
 
 #. Tag: title
 #, no-c-format
@@ -162,13 +367,36 @@
 
 #. Tag: para
 #, no-c-format
-msgid "HQL and native SQL queries are represented with an instance of <literal>org.hibernate.Query</literal>. This interface offers methods for parameter binding, result set handling, and for the execution of the actual query. You always obtain a <literal>Query</literal> using the current <literal>Session</literal>:"
-msgstr "HQL 和原生 SQL(native SQL)查询要通过为 <literal>org.hibernate.Query</literal> 的实例来表达。 这个接口提供了参数绑定、结果集处理以及运行实际查询的方法。你总是可以通过当前 <literal>Session</literal> 获取一个 <literal>Query</literal> 对象:"
+msgid ""
+"HQL and native SQL queries are represented with an instance of <literal>org."
+"hibernate.Query</literal>. This interface offers methods for parameter "
+"binding, result set handling, and for the execution of the actual query. You "
+"always obtain a <literal>Query</literal> using the current <literal>Session</"
+"literal>:"
+msgstr ""
+"HQL 和原生 SQL(native SQL)查询要通过为 <literal>org.hibernate.Query</"
+"literal> 的实例来表达。 这个接口提供了参数绑定、结果集处理以及运行实际查询的"
+"方法。你总是可以通过当前 <literal>Session</literal> 获取一个 <literal>Query</"
+"literal> 对象:"
 
 #. Tag: para
 #, no-c-format
-msgid "A query is usually executed by invoking <literal>list()</literal>. The result of the query will be loaded completely into a collection in memory. Entity instances retrieved by a query are in a persistent state. The <literal>uniqueResult()</literal> method offers a shortcut if you know your query will only return a single object. Queries that make use of eager fetching of collections usually return duplicates of the root objects, but with their collections initialized. You can filter these duplicates through a <literal>Set</literal>."
-msgstr "一个查询通常在调用 <literal>list()</literal> 时被执行,执行结果会完全装载进内存中的一个集合(collection)。查询返回的对象处于持久(persistent)状态。如果你知道的查询只会返回一个对象,可使用 <literal>list()</literal> 的快捷方式 <literal>uniqueResult()</literal>。注意,使用集合预先抓取的查询往往会返回多次根对象(他们的集合类都被初始化了)。你可以通过一个<literal>集合(Set)</literal>来过滤这些重复对象。"
+msgid ""
+"A query is usually executed by invoking <literal>list()</literal>. The "
+"result of the query will be loaded completely into a collection in memory. "
+"Entity instances retrieved by a query are in a persistent state. The "
+"<literal>uniqueResult()</literal> method offers a shortcut if you know your "
+"query will only return a single object. Queries that make use of eager "
+"fetching of collections usually return duplicates of the root objects, but "
+"with their collections initialized. You can filter these duplicates through "
+"a <literal>Set</literal>."
+msgstr ""
+"一个查询通常在调用 <literal>list()</literal> 时被执行,执行结果会完全装载进内"
+"存中的一个集合(collection)。查询返回的对象处于持久(persistent)状态。如果"
+"你知道的查询只会返回一个对象,可使用 <literal>list()</literal> 的快捷方式 "
+"<literal>uniqueResult()</literal>。注意,使用集合预先抓取的查询往往会返回多次"
+"根对象(他们的集合类都被初始化了)。你可以通过一个<literal>集合(Set)</"
+"literal>来过滤这些重复对象。"
 
 #. Tag: title
 #, no-c-format
@@ -177,8 +405,24 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Occasionally, you might be able to achieve better performance by executing the query using the <literal>iterate()</literal> method. This will usually be the case if you expect that the actual entity instances returned by the query will already be in the session or second-level cache. If they are not already cached, <literal>iterate()</literal> will be slower than <literal>list()</literal> and might require many database hits for a simple query, usually <emphasis>1</emphasis> for the initial select which only returns identifiers, and <emphasis>n</emphasis> additional selects to initialize the actual instances."
-msgstr "某些情况下,你可以使用 <literal>iterate()</literal> 方法得到更好的性能。 这通常是你预期返回的结果在 session,或二级缓存(second-level cache)中已经存在时的情况。如若不然,<literal>iterate()</literal> 会比 <literal>list()</literal> 慢,而且可能简单查询也需要进行多次数据库访问:<literal>iterate()</literal> 会首先使用 <emphasis>1</emphasis> 条语句得到所有对象的持久化标识(identifiers),再根据持久化标识执行 <emphasis>n</emphasis> 条附加的 select 语句实例化实际的对象。 "
+msgid ""
+"Occasionally, you might be able to achieve better performance by executing "
+"the query using the <literal>iterate()</literal> method. This will usually "
+"be the case if you expect that the actual entity instances returned by the "
+"query will already be in the session or second-level cache. If they are not "
+"already cached, <literal>iterate()</literal> will be slower than "
+"<literal>list()</literal> and might require many database hits for a simple "
+"query, usually <emphasis>1</emphasis> for the initial select which only "
+"returns identifiers, and <emphasis>n</emphasis> additional selects to "
+"initialize the actual instances."
+msgstr ""
+"某些情况下,你可以使用 <literal>iterate()</literal> 方法得到更好的性能。 这通"
+"常是你预期返回的结果在 session,或二级缓存(second-level cache)中已经存在时"
+"的情况。如若不然,<literal>iterate()</literal> 会比 <literal>list()</"
+"literal> 慢,而且可能简单查询也需要进行多次数据库访问:<literal>iterate()</"
+"literal> 会首先使用 <emphasis>1</emphasis> 条语句得到所有对象的持久化标识"
+"(identifiers),再根据持久化标识执行 <emphasis>n</emphasis> 条附加的 select "
+"语句实例化实际的对象。 "
 
 #. Tag: title
 #, no-c-format
@@ -187,8 +431,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate queries sometimes return tuples of objects. Each tuple is returned as an array:"
-msgstr "(译注:元组(tuples)指一条结果行包含多个对象) Hibernate 查询有时返回元组(tuples),每个元组(tuples)以数组的形式返回: "
+msgid ""
+"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
+"as an array:"
+msgstr ""
+"(译注:元组(tuples)指一条结果行包含多个对象) Hibernate 查询有时返回元组"
+"(tuples),每个元组(tuples)以数组的形式返回: "
 
 #. Tag: title
 #, no-c-format
@@ -197,8 +445,14 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Queries can specify a property of a class in the <literal>select</literal> clause. They can even call SQL aggregate functions. Properties or aggregates are considered \"scalar\" results and not entities in persistent state."
-msgstr "查询可在 <literal>select</literal> 从句中指定类的属性,甚至可以调用 SQL 统计(aggregate)函数。属性或统计结果被认定为\"标量(Scalar)\"的结果(而不是持久(persistent state)的实体)。 "
+msgid ""
+"Queries can specify a property of a class in the <literal>select</literal> "
+"clause. They can even call SQL aggregate functions. Properties or aggregates "
+"are considered \"scalar\" results and not entities in persistent state."
+msgstr ""
+"查询可在 <literal>select</literal> 从句中指定类的属性,甚至可以调用 SQL 统计"
+"(aggregate)函数。属性或统计结果被认定为\"标量(Scalar)\"的结果(而不是持久"
+"(persistent state)的实体)。 "
 
 #. Tag: title
 #, no-c-format
@@ -207,12 +461,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Methods on <literal>Query</literal> are provided for binding values to named parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters are identifiers of the form <literal>:name</literal> in the query string. The advantages of named parameters are as follows:"
-msgstr "接口 <literal>Query</literal> 提供了对命名参数(named parameters)、JDBC 风格的<literal>问号(?)</literal>参数进行绑定的方法。<emphasis>不同于 JDBC,Hibernate 对参数从 0 开始计数。</emphasis> 命名参数(named parameters)在查询字符串中是形如 <literal>:name</literal> 的标识符。命名参数(named parameters)的优点是: "
+msgid ""
+"Methods on <literal>Query</literal> are provided for binding values to named "
+"parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary "
+"to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters "
+"are identifiers of the form <literal>:name</literal> in the query string. "
+"The advantages of named parameters are as follows:"
+msgstr ""
+"接口 <literal>Query</literal> 提供了对命名参数(named parameters)、JDBC 风格"
+"的<literal>问号(?)</literal>参数进行绑定的方法。<emphasis>不同于 JDBC,"
+"Hibernate 对参数从 0 开始计数。</emphasis> 命名参数(named parameters)在查询"
+"字符串中是形如 <literal>:name</literal> 的标识符。命名参数(named "
+"parameters)的优点是: "
 
 #. Tag: para
 #, no-c-format
-msgid "named parameters are insensitive to the order they occur in the query string"
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
 msgstr "命名参数(named parameters)与其在查询串中出现的顺序无关"
 
 #. Tag: para
@@ -232,13 +497,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If you need to specify bounds upon your result set, that is, the maximum number of rows you want to retrieve and/or the first row you want to retrieve, you can use methods of the <literal>Query</literal> interface:"
-msgstr "如果你需要指定结果集的范围(希望返回的最大行数/或开始的行数),应该使用 <literal>Query</literal> 接口提供的方法: "
+msgid ""
+"If you need to specify bounds upon your result set, that is, the maximum "
+"number of rows you want to retrieve and/or the first row you want to "
+"retrieve, you can use methods of the <literal>Query</literal> interface:"
+msgstr ""
+"如果你需要指定结果集的范围(希望返回的最大行数/或开始的行数),应该使用 "
+"<literal>Query</literal> 接口提供的方法: "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate knows how to translate this limit query into the native SQL of your DBMS."
-msgstr "Hibernate 知道如何将这个有限定条件的查询转换成你的数据库的原生 SQL(native SQL)。"
+msgid ""
+"Hibernate knows how to translate this limit query into the native SQL of "
+"your DBMS."
+msgstr ""
+"Hibernate 知道如何将这个有限定条件的查询转换成你的数据库的原生 SQL(native "
+"SQL)。"
 
 #. Tag: title
 #, no-c-format
@@ -247,13 +521,26 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the <literal>Query</literal> interface can be used to obtain a <literal>ScrollableResults</literal> object that allows flexible navigation of the query results."
-msgstr "如果你的 JDBC 驱动支持可滚动的 <literal>ResuleSet</literal>,<literal>Query</literal> 接口可以使用 <literal>ScrollableResults</literal>,允许你在查询结果中灵活游走。 "
+msgid ""
+"If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the "
+"<literal>Query</literal> interface can be used to obtain a "
+"<literal>ScrollableResults</literal> object that allows flexible navigation "
+"of the query results."
+msgstr ""
+"如果你的 JDBC 驱动支持可滚动的 <literal>ResuleSet</literal>,<literal>Query</"
+"literal> 接口可以使用 <literal>ScrollableResults</literal>,允许你在查询结果"
+"中灵活游走。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Note that an open database connection and cursor is required for this functionality. Use <literal>setMaxResult()</literal>/<literal>setFirstResult()</literal> if you need offline pagination functionality."
-msgstr "请注意,使用此功能需要保持数据库连接(以及游标(cursor))处于一直打开状态。如果你需要断开连接使用分页功能,请使用 <literal>setMaxResult()</literal>/<literal>setFirstResult()</literal>。 "
+msgid ""
+"Note that an open database connection and cursor is required for this "
+"functionality. Use <literal>setMaxResult()</literal>/<literal>setFirstResult"
+"()</literal> if you need offline pagination functionality."
+msgstr ""
+"请注意,使用此功能需要保持数据库连接(以及游标(cursor))处于一直打开状态。"
+"如果你需要断开连接使用分页功能,请使用 <literal>setMaxResult()</literal>/"
+"<literal>setFirstResult()</literal>。 "
 
 #. Tag: title
 #, no-c-format
@@ -262,8 +549,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can also define named queries in the mapping document. Remember to use a <literal>CDATA</literal> section if your query contains characters that could be interpreted as markup."
-msgstr "你可以在映射文件中定义命名查询(named queries)。如果你的查询串中包含可能被解释为 XML 标记(markup)的字符,别忘了用<literal>CDATA</literal>包裹起来。"
+msgid ""
+"You can also define named queries in the mapping document. Remember to use a "
+"<literal>CDATA</literal> section if your query contains characters that "
+"could be interpreted as markup."
+msgstr ""
+"你可以在映射文件中定义命名查询(named queries)。如果你的查询串中包含可能被解"
+"释为 XML 标记(markup)的字符,别忘了用<literal>CDATA</literal>包裹起来。"
 
 #. Tag: para
 #, no-c-format
@@ -272,13 +564,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The actual program code is independent of the query language that is used. You can also define native SQL queries in metadata, or migrate existing queries to Hibernate by placing them in mapping files."
-msgstr "请注意实际的程序代码与所用的查询语言无关,你也可在元数据中定义原生 SQL(native SQL)查询,或将原有的其他的查询语句放在配置文件中,这样就可以让 Hibernate 统一管理,达到迁移的目的。 "
+msgid ""
+"The actual program code is independent of the query language that is used. "
+"You can also define native SQL queries in metadata, or migrate existing "
+"queries to Hibernate by placing them in mapping files."
+msgstr ""
+"请注意实际的程序代码与所用的查询语言无关,你也可在元数据中定义原生 SQL"
+"(native SQL)查询,或将原有的其他的查询语句放在配置文件中,这样就可以让 "
+"Hibernate 统一管理,达到迁移的目的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Also note that a query declaration inside a <literal>&lt;hibernate-mapping&gt;</literal> element requires a global unique name for the query, while a query declaration inside a <literal>&lt;class&gt;</literal> element is made unique automatically by prepending the fully qualified name of the class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
-msgstr "也请注意在 <literal>&lt;hibernate-mapping&gt;</literal> 元素中声明的查询必须有一个全局唯一的名字,而在 <literal>&lt;class&gt;</literal> 元素中声明的查询自动具有全局名,是通过类的全名加以限定的。比如 <literal>eg.Cat.ByNameAndMaximumWeight</literal>。 "
+msgid ""
+"Also note that a query declaration inside a <literal>&lt;hibernate-"
+"mapping&gt;</literal> element requires a global unique name for the query, "
+"while a query declaration inside a <literal>&lt;class&gt;</literal> element "
+"is made unique automatically by prepending the fully qualified name of the "
+"class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr ""
+"也请注意在 <literal>&lt;hibernate-mapping&gt;</literal> 元素中声明的查询必须"
+"有一个全局唯一的名字,而在 <literal>&lt;class&gt;</literal> 元素中声明的查询自"
+"动具有全局名,是通过类的全名加以限定的。比如 <literal>eg.Cat."
+"ByNameAndMaximumWeight</literal>。 "
 
 #. Tag: title
 #, no-c-format
@@ -287,23 +594,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A collection <emphasis>filter</emphasis> is a special type of query that can be applied to a persistent collection or array. The query string can refer to <literal>this</literal>, meaning the current collection element."
-msgstr "集合<emphasis>过滤器(filter)</emphasis>是一种用于一个持久化集合或者数组的特殊的查询。查询字符串中可以使用 <literal>\"this\"</literal> 来引用集合中的当前元素。 "
+msgid ""
+"A collection <emphasis>filter</emphasis> is a special type of query that can "
+"be applied to a persistent collection or array. The query string can refer "
+"to <literal>this</literal>, meaning the current collection element."
+msgstr ""
+"集合<emphasis>过滤器(filter)</emphasis>是一种用于一个持久化集合或者数组的特"
+"殊的查询。查询字符串中可以使用 <literal>\"this\"</literal> 来引用集合中的当前"
+"元素。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The returned collection is considered a bag that is a copy of the given collection. The original collection is not modified. This is contrary to the implication of the name \"filter\", but consistent with expected behavior."
-msgstr "返回的集合可以被认为是一个包(bag,无顺序可重复的集合(collection)),它是所给集合的副本。 原来的集合不会被改动(这与“过滤器(filter)”的隐含的含义不符,不过与我们期待的行为一致)。 "
+msgid ""
+"The returned collection is considered a bag that is a copy of the given "
+"collection. The original collection is not modified. This is contrary to the "
+"implication of the name \"filter\", but consistent with expected behavior."
+msgstr ""
+"返回的集合可以被认为是一个包(bag,无顺序可重复的集合(collection)),它是所"
+"给集合的副本。 原来的集合不会被改动(这与“过滤器(filter)”的隐含的含义不符,"
+"不过与我们期待的行为一致)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Observe that filters do not require a <literal>from</literal> clause, although they can have one if required. Filters are not limited to returning the collection elements themselves."
-msgstr "请注意过滤器(filter)并不需要 <literal>from</literal> 子句(当然需要的话它们也可以加上)。过滤器(filter)不限定于只能返回集合元素本身。 "
+msgid ""
+"Observe that filters do not require a <literal>from</literal> clause, "
+"although they can have one if required. Filters are not limited to returning "
+"the collection elements themselves."
+msgstr ""
+"请注意过滤器(filter)并不需要 <literal>from</literal> 子句(当然需要的话它们"
+"也可以加上)。过滤器(filter)不限定于只能返回集合元素本身。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Even an empty filter query is useful, e.g. to load a subset of elements in a large collection:"
-msgstr "即使无条件的过滤器(filter)也是有意义的。例如,用于加载一个大集合的子集: "
+msgid ""
+"Even an empty filter query is useful, e.g. to load a subset of elements in a "
+"large collection:"
+msgstr ""
+"即使无条件的过滤器(filter)也是有意义的。例如,用于加载一个大集合的子集: "
 
 #. Tag: title
 #, no-c-format
@@ -312,13 +639,25 @@
 
 #. Tag: para
 #, no-c-format
-msgid "HQL is extremely powerful, but some developers prefer to build queries dynamically using an object-oriented API, rather than building query strings. Hibernate provides an intuitive <literal>Criteria</literal> query API for these cases:"
-msgstr "HQL 极为强大,但是有些人希望能够动态的使用一种面向对象 API 创建查询,而非在他们的 Java 代码中嵌入字符串。对于那部分人来说,Hibernate 提供了直观的 <literal>Criteria</literal> 查询 API。 "
+msgid ""
+"HQL is extremely powerful, but some developers prefer to build queries "
+"dynamically using an object-oriented API, rather than building query "
+"strings. Hibernate provides an intuitive <literal>Criteria</literal> query "
+"API for these cases:"
+msgstr ""
+"HQL 极为强大,但是有些人希望能够动态的使用一种面向对象 API 创建查询,而非在他"
+"们的 Java 代码中嵌入字符串。对于那部分人来说,Hibernate 提供了直观的 "
+"<literal>Criteria</literal> 查询 API。 "
 
 #. Tag: para
-#, 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\"/> 中详细讨论。 "
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Criteria</literal> and the associated <literal>Example</"
+"literal> API are discussed in more detail in <xref linkend=\"querycriteria"
+"\" />."
+msgstr ""
+"<literal>Criteria</literal> 以及相关的<literal>样例(Example)</literal>API "
+"将会在 <xref linkend=\"querycriteria\"/> 中详细讨论。 "
 
 #. Tag: title
 #, no-c-format
@@ -327,13 +666,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can express a query in SQL, using <literal>createSQLQuery()</literal> and let Hibernate manage the mapping from result sets to objects. You can at any time call <literal>session.connection()</literal> and use the JDBC <literal>Connection</literal> directly. If you choose to use the Hibernate API, you must enclose SQL aliases in braces:"
-msgstr "你可以使用 <literal>createSQLQuery()</literal> 方法,用 SQL 来描述查询,并由 Hibernate 将结果集转换成对象。请注意,你可以在任何时候调用 <literal>session.connection()</literal> 来获得并使用 JDBC <literal>Connection</literal> 对象。 如果你选择使用 Hibernate 的 API,你必须把 SQL 别名用大括号包围起来: "
+msgid ""
+"You can express a query in SQL, using <literal>createSQLQuery()</literal> "
+"and let Hibernate manage the mapping from result sets to objects. You can at "
+"any time call <literal>session.connection()</literal> and use the JDBC "
+"<literal>Connection</literal> directly. If you choose to use the Hibernate "
+"API, you must enclose SQL aliases in braces:"
+msgstr ""
+"你可以使用 <literal>createSQLQuery()</literal> 方法,用 SQL 来描述查询,并由 "
+"Hibernate 将结果集转换成对象。请注意,你可以在任何时候调用 <literal>session."
+"connection()</literal> 来获得并使用 JDBC <literal>Connection</literal> 对"
+"象。 如果你选择使用 Hibernate 的 API,你必须把 SQL 别名用大括号包围起来: "
 
 #. Tag: para
-#, 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)的信息。 "
+#, 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
 #, no-c-format
@@ -342,18 +696,61 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>Transactional persistent instances</emphasis> (i.e. objects loaded, saved, created or queried by the <literal>Session</literal>) can be manipulated by the application, and any changes to persistent state will be persisted when the <literal>Session</literal> is <emphasis>flushed</emphasis>. This is discussed later in this chapter. There is no need to call a particular method (like <literal>update()</literal>, which has a different purpose) to make your modifications persistent. The most straightforward way to update the state of an object is to <literal>load()</literal> it and then manipulate it directly while the <literal>Session</literal> is open:"
-msgstr "<emphasis>事务中的持久实例</emphasis>(就是通过 <literal>session</literal> 装载、保存、创建或者查询出的对象) 被应用程序操作所造成的任何修改都会在 <literal>Session</literal> 被<emphasis>刷出(flushed)</emphasis>的时候被持久化(本章后面会详细讨论)。这里不需要调用某个特定的方法(比如 <literal>update()</literal>,设计它的目的是不同的)将你的修改持久化。所以最直接的更新一个对象的方法就是在 <literal>Session</literal> 处于打开状态时 <literal>load()</literal> 它,然后直接修改即可: "
+msgid ""
+"<emphasis>Transactional persistent instances</emphasis> (i.e. objects "
+"loaded, saved, created or queried by the <literal>Session</literal>) can be "
+"manipulated by the application, and any changes to persistent state will be "
+"persisted when the <literal>Session</literal> is <emphasis>flushed</"
+"emphasis>. This is discussed later in this chapter. There is no need to call "
+"a particular method (like <literal>update()</literal>, which has a different "
+"purpose) to make your modifications persistent. The most straightforward way "
+"to update the state of an object is to <literal>load()</literal> it and then "
+"manipulate it directly while the <literal>Session</literal> is open:"
+msgstr ""
+"<emphasis>事务中的持久实例</emphasis>(就是通过 <literal>session</literal> 装"
+"载、保存、创建或者查询出的对象) 被应用程序操作所造成的任何修改都会在 "
+"<literal>Session</literal> 被<emphasis>刷出(flushed)</emphasis>的时候被持久"
+"化(本章后面会详细讨论)。这里不需要调用某个特定的方法(比如 <literal>update"
+"()</literal>,设计它的目的是不同的)将你的修改持久化。所以最直接的更新一个对"
+"象的方法就是在 <literal>Session</literal> 处于打开状态时 <literal>load()</"
+"literal> 它,然后直接修改即可: "
 
 #. Tag: para
 #, no-c-format
-msgid "Sometimes this programming model is inefficient, as it requires in the same session both an SQL <literal>SELECT</literal> to load an object and an SQL <literal>UPDATE</literal> to persist its updated state. Hibernate offers an alternate approach by using detached instances."
-msgstr "有时这种程序模型效率低下,因为它在同一 Session 里需要一条 SQL <literal>SELECT</literal> 语句(用于加载对象) 以及一条 SQL <literal>UPDATE</literal> 语句(持久化更新的状态)。为此  Hibernate 提供了另一种途径,使用脱管(detached)实例。 "
+msgid ""
+"Sometimes this programming model is inefficient, as it requires in the same "
+"session both an SQL <literal>SELECT</literal> to load an object and an SQL "
+"<literal>UPDATE</literal> to persist its updated state. Hibernate offers an "
+"alternate approach by using detached instances."
+msgstr ""
+"有时这种程序模型效率低下,因为它在同一 Session 里需要一条 SQL "
+"<literal>SELECT</literal> 语句(用于加载对象) 以及一条 SQL <literal>UPDATE</"
+"literal> 语句(持久化更新的状态)。为此  Hibernate 提供了另一种途径,使用脱管"
+"(detached)实例。 "
 
 #. Tag: para
-#, 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)操作技巧。 "
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not offer its own API for direct execution of "
+"<literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate "
+"is a <emphasis>state management</emphasis> service, you do not have to think "
+"in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for "
+"executing SQL statements, you can get a JDBC <literal>Connection</literal> "
+"at any time by calling <literal>session.connection()</literal>. Furthermore, "
+"the notion of mass operations conflicts with object/relational mapping for "
+"online transaction processing-oriented applications. Future versions of "
+"Hibernate can, however, provide special mass operation functions. See <xref "
+"linkend=\"batch\" /> for some possible batch operation tricks."
+msgstr ""
+"请注意 Hibernate 本身不提供直接执行 <literal>UPDATE</literal> 或 "
+"<literal>DELETE</literal> 语句的 API。Hibernate 提供的是 <emphasis>state "
+"management</emphasis> 服务,你不必考虑要使用的 <emphasis>statements</"
+"emphasis>。JDBC 是出色的执行 SQL 语句的  API,任何时候调用  <literal>session."
+"connection()</literal> 你都可以得到一个 <literal>Connection</literal> 对象。 "
+"此外,在联机事务处理(OLTP)程序中,大量操作(mass operations)与对象/关系映"
+"射的观点是相冲突的。Hibernate 的将来版本可能会提供专门的进行大量操作(mass "
+"operation)的功能。参考 <xref linkend=\"batch\"/>,寻找一些可用的批量"
+"(batch)操作技巧。 "
 
 #. Tag: title
 #, no-c-format
@@ -362,43 +759,100 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Many applications need to retrieve an object in one transaction, send it to the UI layer for manipulation, then save the changes in a new transaction. Applications that use this kind of approach in a high-concurrency environment usually use versioned data to ensure isolation for the \"long\" unit of work."
-msgstr "很多程序需要在某个事务中获取对象,然后将对象发送到界面层去操作,最后在一个新的事务保存所做的修改。在高并发访问的环境中使用这种方式,通常使用附带版本信息的数据来保证这些“长“工作单元之间的隔离。"
+msgid ""
+"Many applications need to retrieve an object in one transaction, send it to "
+"the UI layer for manipulation, then save the changes in a new transaction. "
+"Applications that use this kind of approach in a high-concurrency "
+"environment usually use versioned data to ensure isolation for the \"long\" "
+"unit of work."
+msgstr ""
+"很多程序需要在某个事务中获取对象,然后将对象发送到界面层去操作,最后在一个新"
+"的事务保存所做的修改。在高并发访问的环境中使用这种方式,通常使用附带版本信息"
+"的数据来保证这些“长“工作单元之间的隔离。"
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate supports this model by providing for reattachment of detached instances using the <literal>Session.update()</literal> or <literal>Session.merge()</literal> methods:"
-msgstr "Hibernate 通过提供 <literal>Session.update()</literal> 或 <literal>Session.merge()</literal>  重新关联脱管实例的办法来支持这种模型。"
+msgid ""
+"Hibernate supports this model by providing for reattachment of detached "
+"instances using the <literal>Session.update()</literal> or <literal>Session."
+"merge()</literal> methods:"
+msgstr ""
+"Hibernate 通过提供 <literal>Session.update()</literal> 或 <literal>Session."
+"merge()</literal>  重新关联脱管实例的办法来支持这种模型。"
 
 #. Tag: para
 #, no-c-format
-msgid "If the <literal>Cat</literal> with identifier <literal>catId</literal> had already been loaded by <literal>secondSession</literal> when the application tried to reattach it, an exception would have been thrown."
-msgstr "如果具有 <literal>catId</literal> 持久化标识的 <literal>Cat</literal> 之前已经被<literal>另一Session(secondSession)</literal>装载了, 应用程序进行重关联操作(reattach)的时候会抛出一个异常。"
+msgid ""
+"If the <literal>Cat</literal> with identifier <literal>catId</literal> had "
+"already been loaded by <literal>secondSession</literal> when the application "
+"tried to reattach it, an exception would have been thrown."
+msgstr ""
+"如果具有 <literal>catId</literal> 持久化标识的 <literal>Cat</literal> 之前已"
+"经被<literal>另一Session(secondSession)</literal>装载了, 应用程序进行重关"
+"联操作(reattach)的时候会抛出一个异常。"
 
 #. Tag: para
 #, no-c-format
-msgid "Use <literal>update()</literal> if you are certain that the session does not contain an already persistent instance with the same identifier. Use <literal>merge()</literal> if you want to merge your modifications at any time without consideration of the state of the session. In other words, <literal>update()</literal> is usually the first method you would call in a fresh session, ensuring that the reattachment of your detached instances is the first operation that is executed."
-msgstr "如果你确定当前 session 没有包含与之具有相同持久化标识的持久实例,使用 <literal>update()</literal>。如果想随时合并你的的改动而不考虑 session 的状态,使用 <literal>merge()</literal>。换句话说,在一个新 session 中通常第一个调用的是 <literal>update()</literal> 方法,以便保证重新关联脱管(detached)对象的操作首先被执行。 "
+msgid ""
+"Use <literal>update()</literal> if you are certain that the session does not "
+"contain an already persistent instance with the same identifier. Use "
+"<literal>merge()</literal> if you want to merge your modifications at any "
+"time without consideration of the state of the session. In other words, "
+"<literal>update()</literal> is usually the first method you would call in a "
+"fresh session, ensuring that the reattachment of your detached instances is "
+"the first operation that is executed."
+msgstr ""
+"如果你确定当前 session 没有包含与之具有相同持久化标识的持久实例,使用 "
+"<literal>update()</literal>。如果想随时合并你的的改动而不考虑 session 的状"
+"态,使用 <literal>merge()</literal>。换句话说,在一个新 session 中通常第一个"
+"调用的是 <literal>update()</literal> 方法,以便保证重新关联脱管(detached)对"
+"象的操作首先被执行。 "
 
 #. Tag: para
-#, 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\"/>。 "
+#, 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\"/>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>lock()</literal> method also allows an application to reassociate an object with a new session. However, the detached instance has to be unmodified."
-msgstr "<literal>lock()</literal> 方法也允许程序重新关联某个对象到一个新 session 上。不过,该脱管(detached)的对象必须是没有修改过的。"
+msgid ""
+"The <literal>lock()</literal> method also allows an application to "
+"reassociate an object with a new session. However, the detached instance has "
+"to be unmodified."
+msgstr ""
+"<literal>lock()</literal> 方法也允许程序重新关联某个对象到一个新 session 上。"
+"不过,该脱管(detached)的对象必须是没有修改过的。"
 
 #. Tag: para
 #, no-c-format
-msgid "Note that <literal>lock()</literal> can be used with various <literal>LockMode</literal>s. See the API documentation and the chapter on transaction handling for more information. Reattachment is not the only usecase for <literal>lock()</literal>."
-msgstr "请注意,<literal>lock()</literal> 可以搭配多种 <literal>LockMode</literal>,更多信息请阅读 API 文档以及关于事务处理(transaction handling)的章节。重新关联不是 <literal>lock()</literal> 的唯一用途。 "
+msgid ""
+"Note that <literal>lock()</literal> can be used with various "
+"<literal>LockMode</literal>s. See the API documentation and the chapter on "
+"transaction handling for more information. Reattachment is not the only "
+"usecase for <literal>lock()</literal>."
+msgstr ""
+"请注意,<literal>lock()</literal> 可以搭配多种 <literal>LockMode</literal>,"
+"更多信息请阅读 API 文档以及关于事务处理(transaction handling)的章节。重新关"
+"联不是 <literal>lock()</literal> 的唯一用途。 "
 
 #. Tag: para
-#, no-c-format
-msgid "Other models for long units of work are discussed in <xref linkend=\"transactions-optimistic\" />."
-msgstr "其他用于长时间工作单元的模型会在 <xref linkend=\"transactions-optimistic\"/> 中讨论。 "
+#, fuzzy, no-c-format
+msgid ""
+"Other models for long units of work are discussed in <xref linkend="
+"\"transactions-optimistic\" />."
+msgstr ""
+"其他用于长时间工作单元的模型会在 <xref linkend=\"transactions-optimistic\"/> "
+"中讨论。 "
 
 #. Tag: title
 #, no-c-format
@@ -407,18 +861,39 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate users have requested a general purpose method that either saves a transient instance by generating a new identifier or updates/reattaches the detached instances associated with its current identifier. The <literal>saveOrUpdate()</literal> method implements this functionality."
-msgstr "Hibernate 的用户曾要求一个既可自动分配新持久化标识(identifier)保存瞬时(transient)对象,又可更新/重新关联脱管(detached)实例的通用方法。<literal>saveOrUpdate()</literal> 方法实现了这个功能。"
+msgid ""
+"Hibernate users have requested a general purpose method that either saves a "
+"transient instance by generating a new identifier or updates/reattaches the "
+"detached instances associated with its current identifier. The "
+"<literal>saveOrUpdate()</literal> method implements this functionality."
+msgstr ""
+"Hibernate 的用户曾要求一个既可自动分配新持久化标识(identifier)保存瞬时"
+"(transient)对象,又可更新/重新关联脱管(detached)实例的通用方法。"
+"<literal>saveOrUpdate()</literal> 方法实现了这个功能。"
 
 #. Tag: para
 #, no-c-format
-msgid "The usage and semantics of <literal>saveOrUpdate()</literal> seems to be confusing for new users. Firstly, so long as you are not trying to use instances from one session in another new session, you should not need to use <literal>update()</literal>, <literal>saveOrUpdate()</literal>, or <literal>merge()</literal>. Some whole applications will never use either of these methods."
-msgstr "<literal>saveOrUpdate()</literal> 用途和语义可能会使新用户感到迷惑。首先,只要你没有尝试在某个  session 中使用来自另一 session 的实例,你就应该不需要使用 <literal>update()</literal>, <literal>saveOrUpdate()</literal>,或 <literal>merge()</literal>。有些程序从来不用这些方法。"
+msgid ""
+"The usage and semantics of <literal>saveOrUpdate()</literal> seems to be "
+"confusing for new users. Firstly, so long as you are not trying to use "
+"instances from one session in another new session, you should not need to "
+"use <literal>update()</literal>, <literal>saveOrUpdate()</literal>, or "
+"<literal>merge()</literal>. Some whole applications will never use either of "
+"these methods."
+msgstr ""
+"<literal>saveOrUpdate()</literal> 用途和语义可能会使新用户感到迷惑。首先,只"
+"要你没有尝试在某个  session 中使用来自另一 session 的实例,你就应该不需要使"
+"用 <literal>update()</literal>, <literal>saveOrUpdate()</literal>,或 "
+"<literal>merge()</literal>。有些程序从来不用这些方法。"
 
 #. Tag: para
 #, no-c-format
-msgid "Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are used in the following scenario:"
-msgstr "通常下面的场景会使用 <literal>update()</literal> 或 <literal>saveOrUpdate()</literal>:"
+msgid ""
+"Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are "
+"used in the following scenario:"
+msgstr ""
+"通常下面的场景会使用 <literal>update()</literal> 或 <literal>saveOrUpdate()</"
+"literal>:"
 
 #. Tag: para
 #, no-c-format
@@ -442,7 +917,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "the application persists these modifications by calling <literal>update()</literal> in a second session"
+msgid ""
+"the application persists these modifications by calling <literal>update()</"
+"literal> in a second session"
 msgstr "程序调用第二个 session 的 <literal>update()</literal> 方法持久这些改动"
 
 #. Tag: para
@@ -457,23 +934,39 @@
 
 #. Tag: para
 #, no-c-format
-msgid "if another object associated with the session has the same identifier, throw an exception"
-msgstr "如果另一个与本 session 关联的对象拥有相同的持久化标识(identifier),抛出一个异常"
+msgid ""
+"if another object associated with the session has the same identifier, throw "
+"an exception"
+msgstr ""
+"如果另一个与本 session 关联的对象拥有相同的持久化标识(identifier),抛出一个"
+"异常"
 
 #. Tag: para
 #, no-c-format
 msgid "if the object has no identifier property, <literal>save()</literal> it"
-msgstr "如果对象没有持久化标识(identifier)属性,对其调用 <literal>save()</literal>"
+msgstr ""
+"如果对象没有持久化标识(identifier)属性,对其调用 <literal>save()</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid "if the object's identifier has the value assigned to a newly instantiated object, <literal>save()</literal> it"
-msgstr "如果对象的持久标识(identifier)表明其是一个新实例化的对象,对其调用 <literal>save()</literal>。"
+msgid ""
+"if the object's identifier has the value assigned to a newly instantiated "
+"object, <literal>save()</literal> it"
+msgstr ""
+"如果对象的持久标识(identifier)表明其是一个新实例化的对象,对其调用 "
+"<literal>save()</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid "if the object is versioned by a <literal>&lt;version&gt;</literal> or <literal>&lt;timestamp&gt;</literal>, and the version property value is the same value assigned to a newly instantiated object, <literal>save()</literal> it"
-msgstr "如果对象是附带版本信息的(通过 <literal>&lt;version&gt;</literal> 或 <literal>&lt;timestamp&gt;</literal>)并且版本属性的值表明其是一个新实例化的对象,<literal>save()</literal> 它。 "
+msgid ""
+"if the object is versioned by a <literal>&lt;version&gt;</literal> or "
+"<literal>&lt;timestamp&gt;</literal>, and the version property value is the "
+"same value assigned to a newly instantiated object, <literal>save()</"
+"literal> it"
+msgstr ""
+"如果对象是附带版本信息的(通过 <literal>&lt;version&gt;</literal> 或 "
+"<literal>&lt;timestamp&gt;</literal>)并且版本属性的值表明其是一个新实例化的"
+"对象,<literal>save()</literal> 它。 "
 
 #. Tag: para
 #, no-c-format
@@ -487,13 +980,21 @@
 
 #. Tag: para
 #, no-c-format
-msgid "if there is a persistent instance with the same identifier currently associated with the session, copy the state of the given object onto the persistent instance"
-msgstr "如果 session 中存在相同持久化标识(identifier)的实例,用用户给出的对象的状态覆盖旧有的持久实例"
+msgid ""
+"if there is a persistent instance with the same identifier currently "
+"associated with the session, copy the state of the given object onto the "
+"persistent instance"
+msgstr ""
+"如果 session 中存在相同持久化标识(identifier)的实例,用用户给出的对象的状态"
+"覆盖旧有的持久实例"
 
 #. Tag: para
 #, no-c-format
-msgid "if there is no persistent instance currently associated with the session, try to load it from the database, or create a new persistent instance"
-msgstr "如果 session 没有相应的持久实例,则尝试从数据库中加载,或创建新的持久化实例"
+msgid ""
+"if there is no persistent instance currently associated with the session, "
+"try to load it from the database, or create a new persistent instance"
+msgstr ""
+"如果 session 没有相应的持久实例,则尝试从数据库中加载,或创建新的持久化实例"
 
 #. Tag: para
 #, no-c-format
@@ -502,7 +1003,9 @@
 
 #. Tag: para
 #, no-c-format
-msgid "the given instance does not become associated with the session, it remains detached"
+msgid ""
+"the given instance does not become associated with the session, it remains "
+"detached"
 msgstr "用户给出的这个对象没有被关联到 session 上,它依旧是脱管的"
 
 #. Tag: title
@@ -512,13 +1015,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>Session.delete()</literal> will remove an object's state from the database. Your application, however, can still hold a reference to a deleted object. It is best to think of <literal>delete()</literal> as making a persistent instance, transient."
-msgstr "使用 <literal>Session.delete()</literal> 会把对象的状态从数据库中移除。当然,你的应用程序可能仍然持有一个指向已删除对象的引用。所以,最好这样理解:<literal>delete()</literal> 的用途是把一个持久实例变成瞬时(transient)实例。 "
+msgid ""
+"<literal>Session.delete()</literal> will remove an object's state from the "
+"database. Your application, however, can still hold a reference to a deleted "
+"object. It is best to think of <literal>delete()</literal> as making a "
+"persistent instance, transient."
+msgstr ""
+"使用 <literal>Session.delete()</literal> 会把对象的状态从数据库中移除。当然,"
+"你的应用程序可能仍然持有一个指向已删除对象的引用。所以,最好这样理解:"
+"<literal>delete()</literal> 的用途是把一个持久实例变成瞬时(transient)实"
+"例。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can delete objects in any order, without risk of foreign key constraint violations. It is still possible to violate a <literal>NOT NULL</literal> constraint on a foreign key column by deleting objects in the wrong order, e.g. if you delete the parent, but forget to delete the children."
-msgstr "你可以用你喜欢的任何顺序删除对象,不用担心外键约束冲突。当然,如果你搞错了顺序,还是有可能引发在外键字段定义的 <literal>NOT NULL</literal> 约束冲突。例如你删除了父对象,但是忘记删除其子对象。"
+msgid ""
+"You can delete objects in any order, without risk of foreign key constraint "
+"violations. It is still possible to violate a <literal>NOT NULL</literal> "
+"constraint on a foreign key column by deleting objects in the wrong order, e."
+"g. if you delete the parent, but forget to delete the children."
+msgstr ""
+"你可以用你喜欢的任何顺序删除对象,不用担心外键约束冲突。当然,如果你搞错了顺"
+"序,还是有可能引发在外键字段定义的 <literal>NOT NULL</literal> 约束冲突。例如"
+"你删除了父对象,但是忘记删除其子对象。"
 
 #. Tag: title
 #, no-c-format
@@ -527,38 +1045,71 @@
 
 #. Tag: para
 #, no-c-format
-msgid "It is sometimes useful to be able to take a graph of persistent instances and make them persistent in a different datastore, without regenerating identifier values."
-msgstr "偶尔会用到不重新生成持久化标识(identifier),将持久实例以及其关联的实例持久到不同的数据库中的操作。 "
+msgid ""
+"It is sometimes useful to be able to take a graph of persistent instances "
+"and make them persistent in a different datastore, without regenerating "
+"identifier values."
+msgstr ""
+"偶尔会用到不重新生成持久化标识(identifier),将持久实例以及其关联的实例持久"
+"到不同的数据库中的操作。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>ReplicationMode</literal> determines how <literal>replicate()</literal> will deal with conflicts with existing rows in the database:"
-msgstr "<literal>ReplicationMode</literal> 决定在和数据库中已存在记录由冲突时,<literal>replicate()</literal> 如何处理。 "
+msgid ""
+"The <literal>ReplicationMode</literal> determines how <literal>replicate()</"
+"literal> will deal with conflicts with existing rows in the database:"
+msgstr ""
+"<literal>ReplicationMode</literal> 决定在和数据库中已存在记录由冲突时,"
+"<literal>replicate()</literal> 如何处理。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is an existing database row with the same identifier"
-msgstr "<literal>ReplicationMode.IGNORE</literal>:当某个现有数据库记录具有相同标识符时忽略它"
+msgid ""
+"<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is "
+"an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.IGNORE</literal>:当某个现有数据库记录具有相同标识符"
+"时忽略它"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing database row with the same identifier"
-msgstr "<literal>ReplicationMode.OVERWRITE</literal>:用相同的标识符覆盖现有数据库记录"
+msgid ""
+"<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
+"database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.OVERWRITE</literal>:用相同的标识符覆盖现有数据库记"
+"录"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there is an existing database row with the same identifier"
-msgstr "<literal>ReplicationMode.EXCEPTION</literal>:当某个现有数据库记录具有相同标识符时抛出异常"
+msgid ""
+"<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there "
+"is an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.EXCEPTION</literal>:当某个现有数据库记录具有相同标"
+"识符时抛出异常"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>ReplicationMode.LATEST_VERSION</literal>: overwrites the row if its version number is earlier than the version number of the object, or ignore the object otherwise"
-msgstr "<literal>ReplicationMode.LATEST_VERSION</literal>:如果当前的版本较新,则覆盖,否则忽略"
+msgid ""
+"<literal>ReplicationMode.LATEST_VERSION</literal>: overwrites the row if its "
+"version number is earlier than the version number of the object, or ignore "
+"the object otherwise"
+msgstr ""
+"<literal>ReplicationMode.LATEST_VERSION</literal>:如果当前的版本较新,则覆"
+"盖,否则忽略"
 
 #. Tag: para
 #, no-c-format
-msgid "Usecases for this feature include reconciling data entered into different database instances, upgrading system configuration information during product upgrades, rolling back changes made during non-ACID transactions and more."
-msgstr "这个功能的用途包括使录入的数据在不同数据库中一致,产品升级时升级系统配置信息,回滚 non-ACID 事务中的修改等等。(译注,non-ACID,非 ACID;ACID,Atomic,Consistent,Isolated and Durable 的缩写)"
+msgid ""
+"Usecases for this feature include reconciling data entered into different "
+"database instances, upgrading system configuration information during "
+"product upgrades, rolling back changes made during non-ACID transactions and "
+"more."
+msgstr ""
+"这个功能的用途包括使录入的数据在不同数据库中一致,产品升级时升级系统配置信"
+"息,回滚 non-ACID 事务中的修改等等。(译注,non-ACID,非 ACID;ACID,Atomic,"
+"Consistent,Isolated and Durable 的缩写)"
 
 #. Tag: title
 #, no-c-format
@@ -567,8 +1118,15 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Sometimes the <literal>Session</literal> will execute the SQL statements needed to synchronize the JDBC connection's state with the state of objects held in memory. This process, called <emphasis>flush</emphasis>, occurs by default at the following points:"
-msgstr "每间隔一段时间,<literal>Session</literal> 会执行一些必需的 SQL 语句来把内存中的对象的状态同步到 JDBC 连接中。这个过程被称为<emphasis>刷出(flush)</emphasis>,默认会在下面的时间点执行: "
+msgid ""
+"Sometimes the <literal>Session</literal> will execute the SQL statements "
+"needed to synchronize the JDBC connection's state with the state of objects "
+"held in memory. This process, called <emphasis>flush</emphasis>, occurs by "
+"default at the following points:"
+msgstr ""
+"每间隔一段时间,<literal>Session</literal> 会执行一些必需的 SQL 语句来把内存"
+"中的对象的状态同步到 JDBC 连接中。这个过程被称为<emphasis>刷出(flush)</"
+"emphasis>,默认会在下面的时间点执行: "
 
 #. Tag: para
 #, no-c-format
@@ -592,8 +1150,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "all entity insertions in the same order the corresponding objects were saved using <literal>Session.save()</literal>"
-msgstr "所有对实体进行插入的语句,其顺序按照对象执行 <literal>Session.save()</literal> 的时间顺序 "
+msgid ""
+"all entity insertions in the same order the corresponding objects were saved "
+"using <literal>Session.save()</literal>"
+msgstr ""
+"所有对实体进行插入的语句,其顺序按照对象执行 <literal>Session.save()</"
+"literal> 的时间顺序 "
 
 #. Tag: para
 #, no-c-format
@@ -617,28 +1179,67 @@
 
 #. Tag: para
 #, no-c-format
-msgid "all entity deletions in the same order the corresponding objects were deleted using <literal>Session.delete()</literal>"
-msgstr "所有对实体进行删除的语句,其顺序按照对象执行 <literal>Session.delete()</literal> 的时间顺序 "
+msgid ""
+"all entity deletions in the same order the corresponding objects were "
+"deleted using <literal>Session.delete()</literal>"
+msgstr ""
+"所有对实体进行删除的语句,其顺序按照对象执行 <literal>Session.delete()</"
+"literal> 的时间顺序 "
 
 #. Tag: para
 #, no-c-format
-msgid "An exception is that objects using <literal>native</literal> ID generation are inserted when they are saved."
-msgstr "有一个例外是,如果对象使用 <literal>native</literal> 方式来生成 ID(持久化标识)的话,它们一执行 save 就会被插入。"
+msgid ""
+"An exception is that objects using <literal>native</literal> ID generation "
+"are inserted when they are saved."
+msgstr ""
+"有一个例外是,如果对象使用 <literal>native</literal> 方式来生成 ID(持久化标"
+"识)的话,它们一执行 save 就会被插入。"
 
 #. Tag: para
 #, no-c-format
-msgid "Except when you explicitly <literal>flush()</literal>, there are absolutely no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> executes the JDBC calls, only the <emphasis>order</emphasis> in which they are executed. However, Hibernate does guarantee that the <literal>Query.list(..)</literal> will never return stale or incorrect data."
-msgstr "除非你明确地发出了 <literal>flush()</literal> 指令,关于 Session<emphasis> 何时</emphasis>会执行这些 JDBC 调用是完全无法保证的,只能保证它们执行的前后顺序。当然,Hibernate 保证,<literal>Query.list(..)</literal> 绝对不会返回已经失效的数据,也不会返回错误数据。 "
+msgid ""
+"Except when you explicitly <literal>flush()</literal>, there are absolutely "
+"no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> "
+"executes the JDBC calls, only the <emphasis>order</emphasis> in which they "
+"are executed. However, Hibernate does guarantee that the <literal>Query.list"
+"(..)</literal> will never return stale or incorrect data."
+msgstr ""
+"除非你明确地发出了 <literal>flush()</literal> 指令,关于 Session<emphasis> 何"
+"时</emphasis>会执行这些 JDBC 调用是完全无法保证的,只能保证它们执行的前后顺"
+"序。当然,Hibernate 保证,<literal>Query.list(..)</literal> 绝对不会返回已经"
+"失效的数据,也不会返回错误数据。 "
 
 #. Tag: para
-#, 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\"/>)。 "
+#, 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: para
-#, 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\"/> 中讨论。"
+#, fuzzy, no-c-format
+msgid ""
+"During flush, an exception might occur (e.g. if a DML operation violates a "
+"constraint). Since handling exceptions involves some understanding of "
+"Hibernate's transactional behavior, we discuss it in <xref linkend="
+"\"transactions\" />."
+msgstr ""
+"刷出(flush)期间,可能会抛出异常(例如一个 DML 操作违反了约束)。异常处理涉"
+"及到对 Hibernate 事务性行为的理解,因此我们将在 <xref linkend=\"transactions"
+"\"/> 中讨论。"
 
 #. Tag: title
 #, no-c-format
@@ -647,23 +1248,67 @@
 
 #. Tag: para
 #, no-c-format
-msgid "It is quite cumbersome to save, delete, or reattach individual objects, especially if you deal with a graph of associated objects. A common case is a parent/child relationship. Consider the following example:"
-msgstr "对每一个对象都要执行保存,删除或重关联操作让人感觉有点麻烦,尤其是在处理许多彼此关联的对象的时候。一个常见的例子是父子关系。考虑下面的例子:"
+msgid ""
+"It is quite cumbersome to save, delete, or reattach individual objects, "
+"especially if you deal with a graph of associated objects. A common case is "
+"a parent/child relationship. Consider the following example:"
+msgstr ""
+"对每一个对象都要执行保存,删除或重关联操作让人感觉有点麻烦,尤其是在处理许多"
+"彼此关联的对象的时候。一个常见的例子是父子关系。考虑下面的例子:"
 
 #. Tag: para
 #, no-c-format
-msgid "If the children in a parent/child relationship would be value typed (e.g. a collection of addresses or strings), their life cycle would depend on the parent and no further action would be required for convenient \"cascading\" of state changes. When the parent is saved, the value-typed child objects are saved and when the parent is deleted, the children will be deleted, etc. This works for operations such as the removal of a child from the collection. Since value-typed objects cannot have shared references, Hibernate will detect this and delete the child from the database."
-msgstr "如果一个父子关系中的子对象是值类型(value typed)(例如,地址或字符串的集合)的,他们的生命周期会依赖于父对象,可以享受方便的级联操作(Cascading),不需要额外的动作。父对象被保存时,这些值类型(value typed)子对象也将被保存;父对象被删除时,子对象也将被删除。这对将一个子对象从集合中移除是同样有效:Hibernate 会检测到,并且因为值类型(value typed)的对象不可能被其他对象引用,所以 Hibernate 会在数据库中删除这个子对象。 "
+msgid ""
+"If the children in a parent/child relationship would be value typed (e.g. a "
+"collection of addresses or strings), their life cycle would depend on the "
+"parent and no further action would be required for convenient \"cascading\" "
+"of state changes. When the parent is saved, the value-typed child objects "
+"are saved and when the parent is deleted, the children will be deleted, etc. "
+"This works for operations such as the removal of a child from the "
+"collection. Since value-typed objects cannot have shared references, "
+"Hibernate will detect this and delete the child from the database."
+msgstr ""
+"如果一个父子关系中的子对象是值类型(value typed)(例如,地址或字符串的集合)"
+"的,他们的生命周期会依赖于父对象,可以享受方便的级联操作(Cascading),不需要"
+"额外的动作。父对象被保存时,这些值类型(value typed)子对象也将被保存;父对象"
+"被删除时,子对象也将被删除。这对将一个子对象从集合中移除是同样有效:"
+"Hibernate 会检测到,并且因为值类型(value typed)的对象不可能被其他对象引用,"
+"所以 Hibernate 会在数据库中删除这个子对象。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Now consider the same scenario with parent and child objects being entities, not value-types (e.g. categories and items, or parent and child cats). Entities have their own life cycle and support shared references. Removing an entity from the collection does not mean it can be deleted), and there is by default no cascading of state from one entity to any other associated entities. Hibernate does not implement <emphasis>persistence by reachability</emphasis> by default."
-msgstr "现在考虑同样的场景,不过父子对象都是实体(entities)类型,而非值类型(value typed)(例如,类别与个体,或母猫和小猫)。实体有自己的生命期,允许共享对其的引用(因此从集合中移除一个实体,不意味着它可以被删除),并且实体到其他关联实体之间默认没有级联操作的设置。 Hibernate 默认不实现所谓的<emphasis>可到达即持久化(persistence by reachability)</emphasis>的策略。 "
+msgid ""
+"Now consider the same scenario with parent and child objects being entities, "
+"not value-types (e.g. categories and items, or parent and child cats). "
+"Entities have their own life cycle and support shared references. Removing "
+"an entity from the collection does not mean it can be deleted), and there is "
+"by default no cascading of state from one entity to any other associated "
+"entities. Hibernate does not implement <emphasis>persistence by "
+"reachability</emphasis> by default."
+msgstr ""
+"现在考虑同样的场景,不过父子对象都是实体(entities)类型,而非值类型(value "
+"typed)(例如,类别与个体,或母猫和小猫)。实体有自己的生命期,允许共享对其的"
+"引用(因此从集合中移除一个实体,不意味着它可以被删除),并且实体到其他关联实"
+"体之间默认没有级联操作的设置。 Hibernate 默认不实现所谓的<emphasis>可到达即持"
+"久化(persistence by reachability)</emphasis>的策略。 "
 
 #. Tag: para
 #, no-c-format
-msgid "For each basic operation of the Hibernate session - including <literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> - there is a corresponding cascade style. Respectively, the cascade styles are named <literal>create, merge, save-update, delete, lock, refresh, evict, replicate</literal>. If you want an operation to be cascaded along an association, you must indicate that in the mapping document. For example:"
-msgstr "每个 Hibernate session 的基本操作 — 包括 <literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> — 都有对应的级联风格(cascade style)。这些级联风格(cascade style)风格分别命名为  <literal>create, merge, save-update, delete, lock, refresh, evict, replicate</literal>。如果你希望一个操作被顺着关联关系级联传播,你必须在映射文件中指出这一点。例如:"
+msgid ""
+"For each basic operation of the Hibernate session - including "
+"<literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), "
+"evict(), replicate()</literal> - there is a corresponding cascade style. "
+"Respectively, the cascade styles are named <literal>create, merge, save-"
+"update, delete, lock, refresh, evict, replicate</literal>. If you want an "
+"operation to be cascaded along an association, you must indicate that in the "
+"mapping document. For example:"
+msgstr ""
+"每个 Hibernate session 的基本操作 — 包括 <literal>persist(), merge(), "
+"saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> "
+"— 都有对应的级联风格(cascade style)。这些级联风格(cascade style)风格分别"
+"命名为  <literal>create, merge, save-update, delete, lock, refresh, evict, "
+"replicate</literal>。如果你希望一个操作被顺着关联关系级联传播,你必须在映射文"
+"件中指出这一点。例如:"
 
 #. Tag: para
 #, no-c-format
@@ -672,13 +1317,27 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can even use <literal>cascade=\"all\"</literal> to specify that <emphasis>all</emphasis> operations should be cascaded along the association. The default <literal>cascade=\"none\"</literal> specifies that no operations are to be cascaded."
-msgstr "你可以使用 <literal>cascade=\"all\"</literal> 来指定<emphasis>全部</emphasis>操作都顺着关联关系级联(cascaded)。默认值是 <literal>cascade=\"none\"</literal>,即任何操作都不会被级联(cascaded)。 "
+msgid ""
+"You can even use <literal>cascade=\"all\"</literal> to specify that "
+"<emphasis>all</emphasis> operations should be cascaded along the "
+"association. The default <literal>cascade=\"none\"</literal> specifies that "
+"no operations are to be cascaded."
+msgstr ""
+"你可以使用 <literal>cascade=\"all\"</literal> 来指定<emphasis>全部</emphasis>"
+"操作都顺着关联关系级联(cascaded)。默认值是 <literal>cascade=\"none\"</"
+"literal>,即任何操作都不会被级联(cascaded)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A special cascade style, <literal>delete-orphan</literal>, applies only to one-to-many associations, and indicates that the <literal>delete()</literal> operation should be applied to any child object that is removed from the association."
-msgstr "注意有一个特殊的级联风格(cascade style) <literal>delete-orphan</literal>,只应用于 one-to-many 关联,表明 <literal>delete()</literal> 操作应该被应用于所有从关联中删除的对象。"
+msgid ""
+"A special cascade style, <literal>delete-orphan</literal>, applies only to "
+"one-to-many associations, and indicates that the <literal>delete()</literal> "
+"operation should be applied to any child object that is removed from the "
+"association."
+msgstr ""
+"注意有一个特殊的级联风格(cascade style) <literal>delete-orphan</literal>,"
+"只应用于 one-to-many 关联,表明 <literal>delete()</literal> 操作应该被应用于"
+"所有从关联中删除的对象。"
 
 #. Tag: para
 #, no-c-format
@@ -687,63 +1346,144 @@
 
 #. Tag: para
 #, no-c-format
-msgid "It does not usually make sense to enable cascade on a <literal>&lt;many-to-one&gt;</literal> or <literal>&lt;many-to-many&gt;</literal> association. Cascade is often useful for <literal>&lt;one-to-one&gt;</literal> and <literal>&lt;one-to-many&gt;</literal> associations."
-msgstr "通常在 <literal>&lt;many-to-one&gt;</literal> 或 <literal>&lt;many-to-many&gt;</literal> 关系中应用级联(cascade)没什么意义。级联(cascade)通常在 <literal>&lt;one-to-one&gt;</literal>   和 <literal>&lt;one-to-many&gt;</literal> 关系中比较有用。 "
+msgid ""
+"It does not usually make sense to enable cascade on a <literal>&lt;many-to-"
+"one&gt;</literal> or <literal>&lt;many-to-many&gt;</literal> association. "
+"Cascade is often useful for <literal>&lt;one-to-one&gt;</literal> and "
+"<literal>&lt;one-to-many&gt;</literal> associations."
+msgstr ""
+"通常在 <literal>&lt;many-to-one&gt;</literal> 或 <literal>&lt;many-to-"
+"many&gt;</literal> 关系中应用级联(cascade)没什么意义。级联(cascade)通常"
+"在 <literal>&lt;one-to-one&gt;</literal>   和 <literal>&lt;one-to-many&gt;</"
+"literal> 关系中比较有用。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If the child object's lifespan is bounded by the lifespan of the parent object, make it a <emphasis>life cycle object</emphasis> by specifying <literal>cascade=\"all,delete-orphan\"</literal>."
-msgstr "如果子对象的寿命限定在父亲对象的寿命之内,可通过指定 <literal>cascade=\"all,delete-orphan\"</literal> 将其变为<emphasis>自动生命周期管理的对象(lifecycle object)</emphasis>。 "
+msgid ""
+"If the child object's lifespan is bounded by the lifespan of the parent "
+"object, make it a <emphasis>life cycle object</emphasis> by specifying "
+"<literal>cascade=\"all,delete-orphan\"</literal>."
+msgstr ""
+"如果子对象的寿命限定在父亲对象的寿命之内,可通过指定 <literal>cascade=\"all,"
+"delete-orphan\"</literal> 将其变为<emphasis>自动生命周期管理的对象"
+"(lifecycle object)</emphasis>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Otherwise, you might not need cascade at all. But if you think that you will often be working with the parent and children together in the same transaction, and you want to save yourself some typing, consider using <literal>cascade=\"persist,merge,save-update\"</literal>."
-msgstr "其他情况,你可根本不需要级联(cascade)。但是如果你认为你会经常在某个事务中同时用到父对象与子对象,并且你希望少打点儿字,可以考虑使用   <literal>cascade=\"persist,merge,save-update\"</literal>。"
+msgid ""
+"Otherwise, you might not need cascade at all. But if you think that you will "
+"often be working with the parent and children together in the same "
+"transaction, and you want to save yourself some typing, consider using "
+"<literal>cascade=\"persist,merge,save-update\"</literal>."
+msgstr ""
+"其他情况,你可根本不需要级联(cascade)。但是如果你认为你会经常在某个事务中同"
+"时用到父对象与子对象,并且你希望少打点儿字,可以考虑使用   <literal>cascade="
+"\"persist,merge,save-update\"</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid "Mapping an association (either a single valued association, or a collection) with <literal>cascade=\"all\"</literal> marks the association as a <emphasis>parent/child</emphasis> style relationship where save/update/delete of the parent results in save/update/delete of the child or children."
-msgstr "可以使用 <literal>cascade=\"all\"</literal> 将一个关联关系(无论是对值对象的关联,或者对一个集合的关联)标记为<emphasis>父/子</emphasis>关系的关联。 这样对父对象进行 save/update/delete 操作就会导致子对象也进行 save/update/delete 操作。"
+msgid ""
+"Mapping an association (either a single valued association, or a collection) "
+"with <literal>cascade=\"all\"</literal> marks the association as a "
+"<emphasis>parent/child</emphasis> style relationship where save/update/"
+"delete of the parent results in save/update/delete of the child or children."
+msgstr ""
+"可以使用 <literal>cascade=\"all\"</literal> 将一个关联关系(无论是对值对象的"
+"关联,或者对一个集合的关联)标记为<emphasis>父/子</emphasis>关系的关联。 这样"
+"对父对象进行 save/update/delete 操作就会导致子对象也进行 save/update/delete "
+"操作。"
 
 #. Tag: para
 #, no-c-format
-msgid "Furthermore, a mere reference to a child from a persistent parent will result in save/update of the child. This metaphor is incomplete, however. A child which becomes unreferenced by its parent is <emphasis>not</emphasis> automatically deleted, except in the case of a <literal>&lt;one-to-many&gt;</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>&lt;one-to-many&gt;</literal> 关联并且被标记为 <literal>cascade=\"delete-orphan\"</literal>,否则父对象失去对某个子对象的引用<emphasis>不会</emphasis>导致该子对象被自动删除。父子关系的级联(cascading)操作准确语义如下: "
+msgid ""
+"Furthermore, a mere reference to a child from a persistent parent will "
+"result in save/update of the child. This metaphor is incomplete, however. A "
+"child which becomes unreferenced by its parent is <emphasis>not</emphasis> "
+"automatically deleted, except in the case of a <literal>&lt;one-to-many&gt;</"
+"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>&lt;one-to-many&gt;</literal> 关联并且被标记为 <literal>cascade="
+"\"delete-orphan\"</literal>,否则父对象失去对某个子对象的引用<emphasis>不会</"
+"emphasis>导致该子对象被自动删除。父子关系的级联(cascading)操作准确语义如"
+"下: "
 
 #. Tag: para
 #, no-c-format
-msgid "If a parent is passed to <literal>persist()</literal>, all children are passed to <literal>persist()</literal>"
-msgstr "如果父对象被 <literal>persist()</literal>,那么所有子对象也会被 <literal>persist()</literal>"
+msgid ""
+"If a parent is passed to <literal>persist()</literal>, all children are "
+"passed to <literal>persist()</literal>"
+msgstr ""
+"如果父对象被 <literal>persist()</literal>,那么所有子对象也会被 "
+"<literal>persist()</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid "If a parent is passed to <literal>merge()</literal>, all children are passed to <literal>merge()</literal>"
-msgstr "如果父对象被 <literal>merge()</literal>,那么所有子对象也会被 <literal>merge()</literal>"
+msgid ""
+"If a parent is passed to <literal>merge()</literal>, all children are passed "
+"to <literal>merge()</literal>"
+msgstr ""
+"如果父对象被 <literal>merge()</literal>,那么所有子对象也会被 <literal>merge"
+"()</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid "If a parent is passed to <literal>save()</literal>, <literal>update()</literal> or <literal>saveOrUpdate()</literal>, all children are passed to <literal>saveOrUpdate()</literal>"
-msgstr "如果父对象被 <literal>save()</literal>,<literal>update()</literal> 或  <literal>saveOrUpdate()</literal>,那么所有子对象则会被 <literal>saveOrUpdate()</literal>"
+msgid ""
+"If a parent is passed to <literal>save()</literal>, <literal>update()</"
+"literal> or <literal>saveOrUpdate()</literal>, all children are passed to "
+"<literal>saveOrUpdate()</literal>"
+msgstr ""
+"如果父对象被 <literal>save()</literal>,<literal>update()</literal> 或  "
+"<literal>saveOrUpdate()</literal>,那么所有子对象则会被 <literal>saveOrUpdate"
+"()</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid "If a transient or detached child becomes referenced by a persistent parent, it is passed to <literal>saveOrUpdate()</literal>"
-msgstr "如果某个持久的父对象引用了瞬时(transient)或者脱管(detached)的子对象,那么子对象将会被 <literal>saveOrUpdate()</literal>"
+msgid ""
+"If a transient or detached child becomes referenced by a persistent parent, "
+"it is passed to <literal>saveOrUpdate()</literal>"
+msgstr ""
+"如果某个持久的父对象引用了瞬时(transient)或者脱管(detached)的子对象,那么"
+"子对象将会被 <literal>saveOrUpdate()</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid "If a parent is deleted, all children are passed to <literal>delete()</literal>"
+msgid ""
+"If a parent is deleted, all children are passed to <literal>delete()</"
+"literal>"
 msgstr "如果父对象被删除,那么所有子对象也会被 <literal>delete()</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid "If a child is dereferenced by a persistent parent, <emphasis>nothing special happens</emphasis> - the application should explicitly delete the child if necessary - unless <literal>cascade=\"delete-orphan\"</literal>, in which case the \"orphaned\" child is deleted."
-msgstr "除非被标记为 <literal>cascade=\"delete-orphan\"</literal>(删除“孤儿”模式,此时不被任何一个父对象引用的子对象会被删除),否则子对象失掉父对象对其的引用时,<emphasis>什么事也不会发生</emphasis>。如果有特殊需要,应用程序可通过显式调用 delete() 删除子对象。"
+msgid ""
+"If a child is dereferenced by a persistent parent, <emphasis>nothing special "
+"happens</emphasis> - the application should explicitly delete the child if "
+"necessary - unless <literal>cascade=\"delete-orphan\"</literal>, in which "
+"case the \"orphaned\" child is deleted."
+msgstr ""
+"除非被标记为 <literal>cascade=\"delete-orphan\"</literal>(删除“孤儿”模式,此"
+"时不被任何一个父对象引用的子对象会被删除),否则子对象失掉父对象对其的引用"
+"时,<emphasis>什么事也不会发生</emphasis>。如果有特殊需要,应用程序可通过显式"
+"调用 delete() 删除子对象。"
 
 #. Tag: para
 #, no-c-format
-msgid "Finally, note that cascading of operations can be applied to an object graph at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All operations, if enabled, are cascaded to associated entities reachable when the operation is executed. However, <literal>save-update</literal> and <literal>delete-orphan</literal> are transitive for all associated entities reachable during flush of the <literal>Session</literal>."
-msgstr "最后,注意操作的级联可能是在<emphasis>调用期(call time)</emphasis>或者<emphasis>写入期(flush time)</emphasis>作用到对象图上的。所有的操作,如果允许,都在操作被执行的时候级联到可触及的关联实体上。然而,<literal>save-upate</literal> 和 <literal>delete-orphan</literal> 是在<literal>Session</literal> flush 的时候才作用到所有可触及的被关联对象上的。 "
+msgid ""
+"Finally, note that cascading of operations can be applied to an object graph "
+"at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All "
+"operations, if enabled, are cascaded to associated entities reachable when "
+"the operation is executed. However, <literal>save-update</literal> and "
+"<literal>delete-orphan</literal> are transitive for all associated entities "
+"reachable during flush of the <literal>Session</literal>."
+msgstr ""
+"最后,注意操作的级联可能是在<emphasis>调用期(call time)</emphasis>或者"
+"<emphasis>写入期(flush time)</emphasis>作用到对象图上的。所有的操作,如果允"
+"许,都在操作被执行的时候级联到可触及的关联实体上。然而,<literal>save-upate</"
+"literal> 和 <literal>delete-orphan</literal> 是在<literal>Session</literal> "
+"flush 的时候才作用到所有可触及的被关联对象上的。 "
 
 #. Tag: title
 #, no-c-format
@@ -752,13 +1492,32 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate requires a rich meta-level model of all entity and value types. This model can be useful to the application itself. For example, the application might use Hibernate's metadata to implement a \"smart\" deep-copy algorithm that understands which objects should be copied (eg. mutable value types) and which objects that should not (e.g. immutable value types and, possibly, associated entities)."
-msgstr "Hibernate 中有一个非常丰富的元级别(meta-level)的模型,含有所有的实体和值类型数据的元数据。 有时这个模型对应用程序本身也会非常有用。比如说,应用程序可能在实现一种“智能”的深度拷贝算法时,通过使用 Hibernate 的元数据来了解哪些对象应该被拷贝(比如,可变的值类型数据),那些不应该(不可变的值类型数据,也许还有某些被关联的实体)。 "
+msgid ""
+"Hibernate requires a rich meta-level model of all entity and value types. "
+"This model can be useful to the application itself. For example, the "
+"application might use Hibernate's metadata to implement a \"smart\" deep-"
+"copy algorithm that understands which objects should be copied (eg. mutable "
+"value types) and which objects that should not (e.g. immutable value types "
+"and, possibly, associated entities)."
+msgstr ""
+"Hibernate 中有一个非常丰富的元级别(meta-level)的模型,含有所有的实体和值类"
+"型数据的元数据。 有时这个模型对应用程序本身也会非常有用。比如说,应用程序可能"
+"在实现一种“智能”的深度拷贝算法时,通过使用 Hibernate 的元数据来了解哪些对象应"
+"该被拷贝(比如,可变的值类型数据),那些不应该(不可变的值类型数据,也许还有"
+"某些被关联的实体)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate exposes metadata via the <literal>ClassMetadata</literal> and <literal>CollectionMetadata</literal> interfaces and the <literal>Type</literal> hierarchy. Instances of the metadata interfaces can be obtained from the <literal>SessionFactory</literal>."
-msgstr "Hibernate 提供了 <literal>ClassMetadata</literal> 接口,<literal>CollectionMetadata</literal> 接口和 <literal>Type</literal> 层次体系来访问元数据。可以通过  <literal>SessionFactory</literal> 获取元数据接口的实例。 "
+msgid ""
+"Hibernate exposes metadata via the <literal>ClassMetadata</literal> and "
+"<literal>CollectionMetadata</literal> interfaces and the <literal>Type</"
+"literal> hierarchy. Instances of the metadata interfaces can be obtained "
+"from the <literal>SessionFactory</literal>."
+msgstr ""
+"Hibernate 提供了 <literal>ClassMetadata</literal> 接口,"
+"<literal>CollectionMetadata</literal> 接口和 <literal>Type</literal> 层次体系"
+"来访问元数据。可以通过  <literal>SessionFactory</literal> 获取元数据接口的实"
+"例。 "
 
 #~ msgid ""
 #~ "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
@@ -772,6 +1531,7 @@
 #~ "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"
@@ -788,8 +1548,10 @@
 #~ "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"
@@ -800,6 +1562,7 @@
 #~ "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"
@@ -810,6 +1573,7 @@
 #~ "// 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"
@@ -824,10 +1588,12 @@
 #~ "    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"
@@ -836,6 +1602,7 @@
 #~ "<![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"
@@ -888,6 +1655,7 @@
 #~ "    \"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\")."
@@ -916,6 +1684,7 @@
 #~ "        break;\n"
 #~ "    }\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
 #~ "            \"select kitten, mother from Cat kitten join kitten.mother "
@@ -942,6 +1711,7 @@
 #~ "    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 "
@@ -972,6 +1742,7 @@
 #~ "    Integer count = (Integer) row[2];\n"
 #~ "    .....\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[//named parameter (preferred)\n"
 #~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
@@ -984,6 +1755,7 @@
 #~ "\");\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"
@@ -994,6 +1766,7 @@
 #~ "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"
@@ -1012,6 +1785,7 @@
 #~ "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"
@@ -1022,6 +1796,7 @@
 #~ "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"
@@ -1072,6 +1847,7 @@
 #~ "\n"
 #~ "}\n"
 #~ "cats.close()]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
 #~ "    from eg.DomesticCat as cat\n"
@@ -1084,6 +1860,7 @@
 #~ "        where cat.name = ?\n"
 #~ "        and cat.weight > ?\n"
 #~ "] ]></query>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
 #~ "q.setString(0, name);\n"
@@ -1094,6 +1871,7 @@
 #~ "q.setString(0, name);\n"
 #~ "q.setInt(1, minWeight);\n"
 #~ "List cats = q.list();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Collection blackKittens = session.createFilter(\n"
 #~ "    pk.getKittens(), \n"
@@ -1108,6 +1886,7 @@
 #~ "    .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
 #~ "    .list()\n"
 #~ ");]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
 #~ "    pk.getKittens(), \n"
@@ -1118,6 +1897,7 @@
 #~ "    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"
@@ -1128,6 +1908,7 @@
 #~ "    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"
@@ -1138,6 +1919,7 @@
 #~ "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"
@@ -1148,6 +1930,7 @@
 #~ "{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"
@@ -1164,6 +1947,7 @@
 #~ "    \"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"
@@ -1176,6 +1960,7 @@
 #~ "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"
@@ -1200,6 +1985,7 @@
 #~ "// 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"
@@ -1214,6 +2000,7 @@
 #~ "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"
@@ -1240,8 +2027,10 @@
 #~ "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"
@@ -1270,6 +2059,7 @@
 #~ "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
 #~ "tx2.commit();\n"
 #~ "session2.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[sess = sf.openSession();\n"
 #~ "Transaction tx = sess.beginTransaction();\n"
@@ -1302,12 +2092,15 @@
 #~ "...\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"
@@ -1340,4 +2133,3 @@
 #~ "        namedValues.put( propertyNames[i], propertyValues[i] );\n"
 #~ "    }\n"
 #~ "}]]>"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/toolset_guide.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -79,11 +79,6 @@
 
 #. Tag: para
 #, 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."
@@ -380,9 +375,9 @@
 msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>SQL column type</literal>"
-msgstr "<literal>SQL column type</literal>"
+msgstr "<literal>sql-type</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -521,9 +516,9 @@
 msgstr "不执行在数据库中运行的步骤 "
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--output=my_schema.ddl</literal>"
-msgstr "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>scale</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -531,7 +526,7 @@
 msgstr "把输出的 ddl 脚本输出到一个文件"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
 msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
 
@@ -541,9 +536,9 @@
 msgstr "选择 <literal>NamingStrategy</literal>"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>--config=hibernate.cfg.xml</literal>"
-msgstr "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -956,9 +951,17 @@
 #~ msgid "foreign-key"
 #~ msgstr "foreign-key"
 
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "foreign-key"
+
 #~ msgid "sql-type"
 #~ msgstr "sql-type"
 
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "<literal>SQL column type</literal>"
+
 #~ msgid "default"
 #~ msgstr "default"
 
@@ -1003,6 +1006,14 @@
 #~ msgid "--text"
 #~ msgstr "--text"
 
+#, fuzzy
+#~ msgid "--output=my_schema.ddl"
+#~ msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#, fuzzy
+#~ msgid "--config=hibernate.cfg.xml"
+#~ msgstr "<literal>--config=hibernate.cfg.xml</literal>"
+
 #~ msgid "--properties=hibernate.properties"
 #~ msgstr "--properties=hibernate.properties"
 
@@ -1020,6 +1031,10 @@
 #~ "Configuration cfg = ....;\n"
 #~ "new SchemaExport(cfg).create(false, true);"
 
+#, fuzzy
+#~ msgid "hibernate.connection.driver_class"
+#~ msgstr "hibernate.connection.url"
+
 #~ msgid "hibernate.connection.url"
 #~ msgstr "hibernate.connection.url"
 
@@ -1143,3 +1158,6 @@
 #~ "        &lt;/fileset&gt;\n"
 #~ "    &lt;/schemaupdate&gt;\n"
 #~ "&lt;/target&gt;"
+
+#~ msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+#~ msgstr "<!-- <emphasis>Ant Tasks:</emphasis> -->"

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/transactions.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -21,23 +21,54 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The most important point about Hibernate and concurrency control is that it is easy to understand. Hibernate directly uses JDBC connections and JTA resources without adding any additional locking behavior. It is recommended that you spend some time with the JDBC, ANSI, and transaction isolation specification of your database management system."
-msgstr "Hibernate 的事务和并发控制很容易掌握。Hibernate 直接使用 JDBC 连接和 JTA 资源,不添加任何附加锁定行为。我们强烈推荐你花点时间了解 JDBC 编程,ANSI SQL 查询语言和你使用的数据库系统的事务隔离规范。 "
+msgid ""
+"The most important point about Hibernate and concurrency control is that it "
+"is easy to understand. Hibernate directly uses JDBC connections and JTA "
+"resources without adding any additional locking behavior. It is recommended "
+"that you spend some time with the JDBC, ANSI, and transaction isolation "
+"specification of your database management system."
+msgstr ""
+"Hibernate 的事务和并发控制很容易掌握。Hibernate 直接使用 JDBC 连接和 JTA 资"
+"源,不添加任何附加锁定行为。我们强烈推荐你花点时间了解 JDBC 编程,ANSI SQL 查"
+"询语言和你使用的数据库系统的事务隔离规范。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate does not lock objects in memory. Your application can expect the behavior as defined by the isolation level of your database transactions. Through <literal>Session</literal>, which is also a transaction-scoped cache, Hibernate provides repeatable reads for lookup by identifier and entity queries and not reporting queries that return scalar values."
-msgstr "Hibernate 不锁定内存中的对象。你的应用程序会按照你的数据库事务的隔离级别规定的那样运作。幸亏有了 <literal>Session</literal>,使得 Hibernate 通过标识符查找,和实体查询(不是返回标量值的报表查询)提供了可重复的读取(Repeatable reads)功能,<literal>Session</literal> 同时也是事务范围内的缓存(cache)。 "
+msgid ""
+"Hibernate does not lock objects in memory. Your application can expect the "
+"behavior as defined by the isolation level of your database transactions. "
+"Through <literal>Session</literal>, which is also a transaction-scoped "
+"cache, Hibernate provides repeatable reads for lookup by identifier and "
+"entity queries and not reporting queries that return scalar values."
+msgstr ""
+"Hibernate 不锁定内存中的对象。你的应用程序会按照你的数据库事务的隔离级别规定"
+"的那样运作。幸亏有了 <literal>Session</literal>,使得 Hibernate 通过标识符查"
+"找,和实体查询(不是返回标量值的报表查询)提供了可重复的读取(Repeatable "
+"reads)功能,<literal>Session</literal> 同时也是事务范围内的缓存(cache)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "In addition to versioning for automatic optimistic concurrency control, Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> syntax, a (minor) API for pessimistic locking of rows. Optimistic concurrency control and this API are discussed later in this chapter."
-msgstr "除了对自动乐观并发控制提供版本管理,针对行级悲观锁定,Hibernate 也提供了辅助的(较小的)API,它使用了 <literal>SELECT FOR UPDATE</literal> 的 SQL 语法。本章后面会讨论乐观并发控制和这个API。 "
+msgid ""
+"In addition to versioning for automatic optimistic concurrency control, "
+"Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> "
+"syntax, a (minor) API for pessimistic locking of rows. Optimistic "
+"concurrency control and this API are discussed later in this chapter."
+msgstr ""
+"除了对自动乐观并发控制提供版本管理,针对行级悲观锁定,Hibernate 也提供了辅助"
+"的(较小的)API,它使用了 <literal>SELECT FOR UPDATE</literal> 的 SQL 语法。"
+"本章后面会讨论乐观并发控制和这个API。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The discussion of concurrency control in Hibernate begins with the granularity of <literal>Configuration</literal>, <literal>SessionFactory</literal>, and <literal>Session</literal>, as well as database transactions and long conversations."
-msgstr "我们从 <literal>Configuration</literal>层、<literal>SessionFactory</literal> 层,和 <literal>Session</literal> 层开始讨论 Hibernate 的并行控制、数据库事务和应用程序的长事务。 "
+msgid ""
+"The discussion of concurrency control in Hibernate begins with the "
+"granularity of <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal>, and <literal>Session</literal>, as well as database transactions "
+"and long conversations."
+msgstr ""
+"我们从 <literal>Configuration</literal>层、<literal>SessionFactory</literal> "
+"层,和 <literal>Session</literal> 层开始讨论 Hibernate 的并行控制、数据库事务"
+"和应用程序的长事务。 "
 
 #. Tag: title
 #, no-c-format
@@ -46,23 +77,58 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe object, intended to be shared by all application threads. It is created once, usually on application startup, from a <literal>Configuration</literal> instance."
-msgstr "<literal>SessionFactory</literal> 对象的创建代价很昂贵,它是线程安全的对象,它为所有的应用程序线程所共享。它只创建一次,通常是在应用程序启动的时候,由一个 <literal>Configuraion</literal> 的实例来创建。 "
+msgid ""
+"A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
+"object, intended to be shared by all application threads. It is created "
+"once, usually on application startup, from a <literal>Configuration</"
+"literal> instance."
+msgstr ""
+"<literal>SessionFactory</literal> 对象的创建代价很昂贵,它是线程安全的对象,"
+"它为所有的应用程序线程所共享。它只创建一次,通常是在应用程序启动的时候,由一"
+"个 <literal>Configuraion</literal> 的实例来创建。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A <literal>Session</literal> is an inexpensive, non-threadsafe object that should be used once and then discarded for: a single request, a conversation or a single unit of work. A <literal>Session</literal> will not obtain a JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, unless it is needed. It will not consume any resources until used."
-msgstr "<literal>Session</literal> 对象的创建代价比较小,是非线程安全的,对于单个请求,单个会话、单个的 工作单元而言,它只被使用一次,然后就丢弃。只有在需要的时候,一个 <literal>Session</literal> 对象 才会获取一个 JDBC 的 <literal>Connection</literal>(或一个<literal>Datasource</literal>)对象,因此假若不使用的时候它不消费任何资源。 "
+msgid ""
+"A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
+"should be used once and then discarded for: a single request, a conversation "
+"or a single unit of work. A <literal>Session</literal> will not obtain a "
+"JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, "
+"unless it is needed. It will not consume any resources until used."
+msgstr ""
+"<literal>Session</literal> 对象的创建代价比较小,是非线程安全的,对于单个请"
+"求,单个会话、单个的 工作单元而言,它只被使用一次,然后就丢弃。只有在需要的时"
+"候,一个 <literal>Session</literal> 对象 才会获取一个 JDBC 的 "
+"<literal>Connection</literal>(或一个<literal>Datasource</literal>)对象,因"
+"此假若不使用的时候它不消费任何资源。 "
 
 #. Tag: para
 #, no-c-format
-msgid "In order to reduce lock contention in the database, a database transaction has to be as short as possible. Long database transactions will prevent your application from scaling to a highly concurrent load. It is not recommended that you hold a database transaction open during user think time until the unit of work is complete."
-msgstr "此外我们还要考虑数据库事务。数据库事务应该尽可能的短,降低数据库中的锁争用。数据库长事务会阻止你的应用程序扩展到高的并发负载。因此,假若在用户思考期间让数据库事务开着,直到整个工作单元完成才关闭这个事务,这绝不是一个好的设计。 "
+msgid ""
+"In order to reduce lock contention in the database, a database transaction "
+"has to be as short as possible. Long database transactions will prevent your "
+"application from scaling to a highly concurrent load. It is not recommended "
+"that you hold a database transaction open during user think time until the "
+"unit of work is complete."
+msgstr ""
+"此外我们还要考虑数据库事务。数据库事务应该尽可能的短,降低数据库中的锁争用。"
+"数据库长事务会阻止你的应用程序扩展到高的并发负载。因此,假若在用户思考期间让"
+"数据库事务开着,直到整个工作单元完成才关闭这个事务,这绝不是一个好的设计。 "
 
 #. Tag: para
 #, no-c-format
-msgid "What is the scope of a unit of work? Can a single Hibernate <literal>Session</literal> span several database transactions, or is this a one-to-one relationship of scopes? When should you open and close a <literal>Session</literal> and how do you demarcate the database transaction boundaries? These questions are addressed in the following sections."
-msgstr "一个操作单元(Unit of work)的范围是多大?单个的 Hibernate <literal>Session</literal> 能跨越多个数据库事务吗?还是一个 <literal>Session</literal> 的作用范围对应一个数据库事务的范围?应该何时打开 <literal>Session</literal>,何时关闭 <literal>Session</literal>,你又如何划分数据库事务的边界呢?我们将在后续章节解决这些问题。"
+msgid ""
+"What is the scope of a unit of work? Can a single Hibernate "
+"<literal>Session</literal> span several database transactions, or is this a "
+"one-to-one relationship of scopes? When should you open and close a "
+"<literal>Session</literal> and how do you demarcate the database transaction "
+"boundaries? These questions are addressed in the following sections."
+msgstr ""
+"一个操作单元(Unit of work)的范围是多大?单个的 Hibernate <literal>Session</"
+"literal> 能跨越多个数据库事务吗?还是一个 <literal>Session</literal> 的作用范"
+"围对应一个数据库事务的范围?应该何时打开 <literal>Session</literal>,何时关"
+"闭 <literal>Session</literal>,你又如何划分数据库事务的边界呢?我们将在后续章"
+"节解决这些问题。"
 
 #. Tag: title
 #, no-c-format
@@ -70,34 +136,138 @@
 msgstr "操作单元(Unit of work)"
 
 #. Tag: para
-#, no-c-format
-msgid "First, let's define a unit of work. A unit of work is a design pattern described by Martin Fowler as <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> In other words, its a series of operations we wish to carry out against the database together. Basically, it is a transaction, though fulfilling a unit of work will often span multiple physical database transactions (see <xref linkend=\"transactions-basics-apptx\" />). So really we are talking about a more abstract notion of a transaction. The term \"business transaction\" is also sometimes used in lieu of unit of work."
-msgstr "首先,让我们定义一个工作单元(unit of work)。工作单元是一个设计模式,Martin Fowler 把它描述为 <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> 换句话说,它是我们希望对数据库执行的一系列操作。基本上,它是一个事务,虽然完成一个工作单元经常将跨越多个物理数据库事务(请参考 <xref linkend=\"transactions-basics-apptx\"/>)。所以,实际上我们在讨论一个更抽象的事务概念。术语 \"business transaction\" 有时也和工作单元一起使用。 "
+#, fuzzy, no-c-format
+msgid ""
+"First, let's define a unit of work. A unit of work is a design pattern "
+"described by Martin Fowler as <quote> [maintaining] a list of objects "
+"affected by a business transaction and coordinates the writing out of "
+"changes and the resolution of concurrency problems. </quote><citation>PoEAA</"
+"citation> In other words, its a series of operations we wish to carry out "
+"against the database together. Basically, it is a transaction, though "
+"fulfilling a unit of work will often span multiple physical database "
+"transactions (see <xref linkend=\"transactions-basics-apptx\" />). So really "
+"we are talking about a more abstract notion of a transaction. The term "
+"\"business transaction\" is also sometimes used in lieu of unit of work."
+msgstr ""
+"首先,让我们定义一个工作单元(unit of work)。工作单元是一个设计模式,Martin "
+"Fowler 把它描述为 <quote> [maintaining] a list of objects affected by a "
+"business transaction and coordinates the writing out of changes and the "
+"resolution of concurrency problems. </quote><citation>PoEAA</citation> 换句话"
+"说,它是我们希望对数据库执行的一系列操作。基本上,它是一个事务,虽然完成一个"
+"工作单元经常将跨越多个物理数据库事务(请参考 <xref linkend=\"transactions-"
+"basics-apptx\"/>)。所以,实际上我们在讨论一个更抽象的事务概念。术语 "
+"\"business transaction\" 有时也和工作单元一起使用。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Do not use the <emphasis>session-per-operation</emphasis> antipattern: do not open and close a <literal>Session</literal> for every simple database call in a single thread. The same is true for database transactions. Database calls in an application are made using a planned sequence; they are grouped into atomic units of work. This also means that auto-commit after every single SQL statement is useless in an application as this mode is intended for ad-hoc SQL console work. Hibernate disables, or expects the application server to disable, auto-commit mode immediately. Database transactions are never optional. All communication with a database has to occur inside a transaction. Auto-commit behavior for reading data should be avoided, as many small transactions are unlikely to perform better than one clearly defined unit of work. The latter is also more maintainable and extensible."
-msgstr "首先,别用 <emphasis>session-per-operation</emphasis> 这种反模式了,也就是说,在单个线程中, 不要因为一次简单的数据库调用,就打开和关闭一次 <literal>Session</literal>!数据库事务也是如此。 应用程序中的数据库调用是按照计划好的次序,分组为原子的操作单元。(注意,这也意味着,应用程 序中,在单个的 SQL 语句发送之后,自动事务提交(auto-commit)模式失效了。这种模式专门为SQL控制台操作设计的。 Hibernate 禁止立即自动事务提交模式,或者期望应用服务器禁止立即自动事务提交模式。)数据库事务绝不是可有可无的,任何与数据库之间的通讯都必须在某个事务中进行,不管你是在读还是在写数据。对读数据而言,应该避免 auto-commit 行为,因为很多小的事务比一个清晰定义的工作单元性能差。后者也更容易维护和扩展。 "
+msgid ""
+"Do not use the <emphasis>session-per-operation</emphasis> antipattern: do "
+"not open and close a <literal>Session</literal> for every simple database "
+"call in a single thread. The same is true for database transactions. "
+"Database calls in an application are made using a planned sequence; they are "
+"grouped into atomic units of work. This also means that auto-commit after "
+"every single SQL statement is useless in an application as this mode is "
+"intended for ad-hoc SQL console work. Hibernate disables, or expects the "
+"application server to disable, auto-commit mode immediately. Database "
+"transactions are never optional. All communication with a database has to "
+"occur inside a transaction. Auto-commit behavior for reading data should be "
+"avoided, as many small transactions are unlikely to perform better than one "
+"clearly defined unit of work. The latter is also more maintainable and "
+"extensible."
+msgstr ""
+"首先,别用 <emphasis>session-per-operation</emphasis> 这种反模式了,也就是"
+"说,在单个线程中, 不要因为一次简单的数据库调用,就打开和关闭一次 "
+"<literal>Session</literal>!数据库事务也是如此。 应用程序中的数据库调用是按照"
+"计划好的次序,分组为原子的操作单元。(注意,这也意味着,应用程 序中,在单个"
+"的 SQL 语句发送之后,自动事务提交(auto-commit)模式失效了。这种模式专门为SQL"
+"控制台操作设计的。 Hibernate 禁止立即自动事务提交模式,或者期望应用服务器禁止"
+"立即自动事务提交模式。)数据库事务绝不是可有可无的,任何与数据库之间的通讯都"
+"必须在某个事务中进行,不管你是在读还是在写数据。对读数据而言,应该避免 auto-"
+"commit 行为,因为很多小的事务比一个清晰定义的工作单元性能差。后者也更容易维护"
+"和扩展。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The most common pattern in a multi-user client/server application is <emphasis>session-per-request</emphasis>. In this model, a request from the client is sent to the server, where the Hibernate persistence layer runs. A new Hibernate <literal>Session</literal> is opened, and all database operations are executed in this unit of work. On completion of the work, and once the response for the client has been prepared, the session is flushed and closed. Use a single database transaction to serve the clients request, starting and committing it when you open and close the <literal>Session</literal>. The relationship between the two is one-to-one and this model is a perfect fit for many applications."
-msgstr "在多用户的 client/server 应用程序中,最常用的模式是 <emphasis>每个请求一个会话(session-per-request)</emphasis>。 在这种模式下,来自客户端的请求被发送到服务器端(即 Hibernate 持久化层运行的地方),一个新的 Hibernate <literal>Session</literal> 被打开,并且执行这个操作单元中所有的数据库操作。一旦操作完成(同时对客户端的响应也准备就绪),session 被同步,然后关闭。你也可以使用单 个数据库事务来处理客户端请求,在你打开 <literal>Session</literal> 之后启动事务,在你关闭 <literal>Session</literal> 之前提交事务。会话和请求之间的关系是一对一的关系,这种模式对 于大多数应用程序来说是很棒的。 "
+msgid ""
+"The most common pattern in a multi-user client/server application is "
+"<emphasis>session-per-request</emphasis>. In this model, a request from the "
+"client is sent to the server, where the Hibernate persistence layer runs. A "
+"new Hibernate <literal>Session</literal> is opened, and all database "
+"operations are executed in this unit of work. On completion of the work, and "
+"once the response for the client has been prepared, the session is flushed "
+"and closed. Use a single database transaction to serve the clients request, "
+"starting and committing it when you open and close the <literal>Session</"
+"literal>. The relationship between the two is one-to-one and this model is a "
+"perfect fit for many applications."
+msgstr ""
+"在多用户的 client/server 应用程序中,最常用的模式是 <emphasis>每个请求一个会"
+"话(session-per-request)</emphasis>。 在这种模式下,来自客户端的请求被发送到"
+"服务器端(即 Hibernate 持久化层运行的地方),一个新的 Hibernate "
+"<literal>Session</literal> 被打开,并且执行这个操作单元中所有的数据库操作。一"
+"旦操作完成(同时对客户端的响应也准备就绪),session 被同步,然后关闭。你也可"
+"以使用单 个数据库事务来处理客户端请求,在你打开 <literal>Session</literal> 之"
+"后启动事务,在你关闭 <literal>Session</literal> 之前提交事务。会话和请求之间"
+"的关系是一对一的关系,这种模式对 于大多数应用程序来说是很棒的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The challenge lies in the implementation. Hibernate provides built-in management of the \"current session\" to simplify this pattern. Start a transaction when a server request has to be processed, and end the transaction before the response is sent to the client. Common solutions are <literal>ServletFilter</literal>, AOP interceptor with a pointcut on the service methods, or a proxy/interception container. An EJB container is a standardized way to implement cross-cutting aspects such as transaction demarcation on EJB session beans, declaratively with CMT. If you use programmatic transaction demarcation, for ease of use and code portability use the Hibernate <literal>Transaction</literal> API shown later in this chapter."
-msgstr "实现才是真正的挑战。Hibernate 内置了对\"当前 session(current session)\" 的管理,用于简化此模式。你要做的一切就是在服务器端要处理请求的时候,开启事务,在响应发送给客户之前结束事务。你可以用任何方式来完成这一操作,通常的方案有 <literal>ServletFilter</literal>,在 service 方法中进行 pointcut 的 AOP 拦截器,或者 proxy/interception 容器。EJB 容器是实现横切诸如 EJB session bean 上的事务分界,用 CMT 对事务进行声明等方面的标准手段。假若你决定使用编程式的事务分界,请参考本章后面讲到的 Hibernate <literal>Transaction</literal> API,这对易用性和代码可移植性都有好处。 "
+msgid ""
+"The challenge lies in the implementation. Hibernate provides built-in "
+"management of the \"current session\" to simplify this pattern. Start a "
+"transaction when a server request has to be processed, and end the "
+"transaction before the response is sent to the client. Common solutions are "
+"<literal>ServletFilter</literal>, AOP interceptor with a pointcut on the "
+"service methods, or a proxy/interception container. An EJB container is a "
+"standardized way to implement cross-cutting aspects such as transaction "
+"demarcation on EJB session beans, declaratively with CMT. If you use "
+"programmatic transaction demarcation, for ease of use and code portability "
+"use the Hibernate <literal>Transaction</literal> API shown later in this "
+"chapter."
+msgstr ""
+"实现才是真正的挑战。Hibernate 内置了对\"当前 session(current session)\" 的"
+"管理,用于简化此模式。你要做的一切就是在服务器端要处理请求的时候,开启事务,"
+"在响应发送给客户之前结束事务。你可以用任何方式来完成这一操作,通常的方案有 "
+"<literal>ServletFilter</literal>,在 service 方法中进行 pointcut 的 AOP 拦截"
+"器,或者 proxy/interception 容器。EJB 容器是实现横切诸如 EJB session bean 上"
+"的事务分界,用 CMT 对事务进行声明等方面的标准手段。假若你决定使用编程式的事务"
+"分界,请参考本章后面讲到的 Hibernate <literal>Transaction</literal> API,这对"
+"易用性和代码可移植性都有好处。 "
 
 #. Tag: para
-#, 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\"/>。 "
+#, 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\"/"
+">。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can extend the scope of a <literal>Session</literal> and database transaction until the \"view has been rendered\". This is especially useful in servlet applications that utilize a separate rendering phase after the request has been processed. Extending the database transaction until view rendering, is achieved by implementing your own interceptor. However, this will be difficult if you rely on EJBs with container-managed transactions. A transaction will be completed when an EJB method returns, before rendering of any view can start. See the Hibernate website and forum for tips and examples relating to this <emphasis>Open Session in View</emphasis> pattern."
-msgstr "有时,将 <literal>Session</literal> 和数据库事务的边界延伸到\"展示层被渲染后\"会带来便利。有些 serlvet 应用程序在对请求进行处理后,有个单独的渲染期,这种延伸对这种程序特别有用。假若你实现你自己的拦截器,把事务边界延伸到展示层渲染结束后非常容易。然而,假若你依赖有容器管理事务的 EJB,这就不太容易了,因为事务会在 EJB 方法返回后结束,而那是在任何展示层渲染开始之前。请访问  Hibernate 网站和论坛,你可以找到 <emphasis>Open Session in View</emphasis> 这一模式的提示和示例。 "
+msgid ""
+"You can extend the scope of a <literal>Session</literal> and database "
+"transaction until the \"view has been rendered\". This is especially useful "
+"in servlet applications that utilize a separate rendering phase after the "
+"request has been processed. Extending the database transaction until view "
+"rendering, is achieved by implementing your own interceptor. However, this "
+"will be difficult if you rely on EJBs with container-managed transactions. A "
+"transaction will be completed when an EJB method returns, before rendering "
+"of any view can start. See the Hibernate website and forum for tips and "
+"examples relating to this <emphasis>Open Session in View</emphasis> pattern."
+msgstr ""
+"有时,将 <literal>Session</literal> 和数据库事务的边界延伸到\"展示层被渲染后"
+"\"会带来便利。有些 serlvet 应用程序在对请求进行处理后,有个单独的渲染期,这种"
+"延伸对这种程序特别有用。假若你实现你自己的拦截器,把事务边界延伸到展示层渲染"
+"结束后非常容易。然而,假若你依赖有容器管理事务的 EJB,这就不太容易了,因为事"
+"务会在 EJB 方法返回后结束,而那是在任何展示层渲染开始之前。请访问  Hibernate "
+"网站和论坛,你可以找到 <emphasis>Open Session in View</emphasis> 这一模式的提"
+"示和示例。 "
 
 #. Tag: title
 #, no-c-format
@@ -106,53 +276,141 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The session-per-request pattern is not the only way of designing units of work. Many business processes require a whole series of interactions with the user that are interleaved with database accesses. In web and enterprise applications, it is not acceptable for a database transaction to span a user interaction. Consider the following example:"
-msgstr "session-per-request 模式不仅仅是一个可以用来设计操作单元的有用概念。很多业务处理都需 要一系列完整的与用户之间的交互,而这些用户是指对数据库有交叉访问的用户。在基于 web 的应用和企业应用中,跨用户交互的数据库事务是无法接受的。考虑下面的例子: "
+msgid ""
+"The session-per-request pattern is not the only way of designing units of "
+"work. Many business processes require a whole series of interactions with "
+"the user that are interleaved with database accesses. In web and enterprise "
+"applications, it is not acceptable for a database transaction to span a user "
+"interaction. Consider the following example:"
+msgstr ""
+"session-per-request 模式不仅仅是一个可以用来设计操作单元的有用概念。很多业务"
+"处理都需 要一系列完整的与用户之间的交互,而这些用户是指对数据库有交叉访问的用"
+"户。在基于 web 的应用和企业应用中,跨用户交互的数据库事务是无法接受的。考虑下"
+"面的例子: "
 
 #. Tag: para
 #, no-c-format
-msgid "The first screen of a dialog opens. The data seen by the user has been loaded in a particular <literal>Session</literal> and database transaction. The user is free to modify the objects."
-msgstr "在界面的第一屏,打开对话框,用户所看到的数据是被一个特定的 <literal>Session</literal> 和数据 库事务载入(load)的。用户可以随意修改对话框中的数据对象。 "
+msgid ""
+"The first screen of a dialog opens. The data seen by the user has been "
+"loaded in a particular <literal>Session</literal> and database transaction. "
+"The user is free to modify the objects."
+msgstr ""
+"在界面的第一屏,打开对话框,用户所看到的数据是被一个特定的 <literal>Session</"
+"literal> 和数据 库事务载入(load)的。用户可以随意修改对话框中的数据对象。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The user clicks \"Save\" after 5 minutes and expects their modifications to be made persistent. The user also expects that they were the only person editing this information and that no conflicting modification has occurred."
-msgstr "5 分钟后,用户点击“保存”,期望所做出的修改被持久化;同时他也期望自己是唯一修改这个信息的人,不会出现修改冲突。 "
+msgid ""
+"The user clicks \"Save\" after 5 minutes and expects their modifications to "
+"be made persistent. The user also expects that they were the only person "
+"editing this information and that no conflicting modification has occurred."
+msgstr ""
+"5 分钟后,用户点击“保存”,期望所做出的修改被持久化;同时他也期望自己是唯一修"
+"改这个信息的人,不会出现修改冲突。 "
 
 #. Tag: para
 #, no-c-format
-msgid "From the point of view of the user, we call this unit of work a long-running <emphasis>conversation</emphasis> or <emphasis>application transaction</emphasis>. There are many ways to implement this in your application."
-msgstr "从用户的角度来看,我们把这个操作单元称为长时间运行的<emphasis>对话</emphasis>(conversation),或者<emphasis>应用事务</emphasis>(application transaction)。在你的应用程序中,可以有很多种方法来实现它。"
+msgid ""
+"From the point of view of the user, we call this unit of work a long-running "
+"<emphasis>conversation</emphasis> or <emphasis>application transaction</"
+"emphasis>. There are many ways to implement this in your application."
+msgstr ""
+"从用户的角度来看,我们把这个操作单元称为长时间运行的<emphasis>对话</emphasis>"
+"(conversation),或者<emphasis>应用事务</emphasis>(application "
+"transaction)。在你的应用程序中,可以有很多种方法来实现它。"
 
 #. Tag: para
 #, no-c-format
-msgid "A first naive implementation might keep the <literal>Session</literal> and database transaction open during user think time, with locks held in the database to prevent concurrent modification and to guarantee isolation and atomicity. This is an anti-pattern, since lock contention would not allow the application to scale with the number of concurrent users."
-msgstr "头一个幼稚的做法是,在用户思考的过程中,保持 <literal>Session</literal> 和数据库事务是打开的,保持数据库锁定,以阻止并发修改,从而保证数据库事务隔离级别和原子操作。这种方式当然是一个反模式,因为锁争用会导致应用程序无法扩展并发用户的数目。 "
+msgid ""
+"A first naive implementation might keep the <literal>Session</literal> and "
+"database transaction open during user think time, with locks held in the "
+"database to prevent concurrent modification and to guarantee isolation and "
+"atomicity. This is an anti-pattern, since lock contention would not allow "
+"the application to scale with the number of concurrent users."
+msgstr ""
+"头一个幼稚的做法是,在用户思考的过程中,保持 <literal>Session</literal> 和数"
+"据库事务是打开的,保持数据库锁定,以阻止并发修改,从而保证数据库事务隔离级别"
+"和原子操作。这种方式当然是一个反模式,因为锁争用会导致应用程序无法扩展并发用"
+"户的数目。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You have to use several database transactions to implement the conversation. In this case, maintaining isolation of business processes becomes the partial responsibility of the application tier. A single conversation usually spans several database transactions. It will be atomic if only one of these database transactions (the last one) stores the updated data. All others simply read data (for example, in a wizard-style dialog spanning several request/response cycles). This is easier to implement than it might sound, especially if you utilize some of Hibernate's features:"
-msgstr "很明显,我们必须使用多个数据库事务来实现这个对话。在这个例子中,维护业务处理的 事务隔离变成了应用程序层的部分责任。一个对话通常跨越多个数据库事务。如果仅仅只有一个数据库事务(最后的那个事务)保存更新过的数据,而所有其他事务只是单纯的读取数据(例如在一个跨越多个请求/响应周期的向导风格的对话框中),那么应用程序事务将保证其原子性。这种方式比听起来还要容易实现,特别是当你使用了 Hibernate 的下述特性的时候: "
+msgid ""
+"You have to use several database transactions to implement the conversation. "
+"In this case, maintaining isolation of business processes becomes the "
+"partial responsibility of the application tier. A single conversation "
+"usually spans several database transactions. It will be atomic if only one "
+"of these database transactions (the last one) stores the updated data. All "
+"others simply read data (for example, in a wizard-style dialog spanning "
+"several request/response cycles). This is easier to implement than it might "
+"sound, especially if you utilize some of Hibernate's features:"
+msgstr ""
+"很明显,我们必须使用多个数据库事务来实现这个对话。在这个例子中,维护业务处理"
+"的 事务隔离变成了应用程序层的部分责任。一个对话通常跨越多个数据库事务。如果仅"
+"仅只有一个数据库事务(最后的那个事务)保存更新过的数据,而所有其他事务只是单"
+"纯的读取数据(例如在一个跨越多个请求/响应周期的向导风格的对话框中),那么应用"
+"程序事务将保证其原子性。这种方式比听起来还要容易实现,特别是当你使用了 "
+"Hibernate 的下述特性的时候: "
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic optimistic concurrency control for you. It can automatically detect if a concurrent modification occurred during user think time. Check for this at the end of the conversation."
-msgstr "<emphasis>自动版本化</emphasis>:Hibernate 能够自动进行乐观并发控制,如果在用户思考的过程中发生并发修改,Hibernate 能够自动检测到。一般我们只在对话结束时才检查。"
+msgid ""
+"<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic "
+"optimistic concurrency control for you. It can automatically detect if a "
+"concurrent modification occurred during user think time. Check for this at "
+"the end of the conversation."
+msgstr ""
+"<emphasis>自动版本化</emphasis>:Hibernate 能够自动进行乐观并发控制,如果在用"
+"户思考的过程中发生并发修改,Hibernate 能够自动检测到。一般我们只在对话结束时"
+"才检查。"
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>Detached Objects</emphasis>: if you decide to use the <emphasis>session-per-request</emphasis> pattern, all loaded instances will be in the detached state during user think time. Hibernate allows you to reattach the objects and persist the modifications. The pattern is called <emphasis>session-per-request-with-detached-objects</emphasis>. Automatic versioning is used to isolate concurrent modifications."
-msgstr "<emphasis>脱管对象</emphasis>(Detached Objects):如果你决定采用前面已经讨论过的  <emphasis>session-per-request</emphasis> 模式,所有载入的实例在用户思考的过程中都处于与 Session 脱离的状态。Hibernate 允许你把与 Session 脱离的对象重新关联到 Session 上,并且对修改进行持久化,这种模式被称为 <emphasis>session-per-request-with-detached-objects</emphasis>。自动版本化被用来隔离并发修改。"
+msgid ""
+"<emphasis>Detached Objects</emphasis>: if you decide to use the "
+"<emphasis>session-per-request</emphasis> pattern, all loaded instances will "
+"be in the detached state during user think time. Hibernate allows you to "
+"reattach the objects and persist the modifications. The pattern is called "
+"<emphasis>session-per-request-with-detached-objects</emphasis>. Automatic "
+"versioning is used to isolate concurrent modifications."
+msgstr ""
+"<emphasis>脱管对象</emphasis>(Detached Objects):如果你决定采用前面已经讨论"
+"过的  <emphasis>session-per-request</emphasis> 模式,所有载入的实例在用户思考"
+"的过程中都处于与 Session 脱离的状态。Hibernate 允许你把与 Session 脱离的对象"
+"重新关联到 Session 上,并且对修改进行持久化,这种模式被称为 "
+"<emphasis>session-per-request-with-detached-objects</emphasis>。自动版本化被"
+"用来隔离并发修改。"
 
 #. Tag: para
 #, no-c-format
-msgid "<emphasis>Extended (or Long) Session</emphasis>: the Hibernate <literal>Session</literal> can be disconnected from the underlying JDBC connection after the database transaction has been committed and reconnected when a new client request occurs. This pattern is known as <emphasis>session-per-conversation</emphasis> and makes even reattachment unnecessary. Automatic versioning is used to isolate concurrent modifications and the <literal>Session</literal> will not be allowed to be flushed automatically, but explicitly."
-msgstr "<emphasis>Extended (or Long) Session</emphasis>:Hibernate 的 <literal>Session</literal> 可以在数据库事务提交之后和底层的 JDBC 连接断开,当一个新的客户端请求到来的时候,它又重新连接上底层的 JDBC 连接。这种模式被称之为<emphasis>session-per-conversation</emphasis>,这种情况可 能会造成不必要的 Session 和 JDBC 连接的重新关联。自动版本化被用来隔离并发修改,<literal>Session</literal> 通常不允许自动 flush,而是显性地 flush。 "
+msgid ""
+"<emphasis>Extended (or Long) Session</emphasis>: the Hibernate "
+"<literal>Session</literal> can be disconnected from the underlying JDBC "
+"connection after the database transaction has been committed and reconnected "
+"when a new client request occurs. This pattern is known as <emphasis>session-"
+"per-conversation</emphasis> and makes even reattachment unnecessary. "
+"Automatic versioning is used to isolate concurrent modifications and the "
+"<literal>Session</literal> will not be allowed to be flushed automatically, "
+"but explicitly."
+msgstr ""
+"<emphasis>Extended (or Long) Session</emphasis>:Hibernate 的 "
+"<literal>Session</literal> 可以在数据库事务提交之后和底层的 JDBC 连接断开,当"
+"一个新的客户端请求到来的时候,它又重新连接上底层的 JDBC 连接。这种模式被称之"
+"为<emphasis>session-per-conversation</emphasis>,这种情况可 能会造成不必要的 "
+"Session 和 JDBC 连接的重新关联。自动版本化被用来隔离并发修改,"
+"<literal>Session</literal> 通常不允许自动 flush,而是显性地 flush。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Both <emphasis>session-per-request-with-detached-objects</emphasis> and <emphasis>session-per-conversation</emphasis> have advantages and disadvantages. These disadvantages are discussed later in this chapter in the context of optimistic concurrency control."
-msgstr "<emphasis>session-per-request-with-detached-objects</emphasis> 和  <emphasis>session-per-conversation</emphasis> 各有优缺点,我们在本章后面乐观并发控制那部分再进行讨论。 "
+msgid ""
+"Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
+"<emphasis>session-per-conversation</emphasis> have advantages and "
+"disadvantages. These disadvantages are discussed later in this chapter in "
+"the context of optimistic concurrency control."
+msgstr ""
+"<emphasis>session-per-request-with-detached-objects</emphasis> 和  "
+"<emphasis>session-per-conversation</emphasis> 各有优缺点,我们在本章后面乐观"
+"并发控制那部分再进行讨论。 "
 
 #. Tag: title
 #, no-c-format
@@ -161,8 +419,15 @@
 
 #. Tag: para
 #, no-c-format
-msgid "An application can concurrently access the same persistent state in two different <literal>Session</literal>s. However, an instance of a persistent class is never shared between two <literal>Session</literal> instances. It is for this reason that there are two different notions of identity:"
-msgstr "应用程序可能在两个不同的 <literal>Session</literal> 中并发访问同一持久化状态,但是,一个持久化类的实例无法在两个 <literal>Session</literal> 中共享。因此有两种不同的标识语义: "
+msgid ""
+"An application can concurrently access the same persistent state in two "
+"different <literal>Session</literal>s. However, an instance of a persistent "
+"class is never shared between two <literal>Session</literal> instances. It "
+"is for this reason that there are two different notions of identity:"
+msgstr ""
+"应用程序可能在两个不同的 <literal>Session</literal> 中并发访问同一持久化状"
+"态,但是,一个持久化类的实例无法在两个 <literal>Session</literal> 中共享。因"
+"此有两种不同的标识语义: "
 
 #. Tag: term
 #, no-c-format
@@ -170,7 +435,7 @@
 msgstr "数据库标识"
 
 #. Tag: para
-#, no-c-format
+#, fuzzy, no-c-format
 msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
 msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
 
@@ -186,18 +451,79 @@
 
 #. Tag: para
 #, no-c-format
-msgid "For objects attached to a <emphasis>particular</emphasis> <literal>Session</literal> (i.e., in the scope of a <literal>Session</literal>), the two notions are equivalent and JVM identity for database identity is guaranteed by Hibernate. While the application might concurrently access the \"same\" (persistent identity) business object in two different sessions, the two instances will actually be \"different\" (JVM identity). Conflicts are resolved using an optimistic approach and automatic versioning at flush/commit time."
-msgstr "对于那些关联到 <emphasis>特定</emphasis> <literal>Session</literal>(也就是在单个 <literal>Session</literal> 的范围内)上的对象来说,这两种标识的语义是等价的,与数据库标识对应的 JVM 标识是由 Hibernate 来保证的。不过,当应用程序在两个不同的 session 中并发访问具有同一持久化标识的业务对象实例的时候,这个业务对象的两个实例事实上是不相同的(从 JVM 识别来看)。这种冲突可以通过在同步和提交的时候使用自动版本化和乐观锁定方法来解决。 "
+msgid ""
+"For objects attached to a <emphasis>particular</emphasis> <literal>Session</"
+"literal> (i.e., in the scope of a <literal>Session</literal>), the two "
+"notions are equivalent and JVM identity for database identity is guaranteed "
+"by Hibernate. While the application might concurrently access the \"same"
+"\" (persistent identity) business object in two different sessions, the two "
+"instances will actually be \"different\" (JVM identity). Conflicts are "
+"resolved using an optimistic approach and automatic versioning at flush/"
+"commit time."
+msgstr ""
+"对于那些关联到 <emphasis>特定</emphasis> <literal>Session</literal>(也就是在"
+"单个 <literal>Session</literal> 的范围内)上的对象来说,这两种标识的语义是等"
+"价的,与数据库标识对应的 JVM 标识是由 Hibernate 来保证的。不过,当应用程序在"
+"两个不同的 session 中并发访问具有同一持久化标识的业务对象实例的时候,这个业务"
+"对象的两个实例事实上是不相同的(从 JVM 识别来看)。这种冲突可以通过在同步和提"
+"交的时候使用自动版本化和乐观锁定方法来解决。 "
 
 #. Tag: para
 #, no-c-format
-msgid "This approach leaves Hibernate and the database to worry about concurrency. It also provides the best scalability, since guaranteeing identity in single-threaded units of work means that it does not need expensive locking or other means of synchronization. The application does not need to synchronize on any business object, as long as it maintains a single thread per <literal>Session</literal>. Within a <literal>Session</literal> the application can safely use <literal>==</literal> to compare objects."
-msgstr "这种方式把关于并发的头疼问题留给了 Hibernate 和数据库;由于在单个线程内,操作单元中的对象识别不 需要代价昂贵的锁定或其他意义上的同步,因此它同时可以提供最好的可伸缩性。只要在单个线程只持有一个 <literal>Session</literal>,应用程序就不需要同步任何业务对象。在 <literal>Session</literal> 的范围内,应用程序可以放心的使用 <literal>==</literal> 进行对象比较。 "
+msgid ""
+"This approach leaves Hibernate and the database to worry about concurrency. "
+"It also provides the best scalability, since guaranteeing identity in single-"
+"threaded units of work means that it does not need expensive locking or "
+"other means of synchronization. The application does not need to synchronize "
+"on any business object, as long as it maintains a single thread per "
+"<literal>Session</literal>. Within a <literal>Session</literal> the "
+"application can safely use <literal>==</literal> to compare objects."
+msgstr ""
+"这种方式把关于并发的头疼问题留给了 Hibernate 和数据库;由于在单个线程内,操作"
+"单元中的对象识别不 需要代价昂贵的锁定或其他意义上的同步,因此它同时可以提供最"
+"好的可伸缩性。只要在单个线程只持有一个 <literal>Session</literal>,应用程序就"
+"不需要同步任何业务对象。在 <literal>Session</literal> 的范围内,应用程序可以"
+"放心的使用 <literal>==</literal> 进行对象比较。 "
 
 #. Tag: para
 #, no-c-format
-msgid "However, an application that uses <literal>==</literal> outside of a <literal>Session</literal> might produce unexpected results. This might occur even in some unexpected places. For example, if you put two detached instances into the same <literal>Set</literal>, both might have the same database identity (i.e., they represent the same row). JVM identity, however, is by definition not guaranteed for instances in a detached state. The developer has to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods in persistent classes and implement their own notion of object equality. There is one caveat: never use the database identifier to implement equality. Use a business key that is a combination of unique, usually immutable, attributes. The database identifier will change if a transient object is made persistent. If the transient instance (usually together with detached instances) is held in a <literal>Set</literal>, changing the hashcode 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 对象标识和判等行为如何实现的问题。 "
+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 对象标识和"
+"判等行为如何实现的问题。 "
 
 #. Tag: title
 #, no-c-format
@@ -206,23 +532,79 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> or <emphasis>session-per-application</emphasis> (there are, however, rare exceptions to this rule). Some of the following issues might also arise within the recommended patterns, so ensure that you understand the implications before making a design decision:"
-msgstr "决不要使用反模式 <emphasis>session-per-user-session</emphasis> 或者 <emphasis> session-per-application</emphasis>(当然,这个规定几乎没有例外)。请注意,下述一些问题可能也会出现在我们推荐的模式中,在你作出某个设计决定之前,请务必理解该模式的应用前提。 "
+msgid ""
+"Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> "
+"or <emphasis>session-per-application</emphasis> (there are, however, rare "
+"exceptions to this rule). Some of the following issues might also arise "
+"within the recommended patterns, so ensure that you understand the "
+"implications before making a design decision:"
+msgstr ""
+"决不要使用反模式 <emphasis>session-per-user-session</emphasis> 或者 "
+"<emphasis> session-per-application</emphasis>(当然,这个规定几乎没有例外)。"
+"请注意,下述一些问题可能也会出现在我们推荐的模式中,在你作出某个设计决定之"
+"前,请务必理解该模式的应用前提。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A <literal>Session</literal> is not thread-safe. Things that work concurrently, like HTTP requests, session beans, or Swing workers, will cause race conditions if a <literal>Session</literal> instance is shared. If you keep your Hibernate <literal>Session</literal> in your <literal>HttpSession</literal> (this is discussed later in the chapter), you should consider synchronizing access to your Http session. Otherwise, a user that clicks reload fast enough can use the same <literal>Session</literal> in two concurrently running threads."
-msgstr "<literal>Session</literal> 对象是非线程安全的。如果一个 <literal>Session</literal> 实例允许共享的话,那些支持并发运行的东东,例如 HTTP request,session beans 或者是 Swing workers,将会导致出现资源争用(race condition)。如果在 <literal>HttpSession</literal> 中有 Hibernate 的 <literal>Session</literal> 的话(稍后讨论),你应该考虑同步访问你的 Http session。 否则,只要用户足够快的点击浏览器的“刷新”,就会导致两个并发运行线程使用同一个  <literal>Session</literal>。 "
+msgid ""
+"A <literal>Session</literal> is not thread-safe. Things that work "
+"concurrently, like HTTP requests, session beans, or Swing workers, will "
+"cause race conditions if a <literal>Session</literal> instance is shared. If "
+"you keep your Hibernate <literal>Session</literal> in your "
+"<literal>HttpSession</literal> (this is discussed later in the chapter), you "
+"should consider synchronizing access to your Http session. Otherwise, a user "
+"that clicks reload fast enough can use the same <literal>Session</literal> "
+"in two concurrently running threads."
+msgstr ""
+"<literal>Session</literal> 对象是非线程安全的。如果一个 <literal>Session</"
+"literal> 实例允许共享的话,那些支持并发运行的东东,例如 HTTP request,"
+"session beans 或者是 Swing workers,将会导致出现资源争用(race condition)。"
+"如果在 <literal>HttpSession</literal> 中有 Hibernate 的 <literal>Session</"
+"literal> 的话(稍后讨论),你应该考虑同步访问你的 Http session。 否则,只要用"
+"户足够快的点击浏览器的“刷新”,就会导致两个并发运行线程使用同一个  "
+"<literal>Session</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "An exception thrown by Hibernate means you have to rollback your database transaction and close the <literal>Session</literal> immediately (this is discussed in more detail later in the chapter). If your <literal>Session</literal> is bound to the application, you have to stop the application. Rolling back the database transaction does not put your business objects back into the state they were at the start of the transaction. This means that the database state and the business objects will be out of sync. Usually this is not a problem, because exceptions are not recoverable and you will have to start over after rollback anyway."
-msgstr "一个由 Hibernate 抛出的异常意味着你必须立即回滚数据库事务,并立即关闭 <literal>Session</literal>(稍后会展开讨论)。如果你的 <literal>Session</literal> 绑定到一个应用程序上,你必须停止该应用程序。回滚数据库事务并不会把你的业务对象退回到事务启动时候的状态。这意味着数据库状态和业务对象状态不同步。通常情况下,这不是什么问题,因为异常是不可恢复的,你必须在回滚之后重新开始执行。 "
+msgid ""
+"An exception thrown by Hibernate means you have to rollback your database "
+"transaction and close the <literal>Session</literal> immediately (this is "
+"discussed in more detail later in the chapter). If your <literal>Session</"
+"literal> is bound to the application, you have to stop the application. "
+"Rolling back the database transaction does not put your business objects "
+"back into the state they were at the start of the transaction. This means "
+"that the database state and the business objects will be out of sync. "
+"Usually this is not a problem, because exceptions are not recoverable and "
+"you will have to start over after rollback anyway."
+msgstr ""
+"一个由 Hibernate 抛出的异常意味着你必须立即回滚数据库事务,并立即关闭 "
+"<literal>Session</literal>(稍后会展开讨论)。如果你的 <literal>Session</"
+"literal> 绑定到一个应用程序上,你必须停止该应用程序。回滚数据库事务并不会把你"
+"的业务对象退回到事务启动时候的状态。这意味着数据库状态和业务对象状态不同步。"
+"通常情况下,这不是什么问题,因为异常是不可恢复的,你必须在回滚之后重新开始执"
+"行。 "
 
 #. Tag: para
-#, 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> 打开也意味着出现脏数据的可能性很高。  "
+#, 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> 打开也意味着出现脏数据的可能性很高。  "
 
 #. Tag: title
 #, no-c-format
@@ -231,22 +613,64 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Database, or system, transaction boundaries are always necessary. No communication with the database can occur outside of a database transaction (this seems to confuse many developers who are used to the auto-commit mode). Always use clear transaction boundaries, even for read-only operations. Depending on your isolation level and database capabilities this might not be required, but there is no downside if you always demarcate transactions explicitly. Certainly, a single database transaction is going to perform better than many small transactions, even for reading data."
-msgstr "数据库(或者系统)事务的声明总是必须的。在数据库事务之外,就无法和数据库通讯(这可能会让那些习惯于自动提交事务模式的开发人员感到迷惑)。永远使用清晰的事务声明,即使只读操作也是如此。进行 显式的事务声明并不总是需要的,这取决于你的事务隔离级别和数据库的能力,但不管怎么说,声明事务总归有益无害。当然,一个单独的数据库事务总是比很多琐碎的事务性能更好,即时对读数据而言也是一样。 "
+msgid ""
+"Database, or system, transaction boundaries are always necessary. No "
+"communication with the database can occur outside of a database transaction "
+"(this seems to confuse many developers who are used to the auto-commit "
+"mode). Always use clear transaction boundaries, even for read-only "
+"operations. Depending on your isolation level and database capabilities this "
+"might not be required, but there is no downside if you always demarcate "
+"transactions explicitly. Certainly, a single database transaction is going "
+"to perform better than many small transactions, even for reading data."
+msgstr ""
+"数据库(或者系统)事务的声明总是必须的。在数据库事务之外,就无法和数据库通讯"
+"(这可能会让那些习惯于自动提交事务模式的开发人员感到迷惑)。永远使用清晰的事"
+"务声明,即使只读操作也是如此。进行 显式的事务声明并不总是需要的,这取决于你的"
+"事务隔离级别和数据库的能力,但不管怎么说,声明事务总归有益无害。当然,一个单"
+"独的数据库事务总是比很多琐碎的事务性能更好,即时对读数据而言也是一样。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A Hibernate application can run in non-managed (i.e., standalone, simple Web- or Swing applications) and managed J2EE environments. In a non-managed environment, Hibernate is usually responsible for its own database connection pool. The application developer has to manually set transaction boundaries (begin, commit, or rollback database transactions) themselves. A managed environment usually provides container-managed transactions (CMT), with the transaction assembly defined declaratively (in deployment descriptors of EJB session beans, for example). Programmatic transaction demarcation is then no longer necessary."
-msgstr "一个 Hibernate 应用程序可以运行在非托管环境中(也就是独立运行的应用程序,简单 Web 应用程序,或者Swing图形桌面应用程序),也可以运行在托管的 J2EE 环境中。在一个非托管环境中,Hibernate 通常自己负责管理数据库连接池。应用程序开发人员必须手工设置事务声明,换句话说,就是手工启 动,提交,或者回滚数据库事务。一个托管的环境通常提供了容器管理事务(CMT),例如事务装配通过可声明的方式定义在 EJB session beans 的部署描述符中。可编程式事务声明不再需要,即使是 <literal>Session</literal> 的同步也可以自动完成。 "
+msgid ""
+"A Hibernate application can run in non-managed (i.e., standalone, simple "
+"Web- or Swing applications) and managed J2EE environments. In a non-managed "
+"environment, Hibernate is usually responsible for its own database "
+"connection pool. The application developer has to manually set transaction "
+"boundaries (begin, commit, or rollback database transactions) themselves. A "
+"managed environment usually provides container-managed transactions (CMT), "
+"with the transaction assembly defined declaratively (in deployment "
+"descriptors of EJB session beans, for example). Programmatic transaction "
+"demarcation is then no longer necessary."
+msgstr ""
+"一个 Hibernate 应用程序可以运行在非托管环境中(也就是独立运行的应用程序,简"
+"单 Web 应用程序,或者Swing图形桌面应用程序),也可以运行在托管的 J2EE 环境"
+"中。在一个非托管环境中,Hibernate 通常自己负责管理数据库连接池。应用程序开发"
+"人员必须手工设置事务声明,换句话说,就是手工启 动,提交,或者回滚数据库事务。"
+"一个托管的环境通常提供了容器管理事务(CMT),例如事务装配通过可声明的方式定义"
+"在 EJB session beans 的部署描述符中。可编程式事务声明不再需要,即使是 "
+"<literal>Session</literal> 的同步也可以自动完成。 "
 
 #. Tag: para
 #, no-c-format
-msgid "However, it is often desirable to keep your persistence layer portable between non-managed resource-local environments, and systems that can rely on JTA but use BMT instead of CMT. In both cases use programmatic transaction demarcation. Hibernate offers a wrapper API called <literal>Transaction</literal> that translates into the native transaction system of your deployment environment. This API is actually optional, but we strongly encourage its use unless you are in a CMT session bean."
-msgstr "让持久层具备可移植性是人们的理想,这种移植发生在非托管的本地资源环境,与依赖 JTA 但是使用 BMT 而非 CMT 的系统之间。在两种情况下你都可以使用编程式的事务管理。Hibernate 提供了一套称为 <literal>Transaction</literal> 的封装 API, 用来把你的部署环境中的本地事务管理系统转换到 Hibernate 事务上。这个 API 是可选的,但是我们强烈推荐你使用,除非你用 CMT session bean。 "
+msgid ""
+"However, it is often desirable to keep your persistence layer portable "
+"between non-managed resource-local environments, and systems that can rely "
+"on JTA but use BMT instead of CMT. In both cases use programmatic "
+"transaction demarcation. Hibernate offers a wrapper API called "
+"<literal>Transaction</literal> that translates into the native transaction "
+"system of your deployment environment. This API is actually optional, but we "
+"strongly encourage its use unless you are in a CMT session bean."
+msgstr ""
+"让持久层具备可移植性是人们的理想,这种移植发生在非托管的本地资源环境,与依赖 "
+"JTA 但是使用 BMT 而非 CMT 的系统之间。在两种情况下你都可以使用编程式的事务管"
+"理。Hibernate 提供了一套称为 <literal>Transaction</literal> 的封装 API, 用来"
+"把你的部署环境中的本地事务管理系统转换到 Hibernate 事务上。这个 API 是可选"
+"的,但是我们强烈推荐你使用,除非你用 CMT session bean。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgid ""
+"Ending a <literal>Session</literal> usually involves four distinct phases:"
 msgstr "通常情况下,结束 <literal>Session</literal> 包含了四个不同的阶段: "
 
 #. Tag: para
@@ -271,8 +695,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "We discussed Flushing the session earlier, so we will now have a closer look at transaction demarcation and exception handling in both managed and non-managed environments."
-msgstr "session 的同步(flush,刷出)前面已经讨论过了,我们现在进一步考察在托管和非托管环境下的事务声明和异常处理。 "
+msgid ""
+"We discussed Flushing the session earlier, so we will now have a closer look "
+"at transaction demarcation and exception handling in both managed and non-"
+"managed environments."
+msgstr ""
+"session 的同步(flush,刷出)前面已经讨论过了,我们现在进一步考察在托管和非托"
+"管环境下的事务声明和异常处理。 "
 
 #. Tag: title
 #, no-c-format
@@ -281,28 +710,73 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If a Hibernate persistence layer runs in a non-managed environment, database connections are usually handled by simple (i.e., non-DataSource) connection pools from which Hibernate obtains connections as needed. The session/transaction handling idiom looks like this:"
-msgstr "如果 Hibernat 持久层运行在一个非托管环境中,数据库连接通常由 Hibernate 的简单(即非 DataSource)连接池机制 来处理。session/transaction 处理方式如下所示: "
+msgid ""
+"If a Hibernate persistence layer runs in a non-managed environment, database "
+"connections are usually handled by simple (i.e., non-DataSource) connection "
+"pools from which Hibernate obtains connections as needed. The session/"
+"transaction handling idiom looks like this:"
+msgstr ""
+"如果 Hibernat 持久层运行在一个非托管环境中,数据库连接通常由 Hibernate 的简单"
+"(即非 DataSource)连接池机制 来处理。session/transaction 处理方式如下所示: "
 
 #. Tag: para
-#, 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 环境下都可以运行。"
+#, 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 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
 #, no-c-format
-msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
-msgstr "更加灵活的方案是 Hibernate 内置的 \"current session\" 上下文管理,前文已经讲过: "
+msgid ""
+"As outlined earlier, a much more flexible solution is Hibernate's built-in "
+"\"current session\" context management:"
+msgstr ""
+"更加灵活的方案是 Hibernate 内置的 \"current session\" 上下文管理,前文已经讲"
+"过: "
 
 #. Tag: para
 #, no-c-format
-msgid "You will not see these code snippets in a regular application; fatal (system) exceptions should always be caught at the \"top\". In other words, the code that executes Hibernate calls in the persistence layer, and the code that handles <literal>RuntimeException</literal> (and usually can only clean up and exit), are in different layers. The current context management by Hibernate can significantly simplify this design by accessing a <literal>SessionFactory</literal>. Exception handling is discussed later in this chapter."
-msgstr "你很可能从未在一个通常的应用程序的业务代码中见过这样的代码片断:致命的(系统)异常应该总是 在应用程序“顶层”被捕获。换句话说,执行 Hibernate 调用的代码(在持久层)和处理 <literal>RuntimeException</literal> 异常的代码(通常只能清理和退出应用程序)应该在不同 的应用程序逻辑层。Hibernate 的当前上下文管理可以极大地简化这一设计,你所有的一切就是 <literal>SessionFactory</literal>。异常处理将在本章稍后进行讨论。 "
+msgid ""
+"You will not see these code snippets in a regular application; fatal "
+"(system) exceptions should always be caught at the \"top\". In other words, "
+"the code that executes Hibernate calls in the persistence layer, and the "
+"code that handles <literal>RuntimeException</literal> (and usually can only "
+"clean up and exit), are in different layers. The current context management "
+"by Hibernate can significantly simplify this design by accessing a "
+"<literal>SessionFactory</literal>. Exception handling is discussed later in "
+"this chapter."
+msgstr ""
+"你很可能从未在一个通常的应用程序的业务代码中见过这样的代码片断:致命的(系"
+"统)异常应该总是 在应用程序“顶层”被捕获。换句话说,执行 Hibernate 调用的代码"
+"(在持久层)和处理 <literal>RuntimeException</literal> 异常的代码(通常只能清"
+"理和退出应用程序)应该在不同 的应用程序逻辑层。Hibernate 的当前上下文管理可以"
+"极大地简化这一设计,你所有的一切就是 <literal>SessionFactory</literal>。异常"
+"处理将在本章稍后进行讨论。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</literal>, which is the default, and for the second example select <literal>\"thread\"</literal> as your <literal>hibernate.current_session_context_class</literal>."
-msgstr "请注意,你应该选择 <literal>org.hibernate.transaction.JDBCTransactionFactory</literal> (这是默认选项),对第二个例子来说,<literal>hibernate.current_session_context_class</literal>应该是 <literal>\"thread\"</literal>。"
+msgid ""
+"You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</"
+"literal>, which is the default, and for the second example select <literal>"
+"\"thread\"</literal> as your <literal>hibernate."
+"current_session_context_class</literal>."
+msgstr ""
+"请注意,你应该选择 <literal>org.hibernate.transaction."
+"JDBCTransactionFactory</literal> (这是默认选项),对第二个例子来说,"
+"<literal>hibernate.current_session_context_class</literal>应该是 <literal>"
+"\"thread\"</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -311,38 +785,110 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If your persistence layer runs in an application server (for example, behind EJB session beans), every datasource connection obtained by Hibernate will automatically be part of the global JTA transaction. You can also install a standalone JTA implementation and use it without EJB. Hibernate offers two strategies for JTA integration."
-msgstr "如果你的持久层运行在一个应用服务器中(例如,在 EJB session beans 的后面),Hibernate 获取的每个数据源连接将自动成为全局 JTA 事务的一部分。你可以安装一个独立的 JTA 实现,使用它而不使用 EJB。Hibernate 提供了两种策略进行 JTA 集成。 "
+msgid ""
+"If your persistence layer runs in an application server (for example, behind "
+"EJB session beans), every datasource connection obtained by Hibernate will "
+"automatically be part of the global JTA transaction. You can also install a "
+"standalone JTA implementation and use it without EJB. Hibernate offers two "
+"strategies for JTA integration."
+msgstr ""
+"如果你的持久层运行在一个应用服务器中(例如,在 EJB session beans 的后面),"
+"Hibernate 获取的每个数据源连接将自动成为全局 JTA 事务的一部分。你可以安装一个"
+"独立的 JTA 实现,使用它而不使用 EJB。Hibernate 提供了两种策略进行 JTA 集成。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If you use bean-managed transactions (BMT), Hibernate will tell the application server to start and end a BMT transaction if you use the <literal>Transaction</literal> API. The transaction management code is identical to the non-managed environment."
-msgstr "如果你使用 bean 管理事务(BMT),可以通过使用 Hibernate 的 <literal>Transaction</literal> API 来告诉应用服务器启动和结束 BMT 事务。因此,事务管理代码和在非托管环境下是一样的。 "
+msgid ""
+"If you use bean-managed transactions (BMT), Hibernate will tell the "
+"application server to start and end a BMT transaction if you use the "
+"<literal>Transaction</literal> API. The transaction management code is "
+"identical to the non-managed environment."
+msgstr ""
+"如果你使用 bean 管理事务(BMT),可以通过使用 Hibernate 的 "
+"<literal>Transaction</literal> API 来告诉应用服务器启动和结束 BMT 事务。因"
+"此,事务管理代码和在非托管环境下是一样的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "If you want to use a transaction-bound <literal>Session</literal>, that is, the <literal>getCurrentSession()</literal> functionality for easy context propagation, use the JTA <literal>UserTransaction</literal> API directly:"
-msgstr "如果你希望使用与事务绑定的 <literal>Session</literal>,也就是使用 <literal>getCurrentSession()</literal> 来简化上下文管理,你将不得不直接使用 JTA  <literal>UserTransaction</literal> API。 "
+msgid ""
+"If you want to use a transaction-bound <literal>Session</literal>, that is, "
+"the <literal>getCurrentSession()</literal> functionality for easy context "
+"propagation, use the JTA <literal>UserTransaction</literal> API directly:"
+msgstr ""
+"如果你希望使用与事务绑定的 <literal>Session</literal>,也就是使用 "
+"<literal>getCurrentSession()</literal> 来简化上下文管理,你将不得不直接使用 "
+"JTA  <literal>UserTransaction</literal> API。 "
 
 #. Tag: para
 #, no-c-format
-msgid "With CMT, transaction demarcation is completed in session bean deployment descriptors, not programmatically. The code is reduced to:"
-msgstr "在 CMT 方式下,事务声明是在 session bean 的部署描述符中,而不需要编程。因此,代码被简化为:"
+msgid ""
+"With CMT, transaction demarcation is completed in session bean deployment "
+"descriptors, not programmatically. The code is reduced to:"
+msgstr ""
+"在 CMT 方式下,事务声明是在 session bean 的部署描述符中,而不需要编程。因此,"
+"代码被简化为:"
 
 #. Tag: para
 #, no-c-format
-msgid "In a CMT/EJB, even rollback happens automatically. An unhandled <literal>RuntimeException</literal> thrown by a session bean method tells the container to set the global transaction to rollback. <emphasis>You do not need to use the Hibernate <literal>Transaction</literal> API at all with BMT or CMT, and you get automatic propagation of the \"current\" Session bound to the transaction.</emphasis>"
-msgstr "在 CMT/EJB 中甚至会自动 rollback,因为假若有未捕获的 <literal>RuntimeException</literal> 从 session bean 方法中抛出,这就会通知容器把全局事务回滚。<emphasis>这就意味着,在 BMT 或者 CMT 中,你根本就不需要使用 Hibernate <literal>Transaction</literal> API,你自动得到了绑定到事务的“当前” Session。</emphasis>"
+msgid ""
+"In a CMT/EJB, even rollback happens automatically. An unhandled "
+"<literal>RuntimeException</literal> thrown by a session bean method tells "
+"the container to set the global transaction to rollback. <emphasis>You do "
+"not need to use the Hibernate <literal>Transaction</literal> API at all with "
+"BMT or CMT, and you get automatic propagation of the \"current\" Session "
+"bound to the transaction.</emphasis>"
+msgstr ""
+"在 CMT/EJB 中甚至会自动 rollback,因为假若有未捕获的 "
+"<literal>RuntimeException</literal> 从 session bean 方法中抛出,这就会通知容"
+"器把全局事务回滚。<emphasis>这就意味着,在 BMT 或者 CMT 中,你根本就不需要使"
+"用 Hibernate <literal>Transaction</literal> API,你自动得到了绑定到事务的“当"
+"前” Session。</emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid "When configuring Hibernate's transaction factory, choose <literal>org.hibernate.transaction.JTATransactionFactory</literal> if you use JTA directly (BMT), and <literal>org.hibernate.transaction.CMTTransactionFactory</literal> in a CMT session bean. Remember to also set <literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that your <literal>hibernate.current_session_context_class</literal> is either unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
-msgstr "注意,当你配置 Hibernate 的 transaction factory 的时候,在直接使用 JTA 的时候(BMT),你应该选择 <literal>org.hibernate.transaction.JTATransactionFactory</literal>,在 CMT session bean 中选择 <literal>org.hibernate.transaction.CMTTransactionFactory</literal>。记得也要设置 <literal>hibernate.transaction.manager_lookup_class</literal>。还有,确认你的 <literal>hibernate.current_session_context_class</literal> 未设置(为了向下兼容),或者设置为 <literal>\"jta\"</literal>。 "
+msgid ""
+"When configuring Hibernate's transaction factory, choose <literal>org."
+"hibernate.transaction.JTATransactionFactory</literal> if you use JTA "
+"directly (BMT), and <literal>org.hibernate.transaction."
+"CMTTransactionFactory</literal> in a CMT session bean. Remember to also set "
+"<literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that "
+"your <literal>hibernate.current_session_context_class</literal> is either "
+"unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
+msgstr ""
+"注意,当你配置 Hibernate 的 transaction factory 的时候,在直接使用 JTA 的时候"
+"(BMT),你应该选择 <literal>org.hibernate.transaction."
+"JTATransactionFactory</literal>,在 CMT session bean 中选择 <literal>org."
+"hibernate.transaction.CMTTransactionFactory</literal>。记得也要设置 "
+"<literal>hibernate.transaction.manager_lookup_class</literal>。还有,确认你"
+"的 <literal>hibernate.current_session_context_class</literal> 未设置(为了向"
+"下兼容),或者设置为 <literal>\"jta\"</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>getCurrentSession()</literal> operation has one downside in a JTA environment. There is one caveat to the use of <literal>after_statement</literal> connection release mode, which is then used by default. Due to a limitation of the JTA spec, it is not possible for Hibernate to automatically clean up any unclosed <literal>ScrollableResults</literal> or <literal>Iterator</literal> instances returned by <literal>scroll()</literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> release the underlying database cursor by calling <literal>ScrollableResults.close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly from a <literal>finally</literal> block. Most applications can easily avoid using <literal>scroll()</literal> or <literal>iterate()</literal> from the JTA or CMT code.)"
-msgstr "<literal>getCurrentSession()</literal>在 JTA 环境中有一个弊端。对 <literal>after_statement</literal> 连接释放方式有一个警告,这是被默认使用的。因为 JTA 规范的一个很愚蠢的限制,Hibernate 不可能自动清理任何未关闭的 <literal>ScrollableResults</literal> 或者<literal>Iterator</literal>,它们是由 <literal>scroll()</literal> 或 <literal>iterate()</literal> 产生的。你 <emphasis>must</emphasis> 通过在 <literal>finally</literal> 块中,显式调用 <literal>ScrollableResults.close()</literal> 或者 <literal>Hibernate.close(Iterator)</literal> 方法来释放底层数据库游标。(当然,大部分程序完全可以很容易的避免在 JTA 或 CMT 代码中出现 <literal>scroll()</literal> 或 <literal>iterate()</literal>。) "
+msgid ""
+"The <literal>getCurrentSession()</literal> operation has one downside in a "
+"JTA environment. There is one caveat to the use of <literal>after_statement</"
+"literal> connection release mode, which is then used by default. Due to a "
+"limitation of the JTA spec, it is not possible for Hibernate to "
+"automatically clean up any unclosed <literal>ScrollableResults</literal> or "
+"<literal>Iterator</literal> instances returned by <literal>scroll()</"
+"literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> "
+"release the underlying database cursor by calling <literal>ScrollableResults."
+"close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly "
+"from a <literal>finally</literal> block. Most applications can easily avoid "
+"using <literal>scroll()</literal> or <literal>iterate()</literal> from the "
+"JTA or CMT code.)"
+msgstr ""
+"<literal>getCurrentSession()</literal>在 JTA 环境中有一个弊端。对 "
+"<literal>after_statement</literal> 连接释放方式有一个警告,这是被默认使用的。"
+"因为 JTA 规范的一个很愚蠢的限制,Hibernate 不可能自动清理任何未关闭的 "
+"<literal>ScrollableResults</literal> 或者<literal>Iterator</literal>,它们是"
+"由 <literal>scroll()</literal> 或 <literal>iterate()</literal> 产生的。你 "
+"<emphasis>must</emphasis> 通过在 <literal>finally</literal> 块中,显式调用 "
+"<literal>ScrollableResults.close()</literal> 或者 <literal>Hibernate.close"
+"(Iterator)</literal> 方法来释放底层数据库游标。(当然,大部分程序完全可以很容"
+"易的避免在 JTA 或 CMT 代码中出现 <literal>scroll()</literal> 或 "
+"<literal>iterate()</literal>。) "
 
 #. Tag: title
 #, no-c-format
@@ -351,43 +897,117 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If the <literal>Session</literal> throws an exception, including any <literal>SQLException</literal>, immediately rollback the database transaction, call <literal>Session.close()</literal> and discard the <literal>Session</literal> instance. Certain methods of <literal>Session</literal> will <emphasis>not</emphasis> leave the session in a consistent state. No exception thrown by Hibernate can be treated as recoverable. Ensure that the <literal>Session</literal> will be closed by calling <literal>close()</literal> in a <literal>finally</literal> block."
-msgstr "如果 <literal>Session</literal> 抛出异常(包括任何 <literal>SQLException</literal>),你应该立即回滚数据库事务,调用 <literal>Session.close()</literal> ,丢弃该  <literal>Session</literal> 实例。<literal>Session</literal> 的某些方法可能会导致 session 处于不一致的状态。所有由 Hibernate 抛出的异常都视为不可以恢复的。确保在  <literal>finally</literal> 代码块中调用 <literal>close()</literal> 方法,以关闭掉  <literal>Session</literal>。"
+msgid ""
+"If the <literal>Session</literal> throws an exception, including any "
+"<literal>SQLException</literal>, immediately rollback the database "
+"transaction, call <literal>Session.close()</literal> and discard the "
+"<literal>Session</literal> instance. Certain methods of <literal>Session</"
+"literal> will <emphasis>not</emphasis> leave the session in a consistent "
+"state. No exception thrown by Hibernate can be treated as recoverable. "
+"Ensure that the <literal>Session</literal> will be closed by calling "
+"<literal>close()</literal> in a <literal>finally</literal> block."
+msgstr ""
+"如果 <literal>Session</literal> 抛出异常(包括任何 <literal>SQLException</"
+"literal>),你应该立即回滚数据库事务,调用 <literal>Session.close()</"
+"literal> ,丢弃该  <literal>Session</literal> 实例。<literal>Session</"
+"literal> 的某些方法可能会导致 session 处于不一致的状态。所有由 Hibernate 抛出"
+"的异常都视为不可以恢复的。确保在  <literal>finally</literal> 代码块中调用 "
+"<literal>close()</literal> 方法,以关闭掉  <literal>Session</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>HibernateException</literal>, which wraps most of the errors that can occur in a Hibernate persistence layer, is an unchecked exception. It was not in older versions of Hibernate. In our opinion, we should not force the application developer to catch an unrecoverable exception at a low layer. In most systems, unchecked and fatal exceptions are handled in one of the first frames of the method call stack (i.e., in higher layers) and either an error message is presented to the application user or some other appropriate action is taken. Note that Hibernate might also throw other unchecked exceptions that are not a <literal>HibernateException</literal>. These are not recoverable and appropriate action should be taken."
-msgstr "<literal>HibernateException</literal> 是一个非检查期异常(这不同于 Hibernate 老的版本),它封装了 Hibernate 持久层可能出现的大多数错误。我们的观点是,不应该强迫应用程序开发人员 在底层捕获无法恢复的异常。在大多数软件系统中,非检查期异常和致命异常都是在相应方法调用 的堆栈的顶层被处理的(也就是说,在软件上面的逻辑层),并且提供一个错误信息给应用软件的用户 (或者采取其他某些相应的操作)。请注意,Hibernate 也有可能抛出其他并不属于 <literal>HibernateException</literal> 的非检查期异常。这些异常同样也是无法恢复的,应该 采取某些相应的操作去处理。"
+msgid ""
+"The <literal>HibernateException</literal>, which wraps most of the errors "
+"that can occur in a Hibernate persistence layer, is an unchecked exception. "
+"It was not in older versions of Hibernate. In our opinion, we should not "
+"force the application developer to catch an unrecoverable exception at a low "
+"layer. In most systems, unchecked and fatal exceptions are handled in one of "
+"the first frames of the method call stack (i.e., in higher layers) and "
+"either an error message is presented to the application user or some other "
+"appropriate action is taken. Note that Hibernate might also throw other "
+"unchecked exceptions that are not a <literal>HibernateException</literal>. "
+"These are not recoverable and appropriate action should be taken."
+msgstr ""
+"<literal>HibernateException</literal> 是一个非检查期异常(这不同于 Hibernate "
+"老的版本),它封装了 Hibernate 持久层可能出现的大多数错误。我们的观点是,不应"
+"该强迫应用程序开发人员 在底层捕获无法恢复的异常。在大多数软件系统中,非检查期"
+"异常和致命异常都是在相应方法调用 的堆栈的顶层被处理的(也就是说,在软件上面的"
+"逻辑层),并且提供一个错误信息给应用软件的用户 (或者采取其他某些相应的操"
+"作)。请注意,Hibernate 也有可能抛出其他并不属于 "
+"<literal>HibernateException</literal> 的非检查期异常。这些异常同样也是无法恢"
+"复的,应该 采取某些相应的操作去处理。"
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate wraps <literal>SQLException</literal>s thrown while interacting with the database in a <literal>JDBCException</literal>. In fact, Hibernate will attempt to convert the exception into a more meaningful subclass of <literal>JDBCException</literal>. The underlying <literal>SQLException</literal> is always available via <literal>JDBCException.getCause()</literal>. Hibernate converts the <literal>SQLException</literal> into an appropriate <literal>JDBCException</literal> subclass using the <literal>SQLExceptionConverter</literal> attached to the <literal>SessionFactory</literal>. By default, the <literal>SQLExceptionConverter</literal> is defined by the configured dialect. However, it is also possible to plug in a custom implementation. See the javadocs for the <literal>SQLExceptionConverterFactory</literal> class for details. The standard <literal>JDBCException</literal> subtypes are:"
-msgstr "在和数据库进行交互时,Hibernate 把捕获的 <literal>SQLException</literal> 封装为 Hibernate 的  <literal>JDBCException</literal>。事实上,Hibernate 尝试把异常转换为更有实际含义的 <literal>JDBCException</literal> 异常的子类。底层的 <literal>SQLException</literal> 可以通过 <literal>JDBCException.getCause()</literal> 来得到。Hibernate 通过使用关联到  <literal>SessionFactory</literal> 上的 <literal>SQLExceptionConverter</literal> 来把 <literal>SQLException</literal> 转换为一个对应的 <literal>JDBCException</literal> 异常的子类。默认情况下,<literal>SQLExceptionConverter</literal> 可以通过配置 dialect 选项指定;此外,也可以使用用户自定义的实现类(参考 javadocs <literal>SQLExceptionConverterFactory</literal> 类来了解详情)。标准的 <literal>JDBCException</literal> 子类型是: "
+msgid ""
+"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
+"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
+"will attempt to convert the exception into a more meaningful subclass of "
+"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
+"literal> is always available via <literal>JDBCException.getCause()</"
+"literal>. Hibernate converts the <literal>SQLException</literal> into an "
+"appropriate <literal>JDBCException</literal> subclass using the "
+"<literal>SQLExceptionConverter</literal> attached to the "
+"<literal>SessionFactory</literal>. By default, the "
+"<literal>SQLExceptionConverter</literal> is defined by the configured "
+"dialect. However, it is also possible to plug in a custom implementation. "
+"See the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
+"class for details. The standard <literal>JDBCException</literal> subtypes "
+"are:"
+msgstr ""
+"在和数据库进行交互时,Hibernate 把捕获的 <literal>SQLException</literal> 封装"
+"为 Hibernate 的  <literal>JDBCException</literal>。事实上,Hibernate 尝试把异"
+"常转换为更有实际含义的 <literal>JDBCException</literal> 异常的子类。底层的 "
+"<literal>SQLException</literal> 可以通过 <literal>JDBCException.getCause()</"
+"literal> 来得到。Hibernate 通过使用关联到  <literal>SessionFactory</literal> "
+"上的 <literal>SQLExceptionConverter</literal> 来把 <literal>SQLException</"
+"literal> 转换为一个对应的 <literal>JDBCException</literal> 异常的子类。默认情"
+"况下,<literal>SQLExceptionConverter</literal> 可以通过配置 dialect 选项指"
+"定;此外,也可以使用用户自定义的实现类(参考 javadocs "
+"<literal>SQLExceptionConverterFactory</literal> 类来了解详情)。标准的 "
+"<literal>JDBCException</literal> 子类型是: "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>JDBCConnectionException</literal>: indicates an error with the underlying JDBC communication."
-msgstr "<literal>JDBCConnectionException</literal>:指明底层的 JDBC 通讯出现错误。"
+msgid ""
+"<literal>JDBCConnectionException</literal>: indicates an error with the "
+"underlying JDBC communication."
+msgstr ""
+"<literal>JDBCConnectionException</literal>:指明底层的 JDBC 通讯出现错误。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>SQLGrammarException</literal>: indicates a grammar or syntax problem with the issued SQL."
-msgstr "<literal>SQLGrammarException</literal>:指明发送的 SQL 语句的语法或者格式错误。"
+msgid ""
+"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
+"problem with the issued SQL."
+msgstr ""
+"<literal>SQLGrammarException</literal>:指明发送的 SQL 语句的语法或者格式错"
+"误。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>ConstraintViolationException</literal>: indicates some form of integrity constraint violation."
-msgstr "<literal>ConstraintViolationException</literal>:指明某种类型的约束违例错误"
+msgid ""
+"<literal>ConstraintViolationException</literal>: indicates some form of "
+"integrity constraint violation."
+msgstr ""
+"<literal>ConstraintViolationException</literal>:指明某种类型的约束违例错误"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>LockAcquisitionException</literal>: indicates an error acquiring a lock level necessary to perform the requested operation."
-msgstr "<literal>LockAcquisitionException</literal>:指明了在执行请求操作时,获取所需的锁级别时出现的错误。"
+msgid ""
+"<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
+"lock level necessary to perform the requested operation."
+msgstr ""
+"<literal>LockAcquisitionException</literal>:指明了在执行请求操作时,获取所需"
+"的锁级别时出现的错误。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>GenericJDBCException</literal>: a generic exception which did not fall into any of the other categories."
-msgstr "<literal>GenericJDBCException</literal>:不属于任何其他种类的原生异常。"
+msgid ""
+"<literal>GenericJDBCException</literal>: a generic exception which did not "
+"fall into any of the other categories."
+msgstr ""
+"<literal>GenericJDBCException</literal>:不属于任何其他种类的原生异常。"
 
 #. Tag: title
 #, no-c-format
@@ -396,13 +1016,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid "An important feature provided by a managed environment like EJB, that is never provided for non-managed code, is transaction timeout. Transaction timeouts ensure that no misbehaving transaction can indefinitely tie up resources while returning no response to the user. Outside a managed (JTA) environment, Hibernate cannot fully provide this functionality. However, Hibernate can at least control data access operations, ensuring that database level deadlocks and queries with huge result sets are limited by a defined timeout. In a managed environment, Hibernate can delegate transaction timeout to JTA. This functionality is abstracted by the Hibernate <literal>Transaction</literal> object."
-msgstr "EJB 这样的托管环境有一项极为重要的特性,而它从未在非托管环境中提供过,那就是事务超时。在出现错误的事务行为的时候,超时可以确保不会无限挂起资源、对用户没有交代。在托管(JTA)环境之外,Hibernate 无法完全提供这一功能。但是,Hiberante 至少可以控制数据访问,确保数据库级别的死锁,和返回巨大结果集的查询被限定在一个规定的时间内。在托管环境中,Hibernate 会把事务超时转交给 JTA。这一功能通过 Hibernate <literal>Transaction</literal> 对象进行抽象。 "
+msgid ""
+"An important feature provided by a managed environment like EJB, that is "
+"never provided for non-managed code, is transaction timeout. Transaction "
+"timeouts ensure that no misbehaving transaction can indefinitely tie up "
+"resources while returning no response to the user. Outside a managed (JTA) "
+"environment, Hibernate cannot fully provide this functionality. However, "
+"Hibernate can at least control data access operations, ensuring that "
+"database level deadlocks and queries with huge result sets are limited by a "
+"defined timeout. In a managed environment, Hibernate can delegate "
+"transaction timeout to JTA. This functionality is abstracted by the "
+"Hibernate <literal>Transaction</literal> object."
+msgstr ""
+"EJB 这样的托管环境有一项极为重要的特性,而它从未在非托管环境中提供过,那就是"
+"事务超时。在出现错误的事务行为的时候,超时可以确保不会无限挂起资源、对用户没"
+"有交代。在托管(JTA)环境之外,Hibernate 无法完全提供这一功能。但是,"
+"Hiberante 至少可以控制数据访问,确保数据库级别的死锁,和返回巨大结果集的查询"
+"被限定在一个规定的时间内。在托管环境中,Hibernate 会把事务超时转交给 JTA。这"
+"一功能通过 Hibernate <literal>Transaction</literal> 对象进行抽象。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>setTimeout()</literal> cannot be called in a CMT bean, where transaction timeouts must be defined declaratively."
-msgstr "注意 <literal>setTimeout()</literal> 不应该在 CMT bean 中调用,此时事务超时值应该是被声明式定义的。 "
+msgid ""
+"<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
+"transaction timeouts must be defined declaratively."
+msgstr ""
+"注意 <literal>setTimeout()</literal> 不应该在 CMT bean 中调用,此时事务超时值"
+"应该是被声明式定义的。 "
 
 #. Tag: title
 #, no-c-format
@@ -411,8 +1051,20 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The only approach that is consistent with high concurrency and high scalability, is optimistic concurrency control with versioning. Version checking uses version numbers, or timestamps, to detect conflicting updates and to prevent lost updates. Hibernate provides three possible approaches to writing application code that uses optimistic concurrency. The use cases we discuss are in the context of long conversations, but version checking also has the benefit of preventing lost updates in single database transactions."
-msgstr "唯一能够同时保持高并发和高可伸缩性的方法就是使用带版本化的乐观并发控制。版本检查使用版本号、 或者时间戳来检测更新冲突(并且防止更新丢失)。Hibernate 为使用乐观并发控制的代码提供了三种可 能的方法,应用程序在编写这些代码时,可以采用它们。我们已经在前面应用程序对话那部分展示了 乐观并发控制的应用场景,此外,在单个数据库事务范围内,版本检查也提供了防止更新丢失的好处。 "
+msgid ""
+"The only approach that is consistent with high concurrency and high "
+"scalability, is optimistic concurrency control with versioning. Version "
+"checking uses version numbers, or timestamps, to detect conflicting updates "
+"and to prevent lost updates. Hibernate provides three possible approaches to "
+"writing application code that uses optimistic concurrency. The use cases we "
+"discuss are in the context of long conversations, but version checking also "
+"has the benefit of preventing lost updates in single database transactions."
+msgstr ""
+"唯一能够同时保持高并发和高可伸缩性的方法就是使用带版本化的乐观并发控制。版本"
+"检查使用版本号、 或者时间戳来检测更新冲突(并且防止更新丢失)。Hibernate 为使"
+"用乐观并发控制的代码提供了三种可 能的方法,应用程序在编写这些代码时,可以采用"
+"它们。我们已经在前面应用程序对话那部分展示了 乐观并发控制的应用场景,此外,在"
+"单个数据库事务范围内,版本检查也提供了防止更新丢失的好处。 "
 
 #. Tag: title
 #, no-c-format
@@ -421,23 +1073,60 @@
 
 #. Tag: para
 #, no-c-format
-msgid "In an implementation without much help from Hibernate, each interaction with the database occurs in a new <literal>Session</literal> and the developer is responsible for reloading all persistent instances from the database before manipulating them. The application is forced to carry out its own version checking to ensure conversation transaction isolation. This approach is the least efficient in terms of database access. It is the approach most similar to entity EJBs."
-msgstr "未能充分利用 Hibernate 功能的实现代码中,每次和数据库交互都需要一个新的  <literal>Session</literal>,而且开发人员必须在显示数据之前从数据库中重新载入所有的持久化对象实例。这种方式迫使应用程序自己实现版本检查来确保对话事务的隔离,从数据访问的角度来说是最低效的。这种使用方式和 entity EJB 最相似。 "
+msgid ""
+"In an implementation without much help from Hibernate, each interaction with "
+"the database occurs in a new <literal>Session</literal> and the developer is "
+"responsible for reloading all persistent instances from the database before "
+"manipulating them. The application is forced to carry out its own version "
+"checking to ensure conversation transaction isolation. This approach is the "
+"least efficient in terms of database access. It is the approach most similar "
+"to entity EJBs."
+msgstr ""
+"未能充分利用 Hibernate 功能的实现代码中,每次和数据库交互都需要一个新的  "
+"<literal>Session</literal>,而且开发人员必须在显示数据之前从数据库中重新载入"
+"所有的持久化对象实例。这种方式迫使应用程序自己实现版本检查来确保对话事务的隔"
+"离,从数据访问的角度来说是最低效的。这种使用方式和 entity EJB 最相似。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>version</literal> property is mapped using <literal>&lt;version&gt;</literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
-msgstr "<literal>version</literal> 属性使用 <literal>&lt;version&gt;</literal> 来映射,如果对象是脏数据,在同步的时候,Hibernate 会自动增加版本号。"
+msgid ""
+"The <literal>version</literal> property is mapped using <literal>&lt;"
+"version&gt;</literal>, and Hibernate will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+"<literal>version</literal> 属性使用 <literal>&lt;version&gt;</literal> 来映"
+"射,如果对象是脏数据,在同步的时候,Hibernate 会自动增加版本号。"
 
 #. Tag: para
 #, no-c-format
-msgid "If you are operating in a low-data-concurrency environment, and do not require version checking, you can use this approach and skip the version check. In this case, <emphasis>last commit wins</emphasis> is the default strategy for long conversations. Be aware that this might confuse the users of the application, as they might experience lost updates without error messages or a chance to merge conflicting changes."
-msgstr "当然,如果你的应用是在一个低数据并发环境下,并不需要版本检查的话,你照样可以使用这种方式,只不过跳过版本检查就是了。在这种情况下,<emphasis>最晚提交生效</emphasis> (<emphasis>last commit wins</emphasis>)就是你的长对话的默认处理策略。请记住这种策略可能会让应用软件的用户感到困惑,因为他们有可能会碰上更新丢失掉却没有出错信息,或者需要合并更改冲突的情况。 "
+msgid ""
+"If you are operating in a low-data-concurrency environment, and do not "
+"require version checking, you can use this approach and skip the version "
+"check. In this case, <emphasis>last commit wins</emphasis> is the default "
+"strategy for long conversations. Be aware that this might confuse the users "
+"of the application, as they might experience lost updates without error "
+"messages or a chance to merge conflicting changes."
+msgstr ""
+"当然,如果你的应用是在一个低数据并发环境下,并不需要版本检查的话,你照样可以"
+"使用这种方式,只不过跳过版本检查就是了。在这种情况下,<emphasis>最晚提交生效"
+"</emphasis> (<emphasis>last commit wins</emphasis>)就是你的长对话的默认处理"
+"策略。请记住这种策略可能会让应用软件的用户感到困惑,因为他们有可能会碰上更新"
+"丢失掉却没有出错信息,或者需要合并更改冲突的情况。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Manual version checking is only feasible in trivial circumstances and not practical for most applications. Often not only single instances, but complete graphs of modified objects, have to be checked. Hibernate offers automatic version checking with either an extended <literal>Session</literal> or detached instances as the design paradigm."
-msgstr "很明显,手工进行版本检查只适合于某些软件规模非常小的应用场景,对于大多数软件应用场景来说并不现实。通常情况下,不仅是单个对象实例需要进行版本检查,整个被修改过的关联对象图也都需要进行版本检查。作为标准设计范例,Hibernate 使用扩展周期的 <literal>Session</literal> 的方式,或者脱管对象实例的方式来提供自动版本检查。 "
+msgid ""
+"Manual version checking is only feasible in trivial circumstances and not "
+"practical for most applications. Often not only single instances, but "
+"complete graphs of modified objects, have to be checked. Hibernate offers "
+"automatic version checking with either an extended <literal>Session</"
+"literal> or detached instances as the design paradigm."
+msgstr ""
+"很明显,手工进行版本检查只适合于某些软件规模非常小的应用场景,对于大多数软件"
+"应用场景来说并不现实。通常情况下,不仅是单个对象实例需要进行版本检查,整个被"
+"修改过的关联对象图也都需要进行版本检查。作为标准设计范例,Hibernate 使用扩展"
+"周期的 <literal>Session</literal> 的方式,或者脱管对象实例的方式来提供自动版"
+"本检查。 "
 
 #. Tag: title
 #, no-c-format
@@ -446,23 +1135,80 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A single <literal>Session</literal> instance and its persistent instances that are used for the whole conversation are known as <emphasis>session-per-conversation</emphasis>. Hibernate checks instance versions at flush time, throwing an exception if concurrent modification is detected. It is up to the developer to catch and handle this exception. Common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data."
-msgstr "单个 <literal>Session</literal> 实例和它所关联的所有持久化对象实例都被用于整个对话,这被称为 <emphasis>session-per-conversation</emphasis>。Hibernate 在同步的时候进行对象实例的版本检查,如果检测到并发修改则抛出异常。由开发人员来决定是否需要捕获和处理这个异常(通常的抉择是给用户 提供一个合并更改,或者在无脏数据情况下重新进行业务对话的机会)。 "
+msgid ""
+"A single <literal>Session</literal> instance and its persistent instances "
+"that are used for the whole conversation are known as <emphasis>session-per-"
+"conversation</emphasis>. Hibernate checks instance versions at flush time, "
+"throwing an exception if concurrent modification is detected. It is up to "
+"the developer to catch and handle this exception. Common options are the "
+"opportunity for the user to merge changes or to restart the business "
+"conversation with non-stale data."
+msgstr ""
+"单个 <literal>Session</literal> 实例和它所关联的所有持久化对象实例都被用于整"
+"个对话,这被称为 <emphasis>session-per-conversation</emphasis>。Hibernate 在"
+"同步的时候进行对象实例的版本检查,如果检测到并发修改则抛出异常。由开发人员来"
+"决定是否需要捕获和处理这个异常(通常的抉择是给用户 提供一个合并更改,或者在无"
+"脏数据情况下重新进行业务对话的机会)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>Session</literal> is disconnected from any underlying JDBC connection when waiting for user interaction. This approach is the most efficient in terms of database access. The application does not version check or reattach detached instances, nor does it have to reload instances in every database transaction."
-msgstr "在等待用户交互的时候, <literal>Session</literal> 断开底层的 JDBC 连接。这种方式以数据库访问的角度来说是最高效的方式。应用程序不需要关心版本检查或脱管对象实例的重新关联,在每个数据库事务中,应用程序也不需要载入读取对象实例。 "
+msgid ""
+"The <literal>Session</literal> is disconnected from any underlying JDBC "
+"connection when waiting for user interaction. This approach is the most "
+"efficient in terms of database access. The application does not version "
+"check or reattach detached instances, nor does it have to reload instances "
+"in every database transaction."
+msgstr ""
+"在等待用户交互的时候, <literal>Session</literal> 断开底层的 JDBC 连接。这种"
+"方式以数据库访问的角度来说是最高效的方式。应用程序不需要关心版本检查或脱管对"
+"象实例的重新关联,在每个数据库事务中,应用程序也不需要载入读取对象实例。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>foo</literal> object knows which <literal>Session</literal> it was loaded in. Beginning a new database transaction on an old session obtains a new connection and resumes the session. Committing a database transaction disconnects a session from the JDBC connection and returns the connection to the pool. After reconnection, to force a version check on data you are not updating, you can call <literal>Session.lock()</literal> with <literal>LockMode.READ</literal> on any objects that might have been updated by another transaction. You do not need to lock any data that you <emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode.MANUAL</literal> on an extended <literal>Session</literal>, so that only the last database transaction cycle is allowed to actually persist all modifications made in this conversation. Only this last database transaction will include the <literal>flush()</literal> operation, and then <literal>close()</literal> the 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。 "
+msgid ""
+"The <literal>foo</literal> object knows which <literal>Session</literal> it "
+"was loaded in. Beginning a new database transaction on an old session "
+"obtains a new connection and resumes the session. Committing a database "
+"transaction disconnects a session from the JDBC connection and returns the "
+"connection to the pool. After reconnection, to force a version check on data "
+"you are not updating, you can call <literal>Session.lock()</literal> with "
+"<literal>LockMode.READ</literal> on any objects that might have been updated "
+"by another transaction. You do not need to lock any data that you "
+"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
+"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
+"last database transaction cycle is allowed to actually persist all "
+"modifications made in this conversation. Only this last database transaction "
+"will include the <literal>flush()</literal> operation, and then "
+"<literal>close()</literal> the session to end the conversation."
+msgstr ""
+"<literal>foo</literal> 对象知道它是在哪个 <literal>Session</literal> 中被装入"
+"的。在一个旧 session 中开启一个新的数据库事务,会导致 session 获取一个新的连"
+"接,并恢复 session 的功能。将数据库事务提交,使得 session 从 JDBC 连接断开,"
+"并将此连接交还给连接池。在重新连接之后,要强制对你没有更新的数据进行一次版本"
+"检查,你可以对所有可能被其他事务修改过的对象,使用参数 <literal>LockMode."
+"READ</literal> 来调用 <literal>Session.lock()</literal>。你不用 lock 任何你"
+"<emphasis>正在</emphasis>更新的数据。一般你会在扩展的 <literal>Session</"
+"literal> 上设置 <literal>FlushMode.NEVER</literal>,因此只有最后一个数据库事"
+"务循环才会真正的把整个对话中发生的修改发送到数据库。因此,只有这最后一次数据"
+"库事务才会包含 <literal>flush()</literal> 操作,然后在整个对话结束后,还要 "
+"<literal>close()</literal> 这个 session。 "
 
 #. Tag: para
 #, no-c-format
-msgid "This pattern is problematic if the <literal>Session</literal> is too big to be stored during user think time (for example, an <literal>HttpSession</literal> should be kept as small as possible). As the <literal>Session</literal> is also the first-level cache and contains all loaded objects, we can probably use this strategy only for a few request/response cycles. Use a <literal>Session</literal> only for a single conversation as it will soon have stale data."
-msgstr "如果在用户思考的过程中,<literal>Session</literal> 因为太大了而不能保存,那么这种模式是有问题的。举例来说,一个 <literal>HttpSession</literal> 应该尽可能的小。由于  <literal>Session</literal> 是一级缓存,并且保持了所有被载入过的对象,因此我们只应该在那些少量的 request/response 情况下使用这种策略。你应该只把一个 <literal>Session</literal> 用于单个对话,因为它很快就会出现脏数据。 "
+msgid ""
+"This pattern is problematic if the <literal>Session</literal> is too big to "
+"be stored during user think time (for example, an <literal>HttpSession</"
+"literal> should be kept as small as possible). As the <literal>Session</"
+"literal> is also the first-level cache and contains all loaded objects, we "
+"can probably use this strategy only for a few request/response cycles. Use a "
+"<literal>Session</literal> only for a single conversation as it will soon "
+"have stale data."
+msgstr ""
+"如果在用户思考的过程中,<literal>Session</literal> 因为太大了而不能保存,那么"
+"这种模式是有问题的。举例来说,一个 <literal>HttpSession</literal> 应该尽可能"
+"的小。由于  <literal>Session</literal> 是一级缓存,并且保持了所有被载入过的对"
+"象,因此我们只应该在那些少量的 request/response 情况下使用这种策略。你应该只"
+"把一个 <literal>Session</literal> 用于单个对话,因为它很快就会出现脏数据。 "
 
 #. Tag: title
 #, no-c-format
@@ -471,18 +1217,42 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Earlier versions of Hibernate required explicit disconnection and reconnection of a <literal>Session</literal>. These methods are deprecated, as beginning and ending a transaction has the same effect."
-msgstr "注意,早期的 Hibernate 版本需要明确的对 <literal>Session</literal> 进行 disconnect 和 reconnect。这些方法现在已经过时了,打开事务和关闭事务会起到同样的效果。"
+msgid ""
+"Earlier versions of Hibernate required explicit disconnection and "
+"reconnection of a <literal>Session</literal>. These methods are deprecated, "
+"as beginning and ending a transaction has the same effect."
+msgstr ""
+"注意,早期的 Hibernate 版本需要明确的对 <literal>Session</literal> 进行 "
+"disconnect 和 reconnect。这些方法现在已经过时了,打开事务和关闭事务会起到同样"
+"的效果。"
 
 #. Tag: para
 #, no-c-format
-msgid "Keep the disconnected <literal>Session</literal> close to the persistence layer. Use an EJB stateful session bean to hold the <literal>Session</literal> in a three-tier environment. Do not transfer it to the web layer, or even serialize it to a separate tier, to store it in the <literal>HttpSession</literal>."
-msgstr "此外,也请注意,你应该让与数据库连接断开的 <literal>Session</literal> 对持久层保持关闭状态。换句话说,在三层环境中,使用有状态的 EJB session bean 来持 有<literal>Session</literal>, 而不要把它传递到 web 层(甚至把它序列化到一个单独的层),保存在 <literal>HttpSession</literal> 中。 "
+msgid ""
+"Keep the disconnected <literal>Session</literal> close to the persistence "
+"layer. Use an EJB stateful session bean to hold the <literal>Session</"
+"literal> in a three-tier environment. Do not transfer it to the web layer, "
+"or even serialize it to a separate tier, to store it in the "
+"<literal>HttpSession</literal>."
+msgstr ""
+"此外,也请注意,你应该让与数据库连接断开的 <literal>Session</literal> 对持久"
+"层保持关闭状态。换句话说,在三层环境中,使用有状态的 EJB session bean 来持 有"
+"<literal>Session</literal>, 而不要把它传递到 web 层(甚至把它序列化到一个单"
+"独的层),保存在 <literal>HttpSession</literal> 中。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The extended session pattern, or <emphasis>session-per-conversation</emphasis>, is more difficult to implement with automatic current session context management. You need to supply your own implementation of the <literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki for examples."
-msgstr "扩展 session 模式,或者被称为<emphasis>每次对话一个session(session-per-conversation)</emphasis>,自动管理当前 session 上下文联用的时候会更困难。你需要提供你自己的 <literal>CurrentSessionContext</literal> 实现。请参阅 Hibernate Wiki 以获得示例。 "
+msgid ""
+"The extended session pattern, or <emphasis>session-per-conversation</"
+"emphasis>, is more difficult to implement with automatic current session "
+"context management. You need to supply your own implementation of the "
+"<literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki "
+"for examples."
+msgstr ""
+"扩展 session 模式,或者被称为<emphasis>每次对话一个session(session-per-"
+"conversation)</emphasis>,自动管理当前 session 上下文联用的时候会更困难。你"
+"需要提供你自己的 <literal>CurrentSessionContext</literal> 实现。请参阅 "
+"Hibernate Wiki 以获得示例。 "
 
 #. Tag: title
 #, no-c-format
@@ -491,18 +1261,42 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Each interaction with the persistent store occurs in a new <literal>Session</literal>. However, the same persistent instances are reused for each interaction with the database. The application manipulates the state of detached instances originally loaded in another <literal>Session</literal> and then reattaches them using <literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</literal>."
-msgstr "这种方式下,与持久化存储的每次交互都发生在一个新的 <literal>Session</literal> 中。然而,同一持久化对象实例可以在多次与数据库的交互中重用。应用程序操纵脱管对象实例 的状态,这个脱管对象实例最初是在另一个 <literal>Session</literal> 中载入的,然后调用 <literal>Session.update()</literal>,<literal>Session.saveOrUpdate()</literal>,或者  <literal>Session.merge()</literal> 来重新关联该对象实例。"
+msgid ""
+"Each interaction with the persistent store occurs in a new <literal>Session</"
+"literal>. However, the same persistent instances are reused for each "
+"interaction with the database. The application manipulates the state of "
+"detached instances originally loaded in another <literal>Session</literal> "
+"and then reattaches them using <literal>Session.update()</literal>, "
+"<literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</"
+"literal>."
+msgstr ""
+"这种方式下,与持久化存储的每次交互都发生在一个新的 <literal>Session</"
+"literal> 中。然而,同一持久化对象实例可以在多次与数据库的交互中重用。应用程序"
+"操纵脱管对象实例 的状态,这个脱管对象实例最初是在另一个 <literal>Session</"
+"literal> 中载入的,然后调用 <literal>Session.update()</literal>,"
+"<literal>Session.saveOrUpdate()</literal>,或者  <literal>Session.merge()</"
+"literal> 来重新关联该对象实例。"
 
 #. Tag: para
 #, no-c-format
-msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occurred."
-msgstr "Hibernate 会再一次在同步的时候检查对象实例的版本,如果发生更新冲突,就抛出异常。 "
+msgid ""
+"Again, Hibernate will check instance versions during flush, throwing an "
+"exception if conflicting updates occurred."
+msgstr ""
+"Hibernate 会再一次在同步的时候检查对象实例的版本,如果发生更新冲突,就抛出异"
+"常。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can also call <literal>lock()</literal> instead of <literal>update()</literal>, and use <literal>LockMode.READ</literal> (performing a version check and bypassing all caches) if you are sure that the object has not been modified."
-msgstr "如果你确信对象没有被修改过,你也可以调用 <literal>lock()</literal> 来设置  <literal>LockMode.READ</literal>(绕过所有的缓存,执行版本检查),从而取代  <literal>update()</literal> 操作。 "
+msgid ""
+"You can also call <literal>lock()</literal> instead of <literal>update()</"
+"literal>, and use <literal>LockMode.READ</literal> (performing a version "
+"check and bypassing all caches) if you are sure that the object has not been "
+"modified."
+msgstr ""
+"如果你确信对象没有被修改过,你也可以调用 <literal>lock()</literal> 来设置  "
+"<literal>LockMode.READ</literal>(绕过所有的缓存,执行版本检查),从而取代  "
+"<literal>update()</literal> 操作。 "
 
 #. Tag: title
 #, no-c-format
@@ -511,23 +1305,77 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can disable Hibernate's automatic version increment for particular properties and collections by setting the <literal>optimistic-lock</literal> mapping attribute to <literal>false</literal>. Hibernate will then no longer increment versions if the property is dirty."
-msgstr "对于特定的属性和集合,通过为它们设置映射属性 <literal>optimistic-lock</literal> 的值为 <literal>false</literal>,来禁止 Hibernate 的版本自动增加。这样的话,如果该属性脏数据,Hibernate 将不再增加版本号。 "
+msgid ""
+"You can disable Hibernate's automatic version increment for particular "
+"properties and collections by setting the <literal>optimistic-lock</literal> "
+"mapping attribute to <literal>false</literal>. Hibernate will then no longer "
+"increment versions if the property is dirty."
+msgstr ""
+"对于特定的属性和集合,通过为它们设置映射属性 <literal>optimistic-lock</"
+"literal> 的值为 <literal>false</literal>,来禁止 Hibernate 的版本自动增加。这"
+"样的话,如果该属性脏数据,Hibernate 将不再增加版本号。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Legacy database schemas are often static and cannot be modified. Or, other applications might access the same database and will not know how to handle version numbers or even timestamps. In both cases, versioning cannot rely on a particular column in a table. To force a version check with a comparison of the state of all fields in a row but without a version or timestamp property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the <literal>&lt;class&gt;</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>&lt;class&gt;</literal> 的映射中设置  <literal>optimistic-lock=\"all\"</literal> 可以在没有版本或者时间戳属性映射的情况下实现版本检查,此时 Hibernate 将比较一行记录的每个字段的状态。请注意,只有当 Hibernate 能够比较新旧状态的情况下,这种方式才能生效,也就是说,你必须使用单个长生命周期 <literal>Session</literal> 模式,而不能使用 session-per-request-with-detached-objects 模式。 "
+msgid ""
+"Legacy database schemas are often static and cannot be modified. Or, other "
+"applications might access the same database and will not know how to handle "
+"version numbers or even timestamps. In both cases, versioning cannot rely on "
+"a particular column in a table. To force a version check with a comparison "
+"of the state of all fields in a row but without a version or timestamp "
+"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
+"<literal>&lt;class&gt;</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>&lt;class&gt;</literal> 的"
+"映射中设置  <literal>optimistic-lock=\"all\"</literal> 可以在没有版本或者时间"
+"戳属性映射的情况下实现版本检查,此时 Hibernate 将比较一行记录的每个字段的状"
+"态。请注意,只有当 Hibernate 能够比较新旧状态的情况下,这种方式才能生效,也就"
+"是说,你必须使用单个长生命周期 <literal>Session</literal> 模式,而不能使用 "
+"session-per-request-with-detached-objects 模式。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Concurrent modification can be permitted in instances where the changes that have been made do not overlap. If you set <literal>optimistic-lock=\"dirty\"</literal> when mapping the <literal>&lt;class&gt;</literal>, Hibernate will only compare dirty fields during flush."
-msgstr "有些情况下,只要更改不发生交错,并发修改也是允许的。当你在 <literal>&lt;class&gt;</literal> 的映射中设置 <literal>optimistic-lock=\"dirty\"</literal>,Hibernate 在同步的时候将只比较有脏数据的字段。 "
+msgid ""
+"Concurrent modification can be permitted in instances where the changes that "
+"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
+"\"</literal> when mapping the <literal>&lt;class&gt;</literal>, Hibernate "
+"will only compare dirty fields during flush."
+msgstr ""
+"有些情况下,只要更改不发生交错,并发修改也是允许的。当你在 <literal>&lt;"
+"class&gt;</literal> 的映射中设置 <literal>optimistic-lock=\"dirty\"</"
+"literal>,Hibernate 在同步的时候将只比较有脏数据的字段。 "
 
 #. Tag: para
 #, no-c-format
-msgid "In both cases, with dedicated version/timestamp columns or with a full/dirty field comparison, Hibernate uses a single <literal>UPDATE</literal> statement, with an appropriate <literal>WHERE</literal> clause, per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate may execute unnecessary updates. This is usually not a problem, but <emphasis>on update</emphasis> triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting <literal>select-before-update=\"true\"</literal> in the <literal>&lt;class&gt;</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>&lt;class&gt;</literal> 的映射中,通过设置<literal>select-before-update=\"true\"</literal> 来定制这一行为,强制 Hibernate  <literal>SELECT</literal> 这个对象实例,从而保证,在更新记录之前,对象的确是被修改过。 "
+msgid ""
+"In both cases, with dedicated version/timestamp columns or with a full/dirty "
+"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
+"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
+"to execute the version check and update the information. If you use "
+"transitive persistence to cascade reattachment to associated entities, "
+"Hibernate may execute unnecessary updates. This is usually not a problem, "
+"but <emphasis>on update</emphasis> triggers in the database might be "
+"executed even when no changes have been made to detached instances. You can "
+"customize this behavior by setting <literal>select-before-update=\"true\"</"
+"literal> in the <literal>&lt;class&gt;</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>&lt;class&gt;</literal> 的映射中,通过"
+"设置<literal>select-before-update=\"true\"</literal> 来定制这一行为,强制 "
+"Hibernate  <literal>SELECT</literal> 这个对象实例,从而保证,在更新记录之前,"
+"对象的确是被修改过。 "
 
 #. Tag: title
 #, no-c-format
@@ -536,53 +1384,103 @@
 
 #. Tag: para
 #, no-c-format
-msgid "It is not intended that users spend much time worrying about locking strategies. It is usually enough to specify an isolation level for the JDBC connections and then simply let the database do all the work. However, advanced users may wish to obtain exclusive pessimistic locks or re-obtain locks at the start of a new transaction."
-msgstr "用户其实并不需要花很多精力去担心锁定策略的问题。通常情况下,只要为 JDBC 连接指定一下隔离级别,然后让数据库去搞定一切就够了。然而,高级用户有时候希望进行一个排它的悲观锁定,或者在一个新的事务启动的时候,重新进行锁定。 "
+msgid ""
+"It is not intended that users spend much time worrying about locking "
+"strategies. It is usually enough to specify an isolation level for the JDBC "
+"connections and then simply let the database do all the work. However, "
+"advanced users may wish to obtain exclusive pessimistic locks or re-obtain "
+"locks at the start of a new transaction."
+msgstr ""
+"用户其实并不需要花很多精力去担心锁定策略的问题。通常情况下,只要为 JDBC 连接"
+"指定一下隔离级别,然后让数据库去搞定一切就够了。然而,高级用户有时候希望进行"
+"一个排它的悲观锁定,或者在一个新的事务启动的时候,重新进行锁定。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate will always use the locking mechanism of the database; it never lock objects in memory."
+msgid ""
+"Hibernate will always use the locking mechanism of the database; it never "
+"lock objects in memory."
 msgstr "Hibernate 总是使用数据库的锁定机制,从不在内存中锁定对象。"
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>LockMode</literal> class defines the different lock levels that can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
-msgstr "类 <literal>LockMode</literal> 定义了 Hibernate 所需的不同的锁定级别。一个锁定可以通过以下的机制来设置:"
+msgid ""
+"The <literal>LockMode</literal> class defines the different lock levels that "
+"can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
+msgstr ""
+"类 <literal>LockMode</literal> 定义了 Hibernate 所需的不同的锁定级别。一个锁"
+"定可以通过以下的机制来设置:"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate updates or inserts a row."
-msgstr "当 Hibernate 更新或者插入一行记录的时候,锁定级别自动设置为 <literal>LockMode.WRITE</literal>。"
+msgid ""
+"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
+"updates or inserts a row."
+msgstr ""
+"当 Hibernate 更新或者插入一行记录的时候,锁定级别自动设置为 "
+"<literal>LockMode.WRITE</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user request using <literal>SELECT ... FOR UPDATE</literal> on databases which support that syntax."
-msgstr "当用户显式的使用数据库支持的 SQL 格式 <literal>SELECT ... FOR UPDATE</literal> 发送 SQL 的时候,锁定级别设置为 <literal>LockMode.UPGRADE</literal>。 "
+msgid ""
+"<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user "
+"request using <literal>SELECT ... FOR UPDATE</literal> on databases which "
+"support that syntax."
+msgstr ""
+"当用户显式的使用数据库支持的 SQL 格式 <literal>SELECT ... FOR UPDATE</"
+"literal> 发送 SQL 的时候,锁定级别设置为 <literal>LockMode.UPGRADE</"
+"literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under Oracle."
-msgstr "当用户显式的使用 Oracle 数据库的 SQL 语句 <literal>SELECT ... FOR UPDATE NOWAIT</literal> 的时候,锁定级别设置 <literal>LockMode.UPGRADE_NOWAIT</literal>。 "
+msgid ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit "
+"user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under "
+"Oracle."
+msgstr ""
+"当用户显式的使用 Oracle 数据库的 SQL 语句 <literal>SELECT ... FOR UPDATE "
+"NOWAIT</literal> 的时候,锁定级别设置 <literal>LockMode.UPGRADE_NOWAIT</"
+"literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>LockMode.READ</literal> is acquired automatically when Hibernate reads data under Repeatable Read or Serializable isolation level. It can be re-acquired by explicit user request."
-msgstr "当 Hibernate 在“可重复读”或者是“序列化”数据库隔离级别下读取数据的时候,锁定模式自动设置为 <literal>LockMode.READ</literal>。这种模式也可以通过用户显式指定进行设置。 "
+msgid ""
+"<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
+"reads data under Repeatable Read or Serializable isolation level. It can be "
+"re-acquired by explicit user request."
+msgstr ""
+"当 Hibernate 在“可重复读”或者是“序列化”数据库隔离级别下读取数据的时候,锁定模"
+"式自动设置为 <literal>LockMode.READ</literal>。这种模式也可以通过用户显式指定"
+"进行设置。 "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>LockMode.NONE</literal> represents the absence of a lock. All objects switch to this lock mode at the end of a <literal>Transaction</literal>. Objects associated with the session via a call to <literal>update()</literal> or <literal>saveOrUpdate()</literal> also start out in this lock mode."
-msgstr "<literal>LockMode.NONE</literal> 代表无需锁定。在 <literal>Transaction</literal> 结束时, 所有的对象都切换到该模式上来。与 session 相关联的对象通过调用 <literal>update()</literal> 或者 <literal>saveOrUpdate()</literal> 脱离该模式。"
+msgid ""
+"<literal>LockMode.NONE</literal> represents the absence of a lock. All "
+"objects switch to this lock mode at the end of a <literal>Transaction</"
+"literal>. Objects associated with the session via a call to <literal>update()"
+"</literal> or <literal>saveOrUpdate()</literal> also start out in this lock "
+"mode."
+msgstr ""
+"<literal>LockMode.NONE</literal> 代表无需锁定。在 <literal>Transaction</"
+"literal> 结束时, 所有的对象都切换到该模式上来。与 session 相关联的对象通过调"
+"用 <literal>update()</literal> 或者 <literal>saveOrUpdate()</literal> 脱离该"
+"模式。"
 
 #. Tag: para
 #, no-c-format
-msgid "The \"explicit user request\" is expressed in one of the following ways:"
+msgid ""
+"The \"explicit user request\" is expressed in one of the following ways:"
 msgstr "\"显式的用户指定\"可以通过以下几种方式之一来表示:"
 
 #. Tag: para
 #, no-c-format
-msgid "A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</literal>."
-msgstr "调用 <literal>Session.load()</literal> 的时候指定<literal>锁定模式(LockMode)</literal>。"
+msgid ""
+"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
+"literal>."
+msgstr ""
+"调用 <literal>Session.load()</literal> 的时候指定<literal>锁定模式"
+"(LockMode)</literal>。"
 
 #. Tag: para
 #, no-c-format
@@ -596,18 +1494,46 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If <literal>Session.load()</literal> is called with <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was not yet loaded by the session, the object is loaded using <literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is called for an object that is already loaded with a less restrictive lock than the one requested, Hibernate calls <literal>lock()</literal> for that object."
-msgstr "如果在 <literal>UPGRADE</literal> 或者 <literal>UPGRADE_NOWAIT</literal> 锁定模式下调用 <literal>Session.load()</literal>,并且要读取的对象尚未被 session 载入过,那么对象通过 <literal>SELECT ... FOR UPDATE</literal> 这样的 SQL 语句被载入。如果为一个对象调用  <literal>load()</literal> 方法时,该对象已经在另一个较少限制的锁定模式下被载入了,那么  Hibernate 就对该对象调用 <literal>lock()</literal> 方法。"
+msgid ""
+"If <literal>Session.load()</literal> is called with <literal>UPGRADE</"
+"literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was "
+"not yet loaded by the session, the object is loaded using "
+"<literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is "
+"called for an object that is already loaded with a less restrictive lock "
+"than the one requested, Hibernate calls <literal>lock()</literal> for that "
+"object."
+msgstr ""
+"如果在 <literal>UPGRADE</literal> 或者 <literal>UPGRADE_NOWAIT</literal> 锁定"
+"模式下调用 <literal>Session.load()</literal>,并且要读取的对象尚未被 session "
+"载入过,那么对象通过 <literal>SELECT ... FOR UPDATE</literal> 这样的 SQL 语句"
+"被载入。如果为一个对象调用  <literal>load()</literal> 方法时,该对象已经在另"
+"一个较少限制的锁定模式下被载入了,那么  Hibernate 就对该对象调用 "
+"<literal>lock()</literal> 方法。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>Session.lock()</literal> performs a version number check if the specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR UPDATE</literal> is used."
-msgstr "如果指定的锁定模式是 <literal>READ</literal>,<literal>UPGRADE</literal> 或  <literal>UPGRADE_NOWAIT</literal>,那么 <literal>Session.lock()</literal> 就执行版本号检查。(在 <literal>UPGRADE</literal> 或者 <literal>UPGRADE_NOWAIT</literal> 锁定模式下,执行 <literal>SELECT ... FOR UPDATE</literal>这样的SQL语句。)"
+msgid ""
+"<literal>Session.lock()</literal> performs a version number check if the "
+"specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> "
+"or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</"
+"literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR "
+"UPDATE</literal> is used."
+msgstr ""
+"如果指定的锁定模式是 <literal>READ</literal>,<literal>UPGRADE</literal> 或  "
+"<literal>UPGRADE_NOWAIT</literal>,那么 <literal>Session.lock()</literal> 就"
+"执行版本号检查。(在 <literal>UPGRADE</literal> 或者 "
+"<literal>UPGRADE_NOWAIT</literal> 锁定模式下,执行 <literal>SELECT ... FOR "
+"UPDATE</literal>这样的SQL语句。)"
 
 #. Tag: para
 #, no-c-format
-msgid "If the requested lock mode is not supported by the database, Hibernate uses an appropriate alternate mode instead of throwing an exception. This ensures that applications are portable."
-msgstr "如果数据库不支持用户设置的锁定模式,Hibernate 将使用适当的替代模式(而不是扔出异常)。这一点可以确保应用程序的可移植性。 "
+msgid ""
+"If the requested lock mode is not supported by the database, Hibernate uses "
+"an appropriate alternate mode instead of throwing an exception. This ensures "
+"that applications are portable."
+msgstr ""
+"如果数据库不支持用户设置的锁定模式,Hibernate 将使用适当的替代模式(而不是扔"
+"出异常)。这一点可以确保应用程序的可移植性。 "
 
 #. Tag: title
 #, no-c-format
@@ -616,51 +1542,133 @@
 
 #. Tag: para
 #, no-c-format
-msgid "One of the legacies of Hibernate 2.x JDBC connection management meant that a <literal>Session</literal> would obtain a connection when it was first required and then maintain that connection until the session was closed. Hibernate 3.x introduced the notion of connection release modes that would instruct a session how to handle its JDBC connections. The following discussion is pertinent only to connections provided through a configured <literal>ConnectionProvider</literal>. User-supplied connections are outside the breadth of this discussion. The different release modes are identified by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</literal>:"
-msgstr "Hibernate 关于 JDBC 连接管理的旧(2.x)行为是,<literal>Session</literal> 在第一次需要的时候获取一个连接,在 session 关闭之前一直会持有这个连接。Hibernate 引入了连接释放的概念,来告诉 session 如何处理它的 JDBC 连接。注意,下面的讨论只适用于采用配置 <literal>ConnectionProvider</literal> 来提供连接的情况,用户自己提供的连接与这里的讨论无关。通过 <literal>org.hibernate.ConnectionReleaseMode</literal> 的不同枚举值来使用不用的释放模式:"
+msgid ""
+"One of the legacies of Hibernate 2.x JDBC connection management meant that a "
+"<literal>Session</literal> would obtain a connection when it was first "
+"required and then maintain that connection until the session was closed. "
+"Hibernate 3.x introduced the notion of connection release modes that would "
+"instruct a session how to handle its JDBC connections. The following "
+"discussion is pertinent only to connections provided through a configured "
+"<literal>ConnectionProvider</literal>. User-supplied connections are outside "
+"the breadth of this discussion. The different release modes are identified "
+"by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</"
+"literal>:"
+msgstr ""
+"Hibernate 关于 JDBC 连接管理的旧(2.x)行为是,<literal>Session</literal> 在"
+"第一次需要的时候获取一个连接,在 session 关闭之前一直会持有这个连接。"
+"Hibernate 引入了连接释放的概念,来告诉 session 如何处理它的 JDBC 连接。注意,"
+"下面的讨论只适用于采用配置 <literal>ConnectionProvider</literal> 来提供连接的"
+"情况,用户自己提供的连接与这里的讨论无关。通过 <literal>org.hibernate."
+"ConnectionReleaseMode</literal> 的不同枚举值来使用不用的释放模式:"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>ON_CLOSE</literal>: is the legacy behavior described above. The Hibernate session obtains a connection when it first needs to perform some JDBC access and maintains that connection until the session is closed."
-msgstr "<literal>ON_CLOSE</literal>:基本上就是上面提到的老式行为。Hibernate session 在第一次需要进行 JDBC 操作的时候获取连接,然后持有它,直到 session 关闭。"
+msgid ""
+"<literal>ON_CLOSE</literal>: is the legacy behavior described above. The "
+"Hibernate session obtains a connection when it first needs to perform some "
+"JDBC access and maintains that connection until the session is closed."
+msgstr ""
+"<literal>ON_CLOSE</literal>:基本上就是上面提到的老式行为。Hibernate session "
+"在第一次需要进行 JDBC 操作的时候获取连接,然后持有它,直到 session 关闭。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>AFTER_TRANSACTION</literal>: releases connections after a <literal>org.hibernate.Transaction</literal> has been completed."
-msgstr "<literal>AFTER_TRANSACTION</literal>:在 <literal>org.hibernate.Transaction</literal> 结束后释放连接。"
+msgid ""
+"<literal>AFTER_TRANSACTION</literal>: releases connections after a "
+"<literal>org.hibernate.Transaction</literal> has been completed."
+msgstr ""
+"<literal>AFTER_TRANSACTION</literal>:在 <literal>org.hibernate.Transaction</"
+"literal> 结束后释放连接。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): releases connections after every statement execution. This aggressive releasing is skipped if that statement leaves open resources associated with the given session. Currently the only situation where this occurs is through the use of <literal>org.hibernate.ScrollableResults</literal>."
-msgstr "<literal>AFTER_STATEMENT</literal>(也被称做积极释放):在每一条语句被执行后就释放连接。但假若语句留下了与 session 相关的资源,那就不会被释放。目前唯一的这种情形就是使用 <literal>org.hibernate.ScrollableResults</literal>。"
+msgid ""
+"<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): "
+"releases connections after every statement execution. This aggressive "
+"releasing is skipped if that statement leaves open resources associated with "
+"the given session. Currently the only situation where this occurs is through "
+"the use of <literal>org.hibernate.ScrollableResults</literal>."
+msgstr ""
+"<literal>AFTER_STATEMENT</literal>(也被称做积极释放):在每一条语句被执行后"
+"就释放连接。但假若语句留下了与 session 相关的资源,那就不会被释放。目前唯一的"
+"这种情形就是使用 <literal>org.hibernate.ScrollableResults</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid "The configuration parameter <literal>hibernate.connection.release_mode</literal> is used to specify which release mode to use. The possible values are as follows:"
-msgstr "<literal>hibernate.connection.release_mode</literal> 配置参数用来指定使用哪一种释放模式。可能的值有: "
+msgid ""
+"The configuration parameter <literal>hibernate.connection.release_mode</"
+"literal> is used to specify which release mode to use. The possible values "
+"are as follows:"
+msgstr ""
+"<literal>hibernate.connection.release_mode</literal> 配置参数用来指定使用哪一"
+"种释放模式。可能的值有: "
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>auto</literal> (the default): this choice delegates to the release mode returned by the <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this default behavior as failures due to the value of this setting tend to indicate bugs and/or invalid assumptions in user code."
-msgstr "<literal>auto</literal>(默认):这一选择把释放模式委派给 <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> 方法。对 JTATransactionFactory 来说,它会返回 ConnectionReleaseMode.AFTER_STATEMENT;对 JDBCTransactionFactory 来说,则是ConnectionReleaseMode.AFTER_TRANSACTION。很少需要修改这一默认行为,因为假若设置不当,就会带来 bug,或者给用户代码带来误导。"
+msgid ""
+"<literal>auto</literal> (the default): this choice delegates to the release "
+"mode returned by the <literal>org.hibernate.transaction.TransactionFactory."
+"getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this "
+"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, "
+"this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this "
+"default behavior as failures due to the value of this setting tend to "
+"indicate bugs and/or invalid assumptions in user code."
+msgstr ""
+"<literal>auto</literal>(默认):这一选择把释放模式委派给 <literal>org."
+"hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> æ–¹"
+"法。对 JTATransactionFactory 来说,它会返回 ConnectionReleaseMode."
+"AFTER_STATEMENT;对 JDBCTransactionFactory 来说,则是ConnectionReleaseMode."
+"AFTER_TRANSACTION。很少需要修改这一默认行为,因为假若设置不当,就会带来 bug,"
+"或者给用户代码带来误导。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This setting is left for backwards compatibility, but its use is discouraged."
-msgstr "<literal>on_close</literal>:使用 ConnectionReleaseMode.ON_CLOSE。这种方式是为了向下兼容的,但是已经完全不被鼓励使用了。"
+msgid ""
+"<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This "
+"setting is left for backwards compatibility, but its use is discouraged."
+msgstr ""
+"<literal>on_close</literal>:使用 ConnectionReleaseMode.ON_CLOSE。这种方式是"
+"为了向下兼容的,但是已经完全不被鼓励使用了。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>after_transaction</literal>: uses ConnectionReleaseMode.AFTER_TRANSACTION. This setting should not be used in JTA environments. Also note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is considered to be in auto-commit mode, connections will be released as if the release mode were AFTER_STATEMENT."
-msgstr "<literal>after_transaction</literal>:使用 ConnectionReleaseMode.AFTER_TRANSACTION。这一设置不应该在 JTA 环境下使用。也要注意,使用 ConnectionReleaseMode.AFTER_TRANSACTION 的时候,假若session 处于 auto-commit 状态,连接会像 AFTER_STATEMENT 那样被释放。"
+msgid ""
+"<literal>after_transaction</literal>: uses ConnectionReleaseMode."
+"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also "
+"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is "
+"considered to be in auto-commit mode, connections will be released as if the "
+"release mode were AFTER_STATEMENT."
+msgstr ""
+"<literal>after_transaction</literal>:使用 ConnectionReleaseMode."
+"AFTER_TRANSACTION。这一设置不应该在 JTA 环境下使用。也要注意,使用 "
+"ConnectionReleaseMode.AFTER_TRANSACTION 的时候,假若session 处于 auto-commit "
+"状态,连接会像 AFTER_STATEMENT 那样被释放。"
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>after_statement</literal>: uses ConnectionReleaseMode.AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</literal> is consulted to see if it supports this setting (<literal>supportsAggressiveRelease()</literal>). If not, the release mode is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only safe in environments where we can either re-acquire the same underlying JDBC connection each time you make a call into <literal>ConnectionProvider.getConnection()</literal> or in auto-commit environments where it does not matter if we re-establish the same connection."
-msgstr "<literal>after_statement</literal>:使用 ConnectionReleaseMode.AFTER_STATEMENT。除此之外,会查询配置的 <literal>ConnectionProvider</literal>,是否它支持这一设置(<literal>supportsAggressiveRelease()</literal>)。假若不支持,释放模式会被设置为  ConnectionReleaseMode.AFTER_TRANSACTION。只有在你每次调用  <literal>ConnectionProvider.getConnection()</literal> 获取底层 JDBC 连接的时候,都可以确信获得同一个连接的时候,这一设置才是安全的;或者在 auto-commit 环境中,你可以不管是否每次都获得同一个连接的时候,这才是安全的。"
+msgid ""
+"<literal>after_statement</literal>: uses ConnectionReleaseMode."
+"AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</"
+"literal> is consulted to see if it supports this setting "
+"(<literal>supportsAggressiveRelease()</literal>). If not, the release mode "
+"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only "
+"safe in environments where we can either re-acquire the same underlying JDBC "
+"connection each time you make a call into <literal>ConnectionProvider."
+"getConnection()</literal> or in auto-commit environments where it does not "
+"matter if we re-establish the same connection."
+msgstr ""
+"<literal>after_statement</literal>:使用 ConnectionReleaseMode."
+"AFTER_STATEMENT。除此之外,会查询配置的 <literal>ConnectionProvider</"
+"literal>,是否它支持这一设置(<literal>supportsAggressiveRelease()</"
+"literal>)。假若不支持,释放模式会被设置为  ConnectionReleaseMode."
+"AFTER_TRANSACTION。只有在你每次调用  <literal>ConnectionProvider."
+"getConnection()</literal> 获取底层 JDBC 连接的时候,都可以确信获得同一个连接"
+"的时候,这一设置才是安全的;或者在 auto-commit 环境中,你可以不管是否每次都获"
+"得同一个连接的时候,这才是安全的。"
 
 #~ msgid "foo==bar"
 #~ msgstr "foo==bar"
+
 #~ msgid ""
 #~ "<![CDATA[// Non-managed environment idiom\n"
 #~ "Session sess = factory.openSession();\n"
@@ -699,6 +1707,7 @@
 #~ "finally {\n"
 #~ "    sess.close();\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
 #~ "try {\n"
@@ -727,6 +1736,7 @@
 #~ "    factory.getCurrentSession().getTransaction().rollback();\n"
 #~ "    throw e; // or display error message\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[// BMT idiom\n"
 #~ "Session sess = factory.openSession();\n"
@@ -765,6 +1775,7 @@
 #~ "finally {\n"
 #~ "    sess.close();\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[// BMT idiom with getCurrentSession()\n"
 #~ "try {\n"
@@ -801,6 +1812,7 @@
 #~ "    tx.rollback();\n"
 #~ "    throw e; // or display error message\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[// CMT idiom\n"
 #~ " Session sess = factory.getCurrentSession();\n"
@@ -815,6 +1827,7 @@
 #~ " // do some work\n"
 #~ " ...\n"
 #~ "]]>"
+
 #~ msgid ""
 #~ "<![CDATA[\n"
 #~ "Session sess = factory.openSession();\n"
@@ -855,6 +1868,7 @@
 #~ "finally {\n"
 #~ "    sess.close();\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
 #~ "session = factory.openSession();\n"
@@ -881,6 +1895,7 @@
 #~ "\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 "
@@ -901,6 +1916,7 @@
 #~ "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"
@@ -919,4 +1935,3 @@
 #~ "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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/tutorial.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: tutorial\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2010-01-08T04:07:20\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -22,18 +22,34 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Intended for new users, this chapter provides an step-by-step introduction to Hibernate, starting with a simple application using an in-memory database. The tutorial is based on an earlier tutorial developed by Michael Gloegl. All code is contained in the <filename>tutorials/web</filename> directory of the project source."
-msgstr "面向新用户,从一个简单的使用内存数据库的例子开始,本章提供对 Hibernate 的逐步介绍。本教程基于 Michael Gloegl 早期编写的手册。所有代码都包含在 <filename>tutorials/web</filename> 目录下。"
+msgid ""
+"Intended for new users, this chapter provides an step-by-step introduction "
+"to Hibernate, starting with a simple application using an in-memory "
+"database. The tutorial is based on an earlier tutorial developed by Michael "
+"Gloegl. All code is contained in the <filename>tutorials/web</filename> "
+"directory of the project source."
+msgstr ""
+"面向新用户,从一个简单的使用内存数据库的例子开始,本章提供对 Hibernate 的逐步"
+"介绍。本教程基于 Michael Gloegl 早期编写的手册。所有代码都包含在 "
+"<filename>tutorials/web</filename> 目录下。"
 
 #. Tag: para
 #, no-c-format
-msgid "This tutorial expects the user have knowledge of both Java and SQL. If you have a limited knowledge of JAVA or SQL, it is advised that you start with a good introduction to that technology prior to attempting to learn Hibernate."
-msgstr "本教程期望用户具备 Java 和 SQL 知识。如果你这方面的知识有限,我们建议你在学习 Hibernate 之前先好好了解这些技术。"
+msgid ""
+"This tutorial expects the user have knowledge of both Java and SQL. If you "
+"have a limited knowledge of JAVA or SQL, it is advised that you start with a "
+"good introduction to that technology prior to attempting to learn Hibernate."
+msgstr ""
+"本教程期望用户具备 Java 和 SQL 知识。如果你这方面的知识有限,我们建议你在学"
+"习 Hibernate 之前先好好了解这些技术。"
 
 #. Tag: para
 #, no-c-format
-msgid "The distribution contains another example application under the <filename>tutorial/eg</filename> project source directory."
-msgstr "本版本在源代码目录 <filename>tutorial/eg</filename> 下还包含另外一个例程。"
+msgid ""
+"The distribution contains another example application under the "
+"<filename>tutorial/eg</filename> project source directory."
+msgstr ""
+"本版本在源代码目录 <filename>tutorial/eg</filename> 下还包含另外一个例程。"
 
 #. Tag: title
 #, no-c-format
@@ -42,13 +58,25 @@
 
 #. Tag: para
 #, no-c-format
-msgid "For this example, we will set up a small database application that can store events we want to attend and information about the host(s) of these events."
-msgstr "在这个例子里,我们将设立一个小应用程序可以保存我们希望参加的活动(events)和这些活动主办方的相关信息。(译者注:在本教程的后面部分,我们将直接使用 event 而不是它的中文翻译“活动”,以免混淆。)"
+msgid ""
+"For this example, we will set up a small database application that can store "
+"events we want to attend and information about the host(s) of these events."
+msgstr ""
+"在这个例子里,我们将设立一个小应用程序可以保存我们希望参加的活动(events)和"
+"这些活动主办方的相关信息。(译者注:在本教程的后面部分,我们将直接使用 event "
+"而不是它的中文翻译“活动”,以免混淆。)"
 
 #. Tag: para
 #, no-c-format
-msgid "Although you can use whatever database you feel comfortable using, we will use <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink> (an in-memory, Java database) to avoid describing installation/setup of any particular database servers."
-msgstr "虽然你可以使用任何数据库,我们还是用 <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink>(一个用 Java 编写的内存数据库)来避免花费篇章对数据库服务器的安装/配置进行解释。"
+msgid ""
+"Although you can use whatever database you feel comfortable using, we will "
+"use <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink> (an in-memory, Java "
+"database) to avoid describing installation/setup of any particular database "
+"servers."
+msgstr ""
+"虽然你可以使用任何数据库,我们还是用 <ulink url=\"http://hsqldb.org/"
+"\">HSQLDB</ulink>(一个用 Java 编写的内存数据库)来避免花费篇章对数据库服务器"
+"的安装/配置进行解释。"
 
 #. Tag: title
 #, no-c-format
@@ -57,22 +85,65 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The first thing we need to do is to set up the development environment. We will be using the \"standard layout\" advocated by alot of build tools such as <ulink url=\"http://maven.org\">Maven</ulink>. Maven, in particular, has a good resource describing this <ulink url=\"http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html\">layout</ulink>. As this tutorial is to be a web application, we will be creating and making use of <filename>src/main/java</filename>, <filename>src/main/resources</filename> and <filename>src/main/webapp</filename> directories."
-msgstr "我们需要做的第一件事情是设置开发环境。我们将使用许多构建工具如 <ulink url=\"http://maven.org\">Maven</ulink> 所鼓吹的“标准格式”。特别是 Maven,它的资源对这个<ulink url=\"http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html\">格式(layout)</ulink>有着很好的描述。因为本教程使用的是 web 应用程序,我么将创建和使用 <filename>src/main/java</filename>、<filename>src/main/resources</filename> 和 <filename>src/main/webapp</filename> 目录。"
+msgid ""
+"The first thing we need to do is to set up the development environment. We "
+"will be using the \"standard layout\" advocated by alot of build tools such "
+"as <ulink url=\"http://maven.org\">Maven</ulink>. Maven, in particular, has "
+"a good resource describing this <ulink url=\"http://maven.apache.org/guides/"
+"introduction/introduction-to-the-standard-directory-layout.html\">layout</"
+"ulink>. As this tutorial is to be a web application, we will be creating and "
+"making use of <filename>src/main/java</filename>, <filename>src/main/"
+"resources</filename> and <filename>src/main/webapp</filename> directories."
+msgstr ""
+"我们需要做的第一件事情是设置开发环境。我们将使用许多构建工具如 <ulink url="
+"\"http://maven.org\">Maven</ulink> 所鼓吹的“标准格式”。特别是 Maven,它的资源"
+"对这个<ulink url=\"http://maven.apache.org/guides/introduction/introduction-"
+"to-the-standard-directory-layout.html\">格式(layout)</ulink>有着很好的描"
+"述。因为本教程使用的是 web 应用程序,我么将创建和使用 <filename>src/main/"
+"java</filename>、<filename>src/main/resources</filename> 和 <filename>src/"
+"main/webapp</filename> 目录。"
 
 #. Tag: para
 #, no-c-format
-msgid "We will be using Maven in this tutorial, taking advantage of its transitive dependency management capabilities as well as the ability of many IDEs to automatically set up a project for us based on the maven descriptor."
-msgstr "在本教程里我们将使用 Maven,利用其 transitive dependency 管理以及根据 Maven 描述符用 IDE 自动设置项目的能力。"
+msgid ""
+"We will be using Maven in this tutorial, taking advantage of its transitive "
+"dependency management capabilities as well as the ability of many IDEs to "
+"automatically set up a project for us based on the maven descriptor."
+msgstr ""
+"在本教程里我们将使用 Maven,利用其 transitive dependency 管理以及根据 Maven "
+"描述符用 IDE 自动设置项目的能力。"
 
 #. Tag: para
 #, no-c-format
-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 日志后台文件。 "
+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
 #, no-c-format
-msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
+msgid ""
+"Save this file as <filename>pom.xml</filename> in the project root directory."
 msgstr "把这个文件保存为项目根目录下的 <filename>pom.xml</filename>。"
 
 #. Tag: title
@@ -82,28 +153,75 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Next, we create a class that represents the event we want to store in the database; it is a simple JavaBean class with some properties:"
-msgstr "接下来我们创建一个类,用来代表那些我们希望储存在数据库里的 event,这是一个具有一些属性的简单 JavaBean 类:"
+msgid ""
+"Next, we create a class that represents the event we want to store in the "
+"database; it is a simple JavaBean class with some properties:"
+msgstr ""
+"接下来我们创建一个类,用来代表那些我们希望储存在数据库里的 event,这是一个具"
+"有一些属性的简单 JavaBean 类:"
 
 #. Tag: para
 #, no-c-format
-msgid "This class uses standard JavaBean naming conventions for property getter and setter methods, as well as private visibility for the fields. Although this is the recommended design, it is not required. Hibernate can also access fields directly, the benefit of accessor methods is robustness for refactoring."
-msgstr "你可以看到这个类对属性的存取方法(getter and setter method)使用了标准 JavaBean 命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate 也可以直接访问这些 field,而使用访问方法(accessor method)的好处是提供了重构时的健壮性(robustness)。"
+msgid ""
+"This class uses standard JavaBean naming conventions for property getter and "
+"setter methods, as well as private visibility for the fields. Although this "
+"is the recommended design, it is not required. Hibernate can also access "
+"fields directly, the benefit of accessor methods is robustness for "
+"refactoring."
+msgstr ""
+"你可以看到这个类对属性的存取方法(getter and setter method)使用了标准 "
+"JavaBean 命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是"
+"推荐的设计,但并不是必须的。Hibernate 也可以直接访问这些 field,而使用访问方"
+"法(accessor method)的好处是提供了重构时的健壮性(robustness)。"
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>id</literal> property holds a unique identifier value for a particular event. All persistent entity classes (there are less important dependent classes as well) will need such an identifier property if we want to use the full feature set of Hibernate. In fact, most applications, especially web applications, need to distinguish objects by identifier, so you should consider this a feature rather than a limitation. However, we usually do not manipulate the identity of an object, hence the setter method should be private. Only Hibernate will assign identifiers when an object is saved. Hibernate can access public, private, and protected accessor methods, as well as public, private and protected fields directly. The choice is up to you and you can match it to fit your application design."
-msgstr "对一特定的 event, <literal>id</literal> 属性持有唯一的标识符(identifier)的值。如果我们希望使用 Hibernate 提供的所有特性,那么所有的持久化实体(persistent entity)类(这里也包括一些次要依赖类)都需要一个这样的标识符属性。而事实上,大多数应用程序(特别是 web 应用程序)都需要通过标识符来区别对象,所以你应该考虑使用标识符属性而不是把它当作一种限制。然而,我们通常不会操作对象的标识(identity),因此它的 setter 方法的访问级别应该声明 private。这样当对象被保存的时候,只有 Hibernate 可以为它分配标识符值。你可看到Hibernate可以直接访问 public,private 和 protected 的访问方法和 field。所以选择哪种方式完全取决于你,你可以使你的选择与你的应用程序设计相吻合。 "
+msgid ""
+"The <literal>id</literal> property holds a unique identifier value for a "
+"particular event. All persistent entity classes (there are less important "
+"dependent classes as well) will need such an identifier property if we want "
+"to use the full feature set of Hibernate. In fact, most applications, "
+"especially web applications, need to distinguish objects by identifier, so "
+"you should consider this a feature rather than a limitation. However, we "
+"usually do not manipulate the identity of an object, hence the setter method "
+"should be private. Only Hibernate will assign identifiers when an object is "
+"saved. Hibernate can access public, private, and protected accessor methods, "
+"as well as public, private and protected fields directly. The choice is up "
+"to you and you can match it to fit your application design."
+msgstr ""
+"对一特定的 event, <literal>id</literal> 属性持有唯一的标识符(identifier)的"
+"值。如果我们希望使用 Hibernate 提供的所有特性,那么所有的持久化实体"
+"(persistent entity)类(这里也包括一些次要依赖类)都需要一个这样的标识符属"
+"性。而事实上,大多数应用程序(特别是 web 应用程序)都需要通过标识符来区别对"
+"象,所以你应该考虑使用标识符属性而不是把它当作一种限制。然而,我们通常不会操"
+"作对象的标识(identity),因此它的 setter 方法的访问级别应该声明 private。这"
+"样当对象被保存的时候,只有 Hibernate 可以为它分配标识符值。你可看到Hibernate"
+"可以直接访问 public,private 和 protected 的访问方法和 field。所以选择哪种方"
+"式完全取决于你,你可以使你的选择与你的应用程序设计相吻合。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The no-argument constructor is a requirement for all persistent classes; Hibernate has to create objects for you, using Java Reflection. The constructor can be private, however package or public visibility is required for runtime proxy generation and efficient data retrieval without bytecode instrumentation."
-msgstr "所有的持久化类(persistent classes)都要求有无参的构造器,因为 Hibernate 必须使用 Java 反射机制来为你创建对象。构造器(constructor)的访问级别可以是 private,然而当生成运行时代理(runtime proxy)的时候则要求使用至少是 package 级别的访问控制,这样在没有字节码指令(bytecode instrumentation)的情况下,从持久化类里获取数据会更有效率。 "
+msgid ""
+"The no-argument constructor is a requirement for all persistent classes; "
+"Hibernate has to create objects for you, using Java Reflection. The "
+"constructor can be private, however package or public visibility is required "
+"for runtime proxy generation and efficient data retrieval without bytecode "
+"instrumentation."
+msgstr ""
+"所有的持久化类(persistent classes)都要求有无参的构造器,因为 Hibernate 必须"
+"使用 Java 反射机制来为你创建对象。构造器(constructor)的访问级别可以是 "
+"private,然而当生成运行时代理(runtime proxy)的时候则要求使用至少是 package "
+"级别的访问控制,这样在没有字节码指令(bytecode instrumentation)的情况下,从"
+"持久化类里获取数据会更有效率。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</filename> directory."
-msgstr "把这个文件保存到 <filename>src/main/java/org/hibernate/tutorial/domain</filename> 目录下。"
+msgid ""
+"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
+"filename> directory."
+msgstr ""
+"把这个文件保存到 <filename>src/main/java/org/hibernate/tutorial/domain</"
+"filename> 目录下。"
 
 #. Tag: title
 #, no-c-format
@@ -112,8 +230,15 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate needs to know how to load and store objects of the persistent class. This is where the Hibernate mapping file comes into play. The mapping file tells Hibernate what table in the database it has to access, and what columns in that table it should use."
-msgstr "Hibernate 需要知道怎样去加载(load)和存储(store)持久化类的对象。这正是 Hibernate 映射文件发挥作用的地方。映射文件告诉 Hibernate 它应该访问数据库(database)里面的哪个表(table)及应该使用表里面的哪些字段(column)。"
+msgid ""
+"Hibernate needs to know how to load and store objects of the persistent "
+"class. This is where the Hibernate mapping file comes into play. The mapping "
+"file tells Hibernate what table in the database it has to access, and what "
+"columns in that table it should use."
+msgstr ""
+"Hibernate 需要知道怎样去加载(load)和存储(store)持久化类的对象。这正是 "
+"Hibernate 映射文件发挥作用的地方。映射文件告诉 Hibernate 它应该访问数据库"
+"(database)里面的哪个表(table)及应该使用表里面的哪些字段(column)。"
 
 #. Tag: para
 #, no-c-format
@@ -122,68 +247,194 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate DTD is sophisticated. You can use it for auto-completion of XML mapping elements and attributes in your editor or IDE. Opening up the DTD file in your text editor is the easiest way to get an overview of all elements and attributes, and to view the defaults, as well as some comments. Hibernate will not load the DTD file from the web, but first look it up from the classpath of the application. The DTD file is included in <filename>hibernate-core.jar</filename> (it is also included in the <filename>hibernate3.jar</filename>, if using the distribution bundle)."
-msgstr "注意 Hibernate 的 DTD 是非常复杂的。你的编辑器或者 IDE 里使用它来自动完成那些用来映射的 XML 元素(element)和属性(attribute)。你也可以在文本编辑器里打开 DTD — 这是最简单的方式来概览所有的元素和 attribute,并查看它们的缺省值以及注释。注意 Hibernate 不会从 web 加载 DTD 文件,但它会首先在应用程序的 classpath 中查找。DTD 文件已包括在 <literal>hibernate3.jar</literal> 里,同时也在 Hibernate 发布包的 <literal>src/</literal> 目录下。 "
+msgid ""
+"Hibernate DTD is sophisticated. You can use it for auto-completion of XML "
+"mapping elements and attributes in your editor or IDE. Opening up the DTD "
+"file in your text editor is the easiest way to get an overview of all "
+"elements and attributes, and to view the defaults, as well as some comments. "
+"Hibernate will not load the DTD file from the web, but first look it up from "
+"the classpath of the application. The DTD file is included in "
+"<filename>hibernate-core.jar</filename> (it is also included in the "
+"<filename>hibernate3.jar</filename>, if using the distribution bundle)."
+msgstr ""
+"注意 Hibernate 的 DTD 是非常复杂的。你的编辑器或者 IDE 里使用它来自动完成那些"
+"用来映射的 XML 元素(element)和属性(attribute)。你也可以在文本编辑器里打"
+"开 DTD — 这是最简单的方式来概览所有的元素和 attribute,并查看它们的缺省值以及"
+"注释。注意 Hibernate 不会从 web 加载 DTD 文件,但它会首先在应用程序的 "
+"classpath 中查找。DTD 文件已包括在 <literal>hibernate3.jar</literal> 里,同时"
+"也在 Hibernate 发布包的 <literal>src/</literal> 目录下。 "
 
 #. Tag: para
 #, no-c-format
-msgid "We will omit the DTD declaration in future examples to shorten the code. It is, of course, not optional."
-msgstr "为缩短代码长度,在以后的例子里我们会省略 DTD 的声明。当然,在实际的应用程序中,DTD 声明是必需的。 "
+msgid ""
+"We will omit the DTD declaration in future examples to shorten the code. It "
+"is, of course, not optional."
+msgstr ""
+"为缩短代码长度,在以后的例子里我们会省略 DTD 的声明。当然,在实际的应用程序"
+"中,DTD 声明是必需的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Between the two <literal>hibernate-mapping</literal> tags, include a <literal>class</literal> element. All persistent entity classes (again, there might be dependent classes later on, which are not first-class entities) need a mapping to a table in the SQL database:"
-msgstr "在 <literal>hibernate-mapping</literal> 标签(tag)之间, 含有一个 <literal>class</literal> 元素。所有的持久化实体类(再次声明,或许接下来会有依赖类,就是那些次要的实体)都需要一个这样的映射,来把类对象映射到 SQL 数据库里的表:"
+msgid ""
+"Between the two <literal>hibernate-mapping</literal> tags, include a "
+"<literal>class</literal> element. All persistent entity classes (again, "
+"there might be dependent classes later on, which are not first-class "
+"entities) need a mapping to a table in the SQL database:"
+msgstr ""
+"在 <literal>hibernate-mapping</literal> 标签(tag)之间, 含有一个 "
+"<literal>class</literal> 元素。所有的持久化实体类(再次声明,或许接下来会有依"
+"赖类,就是那些次要的实体)都需要一个这样的映射,来把类对象映射到 SQL 数据库里"
+"的表:"
 
 #. Tag: para
 #, no-c-format
-msgid "So far we have told Hibernate how to persist and load object of class <literal>Event</literal> to the table <literal>EVENTS</literal>. Each instance is now represented by a row in that table. Now we can continue by mapping the unique identifier property to the tables primary key. As we do not want to care about handling this identifier, we configure Hibernate's identifier generation strategy for a surrogate primary key column:"
-msgstr "到目前为止,我们告诉了 Hibernate 怎样把 <literal>Events</literal> 类的对象持久化到数据库的 <literal>EVENTS</literal> 表里,以及怎样从 <literal>EVENTS</literal> 表加载到 <literal>Events</literal> 类的对象。每个实例对应着数据库表中的一行。现在我们将继续讨论有关唯一标识符属性到数据库表的映射。另外,由于我们不关心怎样处理这个标识符,我们就配置由 Hibernate 的标识符生成策略来产生代理主键字段:"
+msgid ""
+"So far we have told Hibernate how to persist and load object of class "
+"<literal>Event</literal> to the table <literal>EVENTS</literal>. Each "
+"instance is now represented by a row in that table. Now we can continue by "
+"mapping the unique identifier property to the tables primary key. As we do "
+"not want to care about handling this identifier, we configure Hibernate's "
+"identifier generation strategy for a surrogate primary key column:"
+msgstr ""
+"到目前为止,我们告诉了 Hibernate 怎样把 <literal>Events</literal> 类的对象持"
+"久化到数据库的 <literal>EVENTS</literal> 表里,以及怎样从 <literal>EVENTS</"
+"literal> 表加载到 <literal>Events</literal> 类的对象。每个实例对应着数据库表"
+"中的一行。现在我们将继续讨论有关唯一标识符属性到数据库表的映射。另外,由于我"
+"们不关心怎样处理这个标识符,我们就配置由 Hibernate 的标识符生成策略来产生代理"
+"主键字段:"
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>id</literal> element is the declaration of the identifier property. The <literal>name=\"id\"</literal> mapping attribute declares the name of the JavaBean property and tells Hibernate to use the <literal>getId()</literal> and <literal>setId()</literal> methods to access the property. The column attribute tells Hibernate which column of the <literal>EVENTS</literal> table holds the primary key value."
-msgstr "<literal>id</literal> 元素是对 identifier 属性的声明。<literal>name=\"id\"</literal> 映射属性声明了 JavaBean 属性的名称并告诉 Hibernate 使用 <literal>getId()</literal> 和 <literal>setId()</literal> 方法来访问这个属性。column 属性告诉 Hibernate  <literal>EVENTS</literal> 表的哪个字段持有主键值。"
+msgid ""
+"The <literal>id</literal> element is the declaration of the identifier "
+"property. The <literal>name=\"id\"</literal> mapping attribute declares the "
+"name of the JavaBean property and tells Hibernate to use the <literal>getId()"
+"</literal> and <literal>setId()</literal> methods to access the property. "
+"The column attribute tells Hibernate which column of the <literal>EVENTS</"
+"literal> table holds the primary key value."
+msgstr ""
+"<literal>id</literal> 元素是对 identifier 属性的声明。<literal>name=\"id\"</"
+"literal> 映射属性声明了 JavaBean 属性的名称并告诉 Hibernate 使用 "
+"<literal>getId()</literal> 和 <literal>setId()</literal> 方法来访问这个属性。"
+"column 属性告诉 Hibernate  <literal>EVENTS</literal> 表的哪个字段持有主键值。"
 
 #. Tag: para
 #, no-c-format
-msgid "The nested <literal>generator</literal> element specifies the identifier generation strategy (aka how are identifier values generated?). In this case we choose <literal>native</literal>, which offers a level of portability depending on the configured database dialect. Hibernate supports database generated, globally unique, as well as application assigned, identifiers. Identifier value generation is also one of Hibernate's many extension points and you can plugin in your own strategy."
-msgstr "嵌套的 <literal>generator</literal> 元素指定标识符的生成策略(也就是标识符值是怎么产生的)。在这个例子里,我们选择 <literal>native</literal>,它提供了取决于数据库方言的可移植性。Hibernate 数据库生成的、全局性唯一的以及应用程序分配的标识符。标识符值的生成也是 Hibernate 的扩展功能之一,你可以插入自己的策略。"
+msgid ""
+"The nested <literal>generator</literal> element specifies the identifier "
+"generation strategy (aka how are identifier values generated?). In this case "
+"we choose <literal>native</literal>, which offers a level of portability "
+"depending on the configured database dialect. Hibernate supports database "
+"generated, globally unique, as well as application assigned, identifiers. "
+"Identifier value generation is also one of Hibernate's many extension points "
+"and you can plugin in your own strategy."
+msgstr ""
+"嵌套的 <literal>generator</literal> 元素指定标识符的生成策略(也就是标识符值"
+"是怎么产生的)。在这个例子里,我们选择 <literal>native</literal>,它提供了取"
+"决于数据库方言的可移植性。Hibernate 数据库生成的、全局性唯一的以及应用程序分"
+"配的标识符。标识符值的生成也是 Hibernate 的扩展功能之一,你可以插入自己的策"
+"略。"
 
 #. Tag: para
-#, no-c-format
-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\" />。"
+#, fuzzy, no-c-format
+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
 #, no-c-format
-msgid "Lastly, we need to tell Hibernate about the remaining entity class properties. By default, no properties of the class are considered persistent:"
-msgstr "最后我们在映射文件里面包含需要持久化属性的声明。默认情况下,类里面的属性都被视为非持久化的: "
+msgid ""
+"Lastly, we need to tell Hibernate about the remaining entity class "
+"properties. By default, no properties of the class are considered persistent:"
+msgstr ""
+"最后我们在映射文件里面包含需要持久化属性的声明。默认情况下,类里面的属性都被"
+"视为非持久化的: "
 
 #. Tag: para
 #, no-c-format
-msgid "Similar to the <literal>id</literal> element, the <literal>name</literal> attribute of the <literal>property</literal> element tells Hibernate which getter and setter methods to use. In this case, Hibernate will search for <literal>getDate()</literal>, <literal>setDate()</literal>, <literal>getTitle()</literal> and <literal>setTitle()</literal> methods."
-msgstr "和 <literal>id</literal> 元素一样,<literal>property</literal> 元素的 <literal>name</literal> 属性告诉 Hibernate 使用哪个 getter 和 setter 方法。在此例中,Hibernate 会寻找 <literal>getDate()</literal>、<literal>setDate()</literal>、<literal>getTitle()</literal> 和 <literal>setTitle()</literal> 方法。 "
+msgid ""
+"Similar to the <literal>id</literal> element, the <literal>name</literal> "
+"attribute of the <literal>property</literal> element tells Hibernate which "
+"getter and setter methods to use. In this case, Hibernate will search for "
+"<literal>getDate()</literal>, <literal>setDate()</literal>, <literal>getTitle"
+"()</literal> and <literal>setTitle()</literal> methods."
+msgstr ""
+"和 <literal>id</literal> 元素一样,<literal>property</literal> 元素的 "
+"<literal>name</literal> 属性告诉 Hibernate 使用哪个 getter 和 setter 方法。在"
+"此例中,Hibernate 会寻找 <literal>getDate()</literal>、<literal>setDate()</"
+"literal>、<literal>getTitle()</literal> 和 <literal>setTitle()</literal> 方"
+"法。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Why does the <literal>date</literal> property mapping include the <literal>column</literal> attribute, but the <literal>title</literal> does not? Without the <literal>column</literal> attribute, Hibernate by default uses the property name as the column name. This works for <literal>title</literal>, however, <literal>date</literal> is a reserved keyword in most databases so you will need to map it to a different name."
-msgstr "为什么 <literal>date</literal> 属性的映射含有 <literal>column</literal> attribute,而 <literal>title</literal> 却没有?当没有设定 <literal>column</literal> attribute 的时候,Hibernate 缺省地使用 JavaBean 的属性名作为字段名。对于 <literal>title</literal>,这样工作得很好。然而,<literal>date</literal> 在多数的数据库里,是一个保留关键字,所以我们最好把它映射成一个不同的名字。 "
+msgid ""
+"Why does the <literal>date</literal> property mapping include the "
+"<literal>column</literal> attribute, but the <literal>title</literal> does "
+"not? Without the <literal>column</literal> attribute, Hibernate by default "
+"uses the property name as the column name. This works for <literal>title</"
+"literal>, however, <literal>date</literal> is a reserved keyword in most "
+"databases so you will need to map it to a different name."
+msgstr ""
+"为什么 <literal>date</literal> 属性的映射含有 <literal>column</literal> "
+"attribute,而 <literal>title</literal> 却没有?当没有设定 <literal>column</"
+"literal> attribute 的时候,Hibernate 缺省地使用 JavaBean 的属性名作为字段名。"
+"对于 <literal>title</literal>,这样工作得很好。然而,<literal>date</literal> "
+"在多数的数据库里,是一个保留关键字,所以我们最好把它映射成一个不同的名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>title</literal> mapping also lacks a <literal>type</literal> attribute. The types declared and used in the mapping files are not Java data types; they are not SQL database types either. These types are called <emphasis>Hibernate mapping types</emphasis>, converters which can translate from Java to SQL data types and vice versa. Again, Hibernate will try to determine the correct conversion and mapping type itself if the <literal>type</literal> attribute is not present in the mapping. In some cases this automatic detection using Reflection on the Java class might not have the default you expect or need. This is the case with the <literal>date</literal> property. Hibernate cannot know if the property, which is of <literal>java.util.Date</literal>, should map to a SQL <literal>date</literal>, <literal>timestamp</literal>, or <literal>time</literal> column. Full date and time information is preserved by mapping the property with a <literal>timestamp</literal>!
  converter."
-msgstr "另一有趣的事情是 <literal>title</literal> 属性缺少一个 <literal>type</literal> attribute。我们在映射文件里声明并使用的类型,却不是我们期望的那样,是 Java 数据类型,同时也不是 SQL 数据库的数据类型。这些类型就是所谓的 Hibernate 映射类型<emphasis>(mapping types)</emphasis>,它们能把 Java 数据类型转换到 SQL 数据类型,反之亦然。再次重申,如果在映射文件中没有设置 <literal>type</literal> 属性的话,Hibernate 会自己试着去确定正确的转换类型和它的映射类型。在某些情况下这个自动检测机制(在 Java 类上使用反射机制)不会产生你所期待或需要的缺省值。<literal>date</literal> 属性就是个很好的例子,Hibernate 无法知道这个属性(<literal>java.util.Date</literal> 类型的)应该被映射成:SQL <literal>date</literal>,或 <literal>timestamp</literal>,还是 <literal>time</litera!
 l> 字段。在此例中,把这个属性映射成 <literal>timestamp</literal> 转换器,这样我们预留了日期和时间的全部信息。 "
+msgid ""
+"The <literal>title</literal> mapping also lacks a <literal>type</literal> "
+"attribute. The types declared and used in the mapping files are not Java "
+"data types; they are not SQL database types either. These types are called "
+"<emphasis>Hibernate mapping types</emphasis>, converters which can translate "
+"from Java to SQL data types and vice versa. Again, Hibernate will try to "
+"determine the correct conversion and mapping type itself if the "
+"<literal>type</literal> attribute is not present in the mapping. In some "
+"cases this automatic detection using Reflection on the Java class might not "
+"have the default you expect or need. This is the case with the "
+"<literal>date</literal> property. Hibernate cannot know if the property, "
+"which is of <literal>java.util.Date</literal>, should map to a SQL "
+"<literal>date</literal>, <literal>timestamp</literal>, or <literal>time</"
+"literal> column. Full date and time information is preserved by mapping the "
+"property with a <literal>timestamp</literal> converter."
+msgstr ""
+"另一有趣的事情是 <literal>title</literal> 属性缺少一个 <literal>type</"
+"literal> attribute。我们在映射文件里声明并使用的类型,却不是我们期望的那样,"
+"是 Java 数据类型,同时也不是 SQL 数据库的数据类型。这些类型就是所谓的 "
+"Hibernate 映射类型<emphasis>(mapping types)</emphasis>,它们能把 Java 数据"
+"类型转换到 SQL 数据类型,反之亦然。再次重申,如果在映射文件中没有设置 "
+"<literal>type</literal> 属性的话,Hibernate 会自己试着去确定正确的转换类型和"
+"它的映射类型。在某些情况下这个自动检测机制(在 Java 类上使用反射机制)不会产"
+"生你所期待或需要的缺省值。<literal>date</literal> 属性就是个很好的例子,"
+"Hibernate 无法知道这个属性(<literal>java.util.Date</literal> 类型的)应该被"
+"映射成:SQL <literal>date</literal>,或 <literal>timestamp</literal>,还是 "
+"<literal>time</literal> 字段。在此例中,把这个属性映射成 <literal>timestamp</"
+"literal> 转换器,这样我们预留了日期和时间的全部信息。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate makes this mapping type determination using reflection when the mapping files are processed. This can take time and resources, so if startup performance is important you should consider explicitly defining the type to use."
-msgstr "当处理映射文件时,Hibernate 用反射(reflection)来决定这个映射类型。这需要时间和资源,所以如果你注重启动性能,你应该考虑显性地定义所用的类型。"
+msgid ""
+"Hibernate makes this mapping type determination using reflection when the "
+"mapping files are processed. This can take time and resources, so if startup "
+"performance is important you should consider explicitly defining the type to "
+"use."
+msgstr ""
+"当处理映射文件时,Hibernate 用反射(reflection)来决定这个映射类型。这需要时"
+"间和资源,所以如果你注重启动性能,你应该考虑显性地定义所用的类型。"
 
 #. Tag: para
 #, no-c-format
-msgid "Save this mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml</filename>."
-msgstr "把这个映射文件保存为 <filename>src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml</filename>。"
+msgid ""
+"Save this mapping file as <filename>src/main/resources/org/hibernate/"
+"tutorial/domain/Event.hbm.xml</filename>."
+msgstr ""
+"把这个映射文件保存为 <filename>src/main/resources/org/hibernate/tutorial/"
+"domain/Event.hbm.xml</filename>。"
 
 #. Tag: title
 #, no-c-format
@@ -192,8 +443,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid "At this point, you should have the persistent class and its mapping file in place. It is now time to configure Hibernate. First let's set up HSQLDB to run in \"server mode\""
-msgstr "此时,你应该有了持久化类和它的映射文件。现在是配置 Hibernate 的时候了。首先让我们设立 HSQLDB 使其运行在“服务器模式”。"
+msgid ""
+"At this point, you should have the persistent class and its mapping file in "
+"place. It is now time to configure Hibernate. First let's set up HSQLDB to "
+"run in \"server mode\""
+msgstr ""
+"此时,你应该有了持久化类和它的映射文件。现在是配置 Hibernate 的时候了。首先让"
+"我们设立 HSQLDB 使其运行在“服务器模式”。"
 
 #. Tag: para
 #, no-c-format
@@ -202,23 +458,60 @@
 
 #. Tag: para
 #, no-c-format
-msgid "We will utilize the Maven exec plugin to launch the HSQLDB server by running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see it start up and bind to a TCP/IP socket; this is where our application will connect later. If you want to start with a fresh database during this tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</filename> directory, and start HSQLDB again."
-msgstr "在开发的根目录下创建一个 <literal>data</literal> 目录 - 这是 HSQL DB 存储数据文件的地方。此时在 data 目录中运行 <literal>java -classpath ../lib/hsqldb.jar org.hsqldb.Server</literal> 就可启动数据库。你可以在 log 中看到它的启动,及绑定到 TCP/IP 套接字,这正是我们的应用程序稍后会连接的地方。如果你希望在本例中运行一个全新的数据库,就在窗口中按下 <literal>CTRL + C</literal> 来关闭 HSQL 数据库,并删除 <literal>data/</literal> 目录下的所有文件,再重新启动 HSQL 数据库。 "
+msgid ""
+"We will utilize the Maven exec plugin to launch the HSQLDB server by "
+"running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -"
+"Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see "
+"it start up and bind to a TCP/IP socket; this is where our application will "
+"connect later. If you want to start with a fresh database during this "
+"tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</"
+"filename> directory, and start HSQLDB again."
+msgstr ""
+"在开发的根目录下创建一个 <literal>data</literal> 目录 - 这是 HSQL DB 存储数"
+"据文件的地方。此时在 data 目录中运行 <literal>java -classpath ../lib/hsqldb."
+"jar org.hsqldb.Server</literal> 就可启动数据库。你可以在 log 中看到它的启动,"
+"及绑定到 TCP/IP 套接字,这正是我们的应用程序稍后会连接的地方。如果你希望在本"
+"例中运行一个全新的数据库,就在窗口中按下 <literal>CTRL + C</literal> 来关闭 "
+"HSQL 数据库,并删除 <literal>data/</literal> 目录下的所有文件,再重新启动 "
+"HSQL 数据库。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate will be connecting to the database on behalf of your application, so it needs to know how to obtain connections. For this tutorial we will be using a standalone connection pool (as opposed to a <interfacename>javax.sql.DataSource</interfacename>). Hibernate comes with support for two third-party open source JDBC connection pools: <ulink url=\"https://sourceforge.net/projects/c3p0\">c3p0</ulink> and <ulink url=\"http://proxool.sourceforge.net/\">proxool</ulink>. However, we will be using the Hibernate built-in connection pool for this tutorial."
-msgstr "Hibernate 将为你的应用程序连接到数据库,所以它需要知道如何获取连接。在这个教程里,我们使用一个独立连接池(和 <interfacename>javax.sql.DataSource</interfacename> 相反)。Hibernate 支持两个第三方的开源 JDBC 连接池:<ulink url=\"https://sourceforge.net/projects/c3p0\">c3p0</ulink> 和 <ulink url=\"http://proxool.sourceforge.net/\">proxool</ulink>。然而,在本教程里我们将使用 Hibernate 内置的连接池。"
+msgid ""
+"Hibernate will be connecting to the database on behalf of your application, "
+"so it needs to know how to obtain connections. For this tutorial we will be "
+"using a standalone connection pool (as opposed to a <interfacename>javax.sql."
+"DataSource</interfacename>). Hibernate comes with support for two third-"
+"party open source JDBC connection pools: <ulink url=\"https://sourceforge."
+"net/projects/c3p0\">c3p0</ulink> and <ulink url=\"http://proxool.sourceforge."
+"net/\">proxool</ulink>. However, we will be using the Hibernate built-in "
+"connection pool for this tutorial."
+msgstr ""
+"Hibernate 将为你的应用程序连接到数据库,所以它需要知道如何获取连接。在这个教"
+"程里,我们使用一个独立连接池(和 <interfacename>javax.sql.DataSource</"
+"interfacename> 相反)。Hibernate 支持两个第三方的开源 JDBC 连接池:<ulink "
+"url=\"https://sourceforge.net/projects/c3p0\">c3p0</ulink> 和 <ulink url="
+"\"http://proxool.sourceforge.net/\">proxool</ulink>。然而,在本教程里我们将使"
+"用 Hibernate 内置的连接池。"
 
 #. Tag: para
 #, no-c-format
-msgid "The built-in Hibernate connection pool is not intended for production use."
+msgid ""
+"The built-in Hibernate connection pool is not intended for production use."
 msgstr "嵌入的 Hibernate 连接池不用于产品环境。"
 
 #. Tag: para
 #, no-c-format
-msgid "For Hibernate's configuration, we can use a simple <literal>hibernate.properties</literal> file, a more sophisticated <literal>hibernate.cfg.xml</literal> file, or even complete programmatic setup. Most users prefer the XML configuration file:"
-msgstr "为了保存 Hibernate 的配置,我们可以使用一个简单的 <literal>hibernate.properties</literal> 文件,或者一个稍微复杂的 <literal>hibernate.cfg.xml</literal>,甚至可以完全使用程序来配置 Hibernate。多数用户更喜欢使用 XML 配置文件: "
+msgid ""
+"For Hibernate's configuration, we can use a simple <literal>hibernate."
+"properties</literal> file, a more sophisticated <literal>hibernate.cfg.xml</"
+"literal> file, or even complete programmatic setup. Most users prefer the "
+"XML configuration file:"
+msgstr ""
+"为了保存 Hibernate 的配置,我们可以使用一个简单的 <literal>hibernate."
+"properties</literal> 文件,或者一个稍微复杂的 <literal>hibernate.cfg.xml</"
+"literal>,甚至可以完全使用程序来配置 Hibernate。多数用户更喜欢使用 XML 配置文"
+"件: "
 
 #. Tag: para
 #, no-c-format
@@ -227,28 +520,63 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory is a global factory responsible for a particular database. If you have several databases, for easier startup you should use several <literal>&lt;session-factory&gt;</literal> configurations in several configuration files."
-msgstr "注意这个 XML 配置使用了一个不同的 DTD。在这里,我们配置了 Hibernate 的<literal>SessionFactory</literal> — 一个关联于特定数据库全局的工厂(factory)。如果你要使用多个数据库,就要用多个的 <literal>&lt;session-factory&gt;</literal>,通常把它们放在多个配置文件中(为了更容易启动)。 "
+msgid ""
+"You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
+"is a global factory responsible for a particular database. If you have "
+"several databases, for easier startup you should use several <literal>&lt;"
+"session-factory&gt;</literal> configurations in several configuration files."
+msgstr ""
+"注意这个 XML 配置使用了一个不同的 DTD。在这里,我们配置了 Hibernate 的"
+"<literal>SessionFactory</literal> — 一个关联于特定数据库全局的工厂"
+"(factory)。如果你要使用多个数据库,就要用多个的 <literal>&lt;session-"
+"factory&gt;</literal>,通常把它们放在多个配置文件中(为了更容易启动)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The first four <literal>property</literal> elements contain the necessary configuration for the JDBC connection. The dialect <literal>property</literal> element specifies the particular SQL variant Hibernate generates."
-msgstr "签名 4 个 <literal>property</literal> 元素包含了 JDBC 连接所必需的配置。方言 <literal>property</literal> 元素指定了 Hibernate 生成的特定 SQL 语句。"
+msgid ""
+"The first four <literal>property</literal> elements contain the necessary "
+"configuration for the JDBC connection. The dialect <literal>property</"
+"literal> element specifies the particular SQL variant Hibernate generates."
+msgstr ""
+"签名 4 个 <literal>property</literal> 元素包含了 JDBC 连接所必需的配置。方言 "
+"<literal>property</literal> 元素指定了 Hibernate 生成的特定 SQL 语句。"
 
 #. Tag: para
-#, no-c-format
-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\" />。"
+#, fuzzy, no-c-format
+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
 #, no-c-format
-msgid "Hibernate's automatic session management for persistence contexts is particularly useful in this context. The <literal>hbm2ddl.auto</literal> option turns on automatic generation of database schemas directly into the database. This can also be turned off by removing the configuration option, or redirected to a file with the help of the <literal>SchemaExport</literal> Ant task. Finally, add the mapping file(s) for persistent classes to the configuration."
-msgstr "最开始的 4 个 <literal>property</literal> 元素包含必要的 JDBC 连接信息。方言(dialect)的 <literal>property</literal> 元素指明 Hibernate 生成的特定 SQL 变量。你很快会看到,Hibernate 对持久化上下文的自动 session 管理就会派上用场。 打开 <literal>hbm2ddl.auto</literal> 选项将自动生成数据库模式(schema)- 直接加入数据库中。当然这个选项也可以被关闭(通过去除这个配置选项)或者通过 Ant 任务 <literal>SchemaExport</literal> 的帮助来把数据库 schema 重定向到文件中。最后,在配置中为持久化类加入映射文件。 "
+msgid ""
+"Hibernate's automatic session management for persistence contexts is "
+"particularly useful in this context. The <literal>hbm2ddl.auto</literal> "
+"option turns on automatic generation of database schemas directly into the "
+"database. This can also be turned off by removing the configuration option, "
+"or redirected to a file with the help of the <literal>SchemaExport</literal> "
+"Ant task. Finally, add the mapping file(s) for persistent classes to the "
+"configuration."
+msgstr ""
+"最开始的 4 个 <literal>property</literal> 元素包含必要的 JDBC 连接信息。方言"
+"(dialect)的 <literal>property</literal> 元素指明 Hibernate 生成的特定 SQL "
+"变量。你很快会看到,Hibernate 对持久化上下文的自动 session 管理就会派上用"
+"场。 打开 <literal>hbm2ddl.auto</literal> 选项将自动生成数据库模式(schema)"
+"- 直接加入数据库中。当然这个选项也可以被关闭(通过去除这个配置选项)或者通"
+"过 Ant 任务 <literal>SchemaExport</literal> 的帮助来把数据库 schema 重定向到"
+"文件中。最后,在配置中为持久化类加入映射文件。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Save this file as <filename>hibernate.cfg.xml</filename> into the <filename>src/main/resources</filename> directory."
-msgstr "把这个文件保存为 <filename>src/main/resources</filename> 目录下的 <filename>hibernate.cfg.xml</filename>。"
+msgid ""
+"Save this file as <filename>hibernate.cfg.xml</filename> into the "
+"<filename>src/main/resources</filename> directory."
+msgstr ""
+"把这个文件保存为 <filename>src/main/resources</filename> 目录下的 "
+"<filename>hibernate.cfg.xml</filename>。"
 
 #. Tag: title
 #, no-c-format
@@ -257,8 +585,19 @@
 
 #. Tag: para
 #, no-c-format
-msgid "We will now build the tutorial with Maven. You will need to have Maven installed; it is available from the <ulink url=\"http://maven.apache.org/download.html\">Maven download page</ulink>. Maven will read the <filename>/pom.xml</filename> file we created earlier and know how to perform some basic project tasks. First, lets run the <literal>compile</literal> goal to make sure we can compile everything so far:"
-msgstr "我们将用 Maven 构建这个教程。你将需要安装 Maven;你可以从 <ulink url=\"http://maven.apache.org/download.html\">Maven 下载页面</ulink>获得 Maven。Maen 将读取我们先前创建的 <filename>/pom.xml</filename> 并知道执行基本的项目任务。首先,让我们运行 <literal>compile</literal> 目标来确保我们可以编译到目前为止的所有程序:"
+msgid ""
+"We will now build the tutorial with Maven. You will need to have Maven "
+"installed; it is available from the <ulink url=\"http://maven.apache.org/"
+"download.html\">Maven download page</ulink>. Maven will read the <filename>/"
+"pom.xml</filename> file we created earlier and know how to perform some "
+"basic project tasks. First, lets run the <literal>compile</literal> goal to "
+"make sure we can compile everything so far:"
+msgstr ""
+"我们将用 Maven 构建这个教程。你将需要安装 Maven;你可以从 <ulink url="
+"\"http://maven.apache.org/download.html\">Maven 下载页面</ulink>获得 Maven。"
+"Maen 将读取我们先前创建的 <filename>/pom.xml</filename> 并知道执行基本的项目"
+"任务。首先,让我们运行 <literal>compile</literal> 目标来确保我们可以编译到目"
+"前为止的所有程序:"
 
 #. Tag: title
 #, no-c-format
@@ -267,37 +606,102 @@
 
 #. Tag: para
 #, no-c-format
-msgid "It is time to load and store some <literal>Event</literal> objects, but first you have to complete the setup with some infrastructure code. You have to startup Hibernate by building a global <interfacename>org.hibernate.SessionFactory</interfacename> object and storing it somewhere for easy access in application code. A <interfacename>org.hibernate.SessionFactory</interfacename> is used to obtain <interfacename>org.hibernate.Session</interfacename> instances. A <interfacename>org.hibernate.Session</interfacename> represents a single-threaded unit of work. The <interfacename>org.hibernate.SessionFactory</interfacename> is a thread-safe global object that is instantiated once."
-msgstr "是时候来加载和储存一些 <literal>Event</literal> 对象了,但首先我们得编写一些基础的代码以完成设置。我们必须启动 Hibernate,此过程包括创建一个全局的 <literal>SessoinFactory</literal>,并把它储存在应用程序代码容易访问的地方。<literal>SessionFactory</literal> 可以创建并打开新的 <literal>Session</literal>。一个 <literal>Session</literal> 代表一个单线程的单元操作,<interfacename>org.hibernate.SessionFactory</interfacename> 则是个线程安全的全局对象,只需要被实例化一次。 "
+msgid ""
+"It is time to load and store some <literal>Event</literal> objects, but "
+"first you have to complete the setup with some infrastructure code. You have "
+"to startup Hibernate by building a global <interfacename>org.hibernate."
+"SessionFactory</interfacename> object and storing it somewhere for easy "
+"access in application code. A <interfacename>org.hibernate.SessionFactory</"
+"interfacename> is used to obtain <interfacename>org.hibernate.Session</"
+"interfacename> instances. A <interfacename>org.hibernate.Session</"
+"interfacename> represents a single-threaded unit of work. The "
+"<interfacename>org.hibernate.SessionFactory</interfacename> is a thread-safe "
+"global object that is instantiated once."
+msgstr ""
+"是时候来加载和储存一些 <literal>Event</literal> 对象了,但首先我们得编写一些"
+"基础的代码以完成设置。我们必须启动 Hibernate,此过程包括创建一个全局的 "
+"<literal>SessoinFactory</literal>,并把它储存在应用程序代码容易访问的地方。"
+"<literal>SessionFactory</literal> 可以创建并打开新的 <literal>Session</"
+"literal>。一个 <literal>Session</literal> 代表一个单线程的单元操作,"
+"<interfacename>org.hibernate.SessionFactory</interfacename> 则是个线程安全的"
+"全局对象,只需要被实例化一次。 "
 
 #. Tag: para
 #, no-c-format
-msgid "We will create a <literal>HibernateUtil</literal> helper class that takes care of startup and makes accessing the <interfacename>org.hibernate.SessionFactory</interfacename> more convenient."
-msgstr "我们将创建一个 <literal>HibernateUtil</literal> 辅助类(helper class)来负责启动 Hibernate 和更方便地操作 <interfacename>org.hibernate.SessionFactory</interfacename>。让我们来看一下它的实现:"
+msgid ""
+"We will create a <literal>HibernateUtil</literal> helper class that takes "
+"care of startup and makes accessing the <interfacename>org.hibernate."
+"SessionFactory</interfacename> more convenient."
+msgstr ""
+"我们将创建一个 <literal>HibernateUtil</literal> 辅助类(helper class)来负责"
+"启动 Hibernate 和更方便地操作 <interfacename>org.hibernate.SessionFactory</"
+"interfacename>。让我们来看一下它的实现:"
 
 #. Tag: para
 #, no-c-format
-msgid "Save this code as <filename>src/main/java/org/hibernate/tutorial/util/HibernateUtil.java</filename>"
-msgstr "把这段代码保存为 <filename>src/main/java/org/hibernate/tutorial/util/HibernateUtil.java</filename>。"
+msgid ""
+"Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
+"HibernateUtil.java</filename>"
+msgstr ""
+"把这段代码保存为 <filename>src/main/java/org/hibernate/tutorial/util/"
+"HibernateUtil.java</filename>。"
 
 #. Tag: para
 #, no-c-format
-msgid "This class not only produces the global <interfacename>org.hibernate.SessionFactory</interfacename> reference in its static initializer; it also hides the fact that it uses a static singleton. We might just as well have looked up the <interfacename>org.hibernate.SessionFactory</interfacename> reference from JNDI in an application server or any other location for that matter."
-msgstr "这个类不但在它的静态初始化过程(仅当加载这个类的时候被 JVM 执行一次)中产生全局的 <interfacename>org.hibernate.SessionFactory</interfacename>,而且隐藏了它使用了静态 singleton 的事实。它也可能在应用程序服务器中的 JNDI 查找 <interfacename>org.hibernate.SessionFactory</interfacename>。"
+msgid ""
+"This class not only produces the global <interfacename>org.hibernate."
+"SessionFactory</interfacename> reference in its static initializer; it also "
+"hides the fact that it uses a static singleton. We might just as well have "
+"looked up the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"reference from JNDI in an application server or any other location for that "
+"matter."
+msgstr ""
+"这个类不但在它的静态初始化过程(仅当加载这个类的时候被 JVM 执行一次)中产生全"
+"局的 <interfacename>org.hibernate.SessionFactory</interfacename>,而且隐藏了"
+"它使用了静态 singleton 的事实。它也可能在应用程序服务器中的 JNDI 查找 "
+"<interfacename>org.hibernate.SessionFactory</interfacename>。"
 
 #. Tag: para
 #, no-c-format
-msgid "If you give the <interfacename>org.hibernate.SessionFactory</interfacename> a name in your configuration, Hibernate will try to bind it to JNDI under that name after it has been built. Another, better option is to use a JMX deployment and let the JMX-capable container instantiate and bind a <literal>HibernateService</literal> to JNDI. Such advanced options are discussed later."
-msgstr "如果你在配置文件中给 <interfacename>org.hibernate.SessionFactory</interfacename> 一个名字,在 它创建后,Hibernate 会试着把它绑定到 JNDI。要完全避免这样的代码,你也可以使用 JMX 部署,让具有 JMX 能力的容器来实例化 <literal>HibernateService</literal> 并把它绑定到 JNDI。这些高级可选项在后面的章节中会讨论到。"
+msgid ""
+"If you give the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"a name in your configuration, Hibernate will try to bind it to JNDI under "
+"that name after it has been built. Another, better option is to use a JMX "
+"deployment and let the JMX-capable container instantiate and bind a "
+"<literal>HibernateService</literal> to JNDI. Such advanced options are "
+"discussed later."
+msgstr ""
+"如果你在配置文件中给 <interfacename>org.hibernate.SessionFactory</"
+"interfacename> 一个名字,在 它创建后,Hibernate 会试着把它绑定到 JNDI。要完全"
+"避免这样的代码,你也可以使用 JMX 部署,让具有 JMX 能力的容器来实例化 "
+"<literal>HibernateService</literal> 并把它绑定到 JNDI。这些高级可选项在后面的"
+"章节中会讨论到。"
 
 #. Tag: para
 #, no-c-format
-msgid "You now need to configure a logging system. Hibernate uses commons logging and provides two choices: Log4j and JDK 1.4 logging. Most developers prefer Log4j: copy <literal>log4j.properties</literal> from the Hibernate distribution in the <literal>etc/</literal> directory to your <literal>src</literal> directory, next to <literal>hibernate.cfg.xml</literal>. If you prefer to have more verbose output than that provided in the example configuration, you can change the settings. By default, only the Hibernate startup message is shown on stdout."
-msgstr "再次编译这个应用程序应该不会有问题。最后我们需要配置一个日志(logging)系统 — Hibernate 使用通用日志接口,允许你在 Log4j 和 JDK 1.4 日志之间进行选择。多数开发者更喜欢 Log4j:从 Hibernate 的发布包中(它在 <literal>etc/</literal> 目录下)拷贝 <literal>log4j.properties</literal> 到你的 <literal>src</literal> 目录,与 <literal>hibernate.cfg.xml</literal> 放在一起。看一下配置示例,如果你希望看到更加详细的输出信息,你可以修改配置。默认情况下,只有 Hibernate 的启动信息才会显示在标准输出上。 "
+msgid ""
+"You now need to configure a logging system. Hibernate uses commons logging "
+"and provides two choices: Log4j and JDK 1.4 logging. Most developers prefer "
+"Log4j: copy <literal>log4j.properties</literal> from the Hibernate "
+"distribution in the <literal>etc/</literal> directory to your <literal>src</"
+"literal> directory, next to <literal>hibernate.cfg.xml</literal>. If you "
+"prefer to have more verbose output than that provided in the example "
+"configuration, you can change the settings. By default, only the Hibernate "
+"startup message is shown on stdout."
+msgstr ""
+"再次编译这个应用程序应该不会有问题。最后我们需要配置一个日志(logging)系统 — "
+"Hibernate 使用通用日志接口,允许你在 Log4j 和 JDK 1.4 日志之间进行选择。多数"
+"开发者更喜欢 Log4j:从 Hibernate 的发布包中(它在 <literal>etc/</literal> 目"
+"录下)拷贝 <literal>log4j.properties</literal> 到你的 <literal>src</literal> "
+"目录,与 <literal>hibernate.cfg.xml</literal> 放在一起。看一下配置示例,如果"
+"你希望看到更加详细的输出信息,你可以修改配置。默认情况下,只有 Hibernate 的启"
+"动信息才会显示在标准输出上。 "
 
 #. Tag: para
 #, no-c-format
-msgid "The tutorial infrastructure is complete and you are now ready to do some real work with Hibernate."
+msgid ""
+"The tutorial infrastructure is complete and you are now ready to do some "
+"real work with Hibernate."
 msgstr "示例的基本框架完成了 — 现在我们可以用 Hibernate 来做些真正的工作。 "
 
 #. Tag: title
@@ -307,48 +711,140 @@
 
 #. Tag: para
 #, no-c-format
-msgid "We are now ready to start doing some real worjk with Hibernate. Let's start by writing an <literal>EventManager</literal> class with a <literal>main()</literal> method:"
-msgstr "我们终于可以使用 Hibernate 来加载和存储对象了,编写一个带有 <literal>main()</literal> 方法的 <literal>EventManager</literal> 类: "
+msgid ""
+"We are now ready to start doing some real worjk with Hibernate. Let's start "
+"by writing an <literal>EventManager</literal> class with a <literal>main()</"
+"literal> method:"
+msgstr ""
+"我们终于可以使用 Hibernate 来加载和存储对象了,编写一个带有 <literal>main()</"
+"literal> 方法的 <literal>EventManager</literal> 类: "
 
 #. Tag: para
 #, no-c-format
-msgid "In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</literal> object and handed it over to Hibernate. At that point, Hibernate takes care of the SQL and executes an <literal>INSERT</literal> on the database."
-msgstr "在 <literal>createAndStoreEvent()</literal> 来里我们创建了一个新的 <literal>Event</literal> 对象并把它传递给 Hibernate。现在 Hibernate 负责与 SQL 打交道,并把 <literal>INSERT</literal> 命令传给数据库。"
+msgid ""
+"In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</"
+"literal> object and handed it over to Hibernate. At that point, Hibernate "
+"takes care of the SQL and executes an <literal>INSERT</literal> on the "
+"database."
+msgstr ""
+"在 <literal>createAndStoreEvent()</literal> 来里我们创建了一个新的 "
+"<literal>Event</literal> 对象并把它传递给 Hibernate。现在 Hibernate 负责与 "
+"SQL 打交道,并把 <literal>INSERT</literal> 命令传给数据库。"
 
 #. Tag: para
 #, no-c-format
-msgid "A <interface>org.hibernate.Session</interface> is designed to represent a single unit of work (a single atmoic piece of work to be performed). For now we will keep things simple and assume a one-to-one granularity between a Hibernate <interface>org.hibernate.Session</interface> and a database transaction. To shield our code from the actual underlying transaction system we use the Hibernate <interfacename>org.hibernate.Transaction</interfacename> API. In this particular case we are using JDBC-based transactional semantics, but it could also run with JTA."
-msgstr "一个 <interface>org.hibernate.Session</interface> 就是个单一的工作单元。我们暂时让事情简单一些,并假设 Hibernate <interface>org.hibernate.Session</interface> 和数据库事务是一一对应的。为了让我们的代码从底层的事务系统中脱离出来(此例中是 JDBC,但也可能是 JTA),我们使用 <interfacename>org.hibernate.Transaction</interfacename> API。在这个例子里我们使用基于 JDBC 的事务性 semantic,但它也可以和 JTA 一起运行。"
+msgid ""
+"A <interface>org.hibernate.Session</interface> is designed to represent a "
+"single unit of work (a single atmoic piece of work to be performed). For now "
+"we will keep things simple and assume a one-to-one granularity between a "
+"Hibernate <interface>org.hibernate.Session</interface> and a database "
+"transaction. To shield our code from the actual underlying transaction "
+"system we use the Hibernate <interfacename>org.hibernate.Transaction</"
+"interfacename> API. In this particular case we are using JDBC-based "
+"transactional semantics, but it could also run with JTA."
+msgstr ""
+"一个 <interface>org.hibernate.Session</interface> 就是个单一的工作单元。我们"
+"暂时让事情简单一些,并假设 Hibernate <interface>org.hibernate.Session</"
+"interface> 和数据库事务是一一对应的。为了让我们的代码从底层的事务系统中脱离出"
+"来(此例中是 JDBC,但也可能是 JTA),我们使用 <interfacename>org.hibernate."
+"Transaction</interfacename> API。在这个例子里我们使用基于 JDBC 的事务性 "
+"semantic,但它也可以和 JTA 一起运行。"
 
 #. Tag: para
 #, no-c-format
-msgid "What does <literal>sessionFactory.getCurrentSession()</literal> do? First, you can call it as many times and anywhere you like once you get hold of your <interfacename>org.hibernate.SessionFactory</interfacename>. The <literal>getCurrentSession()</literal> method always returns the \"current\" unit of work. Remember that we switched the configuration option for this mechanism to \"thread\" in our <filename>src/main/resources/hibernate.cfg.xml</filename>? Due to that setting, the context of a current unit of work is bound to the current Java thread that executes the application."
-msgstr "<literal>sessionFactory.getCurrentSession()</literal> 是干什么的呢?首先,只要你持有 <interfacename>org.hibernate.SessionFactory</interfacename>,大可在任何时候、任何地点调用这个方法。<literal>getCurrentSession()</literal> 方法总会返回“当前的”工作单元。记得我们在 <filename>src/main/resources/hibernate.cfg.xml</filename> 中把这一配置选项调整为 \"thread\" 了吗?因此,因此,当前工作单元被绑定到当前执行我们应用程序的 Java 线程。但是,这并非是完全准确的,你还得考虑工作单元的生命周期范围(scope),它何时开始,又何时结束。"
+msgid ""
+"What does <literal>sessionFactory.getCurrentSession()</literal> do? First, "
+"you can call it as many times and anywhere you like once you get hold of "
+"your <interfacename>org.hibernate.SessionFactory</interfacename>. The "
+"<literal>getCurrentSession()</literal> method always returns the \"current\" "
+"unit of work. Remember that we switched the configuration option for this "
+"mechanism to \"thread\" in our <filename>src/main/resources/hibernate.cfg."
+"xml</filename>? Due to that setting, the context of a current unit of work "
+"is bound to the current Java thread that executes the application."
+msgstr ""
+"<literal>sessionFactory.getCurrentSession()</literal> 是干什么的呢?首先,只"
+"要你持有 <interfacename>org.hibernate.SessionFactory</interfacename>,大可在"
+"任何时候、任何地点调用这个方法。<literal>getCurrentSession()</literal> 方法总"
+"会返回“当前的”工作单元。记得我们在 <filename>src/main/resources/hibernate."
+"cfg.xml</filename> 中把这一配置选项调整为 \"thread\" 了吗?因此,因此,当前工"
+"作单元被绑定到当前执行我们应用程序的 Java 线程。但是,这并非是完全准确的,你还"
+"得考虑工作单元的生命周期范围(scope),它何时开始,又何时结束。"
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate offers three methods of current session tracking. The \"thread\" based method is not intended for production use; it is merely useful for prototyping and tutorials such as this one. Current session tracking is discussed in more detail later on."
-msgstr "Hibernate 提供三种跟踪当前会话的方法。基于“线程”的方法不适合于产品环境,它仅用于 prototyping 和教学用途。后面将更详细地讨论会话跟踪。"
+msgid ""
+"Hibernate offers three methods of current session tracking. The \"thread\" "
+"based method is not intended for production use; it is merely useful for "
+"prototyping and tutorials such as this one. Current session tracking is "
+"discussed in more detail later on."
+msgstr ""
+"Hibernate 提供三种跟踪当前会话的方法。基于“线程”的方法不适合于产品环境,它仅"
+"用于 prototyping 和教学用途。后面将更详细地讨论会话跟踪。"
 
 #. Tag: para
 #, no-c-format
-msgid "A <interface>org.hibernate.Session</interface> begins when the first call to <literal>getCurrentSession()</literal> is made for the current thread. It is then bound by Hibernate to the current thread. When the transaction ends, either through commit or rollback, Hibernate automatically unbinds the <interface>org.hibernate.Session</interface> from the thread and closes it for you. If you call <literal>getCurrentSession()</literal> again, you get a new <interface>org.hibernate.Session</interface> and can start a new unit of work."
-msgstr "<interface>org.hibernate.Session</interface> 在第一次被使用的时候,即第一次调用 <literal>getCurrentSession()</literal> 的时候,其生命周期就开始。然后它被 Hibernate 绑定到当前线程。当事务结束的时候,不管是提交还是回滚,Hibernate 会自动把 <interface>org.hibernate.Session</interface> 从当前线程剥离,并且关闭它。假若你再次调用 <literal>getCurrentSession()</literal>,你会得到一个新的 <interface>org.hibernate.Session</interface>,并且开始一个新的工作单元。"
+msgid ""
+"A <interface>org.hibernate.Session</interface> begins when the first call to "
+"<literal>getCurrentSession()</literal> is made for the current thread. It is "
+"then bound by Hibernate to the current thread. When the transaction ends, "
+"either through commit or rollback, Hibernate automatically unbinds the "
+"<interface>org.hibernate.Session</interface> from the thread and closes it "
+"for you. If you call <literal>getCurrentSession()</literal> again, you get a "
+"new <interface>org.hibernate.Session</interface> and can start a new unit of "
+"work."
+msgstr ""
+"<interface>org.hibernate.Session</interface> 在第一次被使用的时候,即第一次调"
+"用 <literal>getCurrentSession()</literal> 的时候,其生命周期就开始。然后它被 "
+"Hibernate 绑定到当前线程。当事务结束的时候,不管是提交还是回滚,Hibernate 会"
+"自动把 <interface>org.hibernate.Session</interface> 从当前线程剥离,并且关闭"
+"它。假若你再次调用 <literal>getCurrentSession()</literal>,你会得到一个新的 "
+"<interface>org.hibernate.Session</interface>,并且开始一个新的工作单元。"
 
 #. Tag: para
 #, no-c-format
-msgid "Related to the unit of work scope, should the Hibernate <interface>org.hibernate.Session</interface> be used to execute one or several database operations? The above example uses one <interface>org.hibernate.Session</interface> for one operation. However this is pure coincidence; the example is just not complex enough to show any other approach. The scope of a Hibernate <interface>org.hibernate.Session</interface> is flexible but you should never design your application to use a new Hibernate <interface>org.hibernate.Session</interface> for <emphasis>every</emphasis> database operation. Even though it is used in the following examples, consider <emphasis>session-per-operation</emphasis> an anti-pattern. A real web application is shown later in the tutorial which will help illustrate this."
-msgstr "和工作单元的生命周期这个话题相关,Hibernate <interface>org.hibernate.Session</interface> 是否被应该用来执行多次数据库操作?上面的例子对每一次操作使用了一个 <interface>org.hibernate.Session</interface>,这完全是巧合,这个例子不是很复杂,无法展示其他方式。Hibernate <interface>org.hibernate.Session</interface> 的生命周期可以很灵活,但是你绝不要把你的应用程序设计成为<emphasis>每一次</emphasis>数据库操作都用一个新的 Hibernate <interface>org.hibernate.Session</interface>。因此就算下面的例子(它们都很简单)中你可以看到这种用法,记住<emphasis>每次操作一个 session</emphasis> 是一个反模式。在本教程的后面会展示一个真正的(web)程序。"
+msgid ""
+"Related to the unit of work scope, should the Hibernate <interface>org."
+"hibernate.Session</interface> be used to execute one or several database "
+"operations? The above example uses one <interface>org.hibernate.Session</"
+"interface> for one operation. However this is pure coincidence; the example "
+"is just not complex enough to show any other approach. The scope of a "
+"Hibernate <interface>org.hibernate.Session</interface> is flexible but you "
+"should never design your application to use a new Hibernate <interface>org."
+"hibernate.Session</interface> for <emphasis>every</emphasis> database "
+"operation. Even though it is used in the following examples, consider "
+"<emphasis>session-per-operation</emphasis> an anti-pattern. A real web "
+"application is shown later in the tutorial which will help illustrate this."
+msgstr ""
+"和工作单元的生命周期这个话题相关,Hibernate <interface>org.hibernate."
+"Session</interface> 是否被应该用来执行多次数据库操作?上面的例子对每一次操作"
+"使用了一个 <interface>org.hibernate.Session</interface>,这完全是巧合,这个例"
+"子不是很复杂,无法展示其他方式。Hibernate <interface>org.hibernate.Session</"
+"interface> 的生命周期可以很灵活,但是你绝不要把你的应用程序设计成为<emphasis>"
+"每一次</emphasis>数据库操作都用一个新的 Hibernate <interface>org.hibernate."
+"Session</interface>。因此就算下面的例子(它们都很简单)中你可以看到这种用法,"
+"记住<emphasis>每次操作一个 session</emphasis> 是一个反模式。在本教程的后面会"
+"展示一个真正的(web)程序。"
 
 #. Tag: para
-#, 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\" /> 。在上面的例子中,我们也忽略了所有的错误与回滚的处理。"
+#, 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\" /"
+"> 。在上面的例子中,我们也忽略了所有的错误与回滚的处理。"
 
 #. Tag: para
 #, no-c-format
-msgid "To run this, we will make use of the Maven exec plugin to call our class with the necessary classpath setup: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>"
-msgstr "要运行它,我们将使用 Maven exec 插件以及必要的 classpath 设置来进行调用:<command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>。"
+msgid ""
+"To run this, we will make use of the Maven exec plugin to call our class "
+"with the necessary classpath setup: <command>mvn exec:java -Dexec.mainClass="
+"\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>"
+msgstr ""
+"要运行它,我们将使用 Maven exec 插件以及必要的 classpath 设置来进行调用:"
+"<command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager"
+"\" -Dexec.args=\"store\"</command>。"
 
 #. Tag: para
 #, no-c-format
@@ -357,8 +853,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You should see Hibernate starting up and, depending on your configuration, lots of log output. Towards the end, the following line will be displayed:"
-msgstr "你应该会看到,编译以后,Hibernate 根据你的配置启动,并产生一大堆的输出日志。在日志最后你会看到下面这行: "
+msgid ""
+"You should see Hibernate starting up and, depending on your configuration, "
+"lots of log output. Towards the end, the following line will be displayed:"
+msgstr ""
+"你应该会看到,编译以后,Hibernate 根据你的配置启动,并产生一大堆的输出日志。"
+"在日志最后你会看到下面这行: "
 
 #. Tag: para
 #, no-c-format
@@ -368,7 +868,8 @@
 #. Tag: para
 #, no-c-format
 msgid "To list stored events an option is added to the main method:"
-msgstr "我们想要列出所有已经被存储的 events,就要增加一个条件分支选项到 main 方法中:"
+msgstr ""
+"我们想要列出所有已经被存储的 events,就要增加一个条件分支选项到 main 方法中:"
 
 #. Tag: para
 #, no-c-format
@@ -376,14 +877,30 @@
 msgstr "我们也增加一个新的 <literal>listEvents()</literal> 方法: "
 
 #. Tag: para
-#, no-c-format
-msgid "Here, we are using a Hibernate Query Language (HQL) query to load all existing <literal>Event</literal> objects from the database. Hibernate will generate the appropriate SQL, send it to the database and populate <literal>Event</literal> objects with the data. You can create more complex queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
-msgstr "我们在这里是用一个 HQL(Hibernate Query Language-Hibernate查询语言)查询语句来从数据库中加载所有存在的 <literal>Event</literal> 对象。Hibernate 会生成适当的 SQL,把它发送到数据库,并操作从查询得到数据的 <literal>Event</literal> 对象。当然,你可以使用 HQL 来创建更加复杂的查询。更多信息请参考 <xref linkend=\"queryhql\"/>。"
+#, fuzzy, no-c-format
+msgid ""
+"Here, we are using a Hibernate Query Language (HQL) query to load all "
+"existing <literal>Event</literal> objects from the database. Hibernate will "
+"generate the appropriate SQL, send it to the database and populate "
+"<literal>Event</literal> objects with the data. You can create more complex "
+"queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
+msgstr ""
+"我们在这里是用一个 HQL(Hibernate Query Language-Hibernate查询语言)查询语句"
+"来从数据库中加载所有存在的 <literal>Event</literal> 对象。Hibernate 会生成适"
+"当的 SQL,把它发送到数据库,并操作从查询得到数据的 <literal>Event</literal> "
+"对象。当然,你可以使用 HQL 来创建更加复杂的查询。更多信息请参考 <xref "
+"linkend=\"queryhql\"/>。"
 
 #. Tag: para
 #, no-c-format
-msgid "Now we can call our new functionality, again using the Maven exec plugin: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</command>"
-msgstr "现在我们可以再次用 Maven exec plugin - <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</command> 调用新的功能了。"
+msgid ""
+"Now we can call our new functionality, again using the Maven exec plugin: "
+"<command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager"
+"\" -Dexec.args=\"list\"</command>"
+msgstr ""
+"现在我们可以再次用 Maven exec plugin - <command>mvn exec:java -Dexec."
+"mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</"
+"command> 调用新的功能了。"
 
 #. Tag: title
 #, no-c-format
@@ -392,8 +909,16 @@
 
 #. Tag: para
 #, no-c-format
-msgid "So far we have mapped a single persistent entity class to a table in isolation. Let's expand on that a bit and add some class associations. We will add people to the application and store a list of events in which they participate."
-msgstr "我们已经映射了一个持久化实体类到表上。让我们在这个基础上增加一些类之间的关联。首先我们往应用程序里增加人(people)的概念,并存储他们所参与的一个 Event 列表。(译者注:与 Event 一样,我们在后面将直接使用 person 来表示“人”而不是它的中文翻译) "
+msgid ""
+"So far we have mapped a single persistent entity class to a table in "
+"isolation. Let's expand on that a bit and add some class associations. We "
+"will add people to the application and store a list of events in which they "
+"participate."
+msgstr ""
+"我们已经映射了一个持久化实体类到表上。让我们在这个基础上增加一些类之间的关"
+"联。首先我们往应用程序里增加人(people)的概念,并存储他们所参与的一个 Event "
+"列表。(译者注:与 Event 一样,我们在后面将直接使用 person 来表示“人”而不是它"
+"的中文翻译) "
 
 #. Tag: title
 #, no-c-format
@@ -407,13 +932,21 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Save this to a file named <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>"
-msgstr "把它保存为文件 <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>。"
+msgid ""
+"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
+"domain/Person.java</filename>"
+msgstr ""
+"把它保存为文件 <filename>src/main/java/org/hibernate/tutorial/domain/Person."
+"java</filename>。"
 
 #. Tag: para
 #, no-c-format
-msgid "Next, create the new mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>"
-msgstr "然后,创建新的映射文件 <filename>src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>。"
+msgid ""
+"Next, create the new mapping file as <filename>src/main/resources/org/"
+"hibernate/tutorial/domain/Person.hbm.xml</filename>"
+msgstr ""
+"然后,创建新的映射文件 <filename>src/main/resources/org/hibernate/tutorial/"
+"domain/Person.hbm.xml</filename>。"
 
 #. Tag: para
 #, no-c-format
@@ -422,8 +955,14 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Create an association between these two entities. Persons can participate in events, and events have participants. The design questions you have to deal with are: directionality, multiplicity, and collection behavior."
-msgstr "现在我们在这两个实体之间创建一个关联。显然,persons 可以参与一系列 events,而 events 也有不同的参加者(persons)。我们需要处理的设计问题是关联方向(directionality),阶数(multiplicity)和集合(collection)的行为。 "
+msgid ""
+"Create an association between these two entities. Persons can participate in "
+"events, and events have participants. The design questions you have to deal "
+"with are: directionality, multiplicity, and collection behavior."
+msgstr ""
+"现在我们在这两个实体之间创建一个关联。显然,persons 可以参与一系列 events,"
+"而 events 也有不同的参加者(persons)。我们需要处理的设计问题是关联方向"
+"(directionality),阶数(multiplicity)和集合(collection)的行为。 "
 
 #. Tag: title
 #, no-c-format
@@ -432,18 +971,65 @@
 
 #. Tag: para
 #, no-c-format
-msgid "By adding a collection of events to the <literal>Person</literal> class, you can easily navigate to the events for a particular person, without executing an explicit query - by calling <literal>Person#getEvents</literal>. Multi-valued associations are represented in Hibernate by one of the Java Collection Framework contracts; here we choose a <interfacename>java.util.Set</interfacename> because the collection will not contain duplicate elements and the ordering is not relevant to our examples:"
-msgstr "我们将向 <literal>Person</literal> 类增加一连串的 events。那样,通过调用 <literal>aPerson.getEvents()</literal>,就可以轻松地导航到特定 person 所参与的 events,而不用去执行一个显式的查询。我们使用 Java 的集合类(collection):<literal>Set</literal>,因为 set 不包含重复的元素及与我们无关的排序。 "
+msgid ""
+"By adding a collection of events to the <literal>Person</literal> class, you "
+"can easily navigate to the events for a particular person, without executing "
+"an explicit query - by calling <literal>Person#getEvents</literal>. Multi-"
+"valued associations are represented in Hibernate by one of the Java "
+"Collection Framework contracts; here we choose a <interfacename>java.util."
+"Set</interfacename> because the collection will not contain duplicate "
+"elements and the ordering is not relevant to our examples:"
+msgstr ""
+"我们将向 <literal>Person</literal> 类增加一连串的 events。那样,通过调用 "
+"<literal>aPerson.getEvents()</literal>,就可以轻松地导航到特定 person 所参与"
+"的 events,而不用去执行一个显式的查询。我们使用 Java 的集合类(collection):"
+"<literal>Set</literal>,因为 set 不包含重复的元素及与我们无关的排序。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Before mapping this association, let's consider the other side. We could just keep this unidirectional or create another collection on the <literal>Event</literal>, if we wanted to be able to navigate it from both directions. This is not necessary, from a functional perspective. You can always execute an explicit query to retrieve the participants for a particular event. This is a design choice left to you, but what is clear from this discussion is the multiplicity of the association: \"many\" valued on both sides is called a <emphasis>many-to-many</emphasis> association. Hence, we use Hibernate's many-to-many mapping:"
-msgstr "在映射这个关联之前,先考虑一下此关联的另外一端。很显然,我们可以保持这个关联是单向的。或者,我们可以在 <literal>Event</literal> 里创建另外一个集合,如果希望能够双向地导航,如:<literal>anEvent.getParticipants()</literal>。从功能的角度来说,这并不是必须的。因为你总可以显式地执行一个查询,以获得某个特定 event 的所有参与者。这是个在设计时需要做出的选择,完全由你来决定,但此讨论中关于关联的阶数是清楚的:即两端都是“多”值的,我们把它叫做<emphasis>多对多(many-to-many)</emphasis>关联。因而,我们使用 Hibernate 的多对多映射: "
+msgid ""
+"Before mapping this association, let's consider the other side. We could "
+"just keep this unidirectional or create another collection on the "
+"<literal>Event</literal>, if we wanted to be able to navigate it from both "
+"directions. This is not necessary, from a functional perspective. You can "
+"always execute an explicit query to retrieve the participants for a "
+"particular event. This is a design choice left to you, but what is clear "
+"from this discussion is the multiplicity of the association: \"many\" valued "
+"on both sides is called a <emphasis>many-to-many</emphasis> association. "
+"Hence, we use Hibernate's many-to-many mapping:"
+msgstr ""
+"在映射这个关联之前,先考虑一下此关联的另外一端。很显然,我们可以保持这个关联"
+"是单向的。或者,我们可以在 <literal>Event</literal> 里创建另外一个集合,如果"
+"希望能够双向地导航,如:<literal>anEvent.getParticipants()</literal>。从功能"
+"的角度来说,这并不是必须的。因为你总可以显式地执行一个查询,以获得某个特定 "
+"event 的所有参与者。这是个在设计时需要做出的选择,完全由你来决定,但此讨论中"
+"关于关联的阶数是清楚的:即两端都是“多”值的,我们把它叫做<emphasis>多对多"
+"(many-to-many)</emphasis>关联。因而,我们使用 Hibernate 的多对多映射: "
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate supports a broad range of collection mappings, a <literal>set</literal> being most common. For a many-to-many association, or <emphasis>n:m</emphasis> entity relationship, an association table is required. Each row in this table represents a link between a person and an event. The table name is decalred using the <literal>table</literal> attribute of the <literal>set</literal> element. The identifier column name in the association, for the person side, is defined with the <literal>key</literal> element, the column name for the event's side with the <literal>column</literal> attribute of the <literal>many-to-many</literal>. You also have to tell Hibernate the class of the objects in your collection (the class on the other side of the collection of references)."
-msgstr "Hibernate 支持各种各样的集合映射,<literal>&lt;set&gt;</literal> 使用的最为普遍。对于多对多关联(或叫 <emphasis>n:m</emphasis> 实体关系), 需要一个关联表(association table)。<literal>表</literal>里面的每一行代表从 person 到 event 的一个关联。表名是由 <literal>set</literal> 元素的 <literal>table</literal> 属性配置的。关联里面的标识符字段名,对于 person 的一端,是由 <literal>&lt;key&gt;</literal> 元素定义,而 event 一端的字段名是由 <literal>&lt;many-to-many&gt;</literal> 元素的 <literal>column</literal> 属性定义。你也必须告诉 Hibernate 集合中对象的类(也就是位于这个集合所代表的关联另外一端的类)。 "
+msgid ""
+"Hibernate supports a broad range of collection mappings, a <literal>set</"
+"literal> being most common. For a many-to-many association, or <emphasis>n:"
+"m</emphasis> entity relationship, an association table is required. Each row "
+"in this table represents a link between a person and an event. The table "
+"name is decalred using the <literal>table</literal> attribute of the "
+"<literal>set</literal> element. The identifier column name in the "
+"association, for the person side, is defined with the <literal>key</literal> "
+"element, the column name for the event's side with the <literal>column</"
+"literal> attribute of the <literal>many-to-many</literal>. You also have to "
+"tell Hibernate the class of the objects in your collection (the class on the "
+"other side of the collection of references)."
+msgstr ""
+"Hibernate 支持各种各样的集合映射,<literal>&lt;set&gt;</literal> 使用的最为普"
+"遍。对于多对多关联(或叫 <emphasis>n:m</emphasis> 实体关系), 需要一个关联表"
+"(association table)。<literal>表</literal>里面的每一行代表从 person 到 "
+"event 的一个关联。表名是由 <literal>set</literal> 元素的 <literal>table</"
+"literal> 属性配置的。关联里面的标识符字段名,对于 person 的一端,是由 "
+"<literal>&lt;key&gt;</literal> 元素定义,而 event 一端的字段名是由 "
+"<literal>&lt;many-to-many&gt;</literal> 元素的 <literal>column</literal> 属性"
+"定义。你也必须告诉 Hibernate 集合中对象的类(也就是位于这个集合所代表的关联另"
+"外一端的类)。 "
 
 #. Tag: para
 #, no-c-format
@@ -457,38 +1043,122 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Now we will bring some people and events together in a new method in <literal>EventManager</literal>:"
-msgstr "我们把一些 people 和 events 一起放到 <literal>EventManager</literal> 的新方法中: "
+msgid ""
+"Now we will bring some people and events together in a new method in "
+"<literal>EventManager</literal>:"
+msgstr ""
+"我们把一些 people 和 events 一起放到 <literal>EventManager</literal> 的新方法"
+"中: "
 
 #. Tag: para
 #, no-c-format
-msgid "After loading a <literal>Person</literal> and an <literal>Event</literal>, simply modify the collection using the normal collection methods. There is no explicit call to <literal>update()</literal> or <literal>save()</literal>; Hibernate automatically detects that the collection has been modified and needs to be updated. This is called <emphasis>automatic dirty checking</emphasis>. You can also try it by modifying the name or the date property of any of your objects. As long as they are in <emphasis>persistent</emphasis> state, that is, bound to a particular Hibernate <interfacename>org.hibernate.Session</interfacename>, Hibernate monitors any changes and executes SQL in a write-behind fashion. The process of synchronizing the memory state with the database, usually only at the end of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the unit of work ends with a commit, or rollback, of the database transaction."
-msgstr "在加载一 <literal>Person</literal> 和 <literal>Event</literal> 后,使用普通的集合方法就可容易地修改我们定义的集合。如你所见,没有显式的 <literal>update()</literal> 或 <literal>save()</literal>,Hibernate 会自动检测到集合已经被修改并需要更新回数据库。这叫做自动脏检查(<emphasis>automatic dirty checking</emphasis>),你也可以尝试修改任何对象的 name 或者 date 属性,只要他们处于<emphasis>持久化</emphasis>状态,也就是被绑定到某个 Hibernate 的 <literal>Session</literal> 上(如:他们刚刚在一个单元操作被加载或者保存),Hibernate 监视任何改变并在后台隐式写的方式执行 SQL。同步内存状态和数据库的过程,通常只在单元操作结束的时候发生,称此过程为清理缓存<emphasis>(flushing)</emphasis>。在我们的代码中,工作单元由数据库事务的提交(或者回滚)来结束——!
 这是由 <literal>CurrentSessionContext</literal> 类的 <literal>thread</literal> 配置选项定义的。 "
+msgid ""
+"After loading a <literal>Person</literal> and an <literal>Event</literal>, "
+"simply modify the collection using the normal collection methods. There is "
+"no explicit call to <literal>update()</literal> or <literal>save()</"
+"literal>; Hibernate automatically detects that the collection has been "
+"modified and needs to be updated. This is called <emphasis>automatic dirty "
+"checking</emphasis>. You can also try it by modifying the name or the date "
+"property of any of your objects. As long as they are in "
+"<emphasis>persistent</emphasis> state, that is, bound to a particular "
+"Hibernate <interfacename>org.hibernate.Session</interfacename>, Hibernate "
+"monitors any changes and executes SQL in a write-behind fashion. The process "
+"of synchronizing the memory state with the database, usually only at the end "
+"of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the "
+"unit of work ends with a commit, or rollback, of the database transaction."
+msgstr ""
+"在加载一 <literal>Person</literal> 和 <literal>Event</literal> 后,使用普通的"
+"集合方法就可容易地修改我们定义的集合。如你所见,没有显式的 <literal>update()"
+"</literal> 或 <literal>save()</literal>,Hibernate 会自动检测到集合已经被修改"
+"并需要更新回数据库。这叫做自动脏检查(<emphasis>automatic dirty checking</"
+"emphasis>),你也可以尝试修改任何对象的 name 或者 date 属性,只要他们处于"
+"<emphasis>持久化</emphasis>状态,也就是被绑定到某个 Hibernate 的 "
+"<literal>Session</literal> 上(如:他们刚刚在一个单元操作被加载或者保存),"
+"Hibernate 监视任何改变并在后台隐式写的方式执行 SQL。同步内存状态和数据库的过"
+"程,通常只在单元操作结束的时候发生,称此过程为清理缓存<emphasis>(flushing)"
+"</emphasis>。在我们的代码中,工作单元由数据库事务的提交(或者回滚)来结束——这"
+"是由 <literal>CurrentSessionContext</literal> 类的 <literal>thread</literal> "
+"配置选项定义的。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can load person and event in different units of work. Or you can modify an object outside of a <interfacename>org.hibernate.Session</interfacename>, when it is not in persistent state (if it was persistent before, this state is called <emphasis>detached</emphasis>). You can even modify a collection when it is detached:"
-msgstr "当然,你也可以在不同的单元操作里面加载 person 和 event。或在 <literal>Session</literal> 以外修改不是处在持久化(persistent)状态下的对象(如果该对象以前曾经被持久化,那么我们称这个状态为<emphasis>脱管(detached)</emphasis>)。你甚至可以在一个集合被脱管时修改它: "
+msgid ""
+"You can load person and event in different units of work. Or you can modify "
+"an object outside of a <interfacename>org.hibernate.Session</interfacename>, "
+"when it is not in persistent state (if it was persistent before, this state "
+"is called <emphasis>detached</emphasis>). You can even modify a collection "
+"when it is detached:"
+msgstr ""
+"当然,你也可以在不同的单元操作里面加载 person 和 event。或在 "
+"<literal>Session</literal> 以外修改不是处在持久化(persistent)状态下的对象"
+"(如果该对象以前曾经被持久化,那么我们称这个状态为<emphasis>脱管(detached)"
+"</emphasis>)。你甚至可以在一个集合被脱管时修改它: "
 
 #. Tag: para
 #, no-c-format
-msgid "The call to <literal>update</literal> makes a detached object persistent again by binding it to a new unit of work, so any modifications you made to it while detached can be saved to the database. This includes any modifications (additions/deletions) you made to a collection of that entity object."
-msgstr "对 <literal>update</literal> 的调用使一个脱管对象重新持久化,你可以说它被绑定到一个新的单元操作上,所以在脱管状态下对它所做的任何修改都会被保存到数据库里。这也包括你对这个实体对象的集合所作的任何改动(增加/删除)。 "
+msgid ""
+"The call to <literal>update</literal> makes a detached object persistent "
+"again by binding it to a new unit of work, so any modifications you made to "
+"it while detached can be saved to the database. This includes any "
+"modifications (additions/deletions) you made to a collection of that entity "
+"object."
+msgstr ""
+"对 <literal>update</literal> 的调用使一个脱管对象重新持久化,你可以说它被绑定"
+"到一个新的单元操作上,所以在脱管状态下对它所做的任何修改都会被保存到数据库"
+"里。这也包括你对这个实体对象的集合所作的任何改动(增加/删除)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "This is not much use in our example, but it is an important concept you can incorporate into your own application. Complete this exercise by adding a new action to the main method of the <literal>EventManager</literal> and call it from the command line. If you need the identifiers of a person and an event - the <literal>save()</literal> method returns it (you might have to modify some of the previous methods to return that identifier):"
-msgstr "这对我们当前的情形不是很有用,但它是非常重要的概念,你可以把它融入到你自己的应用程序设计中。在<literal>EventManager</literal>的 main 方法中添加一个新的动作,并从命令行运行它来完成我们所做的练习。如果你需要 person 及 event 的标识符 — 那就用 <literal>save()</literal> 方法返回它(你可能需要修改前面的一些方法来返回那个标识符): "
+msgid ""
+"This is not much use in our example, but it is an important concept you can "
+"incorporate into your own application. Complete this exercise by adding a "
+"new action to the main method of the <literal>EventManager</literal> and "
+"call it from the command line. If you need the identifiers of a person and "
+"an event - the <literal>save()</literal> method returns it (you might have "
+"to modify some of the previous methods to return that identifier):"
+msgstr ""
+"这对我们当前的情形不是很有用,但它是非常重要的概念,你可以把它融入到你自己的"
+"应用程序设计中。在<literal>EventManager</literal>的 main 方法中添加一个新的动"
+"作,并从命令行运行它来完成我们所做的练习。如果你需要 person 及 event 的标识"
+"符 — 那就用 <literal>save()</literal> 方法返回它(你可能需要修改前面的一些方"
+"法来返回那个标识符): "
 
 #. Tag: para
 #, no-c-format
-msgid "This is an example of an association between two equally important classes : two entities. As mentioned earlier, there are other classes and types in a typical model, usually \"less important\". Some you have already seen, like an <literal>int</literal> or a <classname>java.lang.String</classname>. We call these classes <emphasis>value types</emphasis>, and their instances <emphasis>depend</emphasis> on a particular entity. Instances of these types do not have their own identity, nor are they shared between entities. Two persons do not reference the same <literal>firstname</literal> object, even if they have the same first name. Value types cannot only be found in the JDK , but you can also write dependent classes yourself such as an <literal>Address</literal> or <literal>MonetaryAmount</literal> class. In fact, in a Hibernate application all JDK classes are considered value types."
-msgstr "上面是个关于两个同等重要的实体类间关联的例子。像前面所提到的那样,在特定的模型中也存在其它的类和类型,这些类和类型通常是“次要的”。你已看到过其中的一些,像 <literal>int</literal> 或 <literal>String</literal>。我们称这些类为<emphasis>值类型(value type)</emphasis>,它们的实例<emphasis>依赖(depend)</emphasis>在某个特定的实体上。这些类型的实例没有它们自己的标识(identity),也不能在实体间被共享(比如,两个 person 不能引用同一个 <literal>firstname</literal> 对象,即使他们有相同的 first name)。当然,值类型并不仅仅在 JDK 中存在(事实上,在一个 Hibernate 应用程序中,所有的 JDK 类都被视为值类型),而且你也可以编写你自己的依赖类,例如 <literal>Address</literal>,<literal>MonetaryAmount</literal>。 "
+msgid ""
+"This is an example of an association between two equally important classes : "
+"two entities. As mentioned earlier, there are other classes and types in a "
+"typical model, usually \"less important\". Some you have already seen, like "
+"an <literal>int</literal> or a <classname>java.lang.String</classname>. We "
+"call these classes <emphasis>value types</emphasis>, and their instances "
+"<emphasis>depend</emphasis> on a particular entity. Instances of these types "
+"do not have their own identity, nor are they shared between entities. Two "
+"persons do not reference the same <literal>firstname</literal> object, even "
+"if they have the same first name. Value types cannot only be found in the "
+"JDK , but you can also write dependent classes yourself such as an "
+"<literal>Address</literal> or <literal>MonetaryAmount</literal> class. In "
+"fact, in a Hibernate application all JDK classes are considered value types."
+msgstr ""
+"上面是个关于两个同等重要的实体类间关联的例子。像前面所提到的那样,在特定的模"
+"型中也存在其它的类和类型,这些类和类型通常是“次要的”。你已看到过其中的一些,"
+"像 <literal>int</literal> 或 <literal>String</literal>。我们称这些类为"
+"<emphasis>值类型(value type)</emphasis>,它们的实例<emphasis>依赖(depend)"
+"</emphasis>在某个特定的实体上。这些类型的实例没有它们自己的标识(identity),"
+"也不能在实体间被共享(比如,两个 person 不能引用同一个 <literal>firstname</"
+"literal> 对象,即使他们有相同的 first name)。当然,值类型并不仅仅在 JDK 中存"
+"在(事实上,在一个 Hibernate 应用程序中,所有的 JDK 类都被视为值类型),而且"
+"你也可以编写你自己的依赖类,例如 <literal>Address</literal>,"
+"<literal>MonetaryAmount</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid "You can also design a collection of value types. This is conceptually different from a collection of references to other entities, but looks almost the same in Java."
-msgstr "你也可以设计一个值类型的集合,这在概念上与引用其它实体的集合有很大的不同,但是在 Java 里面看起来几乎是一样的。 "
+msgid ""
+"You can also design a collection of value types. This is conceptually "
+"different from a collection of references to other entities, but looks "
+"almost the same in Java."
+msgstr ""
+"你也可以设计一个值类型的集合,这在概念上与引用其它实体的集合有很大的不同,但"
+"是在 Java 里面看起来几乎是一样的。 "
 
 #. Tag: title
 #, no-c-format
@@ -497,8 +1167,14 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Let's add a collection of email addresses to the <literal>Person</literal> entity. This will be represented as a <interfacename>java.util.Set</interfacename> of <classname>java.lang.String</classname> instances:"
-msgstr "让我们在 <literal>Person</literal> 实体里添加一个电子邮件的集合。这将以 <classname>java.lang.String</classname> 实例的 <interfacename>java.util.Set</interfacename> 出现:"
+msgid ""
+"Let's add a collection of email addresses to the <literal>Person</literal> "
+"entity. This will be represented as a <interfacename>java.util.Set</"
+"interfacename> of <classname>java.lang.String</classname> instances:"
+msgstr ""
+"让我们在 <literal>Person</literal> 实体里添加一个电子邮件的集合。这将以 "
+"<classname>java.lang.String</classname> 实例的 <interfacename>java.util.Set</"
+"interfacename> 出现:"
 
 #. Tag: para
 #, no-c-format
@@ -507,8 +1183,26 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The difference compared with the earlier mapping is the use of the <literal>element</literal> part which tells Hibernate that the collection does not contain references to another entity, but is rather a collection whose elements are values types, here specifically of type <literal>string</literal>. The lowercase name tells you it is a Hibernate mapping type/converter. Again the <literal>table</literal> attribute of the <literal>set</literal> element determines the table name for the collection. The <literal>key</literal> element defines the foreign-key column name in the collection table. The <literal>column</literal> attribute in the <literal>element</literal> element defines the column name where the email address values will actually be stored."
-msgstr "比较这次和此前映射的差别,主要在于 <literal>element</literal> 部分,这次并没有包含对其它实体引用的集合,而是元素类型为 <literal>String</literal> 的集合(在映射中使用小写的名字”string“是向你表明它是一个 Hibernate 的映射类型或者类型转换器)。和之前一样,<literal>set</literal> 元素的 <literal>table</literal> 属性决定了用于集合的表名。<literal>key</literal> 元素定义了在集合表中外键的字段名。<literal>element</literal> 元素的 <literal>column</literal> 属性定义用于实际保存 <literal>String</literal> 值的字段名。 "
+msgid ""
+"The difference compared with the earlier mapping is the use of the "
+"<literal>element</literal> part which tells Hibernate that the collection "
+"does not contain references to another entity, but is rather a collection "
+"whose elements are values types, here specifically of type <literal>string</"
+"literal>. The lowercase name tells you it is a Hibernate mapping type/"
+"converter. Again the <literal>table</literal> attribute of the <literal>set</"
+"literal> element determines the table name for the collection. The "
+"<literal>key</literal> element defines the foreign-key column name in the "
+"collection table. The <literal>column</literal> attribute in the "
+"<literal>element</literal> element defines the column name where the email "
+"address values will actually be stored."
+msgstr ""
+"比较这次和此前映射的差别,主要在于 <literal>element</literal> 部分,这次并没"
+"有包含对其它实体引用的集合,而是元素类型为 <literal>String</literal> 的集合"
+"(在映射中使用小写的名字”string“是向你表明它是一个 Hibernate 的映射类型或者类"
+"型转换器)。和之前一样,<literal>set</literal> 元素的 <literal>table</"
+"literal> 属性决定了用于集合的表名。<literal>key</literal> 元素定义了在集合表"
+"中外键的字段名。<literal>element</literal> 元素的 <literal>column</literal> "
+"属性定义用于实际保存 <literal>String</literal> 值的字段名。 "
 
 #. Tag: para
 #, no-c-format
@@ -517,18 +1211,35 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can see that the primary key of the collection table is in fact a composite key that uses both columns. This also implies that there cannot be duplicate email addresses per person, which is exactly the semantics we need for a set in Java."
-msgstr "你可以看到集合表的主键实际上是个复合主键,同时使用了两个字段。这也暗示了对于同一个 person 不能有重复的 email 地址,这正是 Java 里面使用 Set 时候所需要的语义(Set 里元素不能重复)。"
+msgid ""
+"You can see that the primary key of the collection table is in fact a "
+"composite key that uses both columns. This also implies that there cannot be "
+"duplicate email addresses per person, which is exactly the semantics we need "
+"for a set in Java."
+msgstr ""
+"你可以看到集合表的主键实际上是个复合主键,同时使用了两个字段。这也暗示了对于"
+"同一个 person 不能有重复的 email 地址,这正是 Java 里面使用 Set 时候所需要的"
+"语义(Set 里元素不能重复)。"
 
 #. Tag: para
 #, no-c-format
-msgid "You can now try to add elements to this collection, just like we did before by linking persons and events. It is the same code in Java:"
-msgstr "你现在可以试着把元素加入到这个集合,就像我们在之前关联 person 和 event 的那样。其实现的 Java 代码是相同的: "
+msgid ""
+"You can now try to add elements to this collection, just like we did before "
+"by linking persons and events. It is the same code in Java:"
+msgstr ""
+"你现在可以试着把元素加入到这个集合,就像我们在之前关联 person 和 event 的那"
+"样。其实现的 Java 代码是相同的: "
 
 #. Tag: para
 #, no-c-format
-msgid "This time we did not use a <emphasis>fetch</emphasis> query to initialize the collection. Monitor the SQL log and try to optimize this with an eager fetch."
-msgstr "这次我们没有使用 <emphasis>fetch</emphasis> 查询来初始化集合。因此,调用其 getter 方法会触发另一附加的 select 来初始化集合,这样我们才能把元素添加进去。检查 SQL log,试着通过预先抓取来优化它。 "
+msgid ""
+"This time we did not use a <emphasis>fetch</emphasis> query to initialize "
+"the collection. Monitor the SQL log and try to optimize this with an eager "
+"fetch."
+msgstr ""
+"这次我们没有使用 <emphasis>fetch</emphasis> 查询来初始化集合。因此,调用其 "
+"getter 方法会触发另一附加的 select 来初始化集合,这样我们才能把元素添加进去。"
+"检查 SQL log,试着通过预先抓取来优化它。 "
 
 #. Tag: title
 #, no-c-format
@@ -537,33 +1248,68 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Next you will map a bi-directional association. You will make the association between person and event work from both sides in Java. The database schema does not change, so you will still have many-to-many multiplicity."
-msgstr "接下来我们将映射双向关联(bi-directional association)— 在 Java 里让 person 和 event 可以从关联的任何一端访问另一端。当然,数据库 schema 没有改变,我们仍然需要多对多的阶数。一个关系型数据库要比网络编程语言更加灵活,所以它并不需要任何像导航方向(navigation direction)的东西 — 数据可以用任何可能的方式进行查看和获取。 "
+msgid ""
+"Next you will map a bi-directional association. You will make the "
+"association between person and event work from both sides in Java. The "
+"database schema does not change, so you will still have many-to-many "
+"multiplicity."
+msgstr ""
+"接下来我们将映射双向关联(bi-directional association)— 在 Java 里让 person "
+"和 event 可以从关联的任何一端访问另一端。当然,数据库 schema 没有改变,我们仍"
+"然需要多对多的阶数。一个关系型数据库要比网络编程语言更加灵活,所以它并不需要"
+"任何像导航方向(navigation direction)的东西 — 数据可以用任何可能的方式进行查"
+"看和获取。 "
 
 #. Tag: para
 #, no-c-format
-msgid "A relational database is more flexible than a network programming language, in that it does not need a navigation direction; data can be viewed and retrieved in any possible way."
-msgstr "关系型数据库比网络编程语言更为灵活,因为它不需要方向导航,其数据可以用任何可能的方式进行查看和提取。"
+msgid ""
+"A relational database is more flexible than a network programming language, "
+"in that it does not need a navigation direction; data can be viewed and "
+"retrieved in any possible way."
+msgstr ""
+"关系型数据库比网络编程语言更为灵活,因为它不需要方向导航,其数据可以用任何可"
+"能的方式进行查看和提取。"
 
 #. Tag: para
 #, no-c-format
-msgid "First, add a collection of participants to the <literal>Event</literal> class:"
-msgstr "首先,把一个参与者(person)的集合加入 <literal>Event</literal> 类中: "
+msgid ""
+"First, add a collection of participants to the <literal>Event</literal> "
+"class:"
+msgstr ""
+"首先,把一个参与者(person)的集合加入 <literal>Event</literal> 类中: "
 
 #. Tag: para
 #, no-c-format
-msgid "Now map this side of the association in <literal>Event.hbm.xml</literal>."
+msgid ""
+"Now map this side of the association in <literal>Event.hbm.xml</literal>."
 msgstr "在 <literal>Event.hbm.xml</literal> 里面也映射这个关联。 "
 
 #. Tag: para
 #, no-c-format
-msgid "These are normal <literal>set</literal> mappings in both mapping documents. Notice that the column names in <literal>key</literal> and <literal>many-to-many</literal> swap in both mapping documents. The most important addition here is the <literal>inverse=\"true\"</literal> attribute in the <literal>set</literal> element of the <literal>Event</literal>'s collection mapping."
-msgstr "如你所见,两个映射文件里都有普通的 <literal>set</literal> 映射。注意在两个映射文件中,互换了 <literal>key</literal> 和 <literal>many-to-many</literal> 的字段名。这里最重要的是 <literal>Event</literal> 映射文件里增加了 <literal>set</literal> 元素的 <literal>inverse=\"true\"</literal> 属性。 "
+msgid ""
+"These are normal <literal>set</literal> mappings in both mapping documents. "
+"Notice that the column names in <literal>key</literal> and <literal>many-to-"
+"many</literal> swap in both mapping documents. The most important addition "
+"here is the <literal>inverse=\"true\"</literal> attribute in the "
+"<literal>set</literal> element of the <literal>Event</literal>'s collection "
+"mapping."
+msgstr ""
+"如你所见,两个映射文件里都有普通的 <literal>set</literal> 映射。注意在两个映"
+"射文件中,互换了 <literal>key</literal> 和 <literal>many-to-many</literal> 的"
+"字段名。这里最重要的是 <literal>Event</literal> 映射文件里增加了 "
+"<literal>set</literal> 元素的 <literal>inverse=\"true\"</literal> 属性。 "
 
 #. Tag: para
 #, no-c-format
-msgid "What this means is that Hibernate should take the other side, the <literal>Person</literal> class, when it needs to find out information about the link between the two. This will be a lot easier to understand once you see how the bi-directional link between our two entities is created."
-msgstr "这意味着在需要的时候,Hibernate 能在关联的另一端 — <literal>Person</literal> 类得到两个实体间关联的信息。这将会极大地帮助你理解双向关联是如何在两个实体间被创建的。 "
+msgid ""
+"What this means is that Hibernate should take the other side, the "
+"<literal>Person</literal> class, when it needs to find out information about "
+"the link between the two. This will be a lot easier to understand once you "
+"see how the bi-directional link between our two entities is created."
+msgstr ""
+"这意味着在需要的时候,Hibernate 能在关联的另一端 — <literal>Person</literal> "
+"类得到两个实体间关联的信息。这将会极大地帮助你理解双向关联是如何在两个实体间"
+"被创建的。 "
 
 #. Tag: title
 #, no-c-format
@@ -572,23 +1318,73 @@
 
 #. Tag: para
 #, no-c-format
-msgid "First, keep in mind that Hibernate does not affect normal Java semantics. How did we create a link between a <literal>Person</literal> and an <literal>Event</literal> in the unidirectional example? You add an instance of <literal>Event</literal> to the collection of event references, of an instance of <literal>Person</literal>. If you want to make this link bi-directional, you have to do the same on the other side by adding a <literal>Person</literal> reference to the collection in an <literal>Event</literal>. This process of \"setting the link on both sides\" is absolutely necessary with bi-directional links."
-msgstr "首先请记住,Hibernate 并不影响通常的 Java 语义。 在单向关联的例子中,我们是怎样在 <literal>Person</literal> 和 <literal>Event</literal> 之间创建联系的?我们把 <literal>Event</literal> 实例添加到 <literal>Person</literal> 实例内的 event 引用集合里。因此很显然,如果我们要让这个关联可以双向地工作,我们需要在另外一端做同样的事情 - 把 <literal>Person</literal> 实例加入 <literal>Event</literal> 类内的 Person 引用集合。这“在关联的两端设置联系”是完全必要的而且你都得这么做。 "
+msgid ""
+"First, keep in mind that Hibernate does not affect normal Java semantics. "
+"How did we create a link between a <literal>Person</literal> and an "
+"<literal>Event</literal> in the unidirectional example? You add an instance "
+"of <literal>Event</literal> to the collection of event references, of an "
+"instance of <literal>Person</literal>. If you want to make this link bi-"
+"directional, you have to do the same on the other side by adding a "
+"<literal>Person</literal> reference to the collection in an <literal>Event</"
+"literal>. This process of \"setting the link on both sides\" is absolutely "
+"necessary with bi-directional links."
+msgstr ""
+"首先请记住,Hibernate 并不影响通常的 Java 语义。 在单向关联的例子中,我们是怎"
+"样在 <literal>Person</literal> 和 <literal>Event</literal> 之间创建联系的?我"
+"们把 <literal>Event</literal> 实例添加到 <literal>Person</literal> 实例内的 "
+"event 引用集合里。因此很显然,如果我们要让这个关联可以双向地工作,我们需要在"
+"另外一端做同样的事情 - 把 <literal>Person</literal> 实例加入 "
+"<literal>Event</literal> 类内的 Person 引用集合。这“在关联的两端设置联系”是完"
+"全必要的而且你都得这么做。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Many developers program defensively and create link management methods to correctly set both sides (for example, in <literal>Person</literal>):"
-msgstr "许多开发人员防御式地编程,创建管理关联的方法来保证正确的设置了关联的两端,比如在 <literal>Person</literal> 里: "
+msgid ""
+"Many developers program defensively and create link management methods to "
+"correctly set both sides (for example, in <literal>Person</literal>):"
+msgstr ""
+"许多开发人员防御式地编程,创建管理关联的方法来保证正确的设置了关联的两端,比"
+"如在 <literal>Person</literal> 里: "
 
 #. Tag: para
 #, no-c-format
-msgid "The get and set methods for the collection are now protected. This allows classes in the same package and subclasses to still access the methods, but prevents everybody else from altering the collections directly. Repeat the steps for the collection on the other side."
-msgstr "注意现在对于集合的 get 和 set 方法的访问级别是 protected — 这允许在位于同一个包(package)中的类以及继承自这个类的子类可以访问这些方法,但禁止其他任何人的直接访问,避免了集合内容的混乱。你应尽可能地在另一端也把集合的访问级别设成 protected。 "
+msgid ""
+"The get and set methods for the collection are now protected. This allows "
+"classes in the same package and subclasses to still access the methods, but "
+"prevents everybody else from altering the collections directly. Repeat the "
+"steps for the collection on the other side."
+msgstr ""
+"注意现在对于集合的 get 和 set 方法的访问级别是 protected — 这允许在位于同一个"
+"包(package)中的类以及继承自这个类的子类可以访问这些方法,但禁止其他任何人的"
+"直接访问,避免了集合内容的混乱。你应尽可能地在另一端也把集合的访问级别设成 "
+"protected。 "
 
 #. Tag: para
 #, no-c-format
-msgid "What about the <literal>inverse</literal> mapping attribute? For you, and for Java, a bi-directional link is simply a matter of setting the references on both sides correctly. Hibernate, however, does not have enough information to correctly arrange SQL <literal>INSERT</literal> and <literal>UPDATE</literal> statements (to avoid constraint violations). Making one side of the association <literal>inverse</literal> tells Hibernate to consider it a <emphasis>mirror</emphasis> of the other side. That is all that is necessary for Hibernate to resolve any issues that arise when transforming a directional navigation model to a SQL database schema. The rules are straightforward: all bi-directional associations need one side as <literal>inverse</literal>. In a one-to-many association it has to be the many-side, and in many-to-many association you can select either side."
-msgstr "<literal>inverse</literal> 映射属性究竟表示什么呢?对于你和 Java 来说,一个双向关联仅仅是在两端简单地正确设置引用。然而,Hibernate 并没有足够的信息去正确地执行 <literal>INSERT</literal> 和 <literal>UPDATE</literal> 语句(以避免违反数据库约束),所以它需要一些帮助来正确的处理双向关联。把关联的一端设置为 <literal>inverse</literal> 将告诉 Hibernate 忽略关联的这一端,把这端看成是另外一端的一个<emphasis>镜象(mirror)</emphasis>。这就是所需的全部信息,Hibernate 利用这些信息来处理把一个有向导航模型转移到数据库 schema 时的所有问题。你只需要记住这个直观的规则:所有的双向关联需要有一端被设置为 <literal>inverse</literal>。在一对多关联中它必须是代表多(many)的那端。而在多对多(many-to-many)关联中,你可以任意选取一端,因为两端之!
 间并没有差别。 "
+msgid ""
+"What about the <literal>inverse</literal> mapping attribute? For you, and "
+"for Java, a bi-directional link is simply a matter of setting the references "
+"on both sides correctly. Hibernate, however, does not have enough "
+"information to correctly arrange SQL <literal>INSERT</literal> and "
+"<literal>UPDATE</literal> statements (to avoid constraint violations). "
+"Making one side of the association <literal>inverse</literal> tells "
+"Hibernate to consider it a <emphasis>mirror</emphasis> of the other side. "
+"That is all that is necessary for Hibernate to resolve any issues that arise "
+"when transforming a directional navigation model to a SQL database schema. "
+"The rules are straightforward: all bi-directional associations need one side "
+"as <literal>inverse</literal>. In a one-to-many association it has to be the "
+"many-side, and in many-to-many association you can select either side."
+msgstr ""
+"<literal>inverse</literal> 映射属性究竟表示什么呢?对于你和 Java 来说,一个双"
+"向关联仅仅是在两端简单地正确设置引用。然而,Hibernate 并没有足够的信息去正确"
+"地执行 <literal>INSERT</literal> 和 <literal>UPDATE</literal> 语句(以避免违"
+"反数据库约束),所以它需要一些帮助来正确的处理双向关联。把关联的一端设置为 "
+"<literal>inverse</literal> 将告诉 Hibernate 忽略关联的这一端,把这端看成是另"
+"外一端的一个<emphasis>镜象(mirror)</emphasis>。这就是所需的全部信息,"
+"Hibernate 利用这些信息来处理把一个有向导航模型转移到数据库 schema 时的所有问"
+"题。你只需要记住这个直观的规则:所有的双向关联需要有一端被设置为 "
+"<literal>inverse</literal>。在一对多关联中它必须是代表多(many)的那端。而在"
+"多对多(many-to-many)关联中,你可以任意选取一端,因为两端之间并没有差别。 "
 
 #. Tag: title
 #, no-c-format
@@ -597,8 +1393,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A Hibernate web application uses <literal>Session</literal> and <literal>Transaction</literal> almost like a standalone application. However, some common patterns are useful. You can now write an <literal>EventManagerServlet</literal>. This servlet can list all events stored in the database, and it provides an HTML form to enter new events."
-msgstr "Hibernate web 应用程序使用 <literal>Session</literal> 和 <literal>Transaction</literal> 的方式几乎和独立应用程序是一样的。但是,有一些常见的模式(pattern)非常有用。现在我们编写一个 <literal>EventManagerServlet</literal>。这个 servlet 可以列出数据库中保存的所有的 events,还提供一个 HTML 表单来增加新的 events。 "
+msgid ""
+"A Hibernate web application uses <literal>Session</literal> and "
+"<literal>Transaction</literal> almost like a standalone application. "
+"However, some common patterns are useful. You can now write an "
+"<literal>EventManagerServlet</literal>. This servlet can list all events "
+"stored in the database, and it provides an HTML form to enter new events."
+msgstr ""
+"Hibernate web 应用程序使用 <literal>Session</literal> 和 "
+"<literal>Transaction</literal> 的方式几乎和独立应用程序是一样的。但是,有一些"
+"常见的模式(pattern)非常有用。现在我们编写一个 "
+"<literal>EventManagerServlet</literal>。这个 servlet 可以列出数据库中保存的所"
+"有的 events,还提供一个 HTML 表单来增加新的 events。 "
 
 #. Tag: title
 #, no-c-format
@@ -607,33 +1413,80 @@
 
 #. Tag: para
 #, no-c-format
-msgid "First we need create our basic processing servlet. Since our servlet only handles HTTP <literal>GET</literal> requests, we will only implement the <literal>doGet()</literal> method:"
-msgstr "这个 servlet 只处理 HTTP <literal>GET</literal> 请求,因此,我们要实现的是 <literal>doGet()</literal> 方法: "
+msgid ""
+"First we need create our basic processing servlet. Since our servlet only "
+"handles HTTP <literal>GET</literal> requests, we will only implement the "
+"<literal>doGet()</literal> method:"
+msgstr ""
+"这个 servlet 只处理 HTTP <literal>GET</literal> 请求,因此,我们要实现的是 "
+"<literal>doGet()</literal> 方法: "
 
 #. Tag: para
 #, no-c-format
-msgid "Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>"
-msgstr "把这个 servlet 保存为 <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>。"
+msgid ""
+"Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/"
+"EventManagerServlet.java</filename>"
+msgstr ""
+"把这个 servlet 保存为 <filename>src/main/java/org/hibernate/tutorial/web/"
+"EventManagerServlet.java</filename>。"
 
 #. Tag: para
 #, no-c-format
-msgid "The pattern applied here is called <emphasis>session-per-request</emphasis>. When a request hits the servlet, a new Hibernate <literal>Session</literal> is opened through the first call to <literal>getCurrentSession()</literal> on the <literal>SessionFactory</literal>. A database transaction is then started. All data access occurs inside a transaction irrespective of whether the data is read or written. Do not use the auto-commit mode in applications."
-msgstr "我们称这里应用的模式为每次请求一个 session<emphasis>(session-per-request)</emphasis>。当有请求到达这个 servlet 的时候,通过对 <literal>SessionFactory</literal> 的第一次调用,打开一个新的 Hibernate <literal>Session</literal>。然后启动一个数据库事务 — 所有的数据访问都是在事务中进行,不管是读还是写(我们在应用程序中不使用 auto-commit 模式)。 "
+msgid ""
+"The pattern applied here is called <emphasis>session-per-request</emphasis>. "
+"When a request hits the servlet, a new Hibernate <literal>Session</literal> "
+"is opened through the first call to <literal>getCurrentSession()</literal> "
+"on the <literal>SessionFactory</literal>. A database transaction is then "
+"started. All data access occurs inside a transaction irrespective of whether "
+"the data is read or written. Do not use the auto-commit mode in applications."
+msgstr ""
+"我们称这里应用的模式为每次请求一个 session<emphasis>(session-per-request)</"
+"emphasis>。当有请求到达这个 servlet 的时候,通过对 <literal>SessionFactory</"
+"literal> 的第一次调用,打开一个新的 Hibernate <literal>Session</literal>。然"
+"后启动一个数据库事务 — 所有的数据访问都是在事务中进行,不管是读还是写(我们在"
+"应用程序中不使用 auto-commit 模式)。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> for every database operation. Use one Hibernate <literal>Session</literal> that is scoped to the whole request. Use <literal>getCurrentSession()</literal>, so that it is automatically bound to the current Java thread."
-msgstr "<emphasis>不要</emphasis>为每次数据库操作都使用一个新的 Hibernate <literal>Session</literal>。将 Hibernate <literal>Session</literal> 的范围设置为整个请求。要用 <literal>getCurrentSession()</literal>,这样它自动会绑定到当前 Java 线程。"
+msgid ""
+"Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> "
+"for every database operation. Use one Hibernate <literal>Session</literal> "
+"that is scoped to the whole request. Use <literal>getCurrentSession()</"
+"literal>, so that it is automatically bound to the current Java thread."
+msgstr ""
+"<emphasis>不要</emphasis>为每次数据库操作都使用一个新的 Hibernate "
+"<literal>Session</literal>。将 Hibernate <literal>Session</literal> 的范围设"
+"置为整个请求。要用 <literal>getCurrentSession()</literal>,这样它自动会绑定到"
+"当前 Java 线程。"
 
 #. Tag: para
 #, no-c-format
-msgid "Next, the possible actions of the request are processed and the response HTML is rendered. We will get to that part soon."
-msgstr "下一步,对请求的可能动作进行处理,渲染出反馈的 HTML。我们很快就会涉及到那部分。 "
+msgid ""
+"Next, the possible actions of the request are processed and the response "
+"HTML is rendered. We will get to that part soon."
+msgstr ""
+"下一步,对请求的可能动作进行处理,渲染出反馈的 HTML。我们很快就会涉及到那部"
+"分。 "
 
 #. Tag: para
 #, no-c-format
-msgid "Finally, the unit of work ends when processing and rendering are complete. If any problems occurred during processing or rendering, an exception will be thrown and the database transaction rolled back. This completes the <literal>session-per-request</literal> pattern. Instead of the transaction demarcation code in every servlet, you could also write a servlet filter. See the Hibernate website and Wiki for more information about this pattern called <emphasis>Open Session in View</emphasis>. You will need it as soon as you consider rendering your view in JSP, not in a servlet."
-msgstr "最后,当处理与渲染都结束的时候,这个工作单元就结束了。假若在处理或渲染的时候有任何错误发生,会抛出一个异常,回滚数据库事务。这样,<literal>session-per-request</literal> 模式就完成了。为了避免在每个 servlet 中都编写事务边界界定的代码,可以考虑写一个 servlet 过滤器(filter)来更好地解决。关于这一模式的更多信息,请参阅 Hibernate 网站和 Wiki,这一模式叫做 <emphasis>Open Session in View</emphasis> — 只要你考虑用JSP来渲染你的视图(view),而不是在servlet中,你就会很快用到它。 "
+msgid ""
+"Finally, the unit of work ends when processing and rendering are complete. "
+"If any problems occurred during processing or rendering, an exception will "
+"be thrown and the database transaction rolled back. This completes the "
+"<literal>session-per-request</literal> pattern. Instead of the transaction "
+"demarcation code in every servlet, you could also write a servlet filter. "
+"See the Hibernate website and Wiki for more information about this pattern "
+"called <emphasis>Open Session in View</emphasis>. You will need it as soon "
+"as you consider rendering your view in JSP, not in a servlet."
+msgstr ""
+"最后,当处理与渲染都结束的时候,这个工作单元就结束了。假若在处理或渲染的时候"
+"有任何错误发生,会抛出一个异常,回滚数据库事务。这样,<literal>session-per-"
+"request</literal> 模式就完成了。为了避免在每个 servlet 中都编写事务边界界定的"
+"代码,可以考虑写一个 servlet 过滤器(filter)来更好地解决。关于这一模式的更多"
+"信息,请参阅 Hibernate 网站和 Wiki,这一模式叫做 <emphasis>Open Session in "
+"View</emphasis> — 只要你考虑用JSP来渲染你的视图(view),而不是在servlet中,"
+"你就会很快用到它。 "
 
 #. Tag: title
 #, no-c-format
@@ -642,28 +1495,63 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Now you can implement the processing of the request and the rendering of the page."
+msgid ""
+"Now you can implement the processing of the request and the rendering of the "
+"page."
 msgstr "我们来实现处理请求以及渲染页面的工作。 "
 
 #. Tag: para
 #, no-c-format
-msgid "This coding style, with a mix of Java and HTML, would not scale in a more complex application&mdash;keep in mind that we are only illustrating basic Hibernate concepts in this tutorial. The code prints an HTML header and a footer. Inside this page, an HTML form for event entry and a list of all events in the database are printed. The first method is trivial and only outputs HTML:"
-msgstr "必须承认,这种编码风格把 Java 和 HTML 混在一起,在更复杂的应用程序里不应该大量使用 — 记住,在本章里我们仅仅是展示了 Hibernate 的基本概念。这段代码打印出了 HTML 页眉和页脚,在这个页面里,还打印了一个输入 events 条目的表单单并列出了数据库里的有的 events。第一个方法微不足道,仅仅是输出 HTML:"
+msgid ""
+"This coding style, with a mix of Java and HTML, would not scale in a more "
+"complex application&mdash;keep in mind that we are only illustrating basic "
+"Hibernate concepts in this tutorial. The code prints an HTML header and a "
+"footer. Inside this page, an HTML form for event entry and a list of all "
+"events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
+msgstr ""
+"必须承认,这种编码风格把 Java 和 HTML 混在一起,在更复杂的应用程序里不应该大"
+"量使用 — 记住,在本章里我们仅仅是展示了 Hibernate 的基本概念。这段代码打印出"
+"了 HTML 页眉和页脚,在这个页面里,还打印了一个输入 events 条目的表单单并列出"
+"了数据库里的有的 events。第一个方法微不足道,仅仅是输出 HTML:"
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>listEvents()</literal> method uses the Hibernate <literal>Session</literal> bound to the current thread to execute a query:"
-msgstr "<literal>listEvents()</literal> 方法使用绑定到当前线程的 Hibernate <literal>Session</literal> 来执行查询:"
+msgid ""
+"The <literal>listEvents()</literal> method uses the Hibernate "
+"<literal>Session</literal> bound to the current thread to execute a query:"
+msgstr ""
+"<literal>listEvents()</literal> 方法使用绑定到当前线程的 Hibernate "
+"<literal>Session</literal> 来执行查询:"
 
 #. Tag: para
 #, no-c-format
-msgid "Finally, the <literal>store</literal> action is dispatched to the <literal>createAndStoreEvent()</literal> method, which also uses the <literal>Session</literal> of the current thread:"
-msgstr "最后,<literal>store</literal> 动作会被导向到 <literal>createAndStoreEvent()</literal> 方法,它也使用当前线程的 <literal>Session</literal>:"
+msgid ""
+"Finally, the <literal>store</literal> action is dispatched to the "
+"<literal>createAndStoreEvent()</literal> method, which also uses the "
+"<literal>Session</literal> of the current thread:"
+msgstr ""
+"最后,<literal>store</literal> 动作会被导向到 <literal>createAndStoreEvent()"
+"</literal> 方法,它也使用当前线程的 <literal>Session</literal>:"
 
 #. Tag: para
 #, no-c-format
-msgid "The servlet is now complete. A request to the servlet will be processed in a single <literal>Session</literal> and <literal>Transaction</literal>. As earlier in the standalone application, Hibernate can automatically bind these objects to the current thread of execution. This gives you the freedom to layer your code and access the <literal>SessionFactory</literal> in any way you like. Usually you would use a more sophisticated design and move the data access code into data access objects (the DAO pattern). See the Hibernate Wiki for more examples."
-msgstr "大功告成,这个 servlet 写完了。Hibernate 会在单一的 <literal>Session</literal> 和 <literal>Transaction</literal> 中处理到达的 servlet 请求。如同在前面的独立应用程序中那样,Hibernate 可以自动的把这些对象绑定到当前运行的线程中。这给了你用任何你喜欢的方式来对代码分层及访问 <literal>SessionFactory</literal> 的自由。通常,你会用更加完备的设计,把数据访问代码转移到数据访问对象中(DAO 模式)。请参见 Hibernate Wiki,那里有更多的例子。 "
+msgid ""
+"The servlet is now complete. A request to the servlet will be processed in a "
+"single <literal>Session</literal> and <literal>Transaction</literal>. As "
+"earlier in the standalone application, Hibernate can automatically bind "
+"these objects to the current thread of execution. This gives you the freedom "
+"to layer your code and access the <literal>SessionFactory</literal> in any "
+"way you like. Usually you would use a more sophisticated design and move the "
+"data access code into data access objects (the DAO pattern). See the "
+"Hibernate Wiki for more examples."
+msgstr ""
+"大功告成,这个 servlet 写完了。Hibernate 会在单一的 <literal>Session</"
+"literal> 和 <literal>Transaction</literal> 中处理到达的 servlet 请求。如同在"
+"前面的独立应用程序中那样,Hibernate 可以自动的把这些对象绑定到当前运行的线程"
+"中。这给了你用任何你喜欢的方式来对代码分层及访问 <literal>SessionFactory</"
+"literal> 的自由。通常,你会用更加完备的设计,把数据访问代码转移到数据访问对象"
+"中(DAO 模式)。请参见 Hibernate Wiki,那里有更多的例子。 "
 
 #. Tag: title
 #, no-c-format
@@ -672,23 +1560,51 @@
 
 #. Tag: para
 #, no-c-format
-msgid "To deploy this application for testing we must create a Web ARchive (WAR). First we must define the WAR descriptor as <filename>src/main/webapp/WEB-INF/web.xml</filename>"
-msgstr "要部署这个应用程序以进行测试,我们必须出具一个 Web ARchive (WAR)。首先我们必须定义 WAR 描述符为 <filename>src/main/webapp/WEB-INF/web.xml</filename>。"
+msgid ""
+"To deploy this application for testing we must create a Web ARchive (WAR). "
+"First we must define the WAR descriptor as <filename>src/main/webapp/WEB-INF/"
+"web.xml</filename>"
+msgstr ""
+"要部署这个应用程序以进行测试,我们必须出具一个 Web ARchive (WAR)。首先我们必"
+"须定义 WAR 描述符为 <filename>src/main/webapp/WEB-INF/web.xml</filename>。"
 
 #. Tag: para
 #, no-c-format
-msgid "To build and deploy call <literal>mvn package</literal> in your project directory and copy the <filename>hibernate-tutorial.war</filename> file into your Tomcat <filename>webapps</filename> directory."
-msgstr "在你的开发目录中,调用 <literal>ant war</literal> 来构建、打包,然后把 <literal>hibernate-tutorial.war</literal> 文件拷贝到你的 tomcat 的 <literal>webapps</literal> 目录下。假若你还没安装 Tomcat,就去下载一个,按照指南来安装。对此应用的发布,你不需要修改任何 Tomcat 的配置。 "
+msgid ""
+"To build and deploy call <literal>mvn package</literal> in your project "
+"directory and copy the <filename>hibernate-tutorial.war</filename> file into "
+"your Tomcat <filename>webapps</filename> directory."
+msgstr ""
+"在你的开发目录中,调用 <literal>ant war</literal> 来构建、打包,然后把 "
+"<literal>hibernate-tutorial.war</literal> 文件拷贝到你的 tomcat 的 "
+"<literal>webapps</literal> 目录下。假若你还没安装 Tomcat,就去下载一个,按照"
+"指南来安装。对此应用的发布,你不需要修改任何 Tomcat 的配置。 "
 
 #. Tag: para
-#, no-c-format
-msgid "If you do not have Tomcat installed, download it from <ulink url=\"http://tomcat.apache.org/\" /> and follow the installation instructions. Our application requires no changes to the standard Tomcat configuration."
-msgstr "如果你还没有安装 Tomcat,请从 <ulink url=\"http://tomcat.apache.org/\" /> 下载并按照安装说明进行安装。我们的应用程序不需要对标准的 Tomcat 配置进行修改。"
+#, fuzzy, no-c-format
+msgid ""
+"If you do not have Tomcat installed, download it from <ulink url=\"http://"
+"tomcat.apache.org/\" /> and follow the installation instructions. Our "
+"application requires no changes to the standard Tomcat configuration."
+msgstr ""
+"如果你还没有安装 Tomcat,请从 <ulink url=\"http://tomcat.apache.org/\" /> 下"
+"载并按照安装说明进行安装。我们的应用程序不需要对标准的 Tomcat 配置进行修改。"
 
 #. Tag: para
 #, no-c-format
-msgid "Once deployed and Tomcat is running, access the application at <literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. Make sure you watch the Tomcat log to see Hibernate initialize when the first request hits your servlet (the static initializer in <literal>HibernateUtil</literal> is called) and to get the detailed output if any exceptions occurs."
-msgstr "在部署完,启动 Tomcat 之后,通过 <literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal> 进行访问你的应用,在第一次 servlet 请求发生时,请在 Tomcat log 中确认你看到 Hibernate 被初始化了(<literal>HibernateUtil</literal> 的静态初始化器被调用),假若有任何异常抛出,也可以看到详细的输出。"
+msgid ""
+"Once deployed and Tomcat is running, access the application at "
+"<literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. "
+"Make sure you watch the Tomcat log to see Hibernate initialize when the "
+"first request hits your servlet (the static initializer in "
+"<literal>HibernateUtil</literal> is called) and to get the detailed output "
+"if any exceptions occurs."
+msgstr ""
+"在部署完,启动 Tomcat 之后,通过 <literal>http://localhost:8080/hibernate-"
+"tutorial/eventmanager</literal> 进行访问你的应用,在第一次 servlet 请求发生"
+"时,请在 Tomcat log 中确认你看到 Hibernate 被初始化了"
+"(<literal>HibernateUtil</literal> 的静态初始化器被调用),假若有任何异常抛"
+"出,也可以看到详细的输出。"
 
 #. Tag: title
 #, no-c-format
@@ -697,8 +1613,14 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This tutorial covered the basics of writing a simple standalone Hibernate application and a small web application. More tutorials are available from the Hibernate <ulink url=\"http://hibernate.org\">website</ulink>."
-msgstr "本章覆盖了如何编写一个简单独立的 Hibernate 命令行应用程序及小型的 Hibernate web 应用程序的基本要素。更多的教程可以在 <ulink url=\"http://hibernate.org\">website</ulink> 上找到。"
+msgid ""
+"This tutorial covered the basics of writing a simple standalone Hibernate "
+"application and a small web application. More tutorials are available from "
+"the Hibernate <ulink url=\"http://hibernate.org\">website</ulink>."
+msgstr ""
+"本章覆盖了如何编写一个简单独立的 Hibernate 命令行应用程序及小型的 Hibernate "
+"web 应用程序的基本要素。更多的教程可以在 <ulink url=\"http://hibernate.org"
+"\">website</ulink> 上找到。"
 
 #~ msgid ""
 #~ "<![CDATA[<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
@@ -796,6 +1718,7 @@
 #~ "    </dependencies>\n"
 #~ "\n"
 #~ "</project>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[package org.hibernate.tutorial.domain;\n"
 #~ "\n"
@@ -870,6 +1793,7 @@
 #~ "        this.title = title;\n"
 #~ "    }\n"
 #~ "}]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\"?>\n"
 #~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
@@ -888,6 +1812,7 @@
 #~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
 #~ "[...]\n"
 #~ "</hibernate-mapping>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
 #~ "\n"
@@ -904,6 +1829,7 @@
 #~ "    </class>\n"
 #~ "\n"
 #~ "</hibernate-mapping>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
 #~ "\n"
@@ -924,6 +1850,7 @@
 #~ "    </class>\n"
 #~ "\n"
 #~ "</hibernate-mapping>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[\n"
 #~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
@@ -952,6 +1879,7 @@
 #~ "    </class>\n"
 #~ "\n"
 #~ "</hibernate-mapping>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
 #~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
@@ -1962,4 +2890,3 @@
 #~ "        &lt;url-pattern&gt;/eventmanager&lt;/url-pattern&gt;\n"
 #~ "    &lt;/servlet-mapping&gt;\n"
 #~ "&lt;/web-app&gt;"
-

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-10 19:42:49 UTC (rev 18771)
+++ core/branches/Branch_3_3/documentation/manual/src/main/docbook/zh-CN/content/xml.po	2010-02-11 02:42:15 UTC (rev 18772)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-12-03T00:15:27\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\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"
@@ -20,9 +20,13 @@
 msgstr "XML 映射"
 
 #. 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>"
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
+"currently under active development. </emphasis>"
+msgstr ""
+"<emphasis>注意 XML 映射只是 Hibernate 3.0 的一个实验性的特性。这一特性仍在积"
+"极开发中。</emphasis>"
 
 #. Tag: title
 #, no-c-format
@@ -31,23 +35,51 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate allows you to work with persistent XML data in much the same way you work with persistent POJOs. A parsed XML tree can be thought of as another way of representing the relational data at the object level, instead of POJOs."
-msgstr "Hibernate 使得你可以用 XML 数据来进行工作,恰如你用持久化的 POJO 进行工作那样。解析过的 XML 树 可以被认为是代替 POJO 的另外一种在对象层面上表示关系型数据的途径。"
+msgid ""
+"Hibernate allows you to work with persistent XML data in much the same way "
+"you work with persistent POJOs. A parsed XML tree can be thought of as "
+"another way of representing the relational data at the object level, instead "
+"of POJOs."
+msgstr ""
+"Hibernate 使得你可以用 XML 数据来进行工作,恰如你用持久化的 POJO 进行工作那"
+"样。解析过的 XML 树 可以被认为是代替 POJO 的另外一种在对象层面上表示关系型数"
+"据的途径。"
 
 #. Tag: para
 #, no-c-format
-msgid "Hibernate supports dom4j as API for manipulating XML trees. You can write queries that retrieve dom4j trees from the database and have any modification you make to the tree automatically synchronized to the database. You can even take an XML document, parse it using dom4j, and write it to the database with any of Hibernate's basic operations: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not yet supported)."
-msgstr "Hibernate 支持采用 dom4j 作为操作 XML 树的 API。你可以写一些查询从数据库中检索出 dom4j 树,随后你对这颗树做的任何修改都将自动同步回数据库。你甚至可以用 dom4j 解析 一篇 XML 文档,然后使用 Hibernate 的任一基本操作将它写入数据库:<literal>persist(),saveOrUpdate(),merge(),delete(),replicate()</literal> (合并操作merge()目前还不支持)。"
+msgid ""
+"Hibernate supports dom4j as API for manipulating XML trees. You can write "
+"queries that retrieve dom4j trees from the database and have any "
+"modification you make to the tree automatically synchronized to the "
+"database. You can even take an XML document, parse it using dom4j, and write "
+"it to the database with any of Hibernate's basic operations: <literal>persist"
+"(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not "
+"yet supported)."
+msgstr ""
+"Hibernate 支持采用 dom4j 作为操作 XML 树的 API。你可以写一些查询从数据库中检"
+"索出 dom4j 树,随后你对这颗树做的任何修改都将自动同步回数据库。你甚至可以用 "
+"dom4j 解析 一篇 XML 文档,然后使用 Hibernate 的任一基本操作将它写入数据库:"
+"<literal>persist(),saveOrUpdate(),merge(),delete(),replicate()</literal> "
+"(合并操作merge()目前还不支持)。"
 
 #. Tag: para
 #, no-c-format
-msgid "This feature has many applications including data import/export, externalization of entity data via JMS or SOAP and XSLT-based reporting."
-msgstr "这一特性可以应用在很多场合,包括数据导入导出,通过 JMS 或 SOAP 具体化实体数据以及 基于 XSLT 的报表。"
+msgid ""
+"This feature has many applications including data import/export, "
+"externalization of entity data via JMS or SOAP and XSLT-based reporting."
+msgstr ""
+"这一特性可以应用在很多场合,包括数据导入导出,通过 JMS 或 SOAP 具体化实体数据"
+"以及 基于 XSLT 的报表。"
 
 #. Tag: para
 #, no-c-format
-msgid "A single mapping can be used to simultaneously map properties of a class and nodes of an XML document to the database, or, if there is no class to map, it can be used to map just the XML."
-msgstr "一个单一的映射就可以将类的属性和 XML 文档的节点同时映射到数据库。如果不需要映射类,它也可以用来只映射 XML 文档。 "
+msgid ""
+"A single mapping can be used to simultaneously map properties of a class and "
+"nodes of an XML document to the database, or, if there is no class to map, "
+"it can be used to map just the XML."
+msgstr ""
+"一个单一的映射就可以将类的属性和 XML 文档的节点同时映射到数据库。如果不需要映"
+"射类,它也可以用来只映射 XML 文档。 "
 
 #. Tag: title
 #, no-c-format
@@ -71,8 +103,14 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This mapping allows you to access the data as a dom4j tree, or as a graph of property name/value pairs or java <literal>Map</literal>s. The property names are purely logical constructs that can be referred to in HQL queries."
-msgstr "这个映射使得你既可以把数据作为一棵 dom4j 树那样访问,又可以作为由属性键值对(java <literal>Map</literal>)组成的图那样访问。属性名字纯粹是逻辑上的结构,你可以在 HQL 查询中引用它。"
+msgid ""
+"This mapping allows you to access the data as a dom4j tree, or as a graph of "
+"property name/value pairs or java <literal>Map</literal>s. The property "
+"names are purely logical constructs that can be referred to in HQL queries."
+msgstr ""
+"这个映射使得你既可以把数据作为一棵 dom4j 树那样访问,又可以作为由属性键值对"
+"(java <literal>Map</literal>)组成的图那样访问。属性名字纯粹是逻辑上的结构,"
+"你可以在 HQL 查询中引用它。"
 
 #. Tag: title
 #, no-c-format
@@ -81,8 +119,15 @@
 
 #. Tag: para
 #, no-c-format
-msgid "A range of Hibernate mapping elements accept the <literal>node</literal> attribute. This lets you specify the name of an XML attribute or element that holds the property or entity data. The format of the <literal>node</literal> attribute must be one of the following:"
-msgstr "许多 Hibernate 映射元素具有 <literal>node</literal> 属性。这使你可以指定用来保存 属性或实体数据的 XML 属性或元素。<literal>node</literal> 属性必须是下列格式之一: "
+msgid ""
+"A range of Hibernate mapping elements accept the <literal>node</literal> "
+"attribute. This lets you specify the name of an XML attribute or element "
+"that holds the property or entity data. The format of the <literal>node</"
+"literal> attribute must be one of the following:"
+msgstr ""
+"许多 Hibernate 映射元素具有 <literal>node</literal> 属性。这使你可以指定用来"
+"保存 属性或实体数据的 XML 属性或元素。<literal>node</literal> 属性必须是下列"
+"格式之一: "
 
 #. Tag: para
 #, no-c-format
@@ -101,23 +146,47 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>\"element-name/@attribute-name\"</literal>: map to the named attribute of the named element"
-msgstr "<literal>\"element-name/@attribute-name\"</literal>:映射为指定元素的指定属性"
+msgid ""
+"<literal>\"element-name/@attribute-name\"</literal>: map to the named "
+"attribute of the named element"
+msgstr ""
+"<literal>\"element-name/@attribute-name\"</literal>:映射为指定元素的指定属性"
 
 #. Tag: para
 #, no-c-format
-msgid "For collections and single valued associations, there is an additional <literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</literal>, the default, the XML tree for the associated entity (or collection of value type) will be embedded directly in the XML tree for the entity that owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, then only the referenced identifier value will appear in the XML for single point associations and collections will not appear at all."
-msgstr "对于集合和单值的关联,有一个额外的 <literal>embed-xml</literal> 属性可用。这个属性的缺省值是真(<literal>embed-xml=\"true\"</literal>)。如果 <literal>embed-xml=\"true\"</literal>,则对应于被关联实体或值类型的集合的XML树将直接嵌入拥有这些关联的实体的 XML 树中。否则,如果 <literal>embed-xml=\"false\"</literal>,那么对于单值的关联,仅被引用的实体的标识符出现在 XML 树中(被引用实体本身不出现),而集合则根本不出现。"
+msgid ""
+"For collections and single valued associations, there is an additional "
+"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
+"literal>, the default, the XML tree for the associated entity (or collection "
+"of value type) will be embedded directly in the XML tree for the entity that "
+"owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, "
+"then only the referenced identifier value will appear in the XML for single "
+"point associations and collections will not appear at all."
+msgstr ""
+"对于集合和单值的关联,有一个额外的 <literal>embed-xml</literal> 属性可用。这"
+"个属性的缺省值是真(<literal>embed-xml=\"true\"</literal>)。如果 "
+"<literal>embed-xml=\"true\"</literal>,则对应于被关联实体或值类型的集合的XML"
+"树将直接嵌入拥有这些关联的实体的 XML 树中。否则,如果 <literal>embed-xml="
+"\"false\"</literal>,那么对于单值的关联,仅被引用的实体的标识符出现在 XML 树"
+"中(被引用实体本身不出现),而集合则根本不出现。"
 
 #. Tag: para
 #, no-c-format
-msgid "Do not leave <literal>embed-xml=\"true\"</literal> for too many associations, since XML does not deal well with circularity."
-msgstr "你应该小心,不要让太多关联的 embed-xml 属性为真(<literal>embed-xml=\"true\"</literal>),因为 XML 不能很好地处理循环引用。"
+msgid ""
+"Do not leave <literal>embed-xml=\"true\"</literal> for too many "
+"associations, since XML does not deal well with circularity."
+msgstr ""
+"你应该小心,不要让太多关联的 embed-xml 属性为真(<literal>embed-xml=\"true"
+"\"</literal>),因为 XML 不能很好地处理循环引用。"
 
 #. Tag: para
 #, no-c-format
-msgid "In this case, the collection of account ids is embedded, but not the actual account data. The following HQL query:"
-msgstr "在这个例子中,我们决定嵌入帐目号码(account id)的集合,但不嵌入实际的帐目数据。下面的 HQL 查询: "
+msgid ""
+"In this case, the collection of account ids is embedded, but not the actual "
+"account data. The following HQL query:"
+msgstr ""
+"在这个例子中,我们决定嵌入帐目号码(account id)的集合,但不嵌入实际的帐目数"
+"据。下面的 HQL 查询: "
 
 #. Tag: para
 #, no-c-format
@@ -126,8 +195,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If you set <literal>embed-xml=\"true\"</literal> on the <literal>&lt;one-to-many&gt;</literal> mapping, the data might look more like this:"
-msgstr "如果你把一对多映射 <literal>&lt;one-to-many&gt;</literal> 的 embed-xml 属性置为真(<literal>embed-xml=\"true\"</literal>),则数据看上去就像这样:"
+msgid ""
+"If you set <literal>embed-xml=\"true\"</literal> on the <literal>&lt;one-to-"
+"many&gt;</literal> mapping, the data might look more like this:"
+msgstr ""
+"如果你把一对多映射 <literal>&lt;one-to-many&gt;</literal> 的 embed-xml 属性置"
+"为真(<literal>embed-xml=\"true\"</literal>),则数据看上去就像这样:"
 
 #. Tag: title
 #, no-c-format
@@ -136,13 +209,21 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You can also re-read and update XML documents in the application. You can do this by obtaining a dom4j session:"
-msgstr "你也可以重新读入和更新应用程序中的 XML 文档。通过获取一个 dom4j 会话可以做到这一点:"
+msgid ""
+"You can also re-read and update XML documents in the application. You can do "
+"this by obtaining a dom4j session:"
+msgstr ""
+"你也可以重新读入和更新应用程序中的 XML 文档。通过获取一个 dom4j 会话可以做到"
+"这一点:"
 
 #. Tag: para
 #, no-c-format
-msgid "When implementing XML-based data import/export, it is useful to combine this feature with Hibernate's <literal>replicate()</literal> operation."
-msgstr "将这一特色与 Hibernate 的 <literal>replicate()</literal> 操作结合起来对于实现的基于 XML 的数据导入/导出将非常有用。"
+msgid ""
+"When implementing XML-based data import/export, it is useful to combine this "
+"feature with Hibernate's <literal>replicate()</literal> operation."
+msgstr ""
+"将这一特色与 Hibernate 的 <literal>replicate()</literal> 操作结合起来对于实现"
+"的基于 XML 的数据导入/导出将非常有用。"
 
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Account\" \n"
@@ -186,6 +267,7 @@
 #~ "    ...\n"
 #~ "    \n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class entity-name=\"Account\" \n"
 #~ "        table=\"ACCOUNTS\" \n"
@@ -234,6 +316,7 @@
 #~ "    ...\n"
 #~ "    \n"
 #~ "</class>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Customer\" \n"
 #~ "        table=\"CUSTOMER\" \n"
@@ -304,12 +387,14 @@
 #~ "    ...\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"
@@ -332,6 +417,7 @@
 #~ "    </name>\n"
 #~ "    ...\n"
 #~ "</customer>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[<customer id=\"123456789\">\n"
 #~ "    <account id=\"987632567\" short-desc=\"Savings\">\n"
@@ -366,6 +452,7 @@
 #~ "    </name>\n"
 #~ "    ...\n"
 #~ "</customer>]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Document doc = ....;\n"
 #~ "       \n"
@@ -404,6 +491,7 @@
 #~ "\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+
 #~ msgid ""
 #~ "<![CDATA[Session session = factory.openSession();\n"
 #~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
@@ -438,4 +526,3 @@
 #~ "\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-



More information about the hibernate-commits mailing list